Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -202,4 +202,20 @@ public PGPSessionKeyEncryptedData extractSessionKeyEncryptedData()
{
return new PGPSessionKeyEncryptedData(data);
}

/**
* Create a decryption method using a {@link PGPSessionKey}.
* This method can be used to decrypt messages which do not contain a SKESK or PKESK packet using a session key.
* If <pre>enableQuickCheck</pre> is set to true, upon decryption, the 2-octet quick-check is performed
* to early reject wrong session-keys.
* NOTE: The quick check should only be enabled for symmetrically encrypted data, in order to prevent
* attacks via the Mister-Zuccherato oracle.
*
* @param enableQuickCheck whether to enable the 2-octet SEIPDv1 quick check.
* @return session key encrypted data
*/
public PGPSessionKeyEncryptedData extractSessionKeyEncryptedData(boolean enableQuickCheck)
{
return new PGPSessionKeyEncryptedData(data, enableQuickCheck);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,17 @@
public class PGPSessionKeyEncryptedData
extends PGPSymmetricKeyEncryptedData
{
private final boolean enableQuickCheck;

PGPSessionKeyEncryptedData(InputStreamPacket encData)
{
this(encData, false);
}

PGPSessionKeyEncryptedData(InputStreamPacket encData, boolean enableQuickCheck)
{
super(encData);
this.enableQuickCheck = enableQuickCheck;
}

@Override
Expand Down Expand Up @@ -69,6 +77,6 @@ public InputStream getDataStream(
@Override
protected boolean isPublicKeyEncrypted()
{
return true;
return !enableQuickCheck;
}
}
Loading