public async Task <IActionResult> GenerateNewKey() { var ecdsa = new EllipticCurveDSA(new EllipticCurve()); var(privateKey, publicKey) = ecdsa.GenerateParameters(); await this.keyManager.SetNewKey(privateKey, publicKey); return(this.Ok()); }
private bool VerifySignature(ECPoint publicKey, ServerHello serverHello) { var ecdsa = new EllipticCurveDSA(this.ellipticCurve); var byteMessage = this.GetByteMessage(serverHello); var r = serverHello.Signature.R; var s = serverHello.Signature.S; var sig = (r, s); return(ecdsa.Verify(byteMessage, sig, publicKey)); }
public void EllipticCurveDSA_Sign_Verify() { EllipticCurveDSA ecdsa = new EllipticCurveDSA(this.curve); string message = "Hello world"; for (int i = 0; i < this.count; i++) { var keys = ecdsa.GenerateKeyPair(); Assert.IsTrue(ecdsa.Verify(message, ecdsa.Sign(message, keys.privateKey), keys.publicKey)); } }