コード例 #1
0
        public void ShouldSignABlobOfDataWithEcdsaP256Sha256()
        {
            var certificate = new X509Certificate2(CertPath("ecdsa-p256-sha256.pfx"), "test");
            var config      = new SignConfigurationSet
                              (
                publicCertificate: certificate,
                signatureDigestAlgorithm: HashAlgorithmName.SHA256,
                fileDigestAlgorithm: HashAlgorithmName.SHA256,
                signingKey: certificate.GetECDsaPrivateKey()
                              );

            var context = new SigningContext(config);

            using (var hash = SHA256.Create())
            {
                var digest    = hash.ComputeHash(new byte[] { 1, 2, 3 });
                var signature = context.SignDigest(digest);
                Assert.Equal(OpcKnownUris.SignatureAlgorithms.ecdsaSHA256, context.XmlDSigIdentifier);
                Assert.Equal(SigningAlgorithm.ECDSA, context.SignatureAlgorithm);

                var roundtrips = context.VerifyDigest(digest, signature);
                Assert.True(roundtrips);
            }
        }
コード例 #2
0
        public void ShouldSignABlobOfDataWithRsaSha1(string pfxPath)
        {
            var certificate = new X509Certificate2(pfxPath, "test");
            var config      = new SignConfigurationSet
                              (
                publicCertificate: certificate,
                signatureDigestAlgorithm: HashAlgorithmName.SHA1,
                fileDigestAlgorithm: HashAlgorithmName.SHA1,
                signingKey: certificate.GetRSAPrivateKey()
                              );

            var context = new SigningContext(config);

            using (var hash = SHA1.Create())
            {
                var digest    = hash.ComputeHash(new byte[] { 1, 2, 3 });
                var signature = context.SignDigest(digest);
                Assert.Equal(OpcKnownUris.SignatureAlgorithms.rsaSHA1, context.XmlDSigIdentifier);
                Assert.Equal(SigningAlgorithm.RSA, context.SignatureAlgorithm);

                var roundtrips = context.VerifyDigest(digest, signature);
                Assert.True(roundtrips);
            }
        }