Skip to content

Commit 506875a

Browse files
committed
removed external dependency on provider composite name class
standardised names to RFC draft.
1 parent 2958d6e commit 506875a

File tree

8 files changed

+181
-151
lines changed

8 files changed

+181
-151
lines changed

pkix/src/main/java/org/bouncycastle/operator/DefaultSignatureAlgorithmIdentifierFinder.java

+16-7
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers;
2727
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
2828
import org.bouncycastle.asn1.x9.X9ObjectIdentifiers;
29-
import org.bouncycastle.jcajce.provider.asymmetric.compositesignatures.CompositeSignaturesConstants;
3029
import org.bouncycastle.util.Strings;
3130

3231
public class DefaultSignatureAlgorithmIdentifierFinder
@@ -235,12 +234,22 @@ public class DefaultSignatureAlgorithmIdentifierFinder
235234
algorithms.put("SHA3-512WITHPICNIC", BCObjectIdentifiers.picnic_with_sha3_512);
236235
algorithms.put("SHAKE256WITHPICNIC", BCObjectIdentifiers.picnic_with_shake256);
237236

238-
//Load composite signatures
239-
for (ASN1ObjectIdentifier oid : CompositeSignaturesConstants.supportedIdentifiers)
240-
{
241-
algorithms.put(CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(oid).toUpperCase(), oid);
242-
algorithms.put(oid.toString(), oid);
243-
}
237+
algorithms.put("MLDSA44-RSA2048-PSS-SHA256", MiscObjectIdentifiers.id_MLDSA44_RSA2048_PSS_SHA256);
238+
algorithms.put("MLDSA44-RSA2048-PKCS15-SHA256", MiscObjectIdentifiers.id_MLDSA44_RSA2048_PKCS15_SHA256);
239+
algorithms.put("MLDSA44-ECDSA-P256-SHA256", MiscObjectIdentifiers.id_MLDSA44_ECDSA_P256_SHA256);
240+
algorithms.put("MLDSA44-ECDSA-BRAINPOOLP256R1-SHA256", MiscObjectIdentifiers.id_MLDSA44_ECDSA_brainpoolP256r1_SHA256);
241+
algorithms.put("MLDSA44-ED25519-SHA512", MiscObjectIdentifiers.id_MLDSA44_Ed25519_SHA512);
242+
algorithms.put("MLDSA65-RSA3072-PSS-SHA512", MiscObjectIdentifiers.id_MLDSA65_RSA3072_PSS_SHA512);
243+
algorithms.put("MLDSA65-RSA3072-PKCS15-SHA512", MiscObjectIdentifiers.id_MLDSA65_RSA3072_PKCS15_SHA512);
244+
algorithms.put("MLDSA65-ECDSA-BRAINPOOLP256R1-SHA512", MiscObjectIdentifiers.id_MLDSA65_ECDSA_brainpoolP256r1_SHA512);
245+
algorithms.put("MLDSA65-ECDSA-P256-SHA512", MiscObjectIdentifiers.id_MLDSA65_ECDSA_P256_SHA512);
246+
algorithms.put("MLDSA65-ED25519-SHA512", MiscObjectIdentifiers.id_MLDSA65_Ed25519_SHA512);
247+
algorithms.put("MLDSA87-ECDSA-P384-SHA512", MiscObjectIdentifiers.id_MLDSA87_ECDSA_P384_SHA512);
248+
algorithms.put("MLDSA87-ECDSA-BRAINPOOLP384R1-SHA512", MiscObjectIdentifiers.id_MLDSA87_ECDSA_brainpoolP384r1_SHA512);
249+
algorithms.put("MLDSA87-ED448-SHA512", MiscObjectIdentifiers.id_MLDSA87_Ed448_SHA512);
250+
algorithms.put("FALCON512-ECDSA-P256-SHA256", MiscObjectIdentifiers.id_Falcon512_ECDSA_P256_SHA256);
251+
algorithms.put("FALCON512-ECDSA-BRAINPOOLP256R1-SHA256", MiscObjectIdentifiers.id_Falcon512_ECDSA_brainpoolP256r1_SHA256);
252+
algorithms.put("FALCON512-ED25519-SHA512", MiscObjectIdentifiers.id_Falcon512_Ed25519_SHA512);
244253

