public async Task ShouldSignABlobOfDataWithEcdsaP256Sha256(string pfxPath)
        {
            var certificate = new X509Certificate2(pfxPath, "test");
            var config      = new CertificateSignConfigurationSet
            {
                SigningCertificate  = certificate,
                PkcsDigestAlgorithm = HashAlgorithmName.SHA256,
                FileDigestAlgorithm = HashAlgorithmName.SHA256
            };

            using (var context = new CertificateSigningContext(config))
            {
                using (var hash = SHA256.Create())
                {
                    var digest    = hash.ComputeHash(new byte[] { 1, 2, 3 });
                    var signature = await context.SignDigestAsync(digest);

                    Assert.Equal(OpcKnownUris.SignatureAlgorithms.ecdsaSHA256, context.XmlDSigIdentifier);
                    Assert.Equal(SigningAlgorithm.ECDSA, context.SignatureAlgorithm);

                    var roundtrips = await context.VerifyDigestAsync(digest, signature);

                    Assert.True(roundtrips);
                }
            }
        }
        public async Task ShouldSignABlobOfDataWithRsaSha1(string pfxPath)
        {
            var certificate = new X509Certificate2(pfxPath, "test");

            using (var context = new CertificateSigningContext(certificate, HashAlgorithmName.SHA1, HashAlgorithmName.SHA1))
            {
                using (var hash = SHA1.Create())
                {
                    var digest    = hash.ComputeHash(new byte[] { 1, 2, 3 });
                    var signature = await context.SignDigestAsync(digest);

                    Assert.Equal(OpcKnownUris.SignatureAlgorithms.rsaSHA1, context.XmlDSigIdentifier);
                    Assert.Equal(SigningAlgorithm.RSA, context.SignatureAlgorithm);

                    var roundtrips = await context.VerifyDigestAsync(digest, signature);

                    Assert.True(roundtrips);
                }
            }
        }