public void TestCase() { using (MessageDigestContext ctx = new MessageDigestContext(MessageDigest.SHA1)) { for (int i = 0; i < tests.Length; i++) { byte[] msg = Encoding.ASCII.GetBytes(this.tests[i]); byte[] ret = ctx.Digest(msg); string str = BitConverter.ToString(ret); Assert.AreEqual(results[i], str); } byte[] buf = Encoding.ASCII.GetBytes(new string('a', 1000)); ctx.Init(); for (int i = 0; i < 1000; i++) { ctx.Update(buf); } byte[] retx = ctx.DigestFinal(); string strx = BitConverter.ToString(retx); Assert.AreEqual(bigret, strx); } }
private void x9_62_test_internal(Asn1Object obj, string r_in, string s_in) { byte[] message = Encoding.ASCII.GetBytes("abc"); using(MessageDigestContext md_ctx = new MessageDigestContext(MessageDigest.ECDSA)) { byte[] digest = md_ctx.Digest(message); Console.Write("testing {0}: ", obj.ShortName); using(Key key = Key.FromCurveName(obj)) { key.GenerateKey(); Console.Write("."); using(DSASignature signature = key.Sign(digest)) { Console.Write("."); BigNumber r = BigNumber.FromDecimalString(r_in); BigNumber s = BigNumber.FromDecimalString(s_in); Assert.AreEqual(r, signature.R); Assert.AreEqual(s, signature.S); Console.Write("."); Assert.IsTrue(key.Verify(digest, signature)); Console.Write("."); } } } Console.WriteLine(" ok"); }
public void Execute(string[] args) { using (MessageDigestContext ctx = new MessageDigestContext(MessageDigest.SHA)) { for (int i = 0; i < tests.Length; i++) { byte[] msg = Encoding.ASCII.GetBytes(this.tests[i]); byte[] ret = ctx.Digest(msg); string str = BitConverter.ToString(ret); if (str != this.results[i]) { Console.WriteLine("error calculating SHA on {0}", this.tests[i]); Console.WriteLine("got {0} instead of {1}", str, this.results[i]); } else Console.WriteLine("test {0} ok", i); } byte[] buf = Encoding.ASCII.GetBytes(new string('a', 1000)); ctx.Init(); for (int i = 0; i < 1000; i++) { ctx.Update(buf); } byte[] retx = ctx.DigestFinal(); string strx = BitConverter.ToString(retx); if (strx != bigret) { Console.WriteLine("error calculating SHA 'a' * 1000"); Console.WriteLine("got {0} instead of {1}", strx, bigret); } else Console.WriteLine("test 3 ok"); } }
private void GenericTest(string name, MessageDigestContext ctx, byte[][] results, int alen) { Console.WriteLine("Testing {0}", name); byte[] digest = ctx.Digest(Encoding.ASCII.GetBytes("abc")); string str1 = BitConverter.ToString(digest); string str2 = BitConverter.ToString(results[0]); Assert.AreEqual(str2, str1); Console.Write("."); byte[] msg = Encoding.ASCII.GetBytes( "abcdefgh" + "bcdefghi" + "cdefghij" + "defghijk" + "efghijkl" + "fghijklm" + "ghijklmn" + "hijklmno" + "ijklmnop" + "jklmnopq" + "klmnopqr" + "lmnopqrs" + "mnopqrst" + "nopqrstu"); digest = ctx.Digest(msg); str1 = BitConverter.ToString(digest); str2 = BitConverter.ToString(results[1]); Assert.AreEqual(str2, str1); Console.Write("."); ctx.Init(); for (int i = 0; i < 1000000; i += alen) { msg = Encoding.ASCII.GetBytes(new string('a', alen)); int len = (1000000 - i) < alen ? 1000000 - i : alen; byte[] tmp = new byte[len]; Buffer.BlockCopy(msg, 0, tmp, 0, len); ctx.Update(tmp); } digest = ctx.DigestFinal(); str1 = BitConverter.ToString(digest); str2 = BitConverter.ToString(results[2]); Assert.AreEqual(str2, str1); Console.Write("."); Console.WriteLine(" passed."); }
private byte[] KDF1_SHA1(byte[] msg) { using (MessageDigestContext mdc = new MessageDigestContext(MessageDigest.SHA1)) { return mdc.Digest(msg); } }
private void GenericTest(string name, MessageDigestContext ctx, byte[][] results) { Console.WriteLine("Testing {0}", name); byte[] digest = ctx.Digest(Encoding.ASCII.GetBytes("abc")); string str1 = BitConverter.ToString(digest); string str2 = BitConverter.ToString(results[0]); Assert.AreEqual(str2, str1); Console.Write("."); byte[] msg = Encoding.ASCII.GetBytes( "abcdbcde" + "cdefdefg" + "efghfghi" + "ghijhijk" + "ijkljklm" + "klmnlmno" + "mnopnopq"); digest = ctx.Digest(msg); str1 = BitConverter.ToString(digest); str2 = BitConverter.ToString(results[1]); Assert.AreEqual(str2, str1); Console.Write("."); ctx.Init(); for (int i = 0; i < 1000000; i += 160) { msg = Encoding.ASCII.GetBytes( "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa" + "aaaaaaaa"); int len = (1000000 - i) < 160 ? 1000000 - i : 160; byte[] tmp = new byte[len]; Buffer.BlockCopy(msg, 0, tmp, 0, len); ctx.Update(tmp); } digest = ctx.DigestFinal(); str1 = BitConverter.ToString(digest); str2 = BitConverter.ToString(results[2]); Assert.AreEqual(str2, str1); Console.Write("."); Console.WriteLine(" passed."); }