コード例 #1
0
		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);
		}
コード例 #2
0
 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);
         }
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
		private void TestSig(DeterministicSigTest test)
		{
			TestSig(test.Key, test);
		}
コード例 #6
0
		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);
		}
コード例 #7
0
 private void TestSig(DeterministicSigTest test)
 {
     TestSig(test.Key, test);
 }