Commit | Line | Data |
---|---|---|
c0d53c71 JA |
1 | /**\r |
2 | * SHA256Test\r | |
3 | * \r | |
4 | * A test class for SHA256\r | |
5 | * Copyright (c) 2007 Henri Torgemane\r | |
6 | * \r | |
7 | * See LICENSE.txt for full license information.\r | |
8 | */\r | |
9 | package com.hurlant.crypto.tests\r | |
10 | {\r | |
11 | import com.hurlant.crypto.hash.SHA256;\r | |
12 | import com.hurlant.util.Hex;\r | |
13 | \r | |
14 | import flash.utils.ByteArray;\r | |
15 | \r | |
16 | public class SHA256Test extends TestCase\r | |
17 | {\r | |
18 | public function SHA256Test(h:ITestHarness)\r | |
19 | {\r | |
20 | super(h,"SHA-256 Test");\r | |
21 | runTest(testSha256,"SHA-256 Test Vectors");\r | |
22 | h.endTestCase();\r | |
23 | }\r | |
24 | \r | |
25 | /**\r | |
26 | * Test vectors courtesy of\r | |
27 | * https://www.cosic.esat.kuleuven.be/nessie/testvectors/hash/sha/Sha-2-256.unverified.test-vectors\r | |
28 | */\r | |
29 | public function testSha256():void {\r | |
30 | var srcs:Array = [\r | |
31 | Hex.fromString(""),\r | |
32 | Hex.fromString("a"),\r | |
33 | Hex.fromString("abc"),\r | |
34 | Hex.fromString("message digest"),\r | |
35 | Hex.fromString("abcdefghijklmnopqrstuvwxyz"),\r | |
36 | Hex.fromString("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"),\r | |
37 | Hex.fromString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),\r | |
38 | Hex.fromString("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),\r | |
39 | ];\r | |
40 | var hashes:Array = [\r | |
41 | "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",\r | |
42 | "CA978112CA1BBDCAFAC231B39A23DC4DA786EFF8147C4E72B9807785AFEE48BB",\r | |
43 | "BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD",\r | |
44 | "F7846F55CF23E14EEBEAB5B4E1550CAD5B509E3348FBC4EFA3A1413D393CB650",\r | |
45 | "71C480DF93D6AE2F1EFAD1447C66C9525E316218CF51FC8D9ED832F2DAF18B73",\r | |
46 | "248D6A61D20638B8E5C026930C3E6039A33CE45964FF2167F6ECEDD419DB06C1",\r | |
47 | "DB4BFCBD4DA0CD85A60C3C37D3FBD8805C77F15FC6B1FDFE614EE0A7C8FDB4C0",\r | |
48 | "F371BC4A311F2B009EEF952DD83CA80E2B60026C8E935592D0F9C308453C813E"];\r | |
49 | \r | |
50 | // loop.\r | |
51 | var sha256:SHA256 = new SHA256;\r | |
52 | for (var i:uint=0;i<srcs.length;i++) {\r | |
53 | var src:ByteArray = Hex.toArray(srcs[i]);\r | |
54 | var digest:ByteArray = sha256.hash(src);\r | |
55 | assert("SHA256 Test "+i, Hex.fromArray(digest) == hashes[i].toLowerCase());\r | |
56 | }\r | |
57 | \r | |
58 | }\r | |
59 | }\r | |
60 | } |