コード例 #1
0
        public SignerLocation(
            DerUtf8String	countryName,
            DerUtf8String	localityName,
            Asn1Sequence	postalAddress)
        {
            if (postalAddress != null && postalAddress.Count > 6)
            {
                throw new ArgumentException("postal address must contain less than 6 strings");
            }

            if (countryName != null)
            {
                this.countryName = DerUtf8String.GetInstance(countryName.ToAsn1Object());
            }

            if (localityName != null)
            {
                this.localityName = DerUtf8String.GetInstance(localityName.ToAsn1Object());
            }

            if (postalAddress != null)
            {
                this.postalAddress = (Asn1Sequence) postalAddress.ToAsn1Object();
            }
        }
コード例 #2
0
        private LdsSecurityObject(
            Asn1Sequence seq)
        {
            if (seq == null || seq.Count == 0)
                throw new ArgumentException("null or empty sequence passed.");

            IEnumerator e = seq.GetEnumerator();

            // version
            e.MoveNext();
            version = DerInteger.GetInstance(e.Current);
            // digestAlgorithmIdentifier
            e.MoveNext();
            digestAlgorithmIdentifier = AlgorithmIdentifier.GetInstance(e.Current);

            e.MoveNext();
            Asn1Sequence datagroupHashSeq = Asn1Sequence.GetInstance(e.Current);

            if (version.Value.Equals(BigInteger.One))
            {
                e.MoveNext();
                versionInfo = LdsVersionInfo.GetInstance(e.Current);
            }

            CheckDatagroupHashSeqSize(datagroupHashSeq.Count);

            datagroupHash = new DataGroupHash[datagroupHashSeq.Count];
            for (int i= 0; i< datagroupHashSeq.Count; i++)
            {
                datagroupHash[i] = DataGroupHash.GetInstance(datagroupHashSeq[i]);
            }
        }
コード例 #3
0
        public KekIdentifier(
            Asn1Sequence seq)
        {
            keyIdentifier = (Asn1OctetString) seq[0];

            switch (seq.Count)
            {
            case 1:
                break;
            case 2:
                if (seq[1] is DerGeneralizedTime)
                {
                    date = (DerGeneralizedTime) seq[1];
                }
                else
                {
                    other = OtherKeyAttribute.GetInstance(seq[2]);
                }
                break;
            case 3:
                date  = (DerGeneralizedTime) seq[1];
                other = OtherKeyAttribute.GetInstance(seq[2]);
                break;
            default:
                throw new ArgumentException("Invalid KekIdentifier");
            }
        }
コード例 #4
0
 public OriginatorInfo(
     Asn1Sequence seq)
 {
     switch (seq.Count)
     {
     case 0:     // empty
         break;
     case 1:
         Asn1TaggedObject o = (Asn1TaggedObject) seq[0];
         switch (o.TagNo)
         {
         case 0 :
             certs = Asn1Set.GetInstance(o, false);
             break;
         case 1 :
             crls = Asn1Set.GetInstance(o, false);
             break;
         default:
             throw new ArgumentException("Bad tag in OriginatorInfo: " + o.TagNo);
         }
         break;
     case 2:
         certs = Asn1Set.GetInstance((Asn1TaggedObject) seq[0], false);
         crls  = Asn1Set.GetInstance((Asn1TaggedObject) seq[1], false);
         break;
     default:
         throw new ArgumentException("OriginatorInfo too big");
     }
 }
コード例 #5
0
        public SingleResponse(
            Asn1Sequence seq)
        {
            this.certID = CertID.GetInstance(seq[0]);
            this.certStatus = CertStatus.GetInstance(seq[1]);
            this.thisUpdate = (DerGeneralizedTime)seq[2];

            if (seq.Count > 4)
            {
                this.nextUpdate = DerGeneralizedTime.GetInstance(
                    (Asn1TaggedObject) seq[3], true);
                this.singleExtensions = X509Extensions.GetInstance(
                    (Asn1TaggedObject) seq[4], true);
            }
            else if (seq.Count > 3)
            {
                Asn1TaggedObject o = (Asn1TaggedObject) seq[3];

                if (o.TagNo == 0)
                {
                    this.nextUpdate = DerGeneralizedTime.GetInstance(o, true);
                }
                else
                {
                    this.singleExtensions = X509Extensions.GetInstance(o, true);
                }
            }
        }
コード例 #6
0
        private PbeParameter(Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Wrong number of elements in sequence", "seq");

            salt = Asn1OctetString.GetInstance(seq[0]);
            iterationCount = DerInteger.GetInstance(seq[1]);
        }
コード例 #7
0
 private IdeaCbcPar(
     Asn1Sequence seq)
 {
     if (seq.Count == 1)
     {
         iv = (Asn1OctetString) seq[0];
     }
 }
コード例 #8
0
 public KeyTransRecipientInfo(
     Asn1Sequence seq)
 {
     this.version = (DerInteger) seq[0];
     this.rid = RecipientIdentifier.GetInstance(seq[1]);
     this.keyEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(seq[2]);
     this.encryptedKey = (Asn1OctetString) seq[3];
 }
コード例 #9
0
 public KekRecipientInfo(
     Asn1Sequence seq)
 {
     version = (DerInteger) seq[0];
     kekID = KekIdentifier.GetInstance(seq[1]);
     keyEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(seq[2]);
     encryptedKey = (Asn1OctetString) seq[3];
 }
コード例 #10
0
        public ECPrivateKeyStructure(
            Asn1Sequence seq)
        {
            if (seq == null)
                throw new ArgumentNullException("seq");

            this.seq = seq;
        }
