/// <summary> /// Constructor which also specifies a source of randomness /// to be used if one is required. /// </summary> /// <param name="signatureType">The signature algorithm to use. /// </param> /// <param name="generator">The signature generator.</param> public SignatureFactory(SignatureType signatureType, X509SignatureGenerator generator) { _generator = generator; _signatureType = signatureType; var algId = signatureType.ToAlgorithmIdentifier(); AlgorithmDetails = AlgorithmIdentifier.GetInstance(algId); }
private SubjectPublicKeyInfo(Asn1Sequence seq) { if (seq.Count != 2) { throw new ArgumentException("Bad sequence size: " + seq.Count, "seq"); } algID = AlgorithmIdentifier.GetInstance(seq[0]); keyData = DerBitString.GetInstance(seq[1]); }
private CertHash(Asn1Sequence seq) { if (seq.Count != 2) { throw new ArgumentException("Bad sequence size: " + seq.Count); } hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); certificateHash = Asn1OctetString.GetInstance(seq[1]).GetOctets(); }
private DigestInfo(Asn1Sequence seq) { if (seq.Count != 2) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } algID = AlgorithmIdentifier.GetInstance(seq[0]); digest = Asn1OctetString.GetInstance(seq[1]).GetOctets(); }
private EncryptedPrivateKeyInfo(Asn1Sequence seq) { if (seq.Count != 2) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } algId = AlgorithmIdentifier.GetInstance(seq[0]); data = Asn1OctetString.GetInstance(seq[1]); }
public EncryptedContentInfo(Asn1Sequence seq) { contentType = (DerObjectIdentifier)seq[0]; contentEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(seq[1]); if (seq.Count > 2) { encryptedContent = Asn1OctetString.GetInstance((Asn1TaggedObject)seq[2], isExplicit: false); } }
private Signature(Asn1Sequence seq) { this.signatureAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); this.signatureValue = (DerBitString)seq[1]; if (seq.Count == 3) { this.certs = Asn1Sequence.GetInstance((Asn1TaggedObject)seq[2], true); } }
private X509CertificateStructure(Asn1Sequence seq) { if (seq.Count != 3) { throw new ArgumentException("sequence wrong size for a certificate", "seq"); } tbsCert = TbsCertificateStructure.GetInstance(seq[0]); sigAlgID = AlgorithmIdentifier.GetInstance(seq[1]); sig = DerBitString.GetInstance(seq[2]); }
public CertificationRequest(Asn1Sequence seq) { if (seq.Count != 3) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } reqInfo = CertificationRequestInfo.GetInstance(seq[0]); sigAlgId = AlgorithmIdentifier.GetInstance(seq[1]); sigBits = DerBitString.GetInstance(seq[2]); }
private EncryptedPrivateKeyInfo(Asn1Sequence seq) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) if (seq.Count != 2) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } algId = AlgorithmIdentifier.GetInstance(seq[0]); data = Asn1OctetString.GetInstance(seq[1]); }
private BasicOcspResponse(Asn1Sequence seq) { tbsResponseData = ResponseData.GetInstance(seq[0]); signatureAlgorithm = AlgorithmIdentifier.GetInstance(seq[1]); signature = (DerBitString)seq[2]; if (seq.Count > 3) { certs = Asn1Sequence.GetInstance((Asn1TaggedObject)seq[3], explicitly: true); } }
private MessageImprint(Asn1Sequence seq) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) if (seq.Count != 2) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); hashedMessage = Asn1OctetString.GetInstance(seq[1]).GetOctets(); }
private BiometricData(Asn1Sequence seq) { typeOfBiometricData = TypeOfBiometricData.GetInstance(seq[0]); hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[1]); biometricDataHash = Asn1OctetString.GetInstance(seq[2]); if (seq.Count > 3) { sourceDataUri = DerIA5String.GetInstance(seq[3]); } }
// private readonly AlgorithmIdentifier _encAlg; public PasswordRecipientInformation( PasswordRecipientInfo info, AlgorithmIdentifier encAlg, Stream data) : base(encAlg, AlgorithmIdentifier.GetInstance(info.KeyEncryptionAlgorithm), data) { this._info = info; // this._encAlg = encAlg; this._rid = new RecipientID(); }
private AttributeCertificate(Asn1Sequence seq) { if (seq.Count != 3) { throw new ArgumentException("Bad sequence size: " + seq.Count); } acinfo = AttributeCertificateInfo.GetInstance(seq[0]); signatureAlgorithm = AlgorithmIdentifier.GetInstance(seq[1]); signatureValue = DerBitString.GetInstance(seq[2]); }
private CertificateList(Asn1Sequence seq) { if (seq.Count != 3) { throw new ArgumentException("sequence wrong size for CertificateList", "seq"); } tbsCertList = TbsCertificateList.GetInstance(seq[0]); sigAlgID = AlgorithmIdentifier.GetInstance(seq[1]); sig = DerBitString.GetInstance(seq[2]); }
private CertHash(Asn1Sequence seq) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) if (seq.Count != 2) { throw new ArgumentException(string.Concat((object)"Bad sequence size: ", (object)seq.Count)); } hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); certificateHash = Asn1OctetString.GetInstance(seq[1]).GetOctets(); }
private CertID(Asn1Sequence seq) { if (seq.Count != 4) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); issuerNameHash = Asn1OctetString.GetInstance(seq[1]); issuerKeyHash = Asn1OctetString.GetInstance(seq[2]); serialNumber = DerInteger.GetInstance(seq[3]); }
private MessageImprint( Asn1Sequence seq) { if (seq.Count != 2) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } this.hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); this.hashedMessage = Asn1OctetString.GetInstance(seq[1]).GetOctets(); }
private Challenge(Asn1Sequence seq) { int index = 0; if (seq.Count == 3) { this.owf = AlgorithmIdentifier.GetInstance(seq[index++]); } this.witness = Asn1OctetString.GetInstance(seq[index++]); this.challenge = Asn1OctetString.GetInstance(seq[index]); }
public CertificationRequest(Asn1Sequence seq) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) if (seq.Count != 3) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } reqInfo = CertificationRequestInfo.GetInstance(seq[0]); sigAlgId = AlgorithmIdentifier.GetInstance(seq[1]); sigBits = DerBitString.GetInstance(seq[2]); }
private Challenge(Asn1Sequence seq) { int num = 0; if (seq.Count == 3) { owf = AlgorithmIdentifier.GetInstance(seq[num++]); } witness = Asn1OctetString.GetInstance(seq[num++]); challenge = Asn1OctetString.GetInstance(seq[num]); }
private CertID(Asn1Sequence seq) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) if (seq.Count != 4) { throw new ArgumentException("Wrong number of elements in sequence", "seq"); } hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); issuerNameHash = Asn1OctetString.GetInstance(seq[1]); issuerKeyHash = Asn1OctetString.GetInstance(seq[2]); serialNumber = DerInteger.GetInstance(seq[3]); }
private PkiHeader(Asn1Sequence seq) { pvno = DerInteger.GetInstance(seq[0]); sender = GeneralName.GetInstance(seq[1]); recipient = GeneralName.GetInstance(seq[2]); for (int pos = 3; pos < seq.Count; ++pos) { Asn1TaggedObject tObj = (Asn1TaggedObject)seq[pos]; switch (tObj.TagNo) { case 0: messageTime = DerGeneralizedTime.GetInstance(tObj, true); break; case 1: protectionAlg = AlgorithmIdentifier.GetInstance(tObj, true); break; case 2: senderKID = Asn1OctetString.GetInstance(tObj, true); break; case 3: recipKID = Asn1OctetString.GetInstance(tObj, true); break; case 4: transactionID = Asn1OctetString.GetInstance(tObj, true); break; case 5: senderNonce = Asn1OctetString.GetInstance(tObj, true); break; case 6: recipNonce = Asn1OctetString.GetInstance(tObj, true); break; case 7: freeText = PkiFreeText.GetInstance(tObj, true); break; case 8: generalInfo = Asn1Sequence.GetInstance(tObj, true); break; default: throw new ArgumentException("unknown tag number: " + tObj.TagNo, "seq"); } } }
/// <summary> /// Initializes a new instance of the <see cref="MimeKit.Cryptography.SecureMimeDigitalSignature"/> class. /// </summary> /// <remarks> /// Creates a new <see cref="SecureMimeDigitalSignature"/>. /// </remarks> /// <param name="signerInfo">The information about the signer.</param> /// <param name="certificate">The signer's certificate.</param> /// <exception cref="System.ArgumentNullException"> /// <paramref name="signerInfo"/> is <c>null</c>. /// </exception> public SecureMimeDigitalSignature(SignerInformation signerInfo, X509Certificate certificate) { if (signerInfo == null) { throw new ArgumentNullException(nameof(signerInfo)); } SignerInfo = signerInfo; var algorithms = new List <EncryptionAlgorithm> (); DigestAlgorithm digestAlgo; if (signerInfo.SignedAttributes != null) { Asn1EncodableVector vector = signerInfo.SignedAttributes.GetAll(CmsAttributes.SigningTime); foreach (Org.BouncyCastle.Asn1.Cms.Attribute attr in vector) { var signingTime = (DerUtcTime)((DerSet)attr.AttrValues)[0]; CreationDate = ToAdjustedDateTime(signingTime); break; } vector = signerInfo.SignedAttributes.GetAll(SmimeAttributes.SmimeCapabilities); foreach (Org.BouncyCastle.Asn1.Cms.Attribute attr in vector) { foreach (Asn1Sequence sequence in attr.AttrValues) { for (int i = 0; i < sequence.Count; i++) { var identifier = AlgorithmIdentifier.GetInstance(sequence[i]); EncryptionAlgorithm algorithm; if (BouncyCastleSecureMimeContext.TryGetEncryptionAlgorithm(identifier, out algorithm)) { algorithms.Add(algorithm); } } } } EncryptionAlgorithms = algorithms.ToArray(); } if (BouncyCastleSecureMimeContext.TryGetDigestAlgorithm(signerInfo.DigestAlgorithmID, out digestAlgo)) { DigestAlgorithm = digestAlgo; } if (certificate != null) { SignerCertificate = new SecureMimeDigitalCertificate(certificate); } }
private CertTemplate(Asn1Sequence seq) { this.seq = seq; foreach (Asn1TaggedObject tObj in seq) { switch (tObj.TagNo) { case 0: version = DerInteger.GetInstance(tObj, false); break; case 1: serialNumber = DerInteger.GetInstance(tObj, false); break; case 2: signingAlg = AlgorithmIdentifier.GetInstance(tObj, false); break; case 3: issuer = X509Name.GetInstance(tObj, true); // CHOICE break; case 4: validity = OptionalValidity.GetInstance(Asn1Sequence.GetInstance(tObj, false)); break; case 5: subject = X509Name.GetInstance(tObj, true); // CHOICE break; case 6: publicKey = SubjectPublicKeyInfo.GetInstance(tObj, false); break; case 7: issuerUID = DerBitString.GetInstance(tObj, false); break; case 8: subjectUID = DerBitString.GetInstance(tObj, false); break; case 9: extensions = X509Extensions.GetInstance(tObj, false); break; default: throw new ArgumentException("unknown tag: " + tObj.TagNo, "seq"); } } }
private PkiHeader(Asn1Sequence seq) { //IL_012d: Unknown result type (might be due to invalid IL or missing references) pvno = DerInteger.GetInstance(seq[0]); sender = GeneralName.GetInstance(seq[1]); recipient = GeneralName.GetInstance(seq[2]); for (int i = 3; i < seq.Count; i++) { Asn1TaggedObject asn1TaggedObject = (Asn1TaggedObject)seq[i]; switch (asn1TaggedObject.TagNo) { case 0: messageTime = DerGeneralizedTime.GetInstance(asn1TaggedObject, isExplicit: true); break; case 1: protectionAlg = AlgorithmIdentifier.GetInstance(asn1TaggedObject, explicitly: true); break; case 2: senderKID = Asn1OctetString.GetInstance(asn1TaggedObject, isExplicit: true); break; case 3: recipKID = Asn1OctetString.GetInstance(asn1TaggedObject, isExplicit: true); break; case 4: transactionID = Asn1OctetString.GetInstance(asn1TaggedObject, isExplicit: true); break; case 5: senderNonce = Asn1OctetString.GetInstance(asn1TaggedObject, isExplicit: true); break; case 6: recipNonce = Asn1OctetString.GetInstance(asn1TaggedObject, isExplicit: true); break; case 7: freeText = PkiFreeText.GetInstance(asn1TaggedObject, isExplicit: true); break; case 8: generalInfo = Asn1Sequence.GetInstance(asn1TaggedObject, explicitly: true); break; default: throw new ArgumentException(string.Concat((object)"unknown tag number: ", (object)asn1TaggedObject.TagNo), "seq"); } } }
/// <summary> /// Parses the AddedTo data that is returned from TPM2_CertifyX509() /// </summary> /// <param name="data"></param> /// <returns></returns> public static AddedToCertificate FromDerEncoding(byte[] data) { var ret = new AddedToCertificate(); var sequence = (DerSequence)DerSequence.FromByteArray(data); var taggedVersion = (DerTaggedObject)(sequence[0]); Debug.Assert(taggedVersion.TagNo == 0); ret.Version = (DerInteger)taggedVersion.GetObject(); ret.SerialNumber = (DerInteger)sequence[1]; ret.Signature = AlgorithmIdentifier.GetInstance(sequence[2]); ret.SubjectPublicKeyInfo = SubjectPublicKeyInfo.GetInstance(sequence[3]); return(ret); }
public KeyAgreeRecipientInfo(Asn1Sequence seq) { int index = 0; version = (DerInteger)seq[index++]; originator = OriginatorIdentifierOrKey.GetInstance((Asn1TaggedObject)seq[index++], explicitly: true); if (seq[index] is Asn1TaggedObject) { ukm = Asn1OctetString.GetInstance((Asn1TaggedObject)seq[index++], isExplicit: true); } keyEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(seq[index++]); recipientEncryptedKeys = (Asn1Sequence)seq[index++]; }
public KeyParameters(Asn1Sequence seq) { Attributes = seq?.OfType <DerBitString>().FirstOrDefault(); Algorithm = seq?.OfType <Asn1TaggedObject>() .Where(x => x.TagNo == 0) .Select(x => AlgorithmIdentifier.GetInstance(x, false)) .FirstOrDefault(); if (Algorithm == null) { throw new CryptographicException("Ошибка в данных параметров ключа."); } }