示例#1
0
 public void Apply(OpenApiSchema schema, SchemaFilterContext context)
 {
     if (context.Type == typeof(Psd2CertificateRequest))
     {
         schema.Example = Psd2CertificateRequest.Example().ToOpenApiAny();
     }
 }
示例#2
0
        public async Task <IActionResult> CreateCertificate([FromBody] Psd2CertificateRequest request)
        {
            var issuer   = new X509Certificate2(Path.Combine(Options.Path, "ca.pfx"), Options.PfxPassphrase, X509KeyStorageFlags.MachineKeySet);
            var manager  = new CertificateManager();
            var cert     = manager.CreateQWACs(request, Options.IssuerDomain, issuer, out _);
            var response = await Store.Add(cert, request);

            cert.Dispose();
            return(Ok(response));
        }
示例#3
0
        public void Generate_QWACs()
        {
            var data          = Psd2CertificateRequest.Example();
            var manager       = new CertificateManager();
            var privateKey    = default(RSA);
            var cert          = manager.CreateQWACs(data, out privateKey);
            var certBase64    = cert.ExportToPEM();
            var publicBase64  = privateKey.ToSubjectPublicKeyInfo();
            var privateBase64 = privateKey.ToRSAPrivateKey();
            var pfxBytes      = cert.Export(X509ContentType.Pfx, "111");

            File.WriteAllText(Path.Combine(Directory.GetCurrentDirectory(), $"{data.AuthorizationNumber}.cer"), certBase64);
            File.WriteAllText(Path.Combine(Directory.GetCurrentDirectory(), $"{data.AuthorizationNumber}.public.key"), publicBase64);
            File.WriteAllText(Path.Combine(Directory.GetCurrentDirectory(), $"{data.AuthorizationNumber}.private.key"), privateBase64);
            File.WriteAllBytes(Path.Combine(Directory.GetCurrentDirectory(), $"{data.AuthorizationNumber}.pfx"), pfxBytes);
            File.WriteAllText(Path.Combine(Directory.GetCurrentDirectory(), $"{data.AuthorizationNumber}.json"), JsonConvert.SerializeObject(new {
                encodedCert = certBase64,
                privateKey  = privateBase64,
                keyId       = CryptoRandom.CreateUniqueId(16),
                algorithm   = "SHA256WITHRSA"
            }));
            Assert.True(true);
        }