public static Asn1EncodableVector FromEnumerable( IEnumerable e) { Asn1EncodableVector v = new Asn1EncodableVector(); foreach (Asn1Encodable obj in e) { v.Add(obj); } return v; }
public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(p, g); if (this.l != null) { v.Add(l); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * ContentInfo ::= Sequence { * contentType ContentType, * content * [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(contentType); if (content != null) { v.Add(new BerTaggedObject(0, content)); } return new BerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * IDEA-CBCPar ::= Sequence { * iv OCTET STRING OPTIONAL -- exactly 8 octets * } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(); if (iv != null) { v.Add(iv); } return new DerSequence(v); }
public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( bagID, new DerTaggedObject(0, bagValue)); if (bagAttributes != null) { v.Add(bagAttributes); } return new DerSequence(v); }
public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( new DerInteger(3), contentInfo); if (macData != null) { v.Add(macData); } return new BerSequence(v); }
public ECPrivateKeyStructure( BigInteger key, DerBitString publicKey, Asn1Encodable parameters) { if (key == null) throw new ArgumentNullException("key"); Asn1EncodableVector v = new Asn1EncodableVector( new DerInteger(1), new DerOctetString(key.ToByteArrayUnsigned())); if (parameters != null) { v.Add(new DerTaggedObject(true, 0, parameters)); } if (publicKey != null) { v.Add(new DerTaggedObject(true, 1, publicKey)); } this.seq = new DerSequence(v); }
/** * <pre> * CommitmentTypeIndication ::= SEQUENCE { * commitmentTypeId CommitmentTypeIdentifier, * commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF * CommitmentTypeQualifier OPTIONAL } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(commitmentTypeId); if (commitmentTypeQualifier != null) { v.Add(commitmentTypeQualifier); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * KeyAgreeRecipientInfo ::= Sequence { * version CMSVersion, -- always set to 3 * originator [0] EXPLICIT OriginatorIdentifierOrKey, * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL, * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, * recipientEncryptedKeys RecipientEncryptedKeys * } * * UserKeyingMaterial ::= OCTET STRING * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( version, new DerTaggedObject(true, 0, originator)); if (ukm != null) { v.Add(new DerTaggedObject(true, 1, ukm)); } v.Add(keyEncryptionAlgorithm, recipientEncryptedKeys); return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * SingleResponse ::= Sequence { * certID CertID, * certStatus CertStatus, * thisUpdate GeneralizedTime, * nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, * singleExtensions [1] EXPLICIT Extensions OPTIONAL } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( certID, certStatus, thisUpdate); if (nextUpdate != null) { v.Add(new DerTaggedObject(true, 0, nextUpdate)); } if (singleExtensions != null) { v.Add(new DerTaggedObject(true, 1, singleExtensions)); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * OriginatorInfo ::= Sequence { * certs [0] IMPLICIT CertificateSet OPTIONAL, * crls [1] IMPLICIT CertificateRevocationLists OPTIONAL * } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(); if (certs != null) { v.Add(new DerTaggedObject(false, 0, certs)); } if (crls != null) { v.Add(new DerTaggedObject(false, 1, crls)); } return new DerSequence(v); }
public Asn1EncodableVector ToAsn1EncodableVector() { Asn1EncodableVector v = new Asn1EncodableVector(); foreach (object obj in attributes.Values) { if (obj is IList) { foreach (object el in (IList)obj) { v.Add(Attribute.GetInstance(el)); } } else { v.Add(Attribute.GetInstance(obj)); } } return v; }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * Request ::= Sequence { * reqCert CertID, * singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(reqCert); if (singleRequestExtensions != null) { v.Add(new DerTaggedObject(true, 0, singleRequestExtensions)); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * BasicConstraints := Sequence { * cA Boolean DEFAULT FALSE, * pathLenConstraint Integer (0..MAX) OPTIONAL * } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(); if (cA != null) { v.Add(cA); } if (pathLenConstraint != null) // yes some people actually do this when cA is false... { v.Add(pathLenConstraint); } return new DerSequence(v); }
public virtual int GenerateBytes(byte[] outBytes, int outOff, int len) { if ((outBytes.Length - len) < outOff) { throw new DataLengthException("output buffer too small"); } long oBytes = len; int outLen = digest.GetDigestSize(); // // this is at odds with the standard implementation, the // maximum value should be hBits * (2^32 - 1) where hBits // is the digest output size in bits. We can't have an // array with a long index at the moment... // if (oBytes > ((2L << 32) - 1)) { throw new ArgumentException("Output length too large"); } int cThreshold = (int)((oBytes + outLen - 1) / outLen); byte[] dig = new byte[digest.GetDigestSize()]; uint counter = 1; for (int i = 0; i < cThreshold; i++) { digest.BlockUpdate(z, 0, z.Length); // KeySpecificInfo DerSequence keyInfo = new DerSequence( algorithm, new DerOctetString(Pack.UInt32_To_BE(counter))); // OtherInfo Asn1EncodableVector v1 = new Asn1EncodableVector(keyInfo); if (partyAInfo != null) { v1.Add(new DerTaggedObject(true, 0, new DerOctetString(partyAInfo))); } v1.Add(new DerTaggedObject(true, 2, new DerOctetString(Pack.UInt32_To_BE((uint)keySize)))); byte[] other = new DerSequence(v1).GetDerEncoded(); digest.BlockUpdate(other, 0, other.Length); digest.DoFinal(dig, 0); if (len > outLen) { Array.Copy(dig, 0, outBytes, outOff, outLen); outOff += outLen; len -= outLen; } else { Array.Copy(dig, 0, outBytes, outOff, len); } counter++; } digest.Reset(); return (int)oBytes; }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * SMIMECapability ::= Sequence { * capabilityID OBJECT IDENTIFIER, * parameters ANY DEFINED BY capabilityID OPTIONAL * } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(capabilityID); if (parameters != null) { v.Add(parameters); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * RevokedInfo ::= Sequence { * revocationTime GeneralizedTime, * revocationReason [0] EXPLICIT CRLReason OPTIONAL } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(revocationTime); if (revocationReason != null) { v.Add(new DerTaggedObject(true, 0, revocationReason)); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * EnvelopedData ::= Sequence { * version CMSVersion, * originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL, * recipientInfos RecipientInfos, * encryptedContentInfo EncryptedContentInfo, * unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL * } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(version); if (originatorInfo != null) { v.Add(new DerTaggedObject(false, 0, originatorInfo)); } v.Add(recipientInfos, encryptedContentInfo); if (unprotectedAttrs != null) { v.Add(new DerTaggedObject(false, 1, unprotectedAttrs)); } return new BerSequence(v); }
internal Asn1EncodableVector ReadVector() { Asn1EncodableVector v = new Asn1EncodableVector(); IAsn1Convertible obj; while ((obj = ReadObject()) != null) { v.Add(obj.ToAsn1Object()); } return v; }
public override Asn1Object ToAsn1Object() { DerSequence hashSeq = new DerSequence(datagroupHash); Asn1EncodableVector v = new Asn1EncodableVector(version, digestAlgorithmIdentifier, hashSeq); if (versionInfo != null) { v.Add(versionInfo); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * ServiceLocator ::= Sequence { * issuer Name, * locator AuthorityInfoAccessSyntax OPTIONAL } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(issuer); if (locator != null) { v.Add(locator); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * EncryptedContentInfo ::= Sequence { * contentType ContentType, * contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, * encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL * } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( contentType, contentEncryptionAlgorithm); if (encryptedContent != null) { v.Add(new BerTaggedObject(false, 0, encryptedContent)); } return new BerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * OcspResponse ::= Sequence { * responseStatus OcspResponseStatus, * responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(responseStatus); if (responseBytes != null) { v.Add(new DerTaggedObject(true, 0, responseBytes)); } return new DerSequence(v); }
/** * Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be * empty if there are no attributes of the required type present. * * @param oid type of attribute required. * @return a vector of all the attributes found of type oid. */ public Asn1EncodableVector GetAll( DerObjectIdentifier oid) { Asn1EncodableVector v = new Asn1EncodableVector(); object obj = attributes[oid]; if (obj is IList) { foreach (Attribute a in (IList)obj) { v.Add(a); } } else if (obj != null) { v.Add((Attribute) obj); } return v; }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * BasicOcspResponse ::= Sequence { * tbsResponseData ResponseData, * signatureAlgorithm AlgorithmIdentifier, * signature BIT STRING, * certs [0] EXPLICIT Sequence OF Certificate OPTIONAL } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( tbsResponseData, signatureAlgorithm, signature); if (certs != null) { v.Add(new DerTaggedObject(true, 0, certs)); } return new DerSequence(v); }
internal Asn1EncodableVector BuildEncodableVector() { Asn1EncodableVector v = new Asn1EncodableVector(); Asn1Object o; while ((o = ReadObject()) != null) { v.Add(o); } return v; }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * SignerInfo ::= Sequence { * version Version, * issuerAndSerialNumber IssuerAndSerialNumber, * digestAlgorithm DigestAlgorithmIdentifier, * authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL, * digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier, * encryptedDigest EncryptedDigest, * unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL * } * * EncryptedDigest ::= OCTET STRING * * DigestAlgorithmIdentifier ::= AlgorithmIdentifier * * DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( version, issuerAndSerialNumber, digAlgorithm); if (authenticatedAttributes != null) { v.Add(new DerTaggedObject(false, 0, authenticatedAttributes)); } v.Add(digEncryptionAlgorithm, encryptedDigest); if (unauthenticatedAttributes != null) { v.Add(new DerTaggedObject(false, 1, unauthenticatedAttributes)); } return new DerSequence(v); }
public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( publicKeyParamSet, digestParamSet); if (encryptionParamSet != null) { v.Add(encryptionParamSet); } return new DerSequence(v); }
/** * Produce an object suitable for an Asn1OutputStream. * <pre> * SignedData ::= Sequence { * version CMSVersion, * digestAlgorithms DigestAlgorithmIdentifiers, * encapContentInfo EncapsulatedContentInfo, * certificates [0] IMPLICIT CertificateSet OPTIONAL, * crls [1] IMPLICIT CertificateRevocationLists OPTIONAL, * signerInfos SignerInfos * } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector( version, digestAlgorithms, contentInfo); if (certificates != null) { if (certsBer) { v.Add(new BerTaggedObject(false, 0, certificates)); } else { v.Add(new DerTaggedObject(false, 0, certificates)); } } if (crls != null) { if (crlsBer) { v.Add(new BerTaggedObject(false, 1, crls)); } else { v.Add(new DerTaggedObject(false, 1, crls)); } } v.Add(signerInfos); return new BerSequence(v); }
/** * <pre> * SignerLocation ::= SEQUENCE { * countryName [0] DirectoryString OPTIONAL, * localityName [1] DirectoryString OPTIONAL, * postalAddress [2] PostalAddress OPTIONAL } * * PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString * * DirectoryString ::= CHOICE { * teletexString TeletexString (SIZE (1..MAX)), * printableString PrintableString (SIZE (1..MAX)), * universalString UniversalString (SIZE (1..MAX)), * utf8String UTF8String (SIZE (1.. MAX)), * bmpString BMPString (SIZE (1..MAX)) } * </pre> */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(); if (countryName != null) { v.Add(new DerTaggedObject(true, 0, countryName)); } if (localityName != null) { v.Add(new DerTaggedObject(true, 1, localityName)); } if (postalAddress != null) { v.Add(new DerTaggedObject(true, 2, postalAddress)); } return new DerSequence(v); }