Skip to content

Commit cacd2d1

Browse files
committed
Add LibrePGPPreferredEncryptionModes signature subpacket
1 parent 92e1624 commit cacd2d1

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;
@@ -166,6 +167,8 @@ else if (l == 255)
166167
case PREFERRED_HASH_ALGS:
167168
case PREFERRED_SYM_ALGS:
168169
return new PreferredAlgorithms(type, isCritical, isLongLength, data);
170+
case LIBREPGP_PREFERRED_ENCRYPTION_MODES:
171+
return new LibrePGPPreferredEncryptionModes(isCritical, isLongLength, data);
169172
case PREFERRED_AEAD_ALGORITHMS:
170173
return new PreferredAEADCiphersuites(isCritical, isLongLength, data);
171174
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)