summary refs log tree commit diff
path: root/crypto/src
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2024-03-12 17:00:28 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2024-03-12 17:00:28 +0700
commitb243cd4ff1d6e8049ee58ec971771c92139db70b (patch)
tree27ebad743538d7386c2aae94f0992c834e333a48 /crypto/src
parentASN.1: Limit OID contents to 4096 bytes (diff)
downloadBouncyCastle.NET-ed25519-b243cd4ff1d6e8049ee58ec971771c92139db70b.tar.xz
Use TryFromID to check for OID string
Diffstat (limited to 'crypto/src')
-rw-r--r--crypto/src/asn1/x509/X509Name.cs8
-rw-r--r--crypto/src/operators/utilities/DefaultDigestAlgorithmFinder.cs12
-rw-r--r--crypto/src/pkcs/Pkcs10CertificationRequestDelaySigned.cs18
3 files changed, 13 insertions, 25 deletions
diff --git a/crypto/src/asn1/x509/X509Name.cs b/crypto/src/asn1/x509/X509Name.cs

index 8fd564090..6135ad2fa 100644 --- a/crypto/src/asn1/x509/X509Name.cs +++ b/crypto/src/asn1/x509/X509Name.cs
@@ -532,11 +532,11 @@ namespace Org.BouncyCastle.Asn1.X509 if (name.StartsWith("OID.", StringComparison.OrdinalIgnoreCase)) return new DerObjectIdentifier(name.Substring("OID.".Length)); - if (name[0] >= '0' && name[0] <= '9') - return new DerObjectIdentifier(name); - - if (lookup.TryGetValue(name, out var oid)) + if (DerObjectIdentifier.TryFromID(name, out var oid) || + lookup.TryGetValue(name, out oid)) + { return oid; + } throw new ArgumentException("Unknown object id - " + name + " - passed to distinguished name"); } diff --git a/crypto/src/operators/utilities/DefaultDigestAlgorithmFinder.cs b/crypto/src/operators/utilities/DefaultDigestAlgorithmFinder.cs
index 025b94622..4e71c8a94 100644 --- a/crypto/src/operators/utilities/DefaultDigestAlgorithmFinder.cs +++ b/crypto/src/operators/utilities/DefaultDigestAlgorithmFinder.cs
@@ -308,16 +308,10 @@ namespace Org.BouncyCastle.Operators.Utilities public virtual AlgorithmIdentifier Find(string digestName) { - if (DigestNameToOids.TryGetValue(digestName, out var digestOid)) - return Find(digestOid); - - try + if (DigestNameToOids.TryGetValue(digestName, out var digestOid) || + DerObjectIdentifier.TryFromID(digestName, out digestOid)) { - return Find(new DerObjectIdentifier(digestName)); - } - catch (Exception) - { - // ignore - tried it but it didn't work... + return Find(digestOid); } return null; diff --git a/crypto/src/pkcs/Pkcs10CertificationRequestDelaySigned.cs b/crypto/src/pkcs/Pkcs10CertificationRequestDelaySigned.cs
index e3a710f37..f95cf826c 100644 --- a/crypto/src/pkcs/Pkcs10CertificationRequestDelaySigned.cs +++ b/crypto/src/pkcs/Pkcs10CertificationRequestDelaySigned.cs
@@ -95,18 +95,12 @@ namespace Org.BouncyCastle.Pkcs if (publicKey.IsPrivate) throw new ArgumentException("expected public key", "publicKey"); - DerObjectIdentifier sigOid = CollectionUtilities.GetValueOrNull(m_algorithms, signatureAlgorithm); - if (sigOid == null) - { - try - { - sigOid = new DerObjectIdentifier(signatureAlgorithm); - } - catch (Exception e) - { - throw new ArgumentException("Unknown signature type requested", e); - } - } + if (!m_algorithms.TryGetValue(signatureAlgorithm, out var sigOid) && + !DerObjectIdentifier.TryFromID(signatureAlgorithm, out sigOid)) + { + throw new ArgumentException("Unknown signature type requested"); + } + if (m_noParams.Contains(sigOid)) { this.sigAlgId = new AlgorithmIdentifier(sigOid);