func (b2h *B2Handler)
EncyptandUpload(iv []byte, fileName string, outputFileName
string) {
key
:= []byte("example key 1234")
inFile,
err := os.Open(fileName)
if
err != nil {
panic(err)
}
defer
inFile.Close()
block,
err := aes.NewCipher(key)
if
err != nil {
panic(err)
}
//
If the key is unique for each ciphertext, then it's ok to use a
zero
//
IV.
//var
iv [aes.BlockSize]byte
stream
:= cipher.NewOFB(block, iv[:])
//
outFile, err := os.OpenFile(outputFileName,
os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
//
if err != nil {
//
panic(err)
//
}
//
defer outFile.Close()
pReader,
pWriter := io.Pipe()
writer
:= &cipher.StreamWriter{S: stream, W: pWriter}
//
Copy the input file to the output file, encrypting as we go.
//
if _, err := io.Copy(writer, inFile); err != nil {
//
panic(err)
//
}