File tree Expand file tree Collapse file tree
main/java/org/bouncycastle/tls/crypto/impl/bc
test/java/org/bouncycastle/tls Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -409,14 +409,27 @@ public MLDSAPublicKeyParameters getPubKeyMLDSA() throws IOException
409409 {
410410 try
411411 {
412- return (MLDSAPublicKeyParameters )getPublicKey ();
412+ return (MLDSAPublicKeyParameters )getPQCPublicKey ();
413413 }
414414 catch (ClassCastException e )
415415 {
416416 throw new TlsFatalAlert (AlertDescription .certificate_unknown , "Public key not ML-DSA" , e );
417417 }
418418 }
419419
420+ protected AsymmetricKeyParameter getPQCPublicKey () throws IOException
421+ {
422+ try
423+ {
424+ return org .bouncycastle .pqc .crypto .util .PublicKeyFactory .createKey (keyInfo );
425+ }
426+ catch (RuntimeException e )
427+ {
428+ throw new TlsFatalAlert (AlertDescription .unsupported_certificate , e );
429+ }
430+ }
431+
432+
420433 public RSAKeyParameters getPubKeyRSA () throws IOException
421434 {
422435 try
Original file line number Diff line number Diff line change @@ -187,6 +187,12 @@ protected TlsCredentialedSigner loadCredentialedSigner13(TlsCryptoParameters cry
187187 case SignatureScheme .rsa_pss_rsae_sha384 :
188188 case SignatureScheme .rsa_pss_rsae_sha512 :
189189 return loadCredentialedSigner (cryptoParams , "rsa-sign" , signatureAndHashAlgorithm );
190+ case SignatureScheme .DRAFT_mldsa44 :
191+ return loadCredentialedSigner (cryptoParams , "ml_dsa_44" , signatureAndHashAlgorithm );
192+ case SignatureScheme .DRAFT_mldsa65 :
193+ return loadCredentialedSigner (cryptoParams , "ml_dsa_65" , signatureAndHashAlgorithm );
194+ case SignatureScheme .DRAFT_mldsa87 :
195+ return loadCredentialedSigner (cryptoParams , "ml_dsa_87" , signatureAndHashAlgorithm );
190196
191197 // TODO[tls] Add test resources for these
192198 case SignatureScheme .ecdsa_brainpoolP256r1tls13_sha256 :
@@ -195,9 +201,6 @@ protected TlsCredentialedSigner loadCredentialedSigner13(TlsCryptoParameters cry
195201 case SignatureScheme .ecdsa_secp384r1_sha384 :
196202 case SignatureScheme .ecdsa_secp521r1_sha512 :
197203 case SignatureScheme .sm2sig_sm3 :
198- case SignatureScheme .DRAFT_mldsa44 :
199- case SignatureScheme .DRAFT_mldsa65 :
200- case SignatureScheme .DRAFT_mldsa87 :
201204
202205 default :
203206 return null ;
Original file line number Diff line number Diff line change @@ -417,7 +417,16 @@ static AsymmetricKeyParameter loadBcPrivateKeyResource(String resource)
417417 PemObject pem = loadPemResource (resource );
418418 if (pem .getType ().equals ("PRIVATE KEY" ))
419419 {
420- return PrivateKeyFactory .createKey (pem .getContent ());
420+ AsymmetricKeyParameter kp ;
421+ try
422+ {
423+ kp = PrivateKeyFactory .createKey (pem .getContent ());
424+ }
425+ catch (Exception e )
426+ {
427+ kp = org .bouncycastle .pqc .crypto .util .PrivateKeyFactory .createKey (pem .getContent ());
428+ }
429+ return kp ;
421430 }
422431 if (pem .getType ().equals ("ENCRYPTED PRIVATE KEY" ))
423432 {
You can’t perform that action at this time.
0 commit comments