Beispiel #1
0
        public void ShouldGenerateSignaturesCorrectly(Curve curveEnum, string dHex, string qHex, string msgHex, string sigHex)
        {
            var d           = LoadValue(dHex);
            var q           = LoadValue(qHex);
            var msg         = new BitString(msgHex);
            var expectedSig = LoadValue(sigHex);

            var factory = new EdwardsCurveFactory();
            var curve   = factory.GetCurve(curveEnum);

            var domainParams = new EdDomainParameters(curve, new NativeShaFactory());
            var keyPair      = new EdKeyPair(q, d);

            var subject = new EdDsa(EntropyProviderTypes.Testable);

            var result = subject.Sign(domainParams, keyPair, msg);

            Assert.IsTrue(result.Success);
            Assert.AreEqual(expectedSig, result.Signature.Sig, "sig");
        }