package com.adobe.crypto
{
import flash.utils.ByteArray;
import flexunit.framework.TestCase;
import flexunit.framework.TestSuite;
import com.adobe.crypto.SHA256;
public class SHA256Test extends TestCase {
public function SHA256Test( methodName:String = null ) {
super( methodName );
}
public function testSHA256():void {
assertSHA256( "abc", "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" );
assertSHA256( "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1");
var millionAs:String = new String("");
for ( var i:int = 0; i < 1000000; i++ ) {
millionAs += "a";
}
assertSHA256( millionAs, "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0" );
assertSHA256( "The quick brown fox jumps over the lazy dog", "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592" );
assertSHA256( "The quick brown fox jumps over the lazy cog", "e4c4d8f3bf76b692de791a173e05321150f7a345b46484fe427f6acc7ecc81be" );
assertSHA256( "", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" );
}
public function testSHA256Binary():void {
assertSHA256Binary( "abc", "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" );
assertSHA256Binary( "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1");
var millionAs:String = new String("");
for ( var i:int = 0; i < 1000000; i++ ) {
millionAs += "a";
}
assertSHA256Binary( millionAs, "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0" );
assertSHA256Binary( "The quick brown fox jumps over the lazy dog", "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592" );
assertSHA256Binary( "The quick brown fox jumps over the lazy cog", "e4c4d8f3bf76b692de791a173e05321150f7a345b46484fe427f6acc7ecc81be" );
assertSHA256Binary( "", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" );
}
public function testSHA256Base64():void {
}
private function assertSHA256( value:String, expected:String ):void {
var result:String = SHA256.hash( value );
assertTrue( "Hash of '" + value + "' returned wrong value ('" + result + "')",
result == expected );
}
private function assertSHA256Binary(value:String, expected:String):void {
var byteArray:ByteArray = new ByteArray();
byteArray.writeUTFBytes(value);
var result:String = SHA256.hashBytes( byteArray );
assertTrue( "Hash of '" + value + "' returned wrong value ('" + result + "')",
result == expected );
}
private function assertSHA256Base64( value:String, expected:String ):void {
var result:String = SHA256.hashToBase64( value );
assertTrue( "Hash of '" + value + "' returned wrong value ('" + result + "')",
result == expected );
}
}
}