Decrypt AEAD encrypted data packets with a session key
Adds the support to decrypt AEAD encrypted data packets when decrypting the data packet with a session key directly.
This commit is contained in:
parent
22acd6e231
commit
4cea9a0940
1 changed files with 6 additions and 4 deletions
|
|
@ -327,17 +327,19 @@ func decryptStreamWithSessionKey(sk *SessionKey, messageReader io.Reader, verify
|
|||
|
||||
// Decrypt data packet
|
||||
switch p := p.(type) {
|
||||
case *packet.SymmetricallyEncrypted:
|
||||
case *packet.SymmetricallyEncrypted, *packet.AEADEncrypted:
|
||||
dc, err := sk.GetCipherFunc()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "gopenpgp: unable to decrypt with session key")
|
||||
}
|
||||
|
||||
decrypted, err = p.Decrypt(dc, sk.Key)
|
||||
encryptedDataPacket, isDataPacket := p.(packet.EncryptedDataPacket)
|
||||
if !isDataPacket {
|
||||
return nil, errors.Wrap(err, "gopenpgp: unknown data packet")
|
||||
}
|
||||
decrypted, err = encryptedDataPacket.Decrypt(dc, sk.Key)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "gopenpgp: unable to decrypt symmetric packet")
|
||||
}
|
||||
|
||||
default:
|
||||
return nil, errors.New("gopenpgp: invalid packet type")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue