diff options
Diffstat (limited to 'crypto/src/pkcs/Pkcs12Store.cs')
-rw-r--r-- | crypto/src/pkcs/Pkcs12Store.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crypto/src/pkcs/Pkcs12Store.cs b/crypto/src/pkcs/Pkcs12Store.cs index dba76cdb5..d71fbe862 100644 --- a/crypto/src/pkcs/Pkcs12Store.cs +++ b/crypto/src/pkcs/Pkcs12Store.cs @@ -361,6 +361,16 @@ namespace Org.BouncyCastle.Pkcs // the same OID - currently, differing values give an error if (attributes.Contains(aOid.Id)) { + // we've found more than one - one might be incorrect + if (aOid.Equals(PkcsObjectIdentifiers.Pkcs9AtLocalKeyID)) + { + String id = Hex.ToHexString(Asn1OctetString.GetInstance(attr).GetOctets()); + if (!(keys.Keys[id] != null || localIds.Keys[id] != null)) + { + continue; // ignore this one - it's not valid + } + } + // OK, but the value has to be the same if (!attributes[aOid.Id].Equals(attr)) { |