<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

BiometricData

public class BiometricData : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.X509.Qualified { public class BiometricData : Asn1Encodable { private readonly TypeOfBiometricData m_typeOfBiometricData; private readonly AlgorithmIdentifier m_hashAlgorithm; private readonly Asn1OctetString m_biometricDataHash; private readonly DerIA5String m_sourceDataUri; public TypeOfBiometricData TypeOfBiometricData => m_typeOfBiometricData; public AlgorithmIdentifier HashAlgorithm => m_hashAlgorithm; public Asn1OctetString BiometricDataHash => m_biometricDataHash; public DerIA5String SourceDataUri => m_sourceDataUri; public static BiometricData GetInstance(object obj) { if (obj == null) return null; BiometricData biometricData = obj as BiometricData; if (biometricData != null) return biometricData; return new BiometricData(Asn1Sequence.GetInstance(obj)); } public static BiometricData GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new BiometricData(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static BiometricData GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new BiometricData(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private BiometricData(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 3 || count > 4) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_typeOfBiometricData = TypeOfBiometricData.GetInstance(seq[sequencePosition++]); m_hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[sequencePosition++]); m_biometricDataHash = Asn1OctetString.GetInstance(seq[sequencePosition++]); m_sourceDataUri = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DerIA5String.GetOptional); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public BiometricData(TypeOfBiometricData typeOfBiometricData, AlgorithmIdentifier hashAlgorithm, Asn1OctetString biometricDataHash) : this(typeOfBiometricData, hashAlgorithm, biometricDataHash, null) { } public BiometricData(TypeOfBiometricData typeOfBiometricData, AlgorithmIdentifier hashAlgorithm, Asn1OctetString biometricDataHash, DerIA5String sourceDataUri) { if (typeOfBiometricData == null) throw new ArgumentNullException("typeOfBiometricData"); m_typeOfBiometricData = typeOfBiometricData; if (hashAlgorithm == null) throw new ArgumentNullException("hashAlgorithm"); m_hashAlgorithm = hashAlgorithm; if (biometricDataHash == null) throw new ArgumentNullException("biometricDataHash"); m_biometricDataHash = biometricDataHash; m_sourceDataUri = sourceDataUri; } public override Asn1Object ToAsn1Object() { if (m_sourceDataUri != null) return new DerSequence(m_typeOfBiometricData, m_hashAlgorithm, m_biometricDataHash, m_sourceDataUri); return new DerSequence(m_typeOfBiometricData, m_hashAlgorithm, m_biometricDataHash); } } }