4 * A test class for SHA224
\r
5 * Copyright (c) 2007 Henri Torgemane
\r
7 * See LICENSE.txt for full license information.
\r
9 package com.hurlant.crypto.tests
\r
11 import com.hurlant.crypto.hash.SHA224;
\r
12 import com.hurlant.util.Hex;
\r
14 import flash.utils.ByteArray;
\r
16 public class SHA224Test extends TestCase
\r
18 public function SHA224Test(h:ITestHarness)
\r
20 super(h,"SHA-224 Test");
\r
21 runTest(testSha224,"SHA-224 Test Vectors");
\r
22 // takes a few seconds, but uncomment if you must.
\r
23 //runTest(testLongSha224,"SHA-224 Long Test Vectors");
\r
28 * Test vectors courtesy of
\r
29 * http://www.ietf.org/rfc/rfc3874.txt
\r
31 public function testSha224():void {
\r
33 Hex.fromString("abc"),
\r
34 Hex.fromString("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")];
\r
35 var hashes:Array = [
\r
36 "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7",
\r
37 "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525"];
\r
39 var sha224:SHA224 = new SHA224;
\r
40 for (var i:uint=0;i<srcs.length;i++) {
\r
41 var src:ByteArray = Hex.toArray(srcs[i]);
\r
42 var digest:ByteArray = sha224.hash(src);
\r
43 assert("SHA224 Test "+i, Hex.fromArray(digest) == hashes[i]);
\r
46 public function testLongSha224():void {
\r
47 var src:ByteArray = new ByteArray;
\r
48 var a:uint = "a".charCodeAt(0);
\r
49 for (var i:uint=0;i<1e6;i++) {
\r
52 var sha224:SHA224 = new SHA224;
\r
53 var digest:ByteArray = sha224.hash(src);
\r
54 var hash:String = "20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67";
\r
55 assert("SHA224 Long Test", Hex.fromArray(digest) == hash);
\r