securejson: decrypt should not modify src

When decrypting a source securejson byte array, should not
modify the source and now passes back a new dest byte array.
This commit is contained in:
Daniel Lee 2017-09-08 10:19:04 +02:00
parent e13575eaef
commit b1506a2b09

View File

@ -27,12 +27,13 @@ func Decrypt(payload []byte, secret string) ([]byte, error) {
}
iv := payload[saltLength : saltLength+aes.BlockSize]
payload = payload[saltLength+aes.BlockSize:]
payloadDst := make([]byte, len(payload))
stream := cipher.NewCFBDecrypter(block, iv)
// XORKeyStream can work in-place if the two arguments are the same.
stream.XORKeyStream(payload, payload)
return payload, nil
stream.XORKeyStream(payloadDst, payload)
return payloadDst, nil
}
func Encrypt(payload []byte, secret string) ([]byte, error) {