Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Cms/RecipientID.cs
2025-10-09 09:57:24 +09:00

57 lines
1.2 KiB
C#

using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Utilities;
using Org.BouncyCastle.X509.Store;
namespace Org.BouncyCastle.Cms;
public class RecipientID : X509CertStoreSelector
{
private byte[] keyIdentifier;
public byte[] KeyIdentifier
{
get
{
return Arrays.Clone(keyIdentifier);
}
set
{
keyIdentifier = Arrays.Clone(value);
}
}
public override int GetHashCode()
{
int num = Arrays.GetHashCode(keyIdentifier) ^ Arrays.GetHashCode(base.SubjectKeyIdentifier);
BigInteger bigInteger = base.SerialNumber;
if (bigInteger != null)
{
num ^= bigInteger.GetHashCode();
}
X509Name x509Name = base.Issuer;
if (x509Name != null)
{
num ^= x509Name.GetHashCode();
}
return num;
}
public override bool Equals(object obj)
{
if (obj == this)
{
return true;
}
if (!(obj is RecipientID recipientID))
{
return false;
}
if (Arrays.AreEqual(keyIdentifier, recipientID.keyIdentifier) && Arrays.AreEqual(base.SubjectKeyIdentifier, recipientID.SubjectKeyIdentifier) && object.Equals(base.SerialNumber, recipientID.SerialNumber))
{
return X509CertStoreSelector.IssuersMatch(base.Issuer, recipientID.Issuer);
}
return false;
}
}