Skip to content

Commit 07318b7

Browse files
committed
Add LibrePGPPreferredEncryptionModes signature subpacket
1 parent cdd5703 commit 07318b7

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

pg/src/main/java/org/bouncycastle/bcpg/SignatureSubpacketInputStream.java

+3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.bouncycastle.bcpg.sig.IssuerKeyID;
1313
import org.bouncycastle.bcpg.sig.KeyExpirationTime;
1414
import org.bouncycastle.bcpg.sig.KeyFlags;
15+
import org.bouncycastle.bcpg.sig.LibrePGPPreferredEncryptionModes;
1516
import org.bouncycastle.bcpg.sig.NotationData;
1617
import org.bouncycastle.bcpg.sig.PolicyURI;
1718
import org.bouncycastle.bcpg.sig.PreferredAEADCiphersuites;
@@ -150,6 +151,8 @@ else if (flags[StreamUtil.flag_partial])
150151
case PREFERRED_HASH_ALGS:
151152
case PREFERRED_SYM_ALGS:
152153
return new PreferredAlgorithms(type, isCritical, isLongLength, data);
154+
case LIBREPGP_PREFERRED_ENCRYPTION_MODES:
155+
return new LibrePGPPreferredEncryptionModes(isCritical, isLongLength, data);
153156
case PREFERRED_AEAD_ALGORITHMS:
154157
return new PreferredAEADCiphersuites(isCritical, isLongLength, data);
155158
case KEY_FLAGS:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.bouncycastle.bcpg.sig;
2+
3+
import org.bouncycastle.bcpg.SignatureSubpacketTags;
4+
5+
/**
6+
* This is a deprecated LibrePGP signature subpacket with encryption mode numbers to indicate which modes
7+
* the key holder prefers to use with OCB Encrypted Data Packets ({@link org.bouncycastle.bcpg.AEADEncDataPacket}).
8+
* Implementations SHOULD ignore this subpacket and assume {@link org.bouncycastle.bcpg.AEADAlgorithmTags#OCB}.
9+
*/
10+
public class LibrePGPPreferredEncryptionModes
11+
extends PreferredAlgorithms
12+
{
13+
14+
public LibrePGPPreferredEncryptionModes(boolean isCritical, int[] encryptionModes)
15+
{
16+
this(isCritical, false, intToByteArray(encryptionModes));
17+
}
18+
19+
public LibrePGPPreferredEncryptionModes(boolean critical, boolean isLongLength, byte[] data)
20+
{
21+
super(SignatureSubpacketTags.LIBREPGP_PREFERRED_ENCRYPTION_MODES, critical, isLongLength, data);
22+
}
23+
}

0 commit comments

Comments
 (0)