no commit message
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
/**
|
||||
* SHA224Test
|
||||
*
|
||||
* A test class for SHA224
|
||||
* Copyright (c) 2007 Henri Torgemane
|
||||
*
|
||||
* See LICENSE.txt for full license information.
|
||||
*/
|
||||
package com.hurlant.crypto.tests
|
||||
{
|
||||
import com.hurlant.crypto.hash.SHA224;
|
||||
import com.hurlant.util.Hex;
|
||||
|
||||
import flash.utils.ByteArray;
|
||||
|
||||
public class SHA224Test extends TestCase
|
||||
{
|
||||
public function SHA224Test(h:ITestHarness)
|
||||
{
|
||||
super(h,"SHA-224 Test");
|
||||
runTest(testSha224,"SHA-224 Test Vectors");
|
||||
// takes a few seconds, but uncomment if you must.
|
||||
//runTest(testLongSha224,"SHA-224 Long Test Vectors");
|
||||
h.endTestCase();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test vectors courtesy of
|
||||
* http://www.ietf.org/rfc/rfc3874.txt
|
||||
*/
|
||||
public function testSha224():void {
|
||||
var srcs:Array = [
|
||||
Hex.fromString("abc"),
|
||||
Hex.fromString("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")];
|
||||
var hashes:Array = [
|
||||
"23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7",
|
||||
"75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525"];
|
||||
|
||||
var sha224:SHA224 = new SHA224;
|
||||
for (var i:uint=0;i<srcs.length;i++) {
|
||||
var src:ByteArray = Hex.toArray(srcs[i]);
|
||||
var digest:ByteArray = sha224.hash(src);
|
||||
assert("SHA224 Test "+i, Hex.fromArray(digest) == hashes[i]);
|
||||
}
|
||||
}
|
||||
public function testLongSha224():void {
|
||||
var src:ByteArray = new ByteArray;
|
||||
var a:uint = "a".charCodeAt(0);
|
||||
for (var i:uint=0;i<1e6;i++) {
|
||||
src[i] = a;
|
||||
}
|
||||
var sha224:SHA224 = new SHA224;
|
||||
var digest:ByteArray = sha224.hash(src);
|
||||
var hash:String = "20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67";
|
||||
assert("SHA224 Long Test", Hex.fromArray(digest) == hash);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user