From eda54f7b1f46d4965eb483cb41d47358f7cea530 Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Tue, 10 May 2022 17:15:55 +0700 Subject: Minor SignatureAlgorithm additions --- crypto/src/tls/SignatureAlgorithm.cs | 43 ++++++++++++++++++----- crypto/src/tls/crypto/CryptoSignatureAlgorithm.cs | 3 ++ crypto/src/tls/crypto/TlsCryptoUtilities.cs | 6 ++++ 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/crypto/src/tls/SignatureAlgorithm.cs b/crypto/src/tls/SignatureAlgorithm.cs index 726504c52..baf5620e3 100644 --- a/crypto/src/tls/SignatureAlgorithm.cs +++ b/crypto/src/tls/SignatureAlgorithm.cs @@ -86,20 +86,16 @@ namespace Org.BouncyCastle.Tls return "dsa"; case ecdsa: return "ecdsa"; - case ed25519: - return "ed25519"; - case ed448: - return "ed448"; - case gostr34102012_256: - return "gostr34102012_256"; - case gostr34102012_512: - return "gostr34102012_512"; case rsa_pss_rsae_sha256: return "rsa_pss_rsae_sha256"; case rsa_pss_rsae_sha384: return "rsa_pss_rsae_sha384"; case rsa_pss_rsae_sha512: return "rsa_pss_rsae_sha512"; + case ed25519: + return "ed25519"; + case ed448: + return "ed448"; case rsa_pss_pss_sha256: return "rsa_pss_pss_sha256"; case rsa_pss_pss_sha384: @@ -112,6 +108,10 @@ namespace Org.BouncyCastle.Tls return "ecdsa_brainpoolP384r1tls13_sha384"; case ecdsa_brainpoolP512r1tls13_sha512: return "ecdsa_brainpoolP512r1tls13_sha512"; + case gostr34102012_256: + return "gostr34102012_256"; + case gostr34102012_512: + return "gostr34102012_512"; default: return "UNKNOWN"; } @@ -121,5 +121,32 @@ namespace Org.BouncyCastle.Tls { return GetName(signatureAlgorithm) + "(" + signatureAlgorithm + ")"; } + + public static bool IsRecognized(short signatureAlgorithm) + { + switch (signatureAlgorithm) + { + case anonymous: + case rsa: + case dsa: + case ecdsa: + case rsa_pss_rsae_sha256: + case rsa_pss_rsae_sha384: + case rsa_pss_rsae_sha512: + case ed25519: + case ed448: + case rsa_pss_pss_sha256: + case rsa_pss_pss_sha384: + case rsa_pss_pss_sha512: + case ecdsa_brainpoolP256r1tls13_sha256: + case ecdsa_brainpoolP384r1tls13_sha384: + case ecdsa_brainpoolP512r1tls13_sha512: + case gostr34102012_256: + case gostr34102012_512: + return true; + default: + return false; + } + } } } diff --git a/crypto/src/tls/crypto/CryptoSignatureAlgorithm.cs b/crypto/src/tls/crypto/CryptoSignatureAlgorithm.cs index ed58820b8..15435cab5 100644 --- a/crypto/src/tls/crypto/CryptoSignatureAlgorithm.cs +++ b/crypto/src/tls/crypto/CryptoSignatureAlgorithm.cs @@ -15,6 +15,9 @@ namespace Org.BouncyCastle.Tls.Crypto public const int rsa_pss_pss_sha256 = 9; public const int rsa_pss_pss_sha384 = 10; public const int rsa_pss_pss_sha512 = 11; + public const int ecdsa_brainpoolP256r1tls13_sha256 = 26; + public const int ecdsa_brainpoolP384r1tls13_sha384 = 27; + public const int ecdsa_brainpoolP512r1tls13_sha512 = 28; public const int gostr34102012_256 = 64; public const int gostr34102012_512 = 65; public const int sm2 = 200; diff --git a/crypto/src/tls/crypto/TlsCryptoUtilities.cs b/crypto/src/tls/crypto/TlsCryptoUtilities.cs index 4ce48f738..98ac87a83 100644 --- a/crypto/src/tls/crypto/TlsCryptoUtilities.cs +++ b/crypto/src/tls/crypto/TlsCryptoUtilities.cs @@ -163,6 +163,12 @@ namespace Org.BouncyCastle.Tls.Crypto return CryptoSignatureAlgorithm.rsa_pss_pss_sha384; case SignatureAlgorithm.rsa_pss_pss_sha512: return CryptoSignatureAlgorithm.rsa_pss_pss_sha512; + case SignatureAlgorithm.ecdsa_brainpoolP256r1tls13_sha256: + return CryptoSignatureAlgorithm.ecdsa_brainpoolP256r1tls13_sha256; + case SignatureAlgorithm.ecdsa_brainpoolP384r1tls13_sha384: + return CryptoSignatureAlgorithm.ecdsa_brainpoolP384r1tls13_sha384; + case SignatureAlgorithm.ecdsa_brainpoolP512r1tls13_sha512: + return CryptoSignatureAlgorithm.ecdsa_brainpoolP512r1tls13_sha512; case SignatureAlgorithm.gostr34102012_256: return CryptoSignatureAlgorithm.gostr34102012_256; case SignatureAlgorithm.gostr34102012_512: -- cgit 1.4.1