Example #1
0
 public CertRequest(
     int certReqId,
     CertTemplate certTemplate,
     Controls controls)
     : this(new DerInteger(certReqId), certTemplate, controls)
 {
 }
Example #2
0
 private RevDetails(Asn1Sequence seq)
 {
     certDetails     = CertTemplate.GetInstance(seq[0]);
     crlEntryDetails = seq.Count <= 1
         ?   null
         :   X509Extensions.GetInstance(seq[1]);
 }
Example #3
0
 private RevDetails(Asn1Sequence seq)
 {
     this.certDetails = CertTemplate.GetInstance(seq[0]);
     if (seq.Count > 1)
     {
         this.crlEntryDetails = X509Extensions.GetInstance(seq[1]);
     }
 }
Example #4
0
 private CertRequest(Asn1Sequence seq)
 {
     certReqId    = DerInteger.GetInstance(seq[0]);
     certTemplate = CertTemplate.GetInstance(seq[1]);
     if (seq.Count > 2)
     {
         controls = Controls.GetInstance(seq[2]);
     }
 }
Example #5
0
 public CertRequest(
     DerInteger certReqId,
     CertTemplate certTemplate,
     Controls controls)
 {
     this.certReqId    = certReqId;
     this.certTemplate = certTemplate;
     this.controls     = controls;
 }
Example #6
0
    public virtual CertTemplate Build()
    {
        Asn1EncodableVector v = new Asn1EncodableVector();

        AddOptional(v, 0, isExplicit: false, version);
        AddOptional(v, 1, isExplicit: false, serialNumber);
        AddOptional(v, 2, isExplicit: false, signingAlg);
        AddOptional(v, 3, isExplicit: true, issuer);
        AddOptional(v, 4, isExplicit: false, validity);
        AddOptional(v, 5, isExplicit: true, subject);
        AddOptional(v, 6, isExplicit: false, publicKey);
        AddOptional(v, 7, isExplicit: false, issuerUID);
        AddOptional(v, 8, isExplicit: false, subjectUID);
        AddOptional(v, 9, isExplicit: false, extensions);
        return(CertTemplate.GetInstance(new DerSequence(v)));
    }
Example #7
0
 public RevDetails(CertTemplate certDetails, X509Extensions crlEntryDetails)
 {
     this.crlEntryDetails = crlEntryDetails;
 }
Example #8
0
 public RevDetails(CertTemplate certDetails)
 {
     this.certDetails = certDetails;
 }
Example #9
0
 public RevDetails(CertTemplate certDetails)
     :   this(certDetails, null)
 {
 }
        public CertificateRequestMessage Build()
        {
            Asn1EncodableVector v = new Asn1EncodableVector();

            v.Add(new DerInteger(this._certReqId));

            if (!this._extGenerator.IsEmpty)
            {
                this._templateBuilder.SetExtensions(_extGenerator.Generate());
            }

            v.Add(_templateBuilder.Build());

            if (_controls.Count > 0)
            {
                Asn1EncodableVector controlV = new Asn1EncodableVector();

                foreach (Object item  in _controls)
                {
                    IControl control = (IControl)item;
                    controlV.Add(new AttributeTypeAndValue(control.Type, control.Value));
                }

                v.Add(new DerSequence(controlV));
            }

            CertRequest request = CertRequest.GetInstance(new DerSequence(v));

            v = new Asn1EncodableVector();

            v.Add(request);

            if (_popSigner != null)
            {
                CertTemplate template = request.CertTemplate;

                if (template.Subject == null || template.PublicKey == null)
                {
                    SubjectPublicKeyInfo pubKeyInfo = request.CertTemplate.PublicKey;

                    ProofOfPossessionSigningKeyBuilder builder = new ProofOfPossessionSigningKeyBuilder(pubKeyInfo);

                    if (_sender != null)
                    {
                        builder.setSender(_sender);
                    }
                    else
                    {
                        // PkMa pkmacGenerator = new PKMACValueGenerator(_pkmacBuilder);

                        builder.setPublicKeyMac(_pkMacBuilder, _password);
                    }

                    v.Add(new ProofOfPossession(builder.build(_popSigner)));
                }
                else
                {
                    ProofOfPossessionSigningKeyBuilder builder = new ProofOfPossessionSigningKeyBuilder(request);

                    v.Add(new ProofOfPossession(builder.build(_popSigner)));
                }
            }
            else if (_popoPrivKey != null)
            {
                v.Add(new ProofOfPossession(_popoType, _popoPrivKey));
            }
            else if (_agreeMac != null)
            {
                v.Add(new ProofOfPossession(ProofOfPossession.TYPE_KEY_AGREEMENT,
                                            PopoPrivKey.GetInstance(new DerTaggedObject(false, PopoPrivKey.agreeMAC, _agreeMac), true)));
            }
            else if (_popRaVerified != null)
            {
                v.Add(new ProofOfPossession());
            }

            return(new CertificateRequestMessage(CertReqMsg.GetInstance(new DerSequence(v))));
        }