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); }
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()); }
/// <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()); }
public Pkcs10CertificateRequest(CertificateRequestParams param, RSA key) => Generate(param, key);