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); } } }