<PackageReference Include="BouncyCastle.Cryptography" Version="2.4.0" />

SignerID

using Org.BouncyCastle.Utilities; using Org.BouncyCastle.X509.Store; using System; namespace Org.BouncyCastle.Cms { public class SignerID : X509CertStoreSelector, IEquatable<SignerID> { public virtual bool Equals(SignerID other) { if (other != null) { if (other != this) { if (MatchesSubjectKeyIdentifier(other) && MatchesSerialNumber(other)) return MatchesIssuer(other); return false; } return true; } return false; } public override bool Equals(object obj) { return Equals(obj as SignerID); } public override int GetHashCode() { return GetHashCodeOfSubjectKeyIdentifier() ^ Objects.GetHashCode(base.SerialNumber) ^ Objects.GetHashCode(base.Issuer); } } }