Finally, I submit my first question to StackOverflow. I have been using this site for many years and I have always found excellent answers to all my questions :)
I use the background daemon to encrypt files, which is based on the official Golang encryption example:
func ExampleStreamReader() {
key := []byte("example key 1234")
inFile, err := os.Open("encrypted-file")
if err != nil {
panic(err)
}
defer inFile.Close()
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
var iv [aes.BlockSize]byte
stream := cipher.NewOFB(block, iv[:])
outFile, err := os.OpenFile("decrypted-file", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
if err != nil {
panic(err)
}
defer outFile.Close()
reader := &cipher.StreamReader{S: stream, R: inFile}
if _, err := io.Copy(outFile, reader); err != nil {
panic(err)
}
}
func ExampleStreamWriter() {
key := []byte("example key 1234")
inFile, err := os.Open("plaintext-file")
if err != nil {
panic(err)
}
defer inFile.Close()
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
var iv [aes.BlockSize]byte
stream := cipher.NewOFB(block, iv[:])
outFile, err := os.OpenFile("encrypted-file", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
if err != nil {
panic(err)
}
defer outFile.Close()
writer := &cipher.StreamWriter{S: stream, W: outFile}
if _, err := io.Copy(writer, inFile); err != nil {
panic(err)
}
}
What is meant by the following quote. What should I care about secure encryption and decryption?
Please note that this example is simplified in that it excludes any authentication of encrypted data. If you were actually that way to use StreamReader, an attacker could bit the output.
Thank!
source
share