コード例 #11
0
        private AttCertValidityPeriod(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Bad sequence size: " + seq.Count);

            notBeforeTime = DerGeneralizedTime.GetInstance(seq[0]);
            notAfterTime = DerGeneralizedTime.GetInstance(seq[1]);
        }
コード例 #12
0
        private DataGroupHash(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Wrong number of elements in sequence", "seq");

            this.dataGroupNumber = DerInteger.GetInstance(seq[0]);
            this.dataGroupHashValue = Asn1OctetString.GetInstance(seq[1]);
        }
コード例 #13
0
        private ResponseBytes(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Wrong number of elements in sequence", "seq");

            this.responseType = DerObjectIdentifier.GetInstance(seq[0]);
            this.response = Asn1OctetString.GetInstance(seq[1]);
        }
コード例 #14
0
        public ElGamalParameter(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Wrong number of elements in sequence", "seq");

            p = DerInteger.GetInstance(seq[0]);
            g = DerInteger.GetInstance(seq[1]);
        }
コード例 #15
0
        private Gost28147Parameters(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Wrong number of elements in sequence", "seq");

            this.iv = Asn1OctetString.GetInstance(seq[0]);
            this.paramSet = DerObjectIdentifier.GetInstance(seq[1]);
        }
コード例 #16
0
        private AttributePkcs(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Wrong number of elements in sequence", "seq");

            attrType = DerObjectIdentifier.GetInstance(seq[0]);
            attrValues = Asn1Set.GetInstance(seq[1]);
        }
コード例 #17
0
        private Cast5CbcParameters(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Wrong number of elements in sequence", "seq");

            iv = (Asn1OctetString) seq[0];
            keyLength = (DerInteger) seq[1];
        }
コード例 #18
0
        private AttributeX509(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Bad sequence size: " + seq.Count);

            attrType = DerObjectIdentifier.GetInstance(seq[0]);
            attrValues = Asn1Set.GetInstance(seq[1]);
        }
コード例 #19
0
        private ServiceLocator(
            Asn1Sequence seq)
        {
            this.issuer = X509Name.GetInstance(seq[0]);

            if (seq.Count > 1)
            {
                this.locator = seq[1].ToAsn1Object();
            }
        }
コード例 #20
0
        private ContentInfo(
            Asn1Sequence seq)
        {
            contentType = (DerObjectIdentifier) seq[0];

            if (seq.Count > 1)
            {
                content = ((Asn1TaggedObject) seq[1]).GetObject();
            }
        }
コード例 #21
0
        public ECPrivateKeyStructure(
            BigInteger key)
        {
            if (key == null)
                throw new ArgumentNullException("key");

            this.seq = new DerSequence(
                new DerInteger(1),
                new DerOctetString(key.ToByteArrayUnsigned()));
        }
コード例 #22
0
        public AuthenticatedSafe(
            Asn1Sequence seq)
        {
            info = new ContentInfo[seq.Count];

            for (int i = 0; i != info.Length; i++)
            {
                info[i] = ContentInfo.GetInstance(seq[i]);
            }
        }
コード例 #23
0
        public SmimeCapability(
            Asn1Sequence seq)
        {
            capabilityID = (DerObjectIdentifier) seq[0].ToAsn1Object();

            if (seq.Count > 1)
            {
                parameters = seq[1].ToAsn1Object();
            }
        }
コード例 #24
0
        private RsaPublicKeyStructure(
            Asn1Sequence seq)
        {
            if (seq.Count != 2)
                throw new ArgumentException("Bad sequence size: " + seq.Count);

            // Note: we are accepting technically incorrect (i.e. negative) values here
            modulus = DerInteger.GetInstance(seq[0]).PositiveValue;
            publicExponent = DerInteger.GetInstance(seq[1]).PositiveValue;
        }
コード例 #25
0
 public SafeBag(
     Asn1Sequence seq)
 {
     this.bagID = (DerObjectIdentifier) seq[0];
     this.bagValue = ((DerTaggedObject) seq[1]).GetObject();
     if (seq.Count == 3)
     {
         this.bagAttributes = (Asn1Set) seq[2];
     }
 }
コード例 #26
0
        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]);
        }
コード例 #27
0
        public static BerOctetString FromSequence(Asn1Sequence seq)
        {
            IList v = Platform.CreateArrayList();

            foreach (Asn1Encodable obj in seq)
            {
                v.Add(obj);
            }

            return new BerOctetString(v);
        }
コード例 #28
0
        private Request(
            Asn1Sequence seq)
        {
            reqCert = CertID.GetInstance(seq[0]);

            if (seq.Count == 2)
            {
                singleRequestExtensions = X509Extensions.GetInstance(
                    (Asn1TaggedObject)seq[1], true);
            }
        }
コード例 #29
0
        private CertID(
            Asn1Sequence seq)
        {
            if (seq.Count != 4)
                throw new ArgumentException("Wrong number of elements in sequence", "seq");

            this.hashAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]);
            this.issuerNameHash = Asn1OctetString.GetInstance(seq[1]);
            this.issuerKeyHash = Asn1OctetString.GetInstance(seq[2]);
            this.serialNumber = DerInteger.GetInstance(seq[3]);
        }
コード例 #30
0
 public BasicOcspResponse(
     ResponseData		tbsResponseData,
     AlgorithmIdentifier	signatureAlgorithm,
     DerBitString		signature,
     Asn1Sequence		certs)
 {
     this.tbsResponseData = tbsResponseData;
     this.signatureAlgorithm = signatureAlgorithm;
     this.signature = signature;
     this.certs = certs;
 }