Exemple #1
0
        public EnvelopedData(
            OriginatorInfo originatorInfo,
            ASN1Set recipientInfos,
            EncryptedContentInfo encryptedContentInfo,
            ASN1Set unprotectedAttrs)
        {
            if (originatorInfo != null || unprotectedAttrs != null)
            {
                version = new DERInteger(2);
            }
            else
            {
                version = new DERInteger(0);

                IEnumerator e = recipientInfos.getObjects();

                while (e.MoveNext())
                {
                    RecipientInfo ri = RecipientInfo.getInstance(e.Current);

                    if (!ri.getVersion().Equals(version))
                    {
                        version = new DERInteger(2);
                        break;
                    }
                }
            }

            this.originatorInfo       = originatorInfo;
            this.recipientInfos       = recipientInfos;
            this.encryptedContentInfo = encryptedContentInfo;
            this.unprotectedAttrs     = unprotectedAttrs;
        }
Exemple #2
0
        public AttributeCertificateInfo(
            ASN1Sequence seq)
        {
            this.version                = DERInteger.getInstance(seq.getObjectAt(0));
            this.holder                 = Holder.getInstance(seq.getObjectAt(1));
            this.issuer                 = AttCertIssuer.getInstance(seq.getObjectAt(2));
            this.signature              = AlgorithmIdentifier.getInstance(seq.getObjectAt(3));
            this.serialNumber           = DERInteger.getInstance(seq.getObjectAt(4));
            this.attrCertValidityPeriod = AttCertValidityPeriod.getInstance(seq.getObjectAt(5));
            this.attributes             = ASN1Sequence.getInstance(seq.getObjectAt(6));

            for (int i = 7; i < seq.size(); i++)
            {
                ASN1Encodable obj = (ASN1Encodable)seq.getObjectAt(i);

                if (obj is DERBitString)
                {
                    this.issuerUniqueID = DERBitString.getInstance(seq.getObjectAt(i));
                }
                else if (obj is ASN1Sequence || obj is X509Extensions)
                {
                    this.extensions = X509Extensions.getInstance(seq.getObjectAt(i));
                }
            }
        }
Exemple #3
0
 public PKCS12PBEParams(
     byte[]      salt,
     int iterations)
 {
     this.iv         = new DEROctetString(salt);
     this.iterations = new DERInteger(iterations);
 }
Exemple #4
0
 public RC2CBCParameter(
     int parameterVersion,
     byte[]  iv)
 {
     this.version = new DERInteger(parameterVersion);
     this.iv      = new DEROctetString(iv);
 }
Exemple #5
0
 public IssuerAndSerialNumber(
     X509Name name,
     BigInteger certSerialNumber)
 {
     this.name             = name;
     this.certSerialNumber = new DERInteger(certSerialNumber);
 }
Exemple #6
0
 public IssuerAndSerialNumber(
     X509Name name,
     DERInteger serialNumber)
 {
     this.name         = name;
     this.serialNumber = serialNumber;
 }
Exemple #7
0
 public IssuerAndSerialNumber(
     X509Name name,
     DERInteger certSerialNumber)
 {
     this.name             = name;
     this.certSerialNumber = certSerialNumber;
 }
Exemple #8
0
        public ResponseData(
            ASN1Sequence seq)
        {
            int index = 0;

            if (seq.getObjectAt(0) is ASN1TaggedObject)
            {
                ASN1TaggedObject o = (ASN1TaggedObject)seq.getObjectAt(0);

                if (o.getTagNo() == 0)
                {
                    this.version = DERInteger.getInstance(
                        (ASN1TaggedObject)seq.getObjectAt(0), true);
                    index++;
                }
                else
                {
                    this.version = null;
                }
            }
            else
            {
                this.version = null;
            }

            this.responderID = ResponderID.getInstance(seq.getObjectAt(index++));
            this.producedAt  = (DERGeneralizedTime)seq.getObjectAt(index++);
            this.responses   = (ASN1Sequence)seq.getObjectAt(index++);

            if (seq.size() > index)
            {
                this.responseExtensions = X509Extensions.getInstance(
                    (ASN1TaggedObject)seq.getObjectAt(index), true);
            }
        }
Exemple #9
0
 public PBEParameter(
     byte[] salt,
     int iterationCount)
 {
     this.octStr         = new DEROctetString(salt);
     this.iterationCount = new DERInteger(iterationCount);
 }
Exemple #10
0
 public ElGamalParameter(
     BigInteger p,
     BigInteger g)
 {
     this.p = new DERInteger(p);
     this.g = new DERInteger(g);
 }
Exemple #11
0
        public CrlID(
            ASN1Sequence seq)
        {
            IEnumerator e = seq.getObjects();

            while (e.MoveNext())
            {
                ASN1TaggedObject o = (ASN1TaggedObject)e.Current;

                switch ((int)o.getTagNo())
                {
                case 0:
                    crlUrl = DERIA5String.getInstance(o, true);
                    break;

                case 1:
                    crlNum = DERInteger.getInstance(o, true);
                    break;

                case 2:
                    crlTime = DERGeneralizedTime.getInstance(o, true);
                    break;

                default:
                    throw new ArgumentException(
                              "unknown tag number: " + o.getTagNo());
                }
            }
        }
Exemple #12
0
        /// <summary>
        /// Generate a CertificateID.
        /// </summary>
        /// <param name="hashAlgorithm"></param>
        /// <param name="issuerCert"></param>
        /// <param name="number"></param>
        /// <param name="provider"></param>
        public CertificateID(string hashAlgorithm, X509Certificate issuerCert, BigInteger number, string provider)
        {
            try
            {
                Digest digest = TransformationByName.DigestByName(hashAlgorithm);
                AlgorithmIdentifier hashAlg = new AlgorithmIdentifier(new DERObjectIdentifier(hashAlgorithm), new DERNull());

                X509Name issuerName = issuerCert.getSubjectDN();

                byte[] b = issuerName.getEncoded();
                digest.update(b, 0, b.Length);

                b = new byte[digest.getDigestSize()];
                digest.doFinal(b, 0);

                ASN1OctetString        issuerNameHash = new DEROctetString(b);
                AsymmetricKeyParameter issuerKey      = issuerCert.getPublicKey();

                SubjectPublicKeyInfo info = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(issuerKey);

                b = info.getEncoded();
                digest.update(b, 0, b.Length);

                b = new byte[digest.getDigestSize()];
                digest.doFinal(b, 0);

                ASN1OctetString issuerKeyHash = new DEROctetString(b);
                DERInteger      serialNumber  = new DERInteger(number);
                this.id = new CertID(hashAlg, issuerNameHash, issuerKeyHash, serialNumber);
            }
            catch (Exception e)
            {
                throw new OCSPException("problem creating ID: " + e, e);
            }
        }
Exemple #13
0
 public CAST5CBCParameters(
     byte[]  iv,
     int keyLength)
 {
     this.iv        = new DEROctetString(iv);
     this.keyLength = new DERInteger(keyLength);
 }
Exemple #14
0
        public AuthorityKeyIdentifier(
            ASN1Sequence seq)
        {
            IEnumerator e = seq.getObjects();

            while (e.MoveNext())
            {
                DERTaggedObject o = (DERTaggedObject)e.Current;

                switch ((int)o.getTagNo())
                {
                case 0:
                    this.keyidentifier = ASN1OctetString.getInstance(o, false);
                    break;

                case 1:
                    this.certissuer = GeneralNames.getInstance(o, false);
                    break;

                case 2:
                    this.certserno = DERInteger.getInstance(o, false);
                    break;

                default:
                    throw new ArgumentException("illegal tag");
                }
            }
        }
Exemple #15
0
        public TBSCertificateStructure(
            ASN1Sequence seq)
        {
            int seqStart = 0;

            this.seq = seq;

            //
            // some certficates don't include a version number - we assume v1
            //
            if (seq.getObjectAt(0) is DERTaggedObject)
            {
                version = DERInteger.getInstance(seq.getObjectAt(0));
            }
            else
            {
                seqStart = -1;          // field 0 is missing!
                version  = new DERInteger(0);
            }

            serialNumber = DERInteger.getInstance(seq.getObjectAt(seqStart + 1));

            signature = AlgorithmIdentifier.getInstance(seq.getObjectAt(seqStart + 2));
            issuer    = X509Name.getInstance(seq.getObjectAt(seqStart + 3));

            //
            // before and after dates
            //
            ASN1Sequence dates = (ASN1Sequence)seq.getObjectAt(seqStart + 4);

            startDate = Time.getInstance(dates.getObjectAt(0));
            endDate   = Time.getInstance(dates.getObjectAt(1));

            subject = X509Name.getInstance(seq.getObjectAt(seqStart + 5));

            //
            // public key info.
            //
            subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(seq.getObjectAt(seqStart + 6));

            for (int extras = seq.size() - (seqStart + 6) - 1; extras > 0; extras--)
            {
                DERTaggedObject extra = (DERTaggedObject)seq.getObjectAt(seqStart + 6 + extras);

                switch ((int)extra.getTagNo())
                {
                case 1:
                    issuerUniqueId = DERBitString.getInstance(extra, false);
                    break;

                case 2:
                    subjectUniqueId = DERBitString.getInstance(extra, false);
                    break;

                case 3:
                    extensions = X509Extensions.getInstance(extra);
                    break;
                }
            }
        }
Exemple #16
0
 public CompressedData(
     ASN1Sequence seq)
 {
     this.version = (DERInteger)seq.getObjectAt(0);
     this.compressionAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(1));
     this.encapContentInfo     = ContentInfo.getInstance(seq.getObjectAt(2));
 }
Exemple #17
0
 public CertID(
     ASN1Sequence seq)
 {
     hashAlgorithm  = AlgorithmIdentifier.getInstance(seq.getObjectAt(0));
     issuerNameHash = (ASN1OctetString)seq.getObjectAt(1);
     issuerKeyHash  = (ASN1OctetString)seq.getObjectAt(2);
     serialNumber   = (DERInteger)seq.getObjectAt(3);
 }
Exemple #18
0
 public PasswordRecipientInfo(
     AlgorithmIdentifier keyEncryptionAlgorithm,
     ASN1OctetString encryptedKey)
 {
     this.version = new DERInteger(0);
     this.keyEncryptionAlgorithm = keyEncryptionAlgorithm;
     this.encryptedKey           = encryptedKey;
 }
Exemple #19
0
 public CompressedData(
     AlgorithmIdentifier compressionAlgorithm,
     ContentInfo encapContentInfo)
 {
     this.version = new DERInteger(0);
     this.compressionAlgorithm = compressionAlgorithm;
     this.encapContentInfo     = encapContentInfo;
 }
Exemple #20
0
 public KEKRecipientInfo(
     ASN1Sequence seq)
 {
     version = (DERInteger)seq.getObjectAt(0);
     kekid   = KEKIdentifier.getInstance(seq.getObjectAt(1));
     keyEncryptionAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(2));
     encryptedKey           = (ASN1OctetString)seq.getObjectAt(3);
 }
        public static RealSearchControlValue Extract(ICollection <byte> buffer)
        {
            var result = new RealSearchControlValue();

            result.ExtractTagAndLength(buffer);
            result.Size   = DERInteger.Extract(buffer);
            result.Cookie = DEROctetString.Extract(buffer);
            return(result);
        }
Exemple #22
0
        public PBEParameter(ASN1Sequence seq)
        {
            IEnumerator e = seq.getObjects();

            e.MoveNext();
            octStr = (ASN1OctetString)e.Current;
            e.MoveNext();
            iterationCount = (DERInteger)e.Current;
        }
Exemple #23
0
 public DSAParameter(
     BigInteger p,
     BigInteger q,
     BigInteger g)
 {
     this.p = new DERInteger(p);
     this.q = new DERInteger(q);
     this.g = new DERInteger(g);
 }
Exemple #24
0
 public KEKRecipientInfo(
     KEKIdentifier kekid,
     AlgorithmIdentifier keyEncryptionAlgorithm,
     ASN1OctetString encryptedKey)
 {
     this.version = new DERInteger(4);
     this.kekid   = kekid;
     this.keyEncryptionAlgorithm = keyEncryptionAlgorithm;
     this.encryptedKey           = encryptedKey;
 }
Exemple #25
0
        public ElGamalParameter(
            ASN1Sequence seq)
        {
            IEnumerator e = seq.getObjects();

            e.MoveNext();
            p = (DERInteger)e.Current;
            e.MoveNext();
            g = (DERInteger)e.Current;
        }
Exemple #26
0
 public TBSRequest(
     GeneralName requestorName,
     ASN1Sequence requestList,
     X509Extensions requestExtensions)
 {
     this.version           = new DERInteger(0);
     this.requestorName     = requestorName;
     this.requestList       = requestList;
     this.requestExtensions = requestExtensions;
 }
Exemple #27
0
        public IssuerSerial(
            ASN1Sequence seq)
        {
            issuer = GeneralNames.getInstance(seq.getObjectAt(0));
            serial = (DERInteger)seq.getObjectAt(1);

            if (seq.size() == 3)
            {
                issuerUID = (DERBitString)seq.getObjectAt(2);
            }
        }
Exemple #28
0
 public CertID(
     AlgorithmIdentifier hashAlgorithm,
     ASN1OctetString issuerNameHash,
     ASN1OctetString issuerKeyHash,
     DERInteger serialNumber)
 {
     this.hashAlgorithm  = hashAlgorithm;
     this.issuerNameHash = issuerNameHash;
     this.issuerKeyHash  = issuerKeyHash;
     this.serialNumber   = serialNumber;
 }
Exemple #29
0
 public KeyAgreeRecipientInfo(
     OriginatorIdentifierOrKey originator,
     ASN1OctetString ukm,
     AlgorithmIdentifier keyEncryptionAlgorithm,
     ASN1Sequence recipientEncryptedKeys)
 {
     this.version                = new DERInteger(3);
     this.originator             = originator;
     this.ukm                    = ukm;
     this.keyEncryptionAlgorithm = keyEncryptionAlgorithm;
     this.recipientEncryptedKeys = recipientEncryptedKeys;
 }
Exemple #30
0
            public CRLEntry(
                ASN1Sequence seq)
            {
                this.seq = seq;

                userCertificate = (DERInteger)seq.getObjectAt(0);
                revocationDate  = Time.getInstance(seq.getObjectAt(1));
                if (seq.size() == 3)
                {
                    crlEntryExtensions = X509Extensions.getInstance(seq.getObjectAt(2));
                }
            }