private void TestSig(ECPrivateKeyParameters key, DeterministicSigTest test) { var dsa = new DeterministicECDSA(GetHash(test.Hash)); dsa.setPrivateKey(key); dsa.update(Encoding.UTF8.GetBytes(test.Message)); var result = dsa.sign(); var signature = ECDSASignature.FromDER(result); Assert.Equal(test.S, signature.S); Assert.Equal(test.R, signature.R); }
private IEnumerable <DeterministicSigTest> ParseTests(string tests) { foreach (string test in tests.Split(new string[] { "With " }, StringSplitOptions.RemoveEmptyEntries)) { DeterministicSigTest result = ParseTest("With " + test); if (result != null) { yield return(result); } } }
private void TestSig(ECPrivateKeyParameters key, DeterministicSigTest test) { if (test.Hash.Equals("SHA-1", StringComparison.OrdinalIgnoreCase)) { return; } var dsa = new DeterministicECDSA(GetHash(test.Hash), false); dsa.setPrivateKey(key); dsa.update(Encoding.UTF8.GetBytes(test.Message)); var result = dsa.sign(); var signature = ECDSASignature.FromDER(result); Assert.Equal(test.S, signature.S); Assert.Equal(test.R, signature.R); }
public void IETFDetailedExample() { ECPrivateKeyParameters key = ParseKey( @" curve: NIST K-163 q = 4000000000000000000020108A2E0CC0D99F8A5EF x = 09A4D6792295A7F730FC3F2B49CBC0F62E862272F Ux = 79AEE090DB05EC252D5CB4452F356BE198A4FF96F Uy = 782E29634DDC9A31EF40386E896BAA18B53AFA5A3"); DeterministicSigTest test = ParseTest(@" With SHA-256, message = sample: k = 23AF4074C90A02B3FE61D286D5C87F425E6BDD81B r = 113A63990598A3828C407C0F4D2438D990DF99A7F s = 1313A2E03F5412DDB296A22E2C455335545672D9F"); TestSig(key, test); }
private void TestSig(DeterministicSigTest test) { TestSig(test.Key, test); }
private void TestSig(ECPrivateKeyParameters key, DeterministicSigTest test) { DeterministicECDSA dsa = new DeterministicECDSA(test.Hash); dsa.setPrivateKey(key); dsa.update(Encoding.UTF8.GetBytes(test.Message)); var result = dsa.sign(); Assert.Equal(test.K, dsa.LastK); Assert.Equal(test.R, dsa.LastR); Assert.Equal(test.S, ECDSASignature.FromDER(result).S); }