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 := 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 nil, errors.New("ciphertext is not a multiple of the block size")
|
||||||
}
|
}
|
||||||
|
|
||||||
return unpad(ciphertext)
|
return unpad(plaintext)
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue