Exemple #1
0
        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());
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
            }
        }