コード例 #1
0
        public void Create_Attributes()
        {
            var ChallengePasswordAttribute       = new X509ChallengePasswordAttribute("password");
            var EnrollmentNameValuePairAttribute = new X509EnrollmentNameValuePairAttribute(new X509EnrollmentNameValuePairParams()
            {
                CertificateUsage = (new List <Oid>()
                {
                    new Oid("1.2.3.4"), new Oid("2.3.4")
                }).ToArray()
            });
            var EnrollmentNameValuePairAttribute2 = new X509EnrollmentNameValuePairAttribute(new X509EnrollmentNameValuePairParams()
            {
                Other = "test"
            });

            var param = new CertificateRequestParams()
            {
                Attributes = new Attribute[] { ChallengePasswordAttribute, EnrollmentNameValuePairAttribute, EnrollmentNameValuePairAttribute2 }
            };
            var key = RSA.Create();

            key.ExportParameters(true);
            var req = new Pkcs10CertificateRequest(param, key);

            Assert.True(req.Verify());
            var lapo = Convert.ToBase64String(req.RawData);
        }
コード例 #2
0
        public void Create_without_params()
        {
            var key = RSA.Create();

            key.ExportParameters(true);
            var param = new CertificateRequestParams();
            var req   = new Pkcs10CertificateRequest(param, key);

            Assert.True(req.Verify());
        }
コード例 #3
0
        /// <summary>
        /// Generates the certificate request by params
        /// </summary>
        /// <param name="param">Certificate request params</param>
        public void Generate(CertificateRequestParams param, RSA key)
        {
            //Requested Certificate Name
            X509Name name = string.IsNullOrEmpty(param.CommonName) ? X509Name.GetInstance(new DerSequence(new DerSet())) : new X509Name(param.CommonName);

            string signatureAlgorithm = param.SignatureAlgorithm.ToString();

            var keyPair = DotNetUtilities.GetRsaKeyPair(key);

            //Attributes
            Asn1Set attr = null;

            if (param.Attributes != null)
            {
                attr = new DerSet(param.Attributes.Select(o => Asn1Object.FromByteArray(o.Export())).ToArray());
            }

            //PKCS #10 Certificate Signing Request
            var bcCSR = new Pkcs10CertificationRequest(signatureAlgorithm, name, keyPair.Public, attr, keyPair.Private);

            Import(bcCSR.GetEncoded());
        }
コード例 #4
0
 public Pkcs10CertificateRequest(CertificateRequestParams param, RSA key) => Generate(param, key);