245254
//
246255
// According to RFC 3279, the ASN.1 encoding SHALL (id-dsa-with-sha1) or MUST (ecdsa-with-SHA*) omit the parameters field.

pkix/src/test/java/org/bouncycastle/cert/test/CertTest.java

+42-23
Original file line numberDiff line numberDiff line change
@@ -1367,8 +1367,6 @@ public void checkCertificate(
13671367
Certificate cert = fact.generateCertificate(bIn);
13681368

13691369
PublicKey k = cert.getPublicKey();
1370-
// System.out.println("****** " + id + " ******");
1371-
// System.out.println(cert);
13721370
}
13731371
catch (Exception e)
13741372
{
@@ -5426,29 +5424,49 @@ private void checkSerialisation()
54265424

54275425
// TESTS REGARDING COMPOSITES https://www.ietf.org/archive/id/draft-ounsworth-pq-composite-sigs-13.html
54285426
private static String[] compositeSignaturesOIDs = {
5429-
"2.16.840.1.114027.80.8.1.1", //id-MLDSA44-RSA2048-PSS-SHA256
5430-
"2.16.840.1.114027.80.8.1.2", //id-MLDSA44-RSA2048-PKCS15-SHA256
5431-
"2.16.840.1.114027.80.8.1.3", //id-MLDSA44-Ed25519-SHA512
5432-
"2.16.840.1.114027.80.8.1.4", //id-MLDSA44-ECDSA-P256-SHA256
5433-
"2.16.840.1.114027.80.8.1.5", //id-MLDSA44-ECDSA-brainpoolP256r1-SHA256
5434-
"2.16.840.1.114027.80.8.1.6", //id-MLDSA65-RSA3072-PSS-SHA512
5435-
"2.16.840.1.114027.80.8.1.7", //id-MLDSA65-RSA3072-PKCS15-SHA512
5436-
"2.16.840.1.114027.80.8.1.8", //id-MLDSA65-ECDSA-P256-SHA512
5437-
"2.16.840.1.114027.80.8.1.9", //id-MLDSA65-ECDSA-brainpoolP256r1-SHA512
5438-
"2.16.840.1.114027.80.8.1.10", //id-MLDSA65-Ed25519-SHA512
5439-
"2.16.840.1.114027.80.8.1.11", //id-MLDSA87-ECDSA-P384-SHA512
5440-
"2.16.840.1.114027.80.8.1.12", //id-MLDSA87-ECDSA-brainpoolP384r1-SHA512
5441-
"2.16.840.1.114027.80.8.1.13", //id-MLDSA87-Ed448-SHA512
5442-
// Falcon composites below were excluded from the draft. See MiscObjectIdentifiers for details.
5443-
"2.16.840.1.114027.80.8.1.14", //id-Falcon512-ECDSA-P256-SHA256
5444-
"2.16.840.1.114027.80.8.1.15", //id-Falcon512-ECDSA-brainpoolP256r1-SHA256
5445-
"2.16.840.1.114027.80.8.1.16", //id-Falcon512-Ed25519-SHA512
5427+
"2.16.840.1.114027.80.8.1.1", //id-MLDSA44-RSA2048-PSS-SHA256
5428+
"2.16.840.1.114027.80.8.1.2", //id-MLDSA44-RSA2048-PKCS15-SHA256
5429+
"2.16.840.1.114027.80.8.1.3", //id-MLDSA44-Ed25519-SHA512
5430+
"2.16.840.1.114027.80.8.1.4", //id-MLDSA44-ECDSA-P256-SHA256
5431+
"2.16.840.1.114027.80.8.1.5", //id-MLDSA44-ECDSA-brainpoolP256r1-SHA256
5432+
"2.16.840.1.114027.80.8.1.6", //id-MLDSA65-RSA3072-PSS-SHA512
5433+
"2.16.840.1.114027.80.8.1.7", //id-MLDSA65-RSA3072-PKCS15-SHA512
5434+
"2.16.840.1.114027.80.8.1.8", //id-MLDSA65-ECDSA-P256-SHA512
5435+
"2.16.840.1.114027.80.8.1.9", //id-MLDSA65-ECDSA-brainpoolP256r1-SHA512
5436+
"2.16.840.1.114027.80.8.1.10", //id-MLDSA65-Ed25519-SHA512
5437+
"2.16.840.1.114027.80.8.1.11", //id-MLDSA87-ECDSA-P384-SHA512
5438+
"2.16.840.1.114027.80.8.1.12", //id-MLDSA87-ECDSA-brainpoolP384r1-SHA512
5439+
"2.16.840.1.114027.80.8.1.13", //id-MLDSA87-Ed448-SHA512
5440+
// Falcon composites below were excluded from the draft. See MiscObjectIdentifiers for details.
5441+
"2.16.840.1.114027.80.8.1.14", //id-Falcon512-ECDSA-P256-SHA256
5442+
"2.16.840.1.114027.80.8.1.15", //id-Falcon512-ECDSA-brainpoolP256r1-SHA256
5443+
"2.16.840.1.114027.80.8.1.16", //id-Falcon512-Ed25519-SHA512
5444+
};
5445+
5446+
private static String[] compositeSignaturesIDs = {
5447+
"MLDSA44-RSA2048-PSS-SHA256",
5448+
"MLDSA44-RSA2048-PKCS15-SHA256",
5449+
"MLDSA44-ED25519-SHA512",
5450+
"MLDSA44-ECDSA-P256-SHA256",
5451+
"MLDSA44-ECDSA-BRAINPOOLP256R1-SHA256",
5452+
"MLDSA65-RSA3072-PSS-SHA512",
5453+
"MLDSA65-RSA3072-PKCS15-SHA512",
5454+
"MLDSA65-ECDSA-P256-SHA512",
5455+
"MLDSA65-ECDSA-BRAINPOOLP256R1-SHA512",
5456+
"MLDSA65-ED25519-SHA512",
5457+
"MLDSA87-ECDSA-P384-SHA512",
5458+
"MLDSA87-ECDSA-BRAINPOOLP384R1-SHA512",
5459+
"MLDSA87-ED448-SHA512",
5460+
"FALCON512-ECDSA-P256-SHA256",
5461+
"FALCON512-ECDSA-BRAINPOOLP256R1-SHA256",
5462+
"FALCON512-ED25519-SHA512"
54465463
};
54475464

54485465
private void checkCompositeSignatureCertificateCreation()
54495466
{
54505467
try
54515468
{
5469+
int index = 0;
54525470
for (String oid : compositeSignaturesOIDs)
54535471
{
54545472
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(oid, "BC");
@@ -5462,22 +5480,23 @@ private void checkCompositeSignatureCertificateCreation()
54625480
X500Name subject = new X500Name(subjectName);
54635481

54645482
JcaX509v3CertificateBuilder certificateBuilder = new JcaX509v3CertificateBuilder(issuer, serial, notBefore, notAfter, subject, keyPair.getPublic());
5465-
X509CertificateHolder certHolder = certificateBuilder.build(new JcaContentSignerBuilder(oid).build(keyPair.getPrivate()));
5483+
X509CertificateHolder certHolder = certificateBuilder.build(new JcaContentSignerBuilder(compositeSignaturesIDs[index]).build(keyPair.getPrivate()));
54665484
X509Certificate cert = new JcaX509CertificateConverter().setProvider("BC").getCertificate(certHolder);
54675485

54685486
isEquals(oid, cert.getSigAlgOID());
54695487
CompositePublicKey compositePublicKey = (CompositePublicKey)cert.getPublicKey();
5470-
isEquals(CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(new ASN1ObjectIdentifier(oid)), compositePublicKey.getAlgorithm());
54715488

5489+
isEquals(CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(new ASN1ObjectIdentifier(oid)).getId(), compositePublicKey.getAlgorithm());
5490+
54725491
isEquals(subjectName, cert.getSubjectX500Principal().getName());
54735492

54745493
cert.verify(cert.getPublicKey());
5475-
5494+
index++;
54765495
}
54775496
}
54785497
catch (NoSuchAlgorithmException | NoSuchProviderException | CertificateException | OperatorCreationException |
54795498
SignatureException | InvalidKeyException | TestFailedException e)
5480-
{
5499+
{ e.printStackTrace();
54815500
fail("checkCompositeSignatureCertificateCreation failed: " + e.getMessage());
54825501
}
54835502
}

prov/src/main/java/org/bouncycastle/jcajce/CompositePrivateKey.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
package org.bouncycastle.jcajce;
22

3+
import java.io.IOException;
4+
import java.security.PrivateKey;
5+
import java.util.ArrayList;
6+
import java.util.Arrays;
7+
import java.util.Collections;
8+
import java.util.List;
9+
310
import org.bouncycastle.asn1.ASN1EncodableVector;
411
import org.bouncycastle.asn1.ASN1Encoding;
512
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
613
import org.bouncycastle.asn1.DERSequence;
7-
import org.bouncycastle.internal.asn1.misc.MiscObjectIdentifiers;
814
import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
915
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
16+
import org.bouncycastle.internal.asn1.misc.MiscObjectIdentifiers;
1017
import org.bouncycastle.jcajce.provider.asymmetric.compositesignatures.CompositeSignaturesConstants;
1118
import org.bouncycastle.jcajce.provider.asymmetric.compositesignatures.KeyFactorySpi;
1219
import org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter;
1320

14-
import java.io.IOException;
15-
import java.security.PrivateKey;
16-
import java.util.ArrayList;
17-
import java.util.Arrays;
18-
import java.util.Collections;
19-
import java.util.List;
20-
2121
/**
2222
* A composite private key class.
2323
*/
@@ -107,7 +107,7 @@ public List<PrivateKey> getPrivateKeys()
107107

108108
public String getAlgorithm()
109109
{
110-
return CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(this.algorithmIdentifier);
110+
return CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(this.algorithmIdentifier).getId();
111111
}
112112

113113
public ASN1ObjectIdentifier getAlgorithmIdentifier()

prov/src/main/java/org/bouncycastle/jcajce/CompositePublicKey.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
package org.bouncycastle.jcajce;
22

3+
import java.io.IOException;
4+
import java.security.PublicKey;
5+
import java.util.ArrayList;
6+
import java.util.Arrays;
7+
import java.util.Collections;
8+
import java.util.List;
9+
310
import org.bouncycastle.asn1.ASN1EncodableVector;
411
import org.bouncycastle.asn1.ASN1Encoding;
512
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
613
import org.bouncycastle.asn1.DERSequence;
7-
import org.bouncycastle.internal.asn1.misc.MiscObjectIdentifiers;
814
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
915
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
16+
import org.bouncycastle.internal.asn1.misc.MiscObjectIdentifiers;
1017
import org.bouncycastle.jcajce.provider.asymmetric.compositesignatures.CompositeSignaturesConstants;
1118
import org.bouncycastle.jcajce.provider.asymmetric.compositesignatures.KeyFactorySpi;
1219
import org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter;
1320

14-
import java.io.IOException;
15-
import java.security.PublicKey;
16-
import java.util.ArrayList;
17-
import java.util.Arrays;
18-
import java.util.Collections;
19-
import java.util.List;
20-
2121
/**
2222
* A composite key class.
2323
*/
@@ -108,7 +108,7 @@ public List<PublicKey> getPublicKeys()
108108

109109
public String getAlgorithm()
110110
{
111-
return CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(this.algorithmIdentifier);
111+
return CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(this.algorithmIdentifier).getId();
112112
}
113113

114114
public ASN1ObjectIdentifier getAlgorithmIdentifier()

prov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/CompositeSignatures.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package org.bouncycastle.jcajce.provider.asymmetric;
22

3+
import java.util.HashMap;
4+
import java.util.Map;
5+
36
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
47
import org.bouncycastle.jcajce.provider.asymmetric.compositesignatures.CompositeSignaturesConstants;
58
import org.bouncycastle.jcajce.provider.asymmetric.compositesignatures.KeyFactorySpi;
69
import org.bouncycastle.jcajce.provider.config.ConfigurableProvider;
710
import org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider;
811

9-
import java.util.HashMap;
10-
import java.util.Map;
11-
1212
/**
1313
* Experimental implementation of composite signatures according to https://www.ietf.org/archive/id/draft-ounsworth-pq-composite-sigs-13.
1414
*/
@@ -35,15 +35,15 @@ public void configure(ConfigurableProvider provider)
3535
{
3636
for (ASN1ObjectIdentifier oid : CompositeSignaturesConstants.supportedIdentifiers)
3737
{
38-
String algName = CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(oid);
39-
provider.addAlgorithm("KeyFactory." + algName, PREFIX + "KeyFactorySpi"); //Key factory is the same for all composite signatures.
40-
provider.addAlgorithm("Alg.Alias.KeyFactory", oid, algName);
38+
CompositeSignaturesConstants.CompositeName algName = CompositeSignaturesConstants.ASN1IdentifierAlgorithmNameMap.get(oid);
39+
provider.addAlgorithm("KeyFactory." + algName.getId(), PREFIX + "KeyFactorySpi"); //Key factory is the same for all composite signatures.
40+
provider.addAlgorithm("Alg.Alias.KeyFactory", oid, algName.getId());
4141

42-
provider.addAlgorithm("KeyPairGenerator." + algName, PREFIX + "KeyPairGeneratorSpi$" + algName);
43-
provider.addAlgorithm("Alg.Alias.KeyPairGenerator", oid, algName);
42+
provider.addAlgorithm("KeyPairGenerator." + algName.getId(), PREFIX + "KeyPairGeneratorSpi$" + algName);
43+
provider.addAlgorithm("Alg.Alias.KeyPairGenerator", oid, algName.getId());
4444

45-
provider.addAlgorithm("Signature." + algName, PREFIX + "SignatureSpi$" + algName);
46-
provider.addAlgorithm("Alg.Alias.Signature", oid, algName);
45+
provider.addAlgorithm("Signature." + algName.getId(), PREFIX + "SignatureSpi$" + algName);
46+
provider.addAlgorithm("Alg.Alias.Signature", oid, algName.getId());
4747

4848
provider.addKeyInfoConverter(oid, new KeyFactorySpi());
4949
}

prov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/compositesignatures/CompositeSignaturesConstants.java

+30-28
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,34 @@ public abstract class CompositeSignaturesConstants
4040
*/
4141
public enum CompositeName
4242
{
43-
MLDSA44_RSA2048_PSS_SHA256,
44-
MLDSA44_RSA2048_PKCS15_SHA256,
45-
MLDSA44_ECDSA_P256_SHA256,
46-
MLDSA44_ECDSA_brainpoolP256r1_SHA256,
47-
MLDSA44_Ed25519_SHA512,
48-
MLDSA65_RSA3072_PSS_SHA512,
49-
MLDSA65_RSA3072_PKCS15_SHA512,
50-
MLDSA65_ECDSA_brainpoolP256r1_SHA512,
51-
MLDSA65_ECDSA_P256_SHA512,
52-
MLDSA65_Ed25519_SHA512,
53-
MLDSA87_ECDSA_P384_SHA512,
54-
MLDSA87_ECDSA_brainpoolP384r1_SHA512,
55-
MLDSA87_Ed448_SHA512,
56-
Falcon512_ECDSA_P256_SHA256,
57-
Falcon512_ECDSA_brainpoolP256r1_SHA256,
58-
Falcon512_Ed25519_SHA512,
43+
MLDSA44_RSA2048_PSS_SHA256("MLDSA44-RSA2048-PSS-SHA256"),
44+
MLDSA44_RSA2048_PKCS15_SHA256("MLDSA44-RSA2048-PKCS15-SHA256"),
45+
MLDSA44_Ed25519_SHA512("MLDSA44-Ed25519-SHA512"),
46+
MLDSA44_ECDSA_P256_SHA256("MLDSA44-ECDSA-P256-SHA256"),
47+
MLDSA44_ECDSA_brainpoolP256r1_SHA256("MLDSA44-ECDSA-brainpoolP256r1-SHA256"),
48+
MLDSA65_RSA3072_PSS_SHA512("MLDSA65-RSA3072-PSS-SHA512"),
49+
MLDSA65_RSA3072_PKCS15_SHA512("MLDSA65-RSA3072-PKCS15-SHA512"),
50+
MLDSA65_ECDSA_brainpoolP256r1_SHA512("MLDSA65-ECDSA-brainpoolP256r1-SHA512"),
51+
MLDSA65_ECDSA_P256_SHA512("MLDSA65-ECDSA-P256-SHA512"),
52+
MLDSA65_Ed25519_SHA512("MLDSA65-Ed25519-SHA512"),
53+
MLDSA87_ECDSA_P384_SHA512("MLDSA87-ECDSA-P384-SHA512"),
54+
MLDSA87_ECDSA_brainpoolP384r1_SHA512("MLDSA87-ECDSA-brainpoolP384r1-SHA512"),
55+
MLDSA87_Ed448_SHA512("MLDSA87-Ed448-SHA512"),
56+
Falcon512_ECDSA_P256_SHA256("Falcon512-ECDSA-P256-SHA256"),
57+
Falcon512_ECDSA_brainpoolP256r1_SHA256("Falcon512-ECDSA-brainpoolP256r1-SHA256"),
58+
Falcon512_Ed25519_SHA512("Falcon512-Ed25519-SHA512");
59+
60+
private String id;
61+
62+
private CompositeName(String id)
63+
{
64+
this.id = id;
65+
}
66+
67+
public String getId()
68+
{
69+
return id;
70+
}
5971
}
6072

6173
/**
@@ -101,24 +113,14 @@ public enum CompositeName
101113
/**
102114
* Map from ASN1 identifier to a readable string used as the composite signature name for the JCA/JCE API.
103115
*/
104-
public static final HashMap<ASN1ObjectIdentifier, String> ASN1IdentifierAlgorithmNameMap;
116+
public static final HashMap<ASN1ObjectIdentifier, CompositeName> ASN1IdentifierAlgorithmNameMap;
105117

106118
static
107119
{
108120
ASN1IdentifierAlgorithmNameMap = new HashMap<>();
109121
for (ASN1ObjectIdentifier oid : supportedIdentifiers)
110122
{
111-
String algNameFromEnum = ASN1IdentifierCompositeNameMap.get(oid).name(); //Get enum so we can get name() value.
112-
String[] parts = algNameFromEnum.split("_");
113-
String algName = null;
114-
if (parts.length < 4)
115-
{ //no 2nd "param", e.g., in the case of Ed25519, 3rd hash function is ignored
116-
algName = parts[0] + "and" + parts[1]; // e.g., MLDSA44_Ed25519_SHA512 => MLDSA44andEd25519
117-
}
118-
else
119-
{
120-
algName = parts[0] + "and" + parts[1] + parts[2]; // e.g., MLDSA44_RSA2048_PSS_SHA256 => MLDSA44andRSA2048PSS
121-
}
123+
CompositeName algName = ASN1IdentifierCompositeNameMap.get(oid); //Get enum so we can get name() value.
122124
ASN1IdentifierAlgorithmNameMap.put(oid, algName);
123125
}
124126
}

0 commit comments

Comments
 (0)