public void VerifyAlgorithmNotSupported([EnumValues(Exclude = new[] { nameof(KeyType.Rsa), nameof(KeyType.RsaHsm), nameof(KeyType.Ec), nameof(KeyType.EcHsm) })] KeyType keyType) { JsonWebKey jwk = CreateKey(keyType); LocalCryptographyClient client = CreateClient <LocalCryptographyClient>(jwk); Assert.ThrowsAsync <NotSupportedException>(async() => await client.VerifyAsync(new SignatureAlgorithm("ignored"), TestData, TestData)); }
public void VerifyOperationNotSupported() { JsonWebKey jwk = new JsonWebKey(RSA.Create(), keyOps: Array.Empty <KeyOperation>()); LocalCryptographyClient client = CreateClient <LocalCryptographyClient>(jwk); Assert.ThrowsAsync <NotSupportedException>(async() => await client.VerifyAsync(new SignatureAlgorithm("ignored"), TestData, TestData)); }
public async Task SignVerifyRoundtrip([EnumValues(Exclude = new[] { nameof(SignatureAlgorithm.PS256), nameof(SignatureAlgorithm.PS384), nameof(SignatureAlgorithm.PS512) })] SignatureAlgorithm algorithm) { JsonWebKey jwk = KeyUtilities.CreateKey(algorithm, includePrivateParameters: true); LocalCryptographyClient client = CreateClient <LocalCryptographyClient>(jwk); byte[] digest = algorithm.GetHashAlgorithm().ComputeHash(TestData); SignResult signed = await client.SignAsync(algorithm, digest); VerifyResult verified = await client.VerifyAsync(algorithm, digest, signed.Signature); Assert.IsTrue(verified.IsValid); }