forked from mystiq/dex
pkg/crypto: Don't modify ciphertext in place.
mmmkay?
This commit is contained in:
parent
0feb1dd719
commit
93f4ae2ba6
1 changed files with 5 additions and 3 deletions
|
@ -84,11 +84,13 @@ func AESDecrypt(ciphertext, key []byte) ([]byte, error) {
|
|||
}
|
||||
|
||||
mode := cipher.NewCBCDecrypter(block, iv)
|
||||
mode.CryptBlocks(ciphertext, ciphertext)
|
||||
|
||||
if len(ciphertext)%aes.BlockSize != 0 {
|
||||
plaintext := make([]byte, len(ciphertext))
|
||||
mode.CryptBlocks(plaintext, ciphertext)
|
||||
|
||||
if len(plaintext)%aes.BlockSize != 0 {
|
||||
return nil, errors.New("ciphertext is not a multiple of the block size")
|
||||
}
|
||||
|
||||
return unpad(ciphertext)
|
||||
return unpad(plaintext)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue