return signer.GenerateSignature();
}
+ public bool Verify(IEnumerable<byte> data, IEnumerable<byte> signature)
+ {
+ byte[] dataBytes = data.ToArray();
+
+ ISigner signer = SignerUtilities.GetSigner("SHA-256withECDSA");
+ ECPublicKeyParameters keyParameters = new ECPublicKeyParameters(Q, domain);
+ signer.Init(false, keyParameters);
+ signer.BlockUpdate(dataBytes, 0, dataBytes.Length);
+
+ return signer.VerifySignature(signature.ToArray());
+ }
+
/// <summary>
/// Secret part of key pair
/// </summary>
/// ECDSA keypair signing test
string data = "Превед!";
- byte[] signature = keyPair1.Sign(Encoding.UTF8.GetBytes(data)).ToArray();
+ byte[] dataBytes = Encoding.UTF8.GetBytes(data);
+ byte[] signature = keyPair1.Sign(dataBytes).ToArray();
Console.WriteLine("Signature: {0}", Interop.ToHex(signature));
+ Console.WriteLine("Signature is OK: {0}", keyPair1.Verify(dataBytes, signature));
Console.ReadLine();
}