}
/// <summary>
+ /// Create signature for supplied data
+ /// </summary>
+ /// <param name="data">Data bytes sequence</param>
+ /// <returns>Signature bytes sequence</returns>
+ public IEnumerable<byte> Sign(IEnumerable<byte> data)
+ {
+ byte[] dataBytes = data.ToArray();
+
+ ISigner signer = SignerUtilities.GetSigner("SHA-256withECDSA");
+ ECPrivateKeyParameters keyParameters = new ECPrivateKeyParameters(D, domain);
+ signer.Init(true, keyParameters);
+ signer.BlockUpdate(dataBytes, 0, dataBytes.Length);
+
+ return signer.GenerateSignature();
+ }
+
+ /// <summary>
/// Secret part of key pair
/// </summary>
public IEnumerable<byte> Secret
Console.WriteLine(keyPair1.ToString());
Console.WriteLine("OK: {0}\n", keyPair1.ToString() == keyPair2.ToString());
+ /// ECDSA keypair signing test
+
+ string data = "Превед!";
+ byte[] signature = keyPair1.Sign(Encoding.UTF8.GetBytes(data)).ToArray();
+
+ Console.WriteLine("Signature: {0}", Interop.ToHex(signature));
+
Console.ReadLine();
}
}