| 782 | using namespace Firebird; |
| 783 | |
| 784 | int main(void) |
| 785 | { |
| 786 | static const char *vectors[4][3] = |
| 787 | { /* SHA-224 */ |
| 788 | { |
| 789 | "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7", |
| 790 | "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525", |
| 791 | "20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67", |
| 792 | }, |
| 793 | /* SHA-256 */ |
| 794 | { |
| 795 | "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", |
| 796 | "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1", |
| 797 | "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0", |
| 798 | }, |
| 799 | /* SHA-384 */ |
| 800 | { |
| 801 | "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed" |
| 802 | "8086072ba1e7cc2358baeca134c825a7", |
| 803 | "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712" |
| 804 | "fcc7c71a557e2db966c3e9fa91746039", |
| 805 | "9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b" |
| 806 | "07b8b3dc38ecc4ebae97ddd87f3d8985", |
| 807 | }, |
| 808 | /* SHA-512 */ |
| 809 | { |
| 810 | "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" |
| 811 | "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f", |
| 812 | "8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018" |
| 813 | "501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909", |
| 814 | "e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973eb" |
| 815 | "de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b" |
| 816 | } |
| 817 | }; |
| 818 | |
| 819 | static const char message1[] = "abc"; |
| 820 | static const char message2a[] = "abcdbcdecdefdefgefghfghighijhi" |
| 821 | "jkijkljklmklmnlmnomnopnopq"; |
| 822 | static const char message2b[] = "abcdefghbcdefghicdefghijdefghijkefghij" |
| 823 | "klfghijklmghijklmnhijklmnoijklmnopjklm" |
| 824 | "nopqklmnopqrlmnopqrsmnopqrstnopqrstu"; |
| 825 | unsigned char *message3; |
| 826 | unsigned int message3_len = 1000000; |
| 827 | unsigned char digest[SHA512_DIGEST_SIZE]; |
| 828 | |
| 829 | message3 = (unsigned char *) malloc(message3_len); |
| 830 | |
| 831 | if (message3 == NULL) |
| 832 | { |
| 833 | fprintf(stderr, "Can't allocate memory\n"); |
| 834 | return -1; |
| 835 | } |
| 836 | |
| 837 | memset(message3, 'a', message3_len); |
| 838 | printf("SHA-2 FIPS 180-2 Validation tests\n\n"); |
| 839 | printf("SHA-224 Test vectors\n"); |
| 840 | |
| 841 | get_digest<sha224>((const unsigned char *) message1, strlen(message1), digest); |