From bb756eebdac6fd24e8919e2c43f7d2c8c4091f59 Mon Sep 17 00:00:00 2001 From: RajithaY Date: Tue, 25 Apr 2017 03:31:15 -0700 Subject: Adding qemu as a submodule of KVMFORNFV This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY --- qemu/roms/ipxe/src/tests/aes_test.c | 193 -- qemu/roms/ipxe/src/tests/base16_test.c | 137 -- qemu/roms/ipxe/src/tests/base64_test.c | 140 -- qemu/roms/ipxe/src/tests/bigint_test.c | 2441 -------------------- qemu/roms/ipxe/src/tests/bofm_test.c | 174 -- qemu/roms/ipxe/src/tests/byteswap_test.c | 96 - qemu/roms/ipxe/src/tests/cipher_test.c | 185 -- qemu/roms/ipxe/src/tests/cipher_test.h | 111 - qemu/roms/ipxe/src/tests/cms_test.c | 1481 ------------ .../roms/ipxe/src/tests/comboot/shuffle-simple.asm | 40 - qemu/roms/ipxe/src/tests/comboot/version.asm | 136 -- qemu/roms/ipxe/src/tests/crc32_test.c | 120 - qemu/roms/ipxe/src/tests/deflate_test.c | 250 -- qemu/roms/ipxe/src/tests/digest_test.c | 159 -- qemu/roms/ipxe/src/tests/digest_test.h | 115 - qemu/roms/ipxe/src/tests/dns_test.c | 609 ----- qemu/roms/ipxe/src/tests/entropy_sample.c | 76 - qemu/roms/ipxe/src/tests/gdbstub_test.S | 54 - qemu/roms/ipxe/src/tests/gdbstub_test.gdb | 116 - qemu/roms/ipxe/src/tests/hash_df_test.c | 902 -------- qemu/roms/ipxe/src/tests/hmac_drbg_test.c | 1390 ----------- qemu/roms/ipxe/src/tests/ipv4_test.c | 154 -- qemu/roms/ipxe/src/tests/ipv6_test.c | 223 -- qemu/roms/ipxe/src/tests/linebuf_test.c | 320 --- qemu/roms/ipxe/src/tests/list_test.c | 487 ---- qemu/roms/ipxe/src/tests/math_test.c | 404 ---- qemu/roms/ipxe/src/tests/md5_test.c | 76 - qemu/roms/ipxe/src/tests/memcpy_test.c | 273 --- qemu/roms/ipxe/src/tests/memset_test.c | 157 -- qemu/roms/ipxe/src/tests/ocsp_test.c | 1866 --------------- qemu/roms/ipxe/src/tests/pccrc_test.c | 529 ----- qemu/roms/ipxe/src/tests/pixbuf_test.c | 83 - qemu/roms/ipxe/src/tests/pixbuf_test.h | 66 - qemu/roms/ipxe/src/tests/png_test.c | 1997 ---------------- qemu/roms/ipxe/src/tests/pnm_test.c | 234 -- qemu/roms/ipxe/src/tests/profile_test.c | 144 -- qemu/roms/ipxe/src/tests/pubkey_test.h | 175 -- qemu/roms/ipxe/src/tests/rsa_test.c | 496 ---- qemu/roms/ipxe/src/tests/setjmp_test.c | 171 -- qemu/roms/ipxe/src/tests/settings_test.c | 424 ---- qemu/roms/ipxe/src/tests/sha1_test.c | 81 - qemu/roms/ipxe/src/tests/sha256_test.c | 111 - qemu/roms/ipxe/src/tests/sha512_test.c | 185 -- qemu/roms/ipxe/src/tests/string_test.c | 303 --- qemu/roms/ipxe/src/tests/tcpip_test.c | 243 -- qemu/roms/ipxe/src/tests/test.c | 182 -- qemu/roms/ipxe/src/tests/tests.c | 69 - qemu/roms/ipxe/src/tests/time_test.c | 187 -- qemu/roms/ipxe/src/tests/umalloc_test.c | 26 - qemu/roms/ipxe/src/tests/uri_test.c | 878 ------- qemu/roms/ipxe/src/tests/vsprintf_test.c | 106 - qemu/roms/ipxe/src/tests/x509_test.c | 1117 --------- 52 files changed, 20692 deletions(-) delete mode 100644 qemu/roms/ipxe/src/tests/aes_test.c delete mode 100644 qemu/roms/ipxe/src/tests/base16_test.c delete mode 100644 qemu/roms/ipxe/src/tests/base64_test.c delete mode 100644 qemu/roms/ipxe/src/tests/bigint_test.c delete mode 100644 qemu/roms/ipxe/src/tests/bofm_test.c delete mode 100644 qemu/roms/ipxe/src/tests/byteswap_test.c delete mode 100644 qemu/roms/ipxe/src/tests/cipher_test.c delete mode 100644 qemu/roms/ipxe/src/tests/cipher_test.h delete mode 100644 qemu/roms/ipxe/src/tests/cms_test.c delete mode 100644 qemu/roms/ipxe/src/tests/comboot/shuffle-simple.asm delete mode 100644 qemu/roms/ipxe/src/tests/comboot/version.asm delete mode 100644 qemu/roms/ipxe/src/tests/crc32_test.c delete mode 100644 qemu/roms/ipxe/src/tests/deflate_test.c delete mode 100644 qemu/roms/ipxe/src/tests/digest_test.c delete mode 100644 qemu/roms/ipxe/src/tests/digest_test.h delete mode 100644 qemu/roms/ipxe/src/tests/dns_test.c delete mode 100644 qemu/roms/ipxe/src/tests/entropy_sample.c delete mode 100644 qemu/roms/ipxe/src/tests/gdbstub_test.S delete mode 100755 qemu/roms/ipxe/src/tests/gdbstub_test.gdb delete mode 100644 qemu/roms/ipxe/src/tests/hash_df_test.c delete mode 100644 qemu/roms/ipxe/src/tests/hmac_drbg_test.c delete mode 100644 qemu/roms/ipxe/src/tests/ipv4_test.c delete mode 100644 qemu/roms/ipxe/src/tests/ipv6_test.c delete mode 100644 qemu/roms/ipxe/src/tests/linebuf_test.c delete mode 100644 qemu/roms/ipxe/src/tests/list_test.c delete mode 100644 qemu/roms/ipxe/src/tests/math_test.c delete mode 100644 qemu/roms/ipxe/src/tests/md5_test.c delete mode 100644 qemu/roms/ipxe/src/tests/memcpy_test.c delete mode 100644 qemu/roms/ipxe/src/tests/memset_test.c delete mode 100644 qemu/roms/ipxe/src/tests/ocsp_test.c delete mode 100644 qemu/roms/ipxe/src/tests/pccrc_test.c delete mode 100644 qemu/roms/ipxe/src/tests/pixbuf_test.c delete mode 100644 qemu/roms/ipxe/src/tests/pixbuf_test.h delete mode 100644 qemu/roms/ipxe/src/tests/png_test.c delete mode 100644 qemu/roms/ipxe/src/tests/pnm_test.c delete mode 100644 qemu/roms/ipxe/src/tests/profile_test.c delete mode 100644 qemu/roms/ipxe/src/tests/pubkey_test.h delete mode 100644 qemu/roms/ipxe/src/tests/rsa_test.c delete mode 100644 qemu/roms/ipxe/src/tests/setjmp_test.c delete mode 100644 qemu/roms/ipxe/src/tests/settings_test.c delete mode 100644 qemu/roms/ipxe/src/tests/sha1_test.c delete mode 100644 qemu/roms/ipxe/src/tests/sha256_test.c delete mode 100644 qemu/roms/ipxe/src/tests/sha512_test.c delete mode 100644 qemu/roms/ipxe/src/tests/string_test.c delete mode 100644 qemu/roms/ipxe/src/tests/tcpip_test.c delete mode 100644 qemu/roms/ipxe/src/tests/test.c delete mode 100644 qemu/roms/ipxe/src/tests/tests.c delete mode 100644 qemu/roms/ipxe/src/tests/time_test.c delete mode 100644 qemu/roms/ipxe/src/tests/umalloc_test.c delete mode 100644 qemu/roms/ipxe/src/tests/uri_test.c delete mode 100644 qemu/roms/ipxe/src/tests/vsprintf_test.c delete mode 100644 qemu/roms/ipxe/src/tests/x509_test.c (limited to 'qemu/roms/ipxe/src/tests') diff --git a/qemu/roms/ipxe/src/tests/aes_test.c b/qemu/roms/ipxe/src/tests/aes_test.c deleted file mode 100644 index ad66c734c..000000000 --- a/qemu/roms/ipxe/src/tests/aes_test.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * AES tests - * - * These test vectors are provided by NIST as part of the - * Cryptographic Toolkit Examples, downloadable from: - * - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/AES_Core_All.pdf - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/AES_ECB.pdf - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/AES_CBC.pdf - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include "cipher_test.h" - -/** Key used for NIST 128-bit test vectors */ -#define AES_KEY_NIST_128 \ - KEY ( 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, \ - 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c ) - -/** Key used for NIST 192-bit test vectors */ -#define AES_KEY_NIST_192 \ - KEY ( 0x8e, 0x73, 0xb0, 0xf7, 0xda, 0x0e, 0x64, 0x52, 0xc8, \ - 0x10, 0xf3, 0x2b, 0x80, 0x90, 0x79, 0xe5, 0x62, 0xf8, \ - 0xea, 0xd2, 0x52, 0x2c, 0x6b, 0x7b ) - -/** Key used for NIST 256-bit test vectors */ -#define AES_KEY_NIST_256 \ - KEY ( 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 0x2b, \ - 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81, 0x1f, 0x35, \ - 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 0x2d, 0x98, 0x10, \ - 0xa3, 0x09, 0x14, 0xdf, 0xf4 ) - -/** Dummy initialisation vector used for NIST ECB-mode test vectors */ -#define AES_IV_NIST_DUMMY \ - IV ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) - -/** Initialisation vector used for NIST CBC-mode test vectors */ -#define AES_IV_NIST_CBC \ - IV ( 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, \ - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f ) - -/** Plaintext used for NIST test vectors */ -#define AES_PLAINTEXT_NIST \ - PLAINTEXT ( 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, \ - 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, \ - 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, \ - 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, \ - 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, \ - 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, \ - 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, \ - 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 ) - -/** AES-128-ECB (same test as AES-128-Core) */ -CIPHER_TEST ( aes_128_ecb, &aes_ecb_algorithm, - AES_KEY_NIST_128, AES_IV_NIST_DUMMY, AES_PLAINTEXT_NIST, - CIPHERTEXT ( 0x3a, 0xd7, 0x7b, 0xb4, 0x0d, 0x7a, 0x36, 0x60, - 0xa8, 0x9e, 0xca, 0xf3, 0x24, 0x66, 0xef, 0x97, - 0xf5, 0xd3, 0xd5, 0x85, 0x03, 0xb9, 0x69, 0x9d, - 0xe7, 0x85, 0x89, 0x5a, 0x96, 0xfd, 0xba, 0xaf, - 0x43, 0xb1, 0xcd, 0x7f, 0x59, 0x8e, 0xce, 0x23, - 0x88, 0x1b, 0x00, 0xe3, 0xed, 0x03, 0x06, 0x88, - 0x7b, 0x0c, 0x78, 0x5e, 0x27, 0xe8, 0xad, 0x3f, - 0x82, 0x23, 0x20, 0x71, 0x04, 0x72, 0x5d, 0xd4 ) ); - -/** AES-128-CBC */ -CIPHER_TEST ( aes_128_cbc, &aes_cbc_algorithm, - AES_KEY_NIST_128, AES_IV_NIST_CBC, AES_PLAINTEXT_NIST, - CIPHERTEXT ( 0x76, 0x49, 0xab, 0xac, 0x81, 0x19, 0xb2, 0x46, - 0xce, 0xe9, 0x8e, 0x9b, 0x12, 0xe9, 0x19, 0x7d, - 0x50, 0x86, 0xcb, 0x9b, 0x50, 0x72, 0x19, 0xee, - 0x95, 0xdb, 0x11, 0x3a, 0x91, 0x76, 0x78, 0xb2, - 0x73, 0xbe, 0xd6, 0xb8, 0xe3, 0xc1, 0x74, 0x3b, - 0x71, 0x16, 0xe6, 0x9e, 0x22, 0x22, 0x95, 0x16, - 0x3f, 0xf1, 0xca, 0xa1, 0x68, 0x1f, 0xac, 0x09, - 0x12, 0x0e, 0xca, 0x30, 0x75, 0x86, 0xe1, 0xa7 ) ); - -/** AES-192-ECB (same test as AES-192-Core) */ -CIPHER_TEST ( aes_192_ecb, &aes_ecb_algorithm, - AES_KEY_NIST_192, AES_IV_NIST_DUMMY, AES_PLAINTEXT_NIST, - CIPHERTEXT ( 0xbd, 0x33, 0x4f, 0x1d, 0x6e, 0x45, 0xf2, 0x5f, - 0xf7, 0x12, 0xa2, 0x14, 0x57, 0x1f, 0xa5, 0xcc, - 0x97, 0x41, 0x04, 0x84, 0x6d, 0x0a, 0xd3, 0xad, - 0x77, 0x34, 0xec, 0xb3, 0xec, 0xee, 0x4e, 0xef, - 0xef, 0x7a, 0xfd, 0x22, 0x70, 0xe2, 0xe6, 0x0a, - 0xdc, 0xe0, 0xba, 0x2f, 0xac, 0xe6, 0x44, 0x4e, - 0x9a, 0x4b, 0x41, 0xba, 0x73, 0x8d, 0x6c, 0x72, - 0xfb, 0x16, 0x69, 0x16, 0x03, 0xc1, 0x8e, 0x0e ) ); - -/** AES-192-CBC */ -CIPHER_TEST ( aes_192_cbc, &aes_cbc_algorithm, - AES_KEY_NIST_192, AES_IV_NIST_CBC, AES_PLAINTEXT_NIST, - CIPHERTEXT ( 0x4f, 0x02, 0x1d, 0xb2, 0x43, 0xbc, 0x63, 0x3d, - 0x71, 0x78, 0x18, 0x3a, 0x9f, 0xa0, 0x71, 0xe8, - 0xb4, 0xd9, 0xad, 0xa9, 0xad, 0x7d, 0xed, 0xf4, - 0xe5, 0xe7, 0x38, 0x76, 0x3f, 0x69, 0x14, 0x5a, - 0x57, 0x1b, 0x24, 0x20, 0x12, 0xfb, 0x7a, 0xe0, - 0x7f, 0xa9, 0xba, 0xac, 0x3d, 0xf1, 0x02, 0xe0, - 0x08, 0xb0, 0xe2, 0x79, 0x88, 0x59, 0x88, 0x81, - 0xd9, 0x20, 0xa9, 0xe6, 0x4f, 0x56, 0x15, 0xcd ) ); - -/** AES-256-ECB (same test as AES-256-Core) */ -CIPHER_TEST ( aes_256_ecb, &aes_ecb_algorithm, - AES_KEY_NIST_256, AES_IV_NIST_DUMMY, AES_PLAINTEXT_NIST, - CIPHERTEXT ( 0xf3, 0xee, 0xd1, 0xbd, 0xb5, 0xd2, 0xa0, 0x3c, - 0x06, 0x4b, 0x5a, 0x7e, 0x3d, 0xb1, 0x81, 0xf8, - 0x59, 0x1c, 0xcb, 0x10, 0xd4, 0x10, 0xed, 0x26, - 0xdc, 0x5b, 0xa7, 0x4a, 0x31, 0x36, 0x28, 0x70, - 0xb6, 0xed, 0x21, 0xb9, 0x9c, 0xa6, 0xf4, 0xf9, - 0xf1, 0x53, 0xe7, 0xb1, 0xbe, 0xaf, 0xed, 0x1d, - 0x23, 0x30, 0x4b, 0x7a, 0x39, 0xf9, 0xf3, 0xff, - 0x06, 0x7d, 0x8d, 0x8f, 0x9e, 0x24, 0xec, 0xc7 ) ); - -/** AES-256-CBC */ -CIPHER_TEST ( aes_256_cbc, &aes_cbc_algorithm, - AES_KEY_NIST_256, AES_IV_NIST_CBC, AES_PLAINTEXT_NIST, - CIPHERTEXT ( 0xf5, 0x8c, 0x4c, 0x04, 0xd6, 0xe5, 0xf1, 0xba, - 0x77, 0x9e, 0xab, 0xfb, 0x5f, 0x7b, 0xfb, 0xd6, - 0x9c, 0xfc, 0x4e, 0x96, 0x7e, 0xdb, 0x80, 0x8d, - 0x67, 0x9f, 0x77, 0x7b, 0xc6, 0x70, 0x2c, 0x7d, - 0x39, 0xf2, 0x33, 0x69, 0xa9, 0xd9, 0xba, 0xcf, - 0xa5, 0x30, 0xe2, 0x63, 0x04, 0x23, 0x14, 0x61, - 0xb2, 0xeb, 0x05, 0xe2, 0xc3, 0x9b, 0xe9, 0xfc, - 0xda, 0x6c, 0x19, 0x07, 0x8c, 0x6a, 0x9d, 0x1b ) ); - -/** - * Perform AES self-test - * - */ -static void aes_test_exec ( void ) { - struct cipher_algorithm *ecb = &aes_ecb_algorithm; - struct cipher_algorithm *cbc = &aes_cbc_algorithm; - unsigned int keylen; - - /* Correctness tests */ - cipher_ok ( &aes_128_ecb ); - cipher_ok ( &aes_128_cbc ); - cipher_ok ( &aes_192_ecb ); - cipher_ok ( &aes_192_cbc ); - cipher_ok ( &aes_256_ecb ); - cipher_ok ( &aes_256_cbc ); - - /* Speed tests */ - for ( keylen = 128 ; keylen <= 256 ; keylen += 64 ) { - DBG ( "AES-%d-ECB encryption required %ld cycles per byte\n", - keylen, cipher_cost_encrypt ( ecb, ( keylen / 8 ) ) ); - DBG ( "AES-%d-ECB decryption required %ld cycles per byte\n", - keylen, cipher_cost_decrypt ( ecb, ( keylen / 8 ) ) ); - DBG ( "AES-%d-CBC encryption required %ld cycles per byte\n", - keylen, cipher_cost_encrypt ( cbc, ( keylen / 8 ) ) ); - DBG ( "AES-%d-CBC decryption required %ld cycles per byte\n", - keylen, cipher_cost_decrypt ( cbc, ( keylen / 8 ) ) ); - } -} - -/** AES self-test */ -struct self_test aes_test __self_test = { - .name = "aes", - .exec = aes_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/base16_test.c b/qemu/roms/ipxe/src/tests/base16_test.c deleted file mode 100644 index 46884aef7..000000000 --- a/qemu/roms/ipxe/src/tests/base16_test.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Base16 tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include - -/** A Base16 test */ -struct base16_test { - /** Raw data */ - const void *data; - /** Length of raw data */ - size_t len; - /** Base16-encoded data */ - const char *encoded; -}; - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define a base16 test */ -#define BASE16( name, DATA, ENCODED ) \ - static const uint8_t name ## _data[] = DATA; \ - static struct base16_test name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - .encoded = ENCODED, \ - } - -/** Empty data test */ -BASE16 ( empty_test, DATA(), "" ); - -/** "Hello world" test */ -BASE16 ( hw_test, - DATA ( 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' ), - "48656c6c6f20776f726c64" ); - -/** Random data test */ -BASE16 ( random_test, - DATA ( 0x8b, 0x1a, 0xa2, 0x6c, 0xa9, 0x38, 0x43, 0xb8, 0x81, 0xf8, - 0x30, 0x44, 0xb2, 0x32, 0x6e, 0x82, 0xfe, 0x0f, 0x84, 0x91 ), - "8b1aa26ca93843b881f83044b2326e82fe0f8491" ); - -/** - * Report a base16 encoding test result - * - * @v test Base16 test - * @v file Test code file - * @v line Test code line - */ -static void base16_encode_okx ( struct base16_test *test, const char *file, - unsigned int line ) { - size_t len = base16_encoded_len ( test->len ); - char buf[ len + 1 /* NUL */ ]; - size_t check_len; - - okx ( len == strlen ( test->encoded ), file, line ); - check_len = base16_encode ( test->data, test->len, buf, sizeof ( buf )); - okx ( check_len == len, file, line ); - okx ( strcmp ( test->encoded, buf ) == 0, file, line ); -} -#define base16_encode_ok( test ) base16_encode_okx ( test, __FILE__, __LINE__ ) - -/** - * Report a base16 decoding test result - * - * @v test Base16 test - * @v file Test code file - * @v line Test code line - */ -static void base16_decode_okx ( struct base16_test *test, const char *file, - unsigned int line ) { - size_t max_len = base16_decoded_max_len ( test->encoded ); - uint8_t buf[max_len]; - int len; - - len = base16_decode ( test->encoded, buf, sizeof ( buf ) ); - okx ( len >= 0, file, line ); - okx ( ( size_t ) len <= max_len, file, line ); - okx ( ( size_t ) len == test->len, file, line ); - okx ( memcmp ( test->data, buf, len ) == 0, file, line ); -} -#define base16_decode_ok( test ) base16_decode_okx ( test, __FILE__, __LINE__ ) - -/** - * Perform Base16 self-tests - * - */ -static void base16_test_exec ( void ) { - - base16_encode_ok ( &empty_test ); - base16_decode_ok ( &empty_test ); - - base16_encode_ok ( &hw_test ); - base16_decode_ok ( &hw_test ); - - base16_encode_ok ( &random_test ); - base16_decode_ok ( &random_test ); -} - -/** Base16 self-test */ -struct self_test base16_test __self_test = { - .name = "base16", - .exec = base16_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/base64_test.c b/qemu/roms/ipxe/src/tests/base64_test.c deleted file mode 100644 index 0fc595d90..000000000 --- a/qemu/roms/ipxe/src/tests/base64_test.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Base64 tests - * - * Test vectors generated using "base64 -w 0" - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include - -/** A Base64 test */ -struct base64_test { - /** Raw data */ - const void *data; - /** Length of raw data */ - size_t len; - /** Base64-encoded data */ - const char *encoded; -}; - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define a base64 test */ -#define BASE64( name, DATA, ENCODED ) \ - static const uint8_t name ## _data[] = DATA; \ - static struct base64_test name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - .encoded = ENCODED, \ - } - -/** Empty data test */ -BASE64 ( empty_test, DATA(), "" ); - -/** "Hello world" test */ -BASE64 ( hw_test, - DATA ( 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' ), - "SGVsbG8gd29ybGQ=" ); - -/** Random data test */ -BASE64 ( random_test, - DATA ( 0x36, 0x03, 0x84, 0xdc, 0x4e, 0x03, 0x46, 0xa0, 0xb5, 0x2d, - 0x03, 0x6e, 0xd0, 0x56, 0xed, 0xa0, 0x37, 0x02, 0xac, 0xc6, - 0x65, 0xd1 ), - "NgOE3E4DRqC1LQNu0FbtoDcCrMZl0Q==" ); - -/** - * Report a base64 encoding test result - * - * @v test Base64 test - * @v file Test code file - * @v line Test code line - */ -static void base64_encode_okx ( struct base64_test *test, const char *file, - unsigned int line ) { - size_t len = base64_encoded_len ( test->len ); - char buf[ len + 1 /* NUL */ ]; - size_t check_len; - - okx ( len == strlen ( test->encoded ), file, line ); - check_len = base64_encode ( test->data, test->len, buf, sizeof ( buf )); - okx ( check_len == len, file, line ); - okx ( strcmp ( test->encoded, buf ) == 0, file, line ); -} -#define base64_encode_ok( test ) base64_encode_okx ( test, __FILE__, __LINE__ ) - -/** - * Report a base64 decoding test result - * - * @v test Base64 test - * @v file Test code file - * @v line Test code line - */ -static void base64_decode_okx ( struct base64_test *test, const char *file, - unsigned int line ) { - size_t max_len = base64_decoded_max_len ( test->encoded ); - uint8_t buf[max_len]; - int len; - - len = base64_decode ( test->encoded, buf, sizeof ( buf ) ); - okx ( len >= 0, file, line ); - okx ( ( size_t ) len <= max_len, file, line ); - okx ( ( size_t ) len == test->len, file, line ); - okx ( memcmp ( test->data, buf, len ) == 0, file, line ); -} -#define base64_decode_ok( test ) base64_decode_okx ( test, __FILE__, __LINE__ ) - -/** - * Perform Base64 self-tests - * - */ -static void base64_test_exec ( void ) { - - base64_encode_ok ( &empty_test ); - base64_decode_ok ( &empty_test ); - - base64_encode_ok ( &hw_test ); - base64_decode_ok ( &hw_test ); - - base64_encode_ok ( &random_test ); - base64_decode_ok ( &random_test ); -} - -/** Base64 self-test */ -struct self_test base64_test __self_test = { - .name = "base64", - .exec = base64_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/bigint_test.c b/qemu/roms/ipxe/src/tests/bigint_test.c deleted file mode 100644 index 8d40c3188..000000000 --- a/qemu/roms/ipxe/src/tests/bigint_test.c +++ /dev/null @@ -1,2441 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Big integer self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include - -/** Define inline big integer */ -#define BIGINT(...) { __VA_ARGS__ } - -/* Provide global functions to allow inspection of generated assembly code */ - -void bigint_init_sample ( bigint_element_t *value0, unsigned int size, - const void *data, size_t len ) { - bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( void * ) value0 ); - - bigint_init ( value, data, len ); -} - -void bigint_done_sample ( const bigint_element_t *value0, unsigned int size, - void *out, size_t len ) { - const bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( const void * ) value0 ); - - bigint_done ( value, out, len ); -} - -void bigint_add_sample ( const bigint_element_t *addend0, - bigint_element_t *value0, unsigned int size ) { - const bigint_t ( size ) *addend __attribute__ (( may_alias )) - = ( ( const void * ) addend0 ); - bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( void * ) value0 ); - - bigint_add ( addend, value ); -} - -void bigint_subtract_sample ( const bigint_element_t *subtrahend0, - bigint_element_t *value0, unsigned int size ) { - const bigint_t ( size ) *subtrahend __attribute__ (( may_alias )) - = ( ( const void * ) subtrahend0 ); - bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( void * ) value0 ); - - bigint_subtract ( subtrahend, value ); -} - -void bigint_rol_sample ( bigint_element_t *value0, unsigned int size ) { - bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( void * ) value0 ); - - bigint_rol ( value ); -} - -void bigint_ror_sample ( bigint_element_t *value0, unsigned int size ) { - bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( void * ) value0 ); - - bigint_ror ( value ); -} - -int bigint_is_zero_sample ( const bigint_element_t *value0, - unsigned int size ) { - const bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( const void * ) value0 ); - - return bigint_is_zero ( value ); -} - -int bigint_is_geq_sample ( const bigint_element_t *value0, - const bigint_element_t *reference0, - unsigned int size ) { - const bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( const void * ) value0 ); - const bigint_t ( size ) *reference __attribute__ (( may_alias )) - = ( ( const void * ) reference0 ); - - return bigint_is_geq ( value, reference ); -} - -int bigint_bit_is_set_sample ( const bigint_element_t *value0, - unsigned int size, unsigned int bit ) { - const bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( const void * ) value0 ); - - return bigint_bit_is_set ( value, bit ); -} - -int bigint_max_set_bit_sample ( const bigint_element_t *value0, - unsigned int size ) { - const bigint_t ( size ) *value __attribute__ (( may_alias )) - = ( ( const void * ) value0 ); - - return bigint_max_set_bit ( value ); -} - -void bigint_grow_sample ( const bigint_element_t *source0, - unsigned int source_size, bigint_element_t *dest0, - unsigned int dest_size ) { - const bigint_t ( source_size ) *source __attribute__ (( may_alias )) - = ( ( const void * ) source0 ); - bigint_t ( dest_size ) *dest __attribute__ (( may_alias )) - = ( ( void * ) dest0 ); - - bigint_grow ( source, dest ); -} - -void bigint_shrink_sample ( const bigint_element_t *source0, - unsigned int source_size, bigint_element_t *dest0, - unsigned int dest_size ) { - const bigint_t ( source_size ) *source __attribute__ (( may_alias )) - = ( ( const void * ) source0 ); - bigint_t ( dest_size ) *dest __attribute__ (( may_alias )) - = ( ( void * ) dest0 ); - - bigint_shrink ( source, dest ); -} - -void bigint_multiply_sample ( const bigint_element_t *multiplicand0, - const bigint_element_t *multiplier0, - bigint_element_t *result0, - unsigned int size ) { - const bigint_t ( size ) *multiplicand __attribute__ (( may_alias )) - = ( ( const void * ) multiplicand0 ); - const bigint_t ( size ) *multiplier __attribute__ (( may_alias )) - = ( ( const void * ) multiplier0 ); - bigint_t ( size * 2 ) *result __attribute__ (( may_alias )) - = ( ( void * ) result0 ); - - bigint_multiply ( multiplicand, multiplier, result ); -} - -void bigint_mod_multiply_sample ( const bigint_element_t *multiplicand0, - const bigint_element_t *multiplier0, - const bigint_element_t *modulus0, - bigint_element_t *result0, - unsigned int size, - void *tmp ) { - const bigint_t ( size ) *multiplicand __attribute__ (( may_alias )) - = ( ( const void * ) multiplicand0 ); - const bigint_t ( size ) *multiplier __attribute__ (( may_alias )) - = ( ( const void * ) multiplier0 ); - const bigint_t ( size ) *modulus __attribute__ (( may_alias )) - = ( ( const void * ) modulus0 ); - bigint_t ( size ) *result __attribute__ (( may_alias )) - = ( ( void * ) result0 ); - - bigint_mod_multiply ( multiplicand, multiplier, modulus, result, tmp ); -} - -void bigint_mod_exp_sample ( const bigint_element_t *base0, - const bigint_element_t *modulus0, - const bigint_element_t *exponent0, - bigint_element_t *result0, - unsigned int size, unsigned int exponent_size, - void *tmp ) { - const bigint_t ( size ) *base __attribute__ (( may_alias )) - = ( ( const void * ) base0 ); - const bigint_t ( size ) *modulus __attribute__ (( may_alias )) - = ( ( const void * ) modulus0 ); - const bigint_t ( exponent_size ) *exponent __attribute__ (( may_alias )) - = ( ( const void * ) exponent0 ); - bigint_t ( size ) *result __attribute__ (( may_alias )) - = ( ( void * ) result0 ); - - bigint_mod_exp ( base, modulus, exponent, result, tmp ); -} - -/** - * Report result of big integer addition test - * - * @v addend Big integer to add - * @v value Big integer to be added to - * @v expected Big integer expected result - */ -#define bigint_add_ok( addend, value, expected ) do { \ - static const uint8_t addend_raw[] = addend; \ - static const uint8_t value_raw[] = value; \ - static const uint8_t expected_raw[] = expected; \ - uint8_t result_raw[ sizeof ( expected_raw ) ]; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) addend_temp; \ - bigint_t ( size ) value_temp; \ - {} /* Fix emacs alignment */ \ - \ - assert ( bigint_size ( &addend_temp ) == \ - bigint_size ( &value_temp ) ); \ - bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \ - bigint_init ( &addend_temp, addend_raw, \ - sizeof ( addend_raw ) ); \ - DBG ( "Add:\n" ); \ - DBG_HDA ( 0, &addend_temp, sizeof ( addend_temp ) ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bigint_add ( &addend_temp, &value_temp ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \ - \ - ok ( memcmp ( result_raw, expected_raw, \ - sizeof ( result_raw ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report result of big integer subtraction test - * - * @v subtrahend Big integer to subtract - * @v value Big integer to be subtracted from - * @v expected Big integer expected result - */ -#define bigint_subtract_ok( subtrahend, value, expected ) do { \ - static const uint8_t subtrahend_raw[] = subtrahend; \ - static const uint8_t value_raw[] = value; \ - static const uint8_t expected_raw[] = expected; \ - uint8_t result_raw[ sizeof ( expected_raw ) ]; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) subtrahend_temp; \ - bigint_t ( size ) value_temp; \ - {} /* Fix emacs alignment */ \ - \ - assert ( bigint_size ( &subtrahend_temp ) == \ - bigint_size ( &value_temp ) ); \ - bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \ - bigint_init ( &subtrahend_temp, subtrahend_raw, \ - sizeof ( subtrahend_raw ) ); \ - DBG ( "Subtract:\n" ); \ - DBG_HDA ( 0, &subtrahend_temp, sizeof ( subtrahend_temp ) ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bigint_subtract ( &subtrahend_temp, &value_temp ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \ - \ - ok ( memcmp ( result_raw, expected_raw, \ - sizeof ( result_raw ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report result of big integer left rotation test - * - * @v value Big integer - * @v expected Big integer expected result - */ -#define bigint_rol_ok( value, expected ) do { \ - static const uint8_t value_raw[] = value; \ - static const uint8_t expected_raw[] = expected; \ - uint8_t result_raw[ sizeof ( expected_raw ) ]; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) value_temp; \ - {} /* Fix emacs alignment */ \ - \ - bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \ - DBG ( "Rotate left:\n" ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bigint_rol ( &value_temp ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \ - \ - ok ( memcmp ( result_raw, expected_raw, \ - sizeof ( result_raw ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report result of big integer right rotation test - * - * @v value Big integer - * @v expected Big integer expected result - */ -#define bigint_ror_ok( value, expected ) do { \ - static const uint8_t value_raw[] = value; \ - static const uint8_t expected_raw[] = expected; \ - uint8_t result_raw[ sizeof ( expected_raw ) ]; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) value_temp; \ - {} /* Fix emacs alignment */ \ - \ - bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \ - DBG ( "Rotate right:\n" ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bigint_ror ( &value_temp ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \ - \ - ok ( memcmp ( result_raw, expected_raw, \ - sizeof ( result_raw ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report result of big integer zero comparison test - * - * @v value Big integer - * @v expected Expected result - */ -#define bigint_is_zero_ok( value, expected ) do { \ - static const uint8_t value_raw[] = value; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) value_temp; \ - int is_zero; \ - {} /* Fix emacs alignment */ \ - \ - bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \ - DBG ( "Zero comparison:\n" ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - is_zero = bigint_is_zero ( &value_temp ); \ - DBG ( "...is %szero\n", ( is_zero ? "" : "not " ) ); \ - ok ( ( !! is_zero ) == ( !! (expected) ) ); \ - } while ( 0 ) - -/** - * Report result of big integer greater-than-or-equal comparison test - * - * @v value Big integer - * @v reference Reference big integer - * @v expected Expected result - */ -#define bigint_is_geq_ok( value, reference, expected ) do { \ - static const uint8_t value_raw[] = value; \ - static const uint8_t reference_raw[] = reference; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) value_temp; \ - bigint_t ( size ) reference_temp; \ - int is_geq; \ - {} /* Fix emacs alignment */ \ - \ - assert ( bigint_size ( &reference_temp ) == \ - bigint_size ( &value_temp ) ); \ - bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \ - bigint_init ( &reference_temp, reference_raw, \ - sizeof ( reference_raw ) ); \ - DBG ( "Greater-than-or-equal comparison:\n" ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - DBG_HDA ( 0, &reference_temp, sizeof ( reference_temp ) ); \ - is_geq = bigint_is_geq ( &value_temp, &reference_temp ); \ - DBG ( "...is %sgreater than or equal\n", \ - ( is_geq ? "" : "not " ) ); \ - ok ( ( !! is_geq ) == ( !! (expected) ) ); \ - } while ( 0 ) - -/** - * Report result of big integer bit-set test - * - * @v value Big integer - * @v bit Bit to test - * @v expected Expected result - */ -#define bigint_bit_is_set_ok( value, bit, expected ) do { \ - static const uint8_t value_raw[] = value; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) value_temp; \ - int bit_is_set; \ - {} /* Fix emacs alignment */ \ - \ - bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \ - DBG ( "Bit set:\n" ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - bit_is_set = bigint_bit_is_set ( &value_temp, bit ); \ - DBG ( "...bit %d is %sset\n", bit, \ - ( bit_is_set ? "" : "not " ) ); \ - ok ( ( !! bit_is_set ) == ( !! (expected) ) ); \ - } while ( 0 ) - -/** - * Report result of big integer maximum set bit test - * - * @v value Big integer - * @v expected Expected result - */ -#define bigint_max_set_bit_ok( value, expected ) do { \ - static const uint8_t value_raw[] = value; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) value_temp; \ - int max_set_bit; \ - {} /* Fix emacs alignment */ \ - \ - bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \ - DBG ( "Maximum set bit:\n" ); \ - DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \ - max_set_bit = bigint_max_set_bit ( &value_temp ); \ - DBG ( "...maximum set bit is bit %d\n", ( max_set_bit - 1 ) ); \ - ok ( max_set_bit == (expected) ); \ - } while ( 0 ) - -/** - * Report result of big integer multiplication test - * - * @v multiplicand Big integer to be multiplied - * @v multiplier Big integer to be multiplied - * @v expected Big integer expected result - */ -#define bigint_multiply_ok( multiplicand, multiplier, expected ) do { \ - static const uint8_t multiplicand_raw[] = multiplicand; \ - static const uint8_t multiplier_raw[] = multiplier; \ - static const uint8_t expected_raw[] = expected; \ - uint8_t result_raw[ sizeof ( expected_raw ) ]; \ - unsigned int size = \ - bigint_required_size ( sizeof ( multiplicand_raw ) ); \ - bigint_t ( size ) multiplicand_temp; \ - bigint_t ( size ) multiplier_temp; \ - bigint_t ( size * 2 ) result_temp; \ - {} /* Fix emacs alignment */ \ - \ - assert ( bigint_size ( &multiplier_temp ) == \ - bigint_size ( &multiplicand_temp ) ); \ - assert ( bigint_size ( &result_temp ) == \ - ( 2 * bigint_size ( &multiplicand_temp ) ) ); \ - bigint_init ( &multiplicand_temp, multiplicand_raw, \ - sizeof ( multiplicand_raw ) ); \ - bigint_init ( &multiplier_temp, multiplier_raw, \ - sizeof ( multiplier_raw ) ); \ - DBG ( "Multiply:\n" ); \ - DBG_HDA ( 0, &multiplicand_temp, sizeof ( multiplicand_temp ) );\ - DBG_HDA ( 0, &multiplier_temp, sizeof ( multiplier_temp ) ); \ - bigint_multiply ( &multiplicand_temp, &multiplier_temp, \ - &result_temp ); \ - DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \ - bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\ - \ - ok ( memcmp ( result_raw, expected_raw, \ - sizeof ( result_raw ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report result of big integer modular multiplication test - * - * @v multiplicand Big integer to be multiplied - * @v multiplier Big integer to be multiplied - * @v modulus Big integer modulus - * @v expected Big integer expected result - */ -#define bigint_mod_multiply_ok( multiplicand, multiplier, modulus, \ - expected ) do { \ - static const uint8_t multiplicand_raw[] = multiplicand; \ - static const uint8_t multiplier_raw[] = multiplier; \ - static const uint8_t modulus_raw[] = modulus; \ - static const uint8_t expected_raw[] = expected; \ - uint8_t result_raw[ sizeof ( expected_raw ) ]; \ - unsigned int size = \ - bigint_required_size ( sizeof ( multiplicand_raw ) ); \ - bigint_t ( size ) multiplicand_temp; \ - bigint_t ( size ) multiplier_temp; \ - bigint_t ( size ) modulus_temp; \ - bigint_t ( size ) result_temp; \ - size_t tmp_len = bigint_mod_multiply_tmp_len ( &modulus_temp ); \ - uint8_t tmp[tmp_len]; \ - {} /* Fix emacs alignment */ \ - \ - assert ( bigint_size ( &multiplier_temp ) == \ - bigint_size ( &multiplicand_temp ) ); \ - assert ( bigint_size ( &multiplier_temp ) == \ - bigint_size ( &modulus_temp ) ); \ - assert ( bigint_size ( &multiplier_temp ) == \ - bigint_size ( &result_temp ) ); \ - bigint_init ( &multiplicand_temp, multiplicand_raw, \ - sizeof ( multiplicand_raw ) ); \ - bigint_init ( &multiplier_temp, multiplier_raw, \ - sizeof ( multiplier_raw ) ); \ - bigint_init ( &modulus_temp, modulus_raw, \ - sizeof ( modulus_raw ) ); \ - DBG ( "Modular multiply:\n" ); \ - DBG_HDA ( 0, &multiplicand_temp, sizeof ( multiplicand_temp ) );\ - DBG_HDA ( 0, &multiplier_temp, sizeof ( multiplier_temp ) ); \ - DBG_HDA ( 0, &modulus_temp, sizeof ( modulus_temp ) ); \ - bigint_mod_multiply ( &multiplicand_temp, &multiplier_temp, \ - &modulus_temp, &result_temp, tmp ); \ - DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \ - bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\ - \ - ok ( memcmp ( result_raw, expected_raw, \ - sizeof ( result_raw ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report result of big integer modular exponentiation test - * - * @v base Big integer base - * @v modulus Big integer modulus - * @v exponent Big integer exponent - * @v expected Big integer expected result - */ -#define bigint_mod_exp_ok( base, modulus, exponent, expected ) do { \ - static const uint8_t base_raw[] = base; \ - static const uint8_t modulus_raw[] = modulus; \ - static const uint8_t exponent_raw[] = exponent; \ - static const uint8_t expected_raw[] = expected; \ - uint8_t result_raw[ sizeof ( expected_raw ) ]; \ - unsigned int size = \ - bigint_required_size ( sizeof ( base_raw ) ); \ - unsigned int exponent_size = \ - bigint_required_size ( sizeof ( exponent_raw ) ); \ - bigint_t ( size ) base_temp; \ - bigint_t ( size ) modulus_temp; \ - bigint_t ( exponent_size ) exponent_temp; \ - bigint_t ( size ) result_temp; \ - size_t tmp_len = bigint_mod_exp_tmp_len ( &modulus_temp, \ - &exponent_temp ); \ - uint8_t tmp[tmp_len]; \ - {} /* Fix emacs alignment */ \ - \ - assert ( bigint_size ( &modulus_temp ) == \ - bigint_size ( &base_temp ) ); \ - assert ( bigint_size ( &modulus_temp ) == \ - bigint_size ( &result_temp ) ); \ - bigint_init ( &base_temp, base_raw, sizeof ( base_raw ) ); \ - bigint_init ( &modulus_temp, modulus_raw, \ - sizeof ( modulus_raw ) ); \ - bigint_init ( &exponent_temp, exponent_raw, \ - sizeof ( exponent_raw ) ); \ - DBG ( "Modular exponentiation:\n" ); \ - DBG_HDA ( 0, &base_temp, sizeof ( base_temp ) ); \ - DBG_HDA ( 0, &modulus_temp, sizeof ( modulus_temp ) ); \ - DBG_HDA ( 0, &exponent_temp, sizeof ( exponent_temp ) ); \ - bigint_mod_exp ( &base_temp, &modulus_temp, &exponent_temp, \ - &result_temp, tmp ); \ - DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \ - bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\ - \ - ok ( memcmp ( result_raw, expected_raw, \ - sizeof ( result_raw ) ) == 0 ); \ - } while ( 0 ) - -/** - * Perform big integer self-tests - * - */ -static void bigint_test_exec ( void ) { - - bigint_add_ok ( BIGINT ( 0x8a ), - BIGINT ( 0x43 ), - BIGINT ( 0xcd ) ); - bigint_add_ok ( BIGINT ( 0xc5, 0x7b ), - BIGINT ( 0xd6, 0xb1 ), - BIGINT ( 0x9c, 0x2c ) ); - bigint_add_ok ( BIGINT ( 0xf9, 0xd9, 0xdc ), - BIGINT ( 0x6d, 0x4b, 0xca ), - BIGINT ( 0x67, 0x25, 0xa6 ) ); - bigint_add_ok ( BIGINT ( 0xdd, 0xc2, 0x20, 0x5f ), - BIGINT ( 0x80, 0x32, 0xc4, 0xb0 ), - BIGINT ( 0x5d, 0xf4, 0xe5, 0x0f ) ); - bigint_add_ok ( BIGINT ( 0x01, 0xed, 0x45, 0x4b, 0x41, 0xeb, 0x4c, - 0x2e, 0x53, 0x07, 0x15, 0x51, 0x56, 0x47, - 0x29, 0xfc, 0x9c, 0xbd, 0xbd, 0xfb, 0x1b, - 0xd1, 0x1d ), - BIGINT ( 0x73, 0xed, 0xfc, 0x35, 0x31, 0x22, 0xd7, - 0xb1, 0xea, 0x91, 0x5a, 0xe4, 0xba, 0xbc, - 0xa1, 0x38, 0x72, 0xae, 0x4b, 0x1c, 0xc1, - 0x05, 0xb3 ), - BIGINT ( 0x75, 0xdb, 0x41, 0x80, 0x73, 0x0e, 0x23, - 0xe0, 0x3d, 0x98, 0x70, 0x36, 0x11, 0x03, - 0xcb, 0x35, 0x0f, 0x6c, 0x09, 0x17, 0xdc, - 0xd6, 0xd0 ) ); - bigint_add_ok ( BIGINT ( 0x06, 0x8e, 0xd6, 0x18, 0xbb, 0x4b, 0x0c, - 0xc5, 0x85, 0xde, 0xee, 0x9b, 0x3f, 0x65, - 0x63, 0x86, 0xf5, 0x5a, 0x9f, 0xa2, 0xd7, - 0xb2, 0xc7, 0xb6, 0x1d, 0x28, 0x6c, 0x50, - 0x47, 0x10, 0x0a, 0x0e, 0x86, 0xcd, 0x2a, - 0x64, 0xdc, 0xe6, 0x9d, 0x96, 0xd8, 0xf4, - 0x56, 0x46, 0x6f, 0xbb, 0x7b, 0x64, 0x6f, - 0xdc, 0x2a, 0xd1, 0x3b, 0xcc, 0x03, 0x85, - 0x95, 0xf4, 0xe9, 0x68, 0x1f, 0x5c, 0xc5, - 0xbf, 0x97, 0x19, 0x12, 0x88, 0x2e, 0x88, - 0xb9, 0x34, 0xac, 0x74, 0x83, 0x2d, 0x8f, - 0xb3, 0x97, 0x53, 0x99, 0xf3, 0xb4, 0x8b, - 0x2d, 0x98, 0x69, 0x8d, 0x19, 0xf0, 0x40, - 0x66, 0x3f, 0x60, 0x78, 0x34, 0x7f, 0x9b, - 0xf7, 0x01, 0x74, 0x55, 0xca, 0x63, 0x25, - 0x7b, 0x86, 0xe9, 0x73, 0xfd, 0x5d, 0x77, - 0x32, 0x5e, 0x9e, 0x42, 0x53, 0xb6, 0x35, - 0x92, 0xb9, 0xd7, 0x1b, 0xf7, 0x16, 0x55, - 0xf6, 0xe2 ), - BIGINT ( 0x3f, 0x8f, 0x62, 0x21, 0x4a, 0x7a, 0xa2, - 0xef, 0xa8, 0x79, 0x9b, 0x73, 0xac, 0xde, - 0x72, 0xe4, 0xfc, 0x3c, 0xd3, 0xa9, 0x44, - 0x1a, 0x6a, 0x02, 0x76, 0xe3, 0x78, 0x4d, - 0x2e, 0x07, 0x9b, 0xb6, 0x3d, 0x5d, 0xc5, - 0xcd, 0x68, 0x23, 0x4b, 0x5f, 0x89, 0x0e, - 0xd7, 0xa7, 0xff, 0x18, 0x80, 0xdc, 0xfb, - 0x34, 0x45, 0xca, 0x4b, 0xdb, 0x8a, 0x19, - 0xcb, 0xc9, 0xe5, 0xa1, 0x63, 0xa2, 0x0d, - 0x56, 0xc4, 0xf9, 0x51, 0x1b, 0x88, 0x4e, - 0x36, 0xab, 0x15, 0x4d, 0x8f, 0xdc, 0x08, - 0xc4, 0x4d, 0x43, 0xc7, 0x2b, 0xc9, 0x5c, - 0x05, 0x26, 0xe3, 0x46, 0xf0, 0x64, 0xaa, - 0x02, 0xa4, 0xbe, 0x3a, 0xd1, 0xca, 0x07, - 0x6a, 0x6e, 0x62, 0xf4, 0x57, 0x71, 0x96, - 0xec, 0xf0, 0x0b, 0xac, 0xa4, 0x4a, 0xa3, - 0x6d, 0x01, 0xba, 0xbd, 0x62, 0xc0, 0x10, - 0x54, 0x33, 0x8a, 0x71, 0xef, 0xaa, 0x1c, - 0x25, 0x25 ), - BIGINT ( 0x46, 0x1e, 0x38, 0x3a, 0x05, 0xc5, 0xaf, - 0xb5, 0x2e, 0x58, 0x8a, 0x0e, 0xec, 0x43, - 0xd6, 0x6b, 0xf1, 0x97, 0x73, 0x4c, 0x1b, - 0xcd, 0x31, 0xb8, 0x94, 0x0b, 0xe4, 0x9d, - 0x75, 0x17, 0xa5, 0xc4, 0xc4, 0x2a, 0xf0, - 0x32, 0x45, 0x09, 0xe8, 0xf6, 0x62, 0x03, - 0x2d, 0xee, 0x6e, 0xd3, 0xfc, 0x41, 0x6b, - 0x10, 0x70, 0x9b, 0x87, 0xa7, 0x8d, 0x9f, - 0x61, 0xbe, 0xcf, 0x09, 0x82, 0xfe, 0xd3, - 0x16, 0x5c, 0x12, 0x63, 0xa3, 0xb6, 0xd6, - 0xef, 0xdf, 0xc1, 0xc2, 0x13, 0x09, 0x98, - 0x77, 0xe4, 0x97, 0x61, 0x1f, 0x7d, 0xe7, - 0x32, 0xbf, 0x4c, 0xd4, 0x0a, 0x54, 0xea, - 0x68, 0xe4, 0x1e, 0xb3, 0x06, 0x49, 0xa3, - 0x61, 0x6f, 0xd7, 0x4a, 0x21, 0xd4, 0xbc, - 0x68, 0x76, 0xf5, 0x20, 0xa1, 0xa8, 0x1a, - 0x9f, 0x60, 0x58, 0xff, 0xb6, 0x76, 0x45, - 0xe6, 0xed, 0x61, 0x8d, 0xe6, 0xc0, 0x72, - 0x1c, 0x07 ) ); - bigint_subtract_ok ( BIGINT ( 0x83 ), - BIGINT ( 0x50 ), - BIGINT ( 0xcd ) ); - bigint_subtract_ok ( BIGINT ( 0x2c, 0x7c ), - BIGINT ( 0x49, 0x0e ), - BIGINT ( 0x1c, 0x92 ) ); - bigint_subtract_ok ( BIGINT ( 0x9c, 0x30, 0xbf ), - BIGINT ( 0xde, 0x4e, 0x07 ), - BIGINT ( 0x42, 0x1d, 0x48 ) ); - bigint_subtract_ok ( BIGINT ( 0xbb, 0x77, 0x32, 0x5a ), - BIGINT ( 0x5a, 0xd5, 0xfe, 0x28 ), - BIGINT ( 0x9f, 0x5e, 0xcb, 0xce ) ); - bigint_subtract_ok ( BIGINT ( 0x7b, 0xaa, 0x16, 0xcf, 0x15, 0x87, - 0xe0, 0x4f, 0x2c, 0xa3, 0xec, 0x2f, - 0x46, 0xfb, 0x83, 0xc6, 0xe0, 0xee, - 0x57, 0xfa, 0x04, 0xce, 0xa6 ), - BIGINT ( 0x46, 0x55, 0xb6, 0x23, 0x63, 0xd0, - 0x55, 0xdb, 0x8f, 0xcc, 0x55, 0xa8, - 0x2f, 0x85, 0xc1, 0x9f, 0x2c, 0x13, - 0x10, 0x9e, 0x76, 0x3c, 0x11 ), - BIGINT ( 0xca, 0xab, 0x9f, 0x54, 0x4e, 0x48, - 0x75, 0x8c, 0x63, 0x28, 0x69, 0x78, - 0xe8, 0x8a, 0x3d, 0xd8, 0x4b, 0x24, - 0xb8, 0xa4, 0x71, 0x6d, 0x6b ) ); - bigint_subtract_ok ( BIGINT ( 0x5b, 0x06, 0x77, 0x7b, 0xfd, 0x34, - 0x5f, 0x0f, 0xd9, 0xbd, 0x8e, 0x5d, - 0xc8, 0x4a, 0x70, 0x95, 0x1b, 0xb6, - 0x48, 0xfb, 0x0e, 0x40, 0xce, 0x06, - 0x66, 0xcc, 0x29, 0xe9, 0x51, 0x59, - 0x59, 0xc9, 0x65, 0x07, 0x75, 0xb8, - 0xd4, 0xcb, 0x07, 0x68, 0x14, 0x48, - 0xc7, 0x1e, 0xfe, 0xb3, 0x4c, 0xf1, - 0x10, 0xf0, 0xc7, 0x82, 0x38, 0x4c, - 0xaf, 0x05, 0x6d, 0x91, 0xc5, 0x18, - 0xfd, 0x1e, 0x26, 0x1b, 0xef, 0x71, - 0x70, 0x2e, 0x06, 0x70, 0x8e, 0x54, - 0xfa, 0x2b, 0x4d, 0x96, 0x85, 0x10, - 0x03, 0x76, 0xe7, 0x17, 0x59, 0x86, - 0x6c, 0x8b, 0x24, 0x6e, 0xd9, 0x30, - 0xf3, 0xd2, 0x9b, 0x62, 0xdc, 0x23, - 0x54, 0x06, 0x51, 0xb1, 0x95, 0x58, - 0xec, 0x27, 0xf6, 0x19, 0xae, 0xf4, - 0x31, 0xec, 0x72, 0x53, 0xcd, 0x32, - 0xed, 0xf4, 0x25, 0x4a, 0x5b, 0x36, - 0xa2, 0xb4, 0xa0, 0x29, 0x0c, 0x6b, - 0x3f, 0xc2 ), - BIGINT ( 0x7a, 0xd4, 0x25, 0xf1, 0xb5, 0xf5, - 0x00, 0x96, 0x47, 0x5b, 0x4f, 0x9f, - 0x1f, 0x61, 0x69, 0xd9, 0x72, 0x47, - 0xde, 0xbd, 0x87, 0x5d, 0x50, 0x91, - 0x69, 0xd8, 0x35, 0xe0, 0x43, 0xd8, - 0xd5, 0x15, 0xf2, 0xcd, 0x01, 0x73, - 0x0d, 0x34, 0xf0, 0x34, 0x46, 0x76, - 0xc0, 0x55, 0x7b, 0x27, 0xf5, 0x7b, - 0x55, 0xe9, 0xd0, 0x29, 0x0b, 0x4b, - 0x9f, 0x07, 0xbf, 0x2c, 0x3f, 0xef, - 0x36, 0x34, 0xde, 0x29, 0x1d, 0x5d, - 0x84, 0x5a, 0x5d, 0xc1, 0x02, 0x4d, - 0x56, 0xf1, 0x47, 0x39, 0x37, 0xc9, - 0xb5, 0x5f, 0x73, 0xec, 0x7c, 0x3d, - 0xbd, 0xc0, 0xfd, 0x38, 0x6c, 0x91, - 0x88, 0x4a, 0x0f, 0xee, 0xa1, 0x80, - 0xf5, 0x6a, 0x7c, 0x8c, 0x02, 0xc3, - 0x5a, 0xb2, 0x15, 0xa6, 0x2f, 0x6b, - 0x5b, 0x78, 0xb5, 0xf3, 0xbd, 0xd0, - 0xc8, 0xbc, 0xb1, 0xbb, 0xe1, 0xce, - 0x22, 0x80, 0x34, 0x5a, 0x2a, 0x27, - 0x83, 0xdc ), - BIGINT ( 0x1f, 0xcd, 0xae, 0x75, 0xb8, 0xc0, - 0xa1, 0x86, 0x6d, 0x9d, 0xc1, 0x41, - 0x57, 0x16, 0xf9, 0x44, 0x56, 0x91, - 0x95, 0xc2, 0x79, 0x1c, 0x82, 0x8b, - 0x03, 0x0c, 0x0b, 0xf6, 0xf2, 0x7f, - 0x7b, 0x4c, 0x8d, 0xc5, 0x8b, 0xba, - 0x38, 0x69, 0xe8, 0xcc, 0x32, 0x2d, - 0xf9, 0x36, 0x7c, 0x74, 0xa8, 0x8a, - 0x44, 0xf9, 0x08, 0xa6, 0xd2, 0xfe, - 0xf0, 0x02, 0x51, 0x9a, 0x7a, 0xd6, - 0x39, 0x16, 0xb8, 0x0d, 0x2d, 0xec, - 0x14, 0x2c, 0x57, 0x50, 0x73, 0xf8, - 0x5c, 0xc5, 0xf9, 0xa2, 0xb2, 0xb9, - 0xb1, 0xe8, 0x8c, 0xd5, 0x22, 0xb7, - 0x51, 0x35, 0xd8, 0xc9, 0x93, 0x60, - 0x94, 0x77, 0x74, 0x8b, 0xc5, 0x5d, - 0xa1, 0x64, 0x2a, 0xda, 0x6d, 0x6a, - 0x6e, 0x8a, 0x1f, 0x8c, 0x80, 0x77, - 0x29, 0x8c, 0x43, 0x9f, 0xf0, 0x9d, - 0xda, 0xc8, 0x8c, 0x71, 0x86, 0x97, - 0x7f, 0xcb, 0x94, 0x31, 0x1d, 0xbc, - 0x44, 0x1a ) ); - bigint_rol_ok ( BIGINT ( 0xe0 ), - BIGINT ( 0xc0 ) ); - bigint_rol_ok ( BIGINT ( 0x43, 0x1d ), - BIGINT ( 0x86, 0x3a ) ); - bigint_rol_ok ( BIGINT ( 0xac, 0xed, 0x9b ), - BIGINT ( 0x59, 0xdb, 0x36 ) ); - bigint_rol_ok ( BIGINT ( 0x2c, 0xe8, 0x3a, 0x22 ), - BIGINT ( 0x59, 0xd0, 0x74, 0x44 ) ); - bigint_rol_ok ( BIGINT ( 0x4e, 0x88, 0x4a, 0x05, 0x5e, 0x10, 0xee, - 0x5b, 0xc6, 0x40, 0x0e, 0x03, 0xd7, 0x0d, - 0x28, 0xa5, 0x55, 0xb2, 0x50, 0xef, 0x69, - 0xd1, 0x1d ), - BIGINT ( 0x9d, 0x10, 0x94, 0x0a, 0xbc, 0x21, 0xdc, - 0xb7, 0x8c, 0x80, 0x1c, 0x07, 0xae, 0x1a, - 0x51, 0x4a, 0xab, 0x64, 0xa1, 0xde, 0xd3, - 0xa2, 0x3a ) ); - bigint_rol_ok ( BIGINT ( 0x07, 0x62, 0x78, 0x70, 0x2e, 0xd4, 0x41, - 0xaa, 0x9b, 0x50, 0xb1, 0x9a, 0x71, 0xf5, - 0x1c, 0x2f, 0xe7, 0x0d, 0xf1, 0x46, 0x57, - 0x04, 0x99, 0x78, 0x4e, 0x84, 0x78, 0xba, - 0x57, 0xea, 0xa5, 0x43, 0xf7, 0x02, 0xf0, - 0x7a, 0x22, 0x60, 0x65, 0x42, 0xf2, 0x33, - 0x7d, 0xe3, 0xa8, 0x1b, 0xc4, 0x14, 0xdb, - 0xee, 0x4a, 0xf1, 0xe1, 0x52, 0xd4, 0xda, - 0x23, 0xed, 0x13, 0x5d, 0xea, 0xcf, 0xf6, - 0x5e, 0x39, 0x84, 0xe2, 0xb3, 0xa2, 0x05, - 0xba, 0xd9, 0x49, 0x8e, 0x75, 0x1d, 0xdb, - 0xe6, 0xb1, 0x6e, 0xda, 0x0a, 0x83, 0xd0, - 0x6e, 0xcf, 0x7a, 0x66, 0xb7, 0x64, 0x84, - 0xf5, 0x09, 0x5a, 0xa8, 0x11, 0x93, 0xf3, - 0x4f, 0x02, 0x28, 0x00, 0x3a, 0xf0, 0xa9, - 0x08, 0x77, 0x04, 0xf5, 0x04, 0xcd, 0x6b, - 0x24, 0xbe, 0x0f, 0x6d, 0xe3, 0xb2, 0xd3, - 0x07, 0x68, 0xe9, 0x00, 0x59, 0xa0, 0xe4, - 0x9e, 0x5e ), - BIGINT ( 0x0e, 0xc4, 0xf0, 0xe0, 0x5d, 0xa8, 0x83, - 0x55, 0x36, 0xa1, 0x63, 0x34, 0xe3, 0xea, - 0x38, 0x5f, 0xce, 0x1b, 0xe2, 0x8c, 0xae, - 0x09, 0x32, 0xf0, 0x9d, 0x08, 0xf1, 0x74, - 0xaf, 0xd5, 0x4a, 0x87, 0xee, 0x05, 0xe0, - 0xf4, 0x44, 0xc0, 0xca, 0x85, 0xe4, 0x66, - 0xfb, 0xc7, 0x50, 0x37, 0x88, 0x29, 0xb7, - 0xdc, 0x95, 0xe3, 0xc2, 0xa5, 0xa9, 0xb4, - 0x47, 0xda, 0x26, 0xbb, 0xd5, 0x9f, 0xec, - 0xbc, 0x73, 0x09, 0xc5, 0x67, 0x44, 0x0b, - 0x75, 0xb2, 0x93, 0x1c, 0xea, 0x3b, 0xb7, - 0xcd, 0x62, 0xdd, 0xb4, 0x15, 0x07, 0xa0, - 0xdd, 0x9e, 0xf4, 0xcd, 0x6e, 0xc9, 0x09, - 0xea, 0x12, 0xb5, 0x50, 0x23, 0x27, 0xe6, - 0x9e, 0x04, 0x50, 0x00, 0x75, 0xe1, 0x52, - 0x10, 0xee, 0x09, 0xea, 0x09, 0x9a, 0xd6, - 0x49, 0x7c, 0x1e, 0xdb, 0xc7, 0x65, 0xa6, - 0x0e, 0xd1, 0xd2, 0x00, 0xb3, 0x41, 0xc9, - 0x3c, 0xbc ) ); - bigint_ror_ok ( BIGINT ( 0x8f ), - BIGINT ( 0x47 ) ); - bigint_ror_ok ( BIGINT ( 0xaa, 0x1d ), - BIGINT ( 0x55, 0x0e ) ); - bigint_ror_ok ( BIGINT ( 0xf0, 0xbd, 0x68 ), - BIGINT ( 0x78, 0x5e, 0xb4 ) ); - bigint_ror_ok ( BIGINT ( 0x33, 0xa0, 0x3d, 0x95 ), - BIGINT ( 0x19, 0xd0, 0x1e, 0xca ) ); - bigint_ror_ok ( BIGINT ( 0xa1, 0xf4, 0xb9, 0x64, 0x91, 0x99, 0xa1, - 0xf4, 0xae, 0xeb, 0x71, 0x97, 0x1b, 0x71, - 0x09, 0x38, 0x3f, 0x8f, 0xc5, 0x3a, 0xb9, - 0x75, 0x94 ), - BIGINT ( 0x50, 0xfa, 0x5c, 0xb2, 0x48, 0xcc, 0xd0, - 0xfa, 0x57, 0x75, 0xb8, 0xcb, 0x8d, 0xb8, - 0x84, 0x9c, 0x1f, 0xc7, 0xe2, 0x9d, 0x5c, - 0xba, 0xca ) ); - bigint_ror_ok ( BIGINT ( 0xc0, 0xb3, 0x78, 0x46, 0x69, 0x6e, 0x35, - 0x94, 0xed, 0x28, 0xdc, 0xfd, 0xf6, 0xdb, - 0x2d, 0x24, 0xcb, 0xa4, 0x6f, 0x0e, 0x58, - 0x89, 0x04, 0xec, 0xc8, 0x0c, 0x2d, 0xb3, - 0x58, 0xa7, 0x22, 0x6d, 0x93, 0xe0, 0xb8, - 0x48, 0x6a, 0x3f, 0x04, 0x7e, 0xbe, 0xb8, - 0xa7, 0x84, 0xf5, 0xc9, 0x2f, 0x60, 0x9e, - 0x7c, 0xbc, 0xaf, 0x28, 0x89, 0x2f, 0xaa, - 0xd1, 0x82, 0x77, 0xa4, 0xdf, 0xf3, 0x4a, - 0xc6, 0xed, 0xa3, 0x07, 0xb4, 0xa9, 0xfd, - 0xef, 0xf8, 0x20, 0xb9, 0xb3, 0xff, 0x35, - 0x27, 0xed, 0x02, 0xea, 0xec, 0x63, 0xc0, - 0x46, 0x97, 0xc0, 0x4c, 0xca, 0x89, 0xca, - 0x14, 0xe8, 0xe0, 0x02, 0x14, 0x44, 0x46, - 0xf3, 0x2f, 0xbc, 0x6a, 0x28, 0xa2, 0xbe, - 0x20, 0xc8, 0xaa, 0x0f, 0xd9, 0x51, 0x8e, - 0x8d, 0x51, 0x29, 0x61, 0xef, 0x48, 0xae, - 0x3e, 0xe5, 0x10, 0xbf, 0xda, 0x9b, 0x92, - 0xb3, 0x77 ), - BIGINT ( 0x60, 0x59, 0xbc, 0x23, 0x34, 0xb7, 0x1a, - 0xca, 0x76, 0x94, 0x6e, 0x7e, 0xfb, 0x6d, - 0x96, 0x92, 0x65, 0xd2, 0x37, 0x87, 0x2c, - 0x44, 0x82, 0x76, 0x64, 0x06, 0x16, 0xd9, - 0xac, 0x53, 0x91, 0x36, 0xc9, 0xf0, 0x5c, - 0x24, 0x35, 0x1f, 0x82, 0x3f, 0x5f, 0x5c, - 0x53, 0xc2, 0x7a, 0xe4, 0x97, 0xb0, 0x4f, - 0x3e, 0x5e, 0x57, 0x94, 0x44, 0x97, 0xd5, - 0x68, 0xc1, 0x3b, 0xd2, 0x6f, 0xf9, 0xa5, - 0x63, 0x76, 0xd1, 0x83, 0xda, 0x54, 0xfe, - 0xf7, 0xfc, 0x10, 0x5c, 0xd9, 0xff, 0x9a, - 0x93, 0xf6, 0x81, 0x75, 0x76, 0x31, 0xe0, - 0x23, 0x4b, 0xe0, 0x26, 0x65, 0x44, 0xe5, - 0x0a, 0x74, 0x70, 0x01, 0x0a, 0x22, 0x23, - 0x79, 0x97, 0xde, 0x35, 0x14, 0x51, 0x5f, - 0x10, 0x64, 0x55, 0x07, 0xec, 0xa8, 0xc7, - 0x46, 0xa8, 0x94, 0xb0, 0xf7, 0xa4, 0x57, - 0x1f, 0x72, 0x88, 0x5f, 0xed, 0x4d, 0xc9, - 0x59, 0xbb ) ); - bigint_is_zero_ok ( BIGINT ( 0x9b ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0x5a, 0x9d ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0x5f, 0x80, 0x78 ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0xa0, 0x52, 0x47, 0x2e ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0x18, 0x08, 0x49, 0xdb, 0x7b, 0x5c, - 0xe7, 0x41, 0x07, 0xdf, 0xed, 0xf9, - 0xd3, 0x92, 0x0d, 0x75, 0xa6, 0xb0, - 0x14, 0xfa, 0xdd, 0xfd, 0x82 ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0x04, 0x04, 0xb5, 0xf5, 0x01, 0xae, - 0x2b, 0x91, 0xa7, 0xc1, 0x49, 0x97, - 0x3f, 0x45, 0x53, 0x52, 0xb8, 0x52, - 0xf1, 0x62, 0xa5, 0x21, 0x18, 0xd4, - 0xb0, 0xb4, 0x8a, 0x17, 0x0e, 0xe8, - 0xeb, 0xaa, 0x28, 0xae, 0x3d, 0x8e, - 0xe3, 0x6c, 0xd0, 0x01, 0x0c, 0x54, - 0xca, 0x23, 0xbb, 0x06, 0xcd, 0x7a, - 0x61, 0x89, 0x38, 0x34, 0x6e, 0xc7, - 0xc2, 0xee, 0xb1, 0x80, 0x61, 0x0e, - 0xc6, 0x8d, 0x65, 0xa0, 0xeb, 0x34, - 0xe9, 0x63, 0x09, 0x4c, 0x20, 0xac, - 0x42, 0xe3, 0x35, 0xa2, 0x3e, 0x3b, - 0x2e, 0x18, 0x70, 0x45, 0x7c, 0xab, - 0x42, 0xcc, 0xe0, 0x9e, 0x7c, 0x42, - 0xd1, 0xda, 0x6c, 0x51, 0x10, 0x1e, - 0x0e, 0x3f, 0xe5, 0xd6, 0xd8, 0x56, - 0x08, 0xb2, 0x3b, 0x15, 0xc4, 0x7c, - 0x0c, 0x7e, 0xaf, 0x7b, 0x9d, 0xd6, - 0x2b, 0xc0, 0x2f, 0xa2, 0xa3, 0xa3, - 0x77, 0x58, 0x1b, 0xe9, 0xa8, 0x9a, - 0x23, 0x7f ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0x00 ), - 1 ); - bigint_is_zero_ok ( BIGINT ( 0x00, 0x00 ), - 1 ); - bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00 ), - 1 ); - bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00 ), - 1 ); - bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00 ), - 1 ); - bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00 ), - 1 ); - bigint_is_zero_ok ( BIGINT ( 0xff ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0xff, 0xff ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff ), - 0 ); - bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff ), - 0 ); - bigint_is_geq_ok ( BIGINT ( 0xa2 ), - BIGINT ( 0x58 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0x58 ), - BIGINT ( 0xa2 ), - 0 ); - bigint_is_geq_ok ( BIGINT ( 0xa2 ), - BIGINT ( 0xa2 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0x61, 0x29 ), - BIGINT ( 0x87, 0xac ), - 0 ); - bigint_is_geq_ok ( BIGINT ( 0x87, 0xac ), - BIGINT ( 0x61, 0x29 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0x61, 0x29 ), - BIGINT ( 0x61, 0x29 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0xe6, 0x63, 0x14 ), - BIGINT ( 0xb7, 0x2b, 0x76 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0xb7, 0x2b, 0x76 ), - BIGINT ( 0xe6, 0x63, 0x14 ), - 0 ); - bigint_is_geq_ok ( BIGINT ( 0xe6, 0x63, 0x14 ), - BIGINT ( 0xe6, 0x63, 0x14 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ), - BIGINT ( 0xb5, 0xf9, 0x9b, 0x90 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0xb5, 0xf9, 0x9b, 0x90 ), - BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ), - 0 ); - bigint_is_geq_ok ( BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ), - BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12, - 0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d, - 0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b, - 0x60, 0x98 ), - BIGINT ( 0x77, 0xbc, 0x3b, 0x1b, 0x57, 0x43, 0x3b, - 0x8c, 0x82, 0xda, 0xb5, 0xc7, 0x18, 0x09, - 0xb3, 0x59, 0x0e, 0x53, 0x2a, 0xb9, 0xd8, - 0xa2, 0xb4 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0x77, 0xbc, 0x3b, 0x1b, 0x57, 0x43, 0x3b, - 0x8c, 0x82, 0xda, 0xb5, 0xc7, 0x18, 0x09, - 0xb3, 0x59, 0x0e, 0x53, 0x2a, 0xb9, 0xd8, - 0xa2, 0xb4 ), - BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12, - 0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d, - 0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b, - 0x60, 0x98 ), - 0 ); - bigint_is_geq_ok ( BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12, - 0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d, - 0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b, - 0x60, 0x98 ), - BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12, - 0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d, - 0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b, - 0x60, 0x98 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4, - 0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3, - 0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40, - 0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63, - 0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f, - 0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85, - 0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce, - 0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b, - 0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73, - 0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3, - 0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76, - 0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0, - 0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1, - 0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa, - 0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13, - 0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83, - 0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3, - 0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a, - 0x27, 0x96 ), - BIGINT ( 0xd4, 0x6b, 0x0a, 0x2e, 0x9f, 0xde, 0x4b, - 0x64, 0xfa, 0x6b, 0x37, 0x73, 0x66, 0x06, - 0xee, 0x04, 0xef, 0xe6, 0x3c, 0x7d, 0x57, - 0x22, 0x7f, 0x1f, 0x62, 0x1c, 0x7e, 0x20, - 0xda, 0x97, 0xd0, 0x27, 0x23, 0xf6, 0x77, - 0x5b, 0x49, 0x97, 0xe1, 0x65, 0x91, 0x13, - 0x93, 0xd6, 0x12, 0xc3, 0x66, 0x91, 0x76, - 0xe8, 0x47, 0x4c, 0x6a, 0x1b, 0xa2, 0x02, - 0xf8, 0x94, 0xaa, 0xe0, 0x1b, 0x0b, 0x17, - 0x86, 0x5e, 0xf5, 0x17, 0x23, 0xf5, 0x17, - 0x91, 0x6b, 0xd7, 0x2f, 0x5a, 0xfe, 0x8a, - 0x63, 0x28, 0x31, 0x1e, 0x09, 0x60, 0x29, - 0x5d, 0x55, 0xd8, 0x79, 0xeb, 0x78, 0x36, - 0x44, 0x69, 0xa4, 0x76, 0xa5, 0x35, 0x30, - 0xca, 0xc9, 0xf9, 0x62, 0xd7, 0x82, 0x13, - 0x56, 0xd0, 0x58, 0xfe, 0x16, 0x4b, 0xfb, - 0xa8, 0x4c, 0xb3, 0xd7, 0xcf, 0x5f, 0x93, - 0x9d, 0xc4, 0x11, 0xb4, 0xdd, 0xf8, 0x8f, - 0xe1, 0x11 ), - 0 ); - bigint_is_geq_ok ( BIGINT ( 0xd4, 0x6b, 0x0a, 0x2e, 0x9f, 0xde, 0x4b, - 0x64, 0xfa, 0x6b, 0x37, 0x73, 0x66, 0x06, - 0xee, 0x04, 0xef, 0xe6, 0x3c, 0x7d, 0x57, - 0x22, 0x7f, 0x1f, 0x62, 0x1c, 0x7e, 0x20, - 0xda, 0x97, 0xd0, 0x27, 0x23, 0xf6, 0x77, - 0x5b, 0x49, 0x97, 0xe1, 0x65, 0x91, 0x13, - 0x93, 0xd6, 0x12, 0xc3, 0x66, 0x91, 0x76, - 0xe8, 0x47, 0x4c, 0x6a, 0x1b, 0xa2, 0x02, - 0xf8, 0x94, 0xaa, 0xe0, 0x1b, 0x0b, 0x17, - 0x86, 0x5e, 0xf5, 0x17, 0x23, 0xf5, 0x17, - 0x91, 0x6b, 0xd7, 0x2f, 0x5a, 0xfe, 0x8a, - 0x63, 0x28, 0x31, 0x1e, 0x09, 0x60, 0x29, - 0x5d, 0x55, 0xd8, 0x79, 0xeb, 0x78, 0x36, - 0x44, 0x69, 0xa4, 0x76, 0xa5, 0x35, 0x30, - 0xca, 0xc9, 0xf9, 0x62, 0xd7, 0x82, 0x13, - 0x56, 0xd0, 0x58, 0xfe, 0x16, 0x4b, 0xfb, - 0xa8, 0x4c, 0xb3, 0xd7, 0xcf, 0x5f, 0x93, - 0x9d, 0xc4, 0x11, 0xb4, 0xdd, 0xf8, 0x8f, - 0xe1, 0x11 ), - BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4, - 0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3, - 0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40, - 0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63, - 0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f, - 0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85, - 0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce, - 0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b, - 0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73, - 0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3, - 0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76, - 0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0, - 0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1, - 0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa, - 0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13, - 0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83, - 0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3, - 0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a, - 0x27, 0x96 ), - 1 ); - bigint_is_geq_ok ( BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4, - 0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3, - 0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40, - 0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63, - 0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f, - 0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85, - 0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce, - 0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b, - 0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73, - 0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3, - 0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76, - 0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0, - 0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1, - 0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa, - 0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13, - 0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83, - 0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3, - 0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a, - 0x27, 0x96 ), - BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4, - 0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3, - 0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40, - 0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63, - 0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f, - 0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85, - 0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce, - 0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b, - 0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73, - 0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3, - 0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76, - 0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0, - 0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1, - 0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa, - 0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13, - 0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83, - 0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3, - 0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a, - 0x27, 0x96 ), - 1 ); - bigint_bit_is_set_ok ( BIGINT ( 0x37 ), - 0, 1 ); - bigint_bit_is_set_ok ( BIGINT ( 0xe6, 0xcb ), - 0, 1 ); - bigint_bit_is_set_ok ( BIGINT ( 0xd9, 0x0c, 0x5b ), - 0, 1 ); - bigint_bit_is_set_ok ( BIGINT ( 0x8b, 0x56, 0x89, 0xaf ), - 0, 1 ); - bigint_bit_is_set_ok ( BIGINT ( 0x25, 0xfc, 0xaf, 0xeb, 0x81, 0xc3, - 0xb8, 0x2f, 0xbb, 0xe3, 0x07, 0xb2, - 0xe2, 0x2a, 0xe2, 0x2d, 0xb4, 0x4d, - 0x6d, 0xec, 0x51, 0xa0, 0x2f ), - 0, 1 ); - bigint_bit_is_set_ok ( BIGINT ( 0x25, 0xfc, 0xaf, 0xeb, 0x81, 0xc3, - 0xb8, 0x2f, 0xbb, 0xe3, 0x07, 0xb2, - 0xe2, 0x2a, 0xe2, 0x2d, 0xb4, 0x4d, - 0x6d, 0xec, 0x51, 0xa0, 0x2f ), - 45, 0 ); - bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31, - 0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09, - 0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85, - 0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06, - 0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1, - 0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d, - 0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25, - 0x57, 0x65, 0x72, 0x73, 0x64, 0x7e, - 0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f, - 0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7, - 0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59, - 0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65, - 0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60, - 0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09, - 0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2, - 0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5, - 0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a, - 0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2, - 0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11, - 0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b, - 0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4, - 0xcb, 0xe0 ), - 0, 0 ); - bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31, - 0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09, - 0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85, - 0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06, - 0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1, - 0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d, - 0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25, - 0x57, 0x65, 0x72, 0x73, 0x64, 0x7e, - 0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f, - 0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7, - 0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59, - 0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65, - 0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60, - 0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09, - 0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2, - 0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5, - 0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a, - 0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2, - 0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11, - 0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b, - 0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4, - 0xcb, 0xe0 ), - 45, 1 ); - bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31, - 0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09, - 0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85, - 0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06, - 0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1, - 0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d, - 0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25, - 0x57, 0x65, 0x72, 0x73, 0x64, 0x7e, - 0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f, - 0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7, - 0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59, - 0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65, - 0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60, - 0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09, - 0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2, - 0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5, - 0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a, - 0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2, - 0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11, - 0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b, - 0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4, - 0xcb, 0xe0 ), - 1013, 0 ); - bigint_max_set_bit_ok ( BIGINT ( 0x3a ), - 6 ); - bigint_max_set_bit_ok ( BIGINT ( 0x03 ), - 2 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00 ), - 0 ); - bigint_max_set_bit_ok ( BIGINT ( 0xff ), - 8 ); - bigint_max_set_bit_ok ( BIGINT ( 0x20, 0x30 ), - 14 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x10 ), - 5 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00 ), - 0 ); - bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff ), - 16 ); - bigint_max_set_bit_ok ( BIGINT ( 0x06, 0xdb, 0x7a ), - 19 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00 ), - 0 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00 ), - 0 ); - bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff ), - 24 ); - bigint_max_set_bit_ok ( BIGINT ( 0xee, 0xcb, 0x7b, 0xfd ), - 32 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x01, 0xdd ), - 9 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00 ), - 0 ); - bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ), - 32 ); - bigint_max_set_bit_ok ( BIGINT ( 0x32, 0x39, 0x96, 0x52, 0x10, 0x67, - 0x7e, 0x32, 0xfc, 0x4e, 0x56, 0xc3, - 0x68, 0x18, 0x76, 0x1a, 0xac, 0x0e, - 0x93, 0xee, 0x55, 0xc5, 0x6e ), - 182 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xc8, 0xe6, 0x59 ), - 24 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00 ), - 0 ); - bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff ), - 184 ); - bigint_max_set_bit_ok ( BIGINT ( 0xcd, 0xb3, 0x22, 0x30, 0xdd, 0xa7, - 0xff, 0x37, 0xbf, 0xe3, 0x38, 0xf7, - 0xe1, 0x41, 0x73, 0xea, 0x3a, 0xfc, - 0x78, 0x9e, 0xfb, 0x4f, 0x85, 0xdc, - 0x1c, 0x40, 0x89, 0x6e, 0xda, 0xf9, - 0x9d, 0x6d, 0x12, 0x97, 0xb1, 0x80, - 0x2a, 0xeb, 0x91, 0xce, 0x3b, 0x83, - 0xb8, 0xa5, 0x3d, 0xce, 0x46, 0x56, - 0xb7, 0xd1, 0x28, 0xbc, 0x93, 0x4e, - 0x8c, 0x29, 0x6d, 0x2c, 0xcc, 0x58, - 0x49, 0x2f, 0x37, 0xa0, 0x08, 0x37, - 0x86, 0xdd, 0x38, 0x21, 0xa7, 0x57, - 0x37, 0xe3, 0xc5, 0xcc, 0x50, 0x11, - 0x1a, 0xe4, 0xea, 0xe7, 0x4d, 0x3c, - 0x37, 0x65, 0x78, 0xd1, 0xf6, 0xc3, - 0x94, 0x46, 0xd4, 0x0e, 0xd3, 0x9a, - 0x21, 0x8b, 0xa6, 0x54, 0xc0, 0xd2, - 0x88, 0x07, 0x24, 0xbf, 0x7d, 0x31, - 0xfd, 0x15, 0xa8, 0x92, 0x65, 0xe1, - 0x8d, 0xed, 0x70, 0x7b, 0x68, 0x0f, - 0xcc, 0x13, 0xb9, 0xb2, 0xdd, 0x3c, - 0x6a, 0x52 ), - 1024 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0xd9, - 0x91, 0x18, 0x6e, 0xd3, 0xff, 0x9b, - 0xdf, 0xf1, 0x9c, 0x7b, 0xf0, 0xa0, - 0xb9, 0xf5 ), - 127 ); - bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00 ), - 0 ); - bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff ), - 1024 ); - bigint_multiply_ok ( BIGINT ( 0xf0 ), - BIGINT ( 0xeb ), - BIGINT ( 0xdc, 0x50 ) ); - bigint_multiply_ok ( BIGINT ( 0xd7, 0x16 ), - BIGINT ( 0x88, 0xfb ), - BIGINT ( 0x73, 0x16, 0x92, 0x92 ) ); - bigint_multiply_ok ( BIGINT ( 0xfe, 0xed, 0x1d ), - BIGINT ( 0x69, 0x9c, 0x03 ), - BIGINT ( 0x69, 0x2a, 0x9c, 0x5f, 0x73, 0x57 ) ); - bigint_multiply_ok ( BIGINT ( 0x96, 0xe9, 0x6f, 0x81 ), - BIGINT ( 0x67, 0x3c, 0x5a, 0x16 ), - BIGINT ( 0x3c, 0xdb, 0x7f, 0xae, 0x12, 0x7e, - 0xef, 0x16 ) ); - bigint_multiply_ok ( BIGINT ( 0xe8, 0x08, 0x0b, 0xe9, 0x29, 0x36, - 0xea, 0x51, 0x1d, 0x75, 0x1a, 0xd5, - 0xba, 0xc6, 0xa0, 0xf3, 0x48, 0x5c, - 0xdf, 0x42, 0xdf, 0x28, 0x38 ), - BIGINT ( 0x22, 0x07, 0x41, 0x54, 0x4e, 0xf9, - 0x90, 0xa8, 0xaf, 0xba, 0xf6, 0xb0, - 0x35, 0x7e, 0x98, 0xef, 0x2c, 0x31, - 0xc9, 0xa7, 0x25, 0x74, 0x8d ), - BIGINT ( 0x1e, 0xd7, 0xa5, 0x03, 0xc0, 0x18, - 0x2e, 0x29, 0xb1, 0x3e, 0x96, 0x71, - 0x90, 0xa5, 0x6d, 0x43, 0x58, 0xf7, - 0x22, 0x80, 0x0b, 0x21, 0xc6, 0x70, - 0x90, 0x1c, 0xa8, 0x85, 0x87, 0xaf, - 0xd7, 0xdd, 0x27, 0x69, 0xaf, 0x20, - 0xa0, 0x2d, 0x43, 0x5d, 0xda, 0xba, - 0x4b, 0x3a, 0x86, 0xd8 ) ); - bigint_multiply_ok ( BIGINT ( 0xa2, 0x0f, 0xc6, 0x08, 0x0a, 0x01, - 0x19, 0x42, 0x0e, 0xaa, 0x5c, 0xae, - 0x4f, 0x4e, 0xb0, 0xad, 0xb2, 0xe8, - 0xee, 0xd5, 0x65, 0xec, 0x5a, 0xda, - 0xc0, 0xba, 0x78, 0xa8, 0x0f, 0x15, - 0x39, 0xd7, 0x7a, 0x10, 0xc2, 0xa7, - 0xec, 0x44, 0xac, 0xad, 0x39, 0x04, - 0x2e, 0x66, 0x54, 0x70, 0x57, 0xee, - 0xf6, 0x97, 0x19, 0x71, 0x16, 0xf9, - 0xbb, 0x2e, 0x84, 0x09, 0x6e, 0x9a, - 0x3b, 0x16, 0xb2, 0x65, 0x74, 0x50, - 0x19, 0xd1, 0xe9, 0x95, 0xa0, 0x7b, - 0x33, 0xb5, 0xac, 0x7c, 0x9e, 0xd4, - 0x68, 0x0d, 0xc9, 0xe4, 0x03, 0x86, - 0x1a, 0xa3, 0x42, 0x33, 0x28, 0x14, - 0x12, 0x7d, 0x5a, 0xd9, 0x30, 0x18, - 0x0a, 0xf4, 0x0c, 0x96, 0x58, 0xc9, - 0xb5, 0x37, 0xdb, 0x49, 0xdc, 0x01, - 0x4a, 0xcb, 0x6d, 0x87, 0x52, 0xf6, - 0xae, 0xa7, 0x71, 0x31, 0x9a, 0x1a, - 0xe2, 0x1c, 0x87, 0x51, 0xc9, 0xeb, - 0x70, 0x71 ), - BIGINT ( 0x7c, 0xdd, 0x2f, 0x5d, 0x27, 0xfe, - 0xca, 0x70, 0x96, 0xc3, 0xb1, 0x1f, - 0xac, 0xa9, 0x3a, 0xdc, 0xcd, 0xbc, - 0x58, 0xb4, 0xde, 0xe7, 0xe5, 0x34, - 0x1a, 0xc0, 0xb9, 0x46, 0xf7, 0x52, - 0x76, 0x23, 0xe8, 0xe9, 0x92, 0xa1, - 0x86, 0x3c, 0x6f, 0xf1, 0x22, 0xf4, - 0x72, 0xb1, 0xde, 0xd3, 0x8f, 0x11, - 0x9e, 0x52, 0xe5, 0x81, 0x54, 0xe9, - 0xa7, 0x72, 0x3f, 0x3e, 0xa0, 0x80, - 0xbb, 0xae, 0x0e, 0x30, 0x6a, 0x11, - 0x91, 0x11, 0x3b, 0x3f, 0x44, 0x1f, - 0x8d, 0x4d, 0xea, 0xdd, 0x09, 0x95, - 0x9d, 0x02, 0xa6, 0x6d, 0x3b, 0x08, - 0x40, 0x8d, 0xb4, 0x4b, 0x05, 0x74, - 0x8c, 0x1f, 0xaa, 0x61, 0x6f, 0x0e, - 0xcc, 0xcf, 0xe0, 0x81, 0x03, 0xe4, - 0x9b, 0x11, 0xd9, 0xab, 0xf3, 0x24, - 0xe2, 0x3b, 0xe0, 0x05, 0x60, 0x65, - 0x16, 0xc6, 0x2e, 0x83, 0xa0, 0x98, - 0x8e, 0x11, 0x05, 0x00, 0xe4, 0x3f, - 0x7e, 0x65 ), - BIGINT ( 0x4f, 0x0b, 0xa9, 0x85, 0xb8, 0x31, - 0x48, 0xea, 0x11, 0x44, 0xaf, 0x2d, - 0xed, 0x1a, 0x76, 0x45, 0xac, 0x87, - 0x0c, 0xf3, 0xd7, 0xc4, 0x8e, 0x5c, - 0xd7, 0xdf, 0x28, 0x74, 0xa6, 0x40, - 0xe4, 0x6b, 0x5b, 0x19, 0x36, 0x37, - 0x9c, 0xcd, 0x43, 0x76, 0x15, 0x00, - 0x5d, 0x23, 0xa2, 0x8a, 0x53, 0x25, - 0xbf, 0x18, 0xda, 0xe6, 0x09, 0xdf, - 0xaa, 0xeb, 0x9a, 0x82, 0x01, 0x14, - 0x2b, 0x20, 0x2b, 0xb6, 0x22, 0x62, - 0x6b, 0xcc, 0xd4, 0xc9, 0x02, 0x67, - 0x95, 0x43, 0x75, 0x4e, 0x97, 0x4e, - 0xec, 0x04, 0xde, 0x29, 0x0a, 0xef, - 0xf7, 0xc1, 0x72, 0x8c, 0x64, 0x38, - 0x16, 0x47, 0x9f, 0x16, 0x0c, 0xa5, - 0x79, 0x6b, 0xea, 0x2e, 0x4c, 0x3d, - 0x0c, 0xe6, 0x57, 0x51, 0x65, 0xa5, - 0x3b, 0xca, 0xae, 0x54, 0x0c, 0x67, - 0xf8, 0x23, 0x00, 0xc9, 0x8d, 0xe6, - 0x16, 0x91, 0x19, 0xb3, 0x5b, 0x68, - 0x7b, 0xf2, 0xe2, 0x5d, 0x69, 0x48, - 0x3f, 0x2b, 0xa0, 0x4f, 0x7c, 0x3c, - 0x26, 0xf9, 0xd9, 0xfd, 0x3d, 0x5d, - 0xd6, 0x05, 0x00, 0xd8, 0xdf, 0x5a, - 0x56, 0x8f, 0x16, 0x68, 0x4f, 0x15, - 0x19, 0x9d, 0xd7, 0x11, 0x51, 0x7d, - 0x73, 0x5c, 0xd4, 0xd5, 0xb4, 0xc7, - 0x42, 0xe3, 0xee, 0xf1, 0x67, 0xd6, - 0x69, 0x72, 0x04, 0x4b, 0x88, 0x3d, - 0x05, 0xd8, 0x1e, 0x50, 0xcb, 0xce, - 0x39, 0x19, 0x42, 0xb6, 0xa7, 0xf3, - 0xba, 0x78, 0x90, 0xd2, 0x09, 0x05, - 0x87, 0xf8, 0xc0, 0x9c, 0x47, 0xff, - 0xbf, 0xaa, 0x21, 0x8d, 0x81, 0x86, - 0xcd, 0x58, 0xdf, 0x30, 0xf1, 0xd1, - 0x60, 0x53, 0x85, 0x40, 0xbf, 0x14, - 0x3e, 0xdc, 0x9e, 0x9e, 0xc4, 0xc7, - 0x48, 0xa0, 0x83, 0xe0, 0x99, 0x8b, - 0x43, 0xf8, 0x52, 0x8a, 0x15, 0x88, - 0x89, 0x83, 0x7d, 0x71, 0xbb, 0x62, - 0x12, 0x7a, 0x23, 0x85, 0x3a, 0xbb, - 0xdb, 0x09, 0xfa, 0x95 ) ); - bigint_multiply_ok ( BIGINT ( 0xff ), - BIGINT ( 0xff ), - BIGINT ( 0xfe, 0x01 ) ); - bigint_multiply_ok ( BIGINT ( 0xff, 0xff ), - BIGINT ( 0xff, 0xff ), - BIGINT ( 0xff, 0xfe, 0x00, 0x01 ) ); - bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff ), - BIGINT ( 0xff, 0xff, 0xff ), - BIGINT ( 0xff, 0xff, 0xfe, 0x00, 0x00, 0x01 ) ); - bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ), - BIGINT ( 0xff, 0xff, 0xff, 0xff ), - BIGINT ( 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, - 0x00, 0x01 ) ); - bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff ), - BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff ), - BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01 ) ); - bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff ), - BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff ), - BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01 ) ); - bigint_mod_multiply_ok ( BIGINT ( 0x37 ), - BIGINT ( 0x67 ), - BIGINT ( 0x3f ), - BIGINT ( 0x3a ) ); - bigint_mod_multiply_ok ( BIGINT ( 0x45, 0x94 ), - BIGINT ( 0xbd, 0xd2 ), - BIGINT ( 0xca, 0xc7 ), - BIGINT ( 0xac, 0xc1 ) ); - bigint_mod_multiply_ok ( BIGINT ( 0x8e, 0xcd, 0x74 ), - BIGINT ( 0xe2, 0xf1, 0xea ), - BIGINT ( 0x59, 0x51, 0x53 ), - BIGINT ( 0x22, 0xdd, 0x1c ) ); - bigint_mod_multiply_ok ( BIGINT ( 0xc2, 0xa8, 0x40, 0x6f ), - BIGINT ( 0x29, 0xd7, 0xf4, 0x77 ), - BIGINT ( 0xbb, 0xbd, 0xdb, 0x3d ), - BIGINT ( 0x8f, 0x39, 0xd0, 0x47 ) ); - bigint_mod_multiply_ok ( BIGINT ( 0x2e, 0xcb, 0x74, 0x7c, 0x64, 0x60, - 0xb3, 0x44, 0xf3, 0x23, 0x49, 0x4a, - 0xc6, 0xb6, 0xbf, 0xea, 0x80, 0xd8, - 0x34, 0xc5, 0x54, 0x22, 0x09 ), - BIGINT ( 0x61, 0x2c, 0x5a, 0xc5, 0xde, 0x07, - 0x65, 0x8e, 0xab, 0x88, 0x1a, 0x2e, - 0x7a, 0x95, 0x17, 0xe3, 0x3b, 0x17, - 0xe4, 0x21, 0xb0, 0xb4, 0x57 ), - BIGINT ( 0x8e, 0x46, 0xa5, 0x87, 0x7b, 0x7f, - 0xc4, 0xd7, 0x31, 0xb1, 0x94, 0xe7, - 0xe7, 0x1c, 0x7e, 0x7a, 0xc2, 0x6c, - 0xce, 0xcb, 0xc8, 0x5d, 0x70 ), - BIGINT ( 0x1e, 0xd1, 0x5b, 0x3d, 0x1d, 0x17, - 0x7c, 0x31, 0x95, 0x13, 0x1b, 0xd8, - 0xee, 0x0a, 0xb0, 0xe1, 0x5b, 0x13, - 0xad, 0x83, 0xe9, 0xf8, 0x7f ) ); - bigint_mod_multiply_ok ( BIGINT ( 0x56, 0x37, 0xab, 0x07, 0x8b, 0x25, - 0xa7, 0xc2, 0x50, 0x30, 0x43, 0xfc, - 0x63, 0x8b, 0xdf, 0x84, 0x68, 0x85, - 0xca, 0xce, 0x44, 0x5c, 0xb1, 0x14, - 0xa4, 0xb5, 0xba, 0x43, 0xe0, 0x31, - 0x45, 0x6b, 0x82, 0xa9, 0x0b, 0x9e, - 0x3a, 0xb0, 0x39, 0x09, 0x2a, 0x68, - 0x2e, 0x0f, 0x09, 0x54, 0x47, 0x04, - 0xdb, 0xcf, 0x4a, 0x3a, 0x2d, 0x7b, - 0x7d, 0x50, 0xa4, 0xc5, 0xeb, 0x13, - 0xdd, 0x49, 0x61, 0x7d, 0x18, 0xa1, - 0x0d, 0x6b, 0x58, 0xba, 0x9f, 0x7c, - 0x81, 0x34, 0x9e, 0xf9, 0x9c, 0x9e, - 0x28, 0xa8, 0x1c, 0x15, 0x16, 0x20, - 0x3c, 0x0a, 0xb1, 0x11, 0x06, 0x93, - 0xbc, 0xd8, 0x4e, 0x49, 0xae, 0x7b, - 0xb4, 0x02, 0x8b, 0x1c, 0x5b, 0x18, - 0xb4, 0xac, 0x7f, 0xdd, 0x70, 0xef, - 0x87, 0xac, 0x1b, 0xac, 0x25, 0xa3, - 0xc9, 0xa7, 0x3a, 0xc5, 0x76, 0x68, - 0x09, 0x1f, 0xa1, 0x48, 0x53, 0xb6, - 0x13, 0xac ), - BIGINT ( 0xef, 0x5c, 0x1f, 0x1a, 0x44, 0x64, - 0x66, 0xcf, 0xdd, 0x3f, 0x0b, 0x27, - 0x81, 0xa7, 0x91, 0x7a, 0x35, 0x7b, - 0x0f, 0x46, 0x5e, 0xca, 0xbf, 0xf8, - 0x50, 0x5e, 0x99, 0x7c, 0xc6, 0x64, - 0x43, 0x00, 0x9f, 0xb2, 0xda, 0xfa, - 0x42, 0x15, 0x9c, 0xa3, 0xd6, 0xc8, - 0x64, 0xa7, 0x65, 0x4a, 0x98, 0xf7, - 0xb3, 0x96, 0x5f, 0x42, 0xf9, 0x73, - 0xe1, 0x75, 0xc3, 0xc4, 0x0b, 0x5d, - 0x5f, 0xf3, 0x04, 0x8a, 0xee, 0x59, - 0xa6, 0x1b, 0x06, 0x38, 0x0b, 0xa2, - 0x9f, 0xb4, 0x4f, 0x6d, 0x50, 0x5e, - 0x37, 0x37, 0x21, 0x83, 0x9d, 0xa3, - 0x12, 0x16, 0x4d, 0xab, 0x36, 0x51, - 0x21, 0xb1, 0x74, 0x66, 0x40, 0x9a, - 0xd3, 0x72, 0xcc, 0x18, 0x40, 0x53, - 0x89, 0xff, 0xd7, 0x00, 0x8d, 0x7e, - 0x93, 0x81, 0xdb, 0x29, 0xb6, 0xd7, - 0x23, 0x2b, 0x67, 0x2f, 0x11, 0x98, - 0x49, 0x87, 0x2f, 0x46, 0xb7, 0x33, - 0x6d, 0x12 ), - BIGINT ( 0x67, 0x7a, 0x17, 0x6a, 0xd2, 0xf8, - 0x49, 0xfb, 0x7c, 0x95, 0x25, 0x54, - 0xf0, 0xab, 0x5b, 0xb3, 0x0e, 0x01, - 0xab, 0xd3, 0x65, 0x6f, 0x7e, 0x18, - 0x05, 0xed, 0x9b, 0xc4, 0x90, 0x6c, - 0xd0, 0x6d, 0x94, 0x79, 0x28, 0xd6, - 0x24, 0x77, 0x9a, 0x08, 0xd2, 0x2f, - 0x7c, 0x2d, 0xa0, 0x0c, 0x14, 0xbe, - 0x7b, 0xee, 0x9e, 0x48, 0x88, 0x3c, - 0x8f, 0x9f, 0xb9, 0x7a, 0xcb, 0x98, - 0x76, 0x61, 0x0d, 0xee, 0xa2, 0x42, - 0x67, 0x1b, 0x2c, 0x42, 0x8f, 0x41, - 0xcc, 0x78, 0xba, 0xba, 0xaa, 0xa2, - 0x92, 0xb0, 0x6e, 0x0c, 0x4e, 0xe1, - 0xa5, 0x13, 0x7d, 0x8a, 0x8f, 0x81, - 0x95, 0x8a, 0xdf, 0x57, 0x93, 0x88, - 0x27, 0x4f, 0x1a, 0x59, 0xa4, 0x74, - 0x22, 0xa9, 0x78, 0xe5, 0xed, 0xb1, - 0x09, 0x26, 0x59, 0xde, 0x88, 0x21, - 0x8d, 0xa2, 0xa8, 0x58, 0x10, 0x7b, - 0x65, 0x96, 0xbf, 0x69, 0x3b, 0xc5, - 0x55, 0xf8 ), - BIGINT ( 0x15, 0xf7, 0x00, 0xeb, 0xc7, 0x5a, - 0x6f, 0xf0, 0x50, 0xf3, 0x21, 0x8a, - 0x8e, 0xa6, 0xf6, 0x67, 0x56, 0x7d, - 0x07, 0x45, 0x89, 0xdb, 0xd7, 0x7e, - 0x9e, 0x28, 0x7f, 0xfb, 0xed, 0xca, - 0x2c, 0xbf, 0x47, 0x77, 0x99, 0x95, - 0xf3, 0xd6, 0x9d, 0xc5, 0x57, 0x81, - 0x7f, 0x97, 0xf2, 0x6b, 0x24, 0xee, - 0xce, 0xc5, 0x9b, 0xe6, 0x42, 0x2d, - 0x37, 0xb7, 0xeb, 0x3d, 0xb5, 0xf7, - 0x1e, 0x86, 0xc2, 0x40, 0x44, 0xc9, - 0x85, 0x5a, 0x1a, 0xc0, 0xac, 0x9e, - 0x78, 0x69, 0x00, 0x7b, 0x93, 0x65, - 0xd7, 0x7f, 0x0c, 0xd6, 0xba, 0x4f, - 0x06, 0x00, 0x61, 0x05, 0xb2, 0x44, - 0xb4, 0xe7, 0xbb, 0x3b, 0x96, 0xb0, - 0x6d, 0xe8, 0x43, 0xd2, 0x03, 0xb7, - 0x0a, 0xc4, 0x6d, 0x30, 0xd8, 0xd5, - 0xe6, 0x54, 0x65, 0xdd, 0xa9, 0x1b, - 0x50, 0xc0, 0xb9, 0x95, 0xb0, 0x7d, - 0x7c, 0xca, 0x63, 0xf8, 0x72, 0xbe, - 0x3b, 0x00 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xcd ), - BIGINT ( 0xbb ), - BIGINT ( 0x25 ), - BIGINT ( 0xab ) ); - bigint_mod_exp_ok ( BIGINT ( 0xc4 ), - BIGINT ( 0xe9 ), - BIGINT ( 0x02, 0x4c ), - BIGINT ( 0x7e ) ); - bigint_mod_exp_ok ( BIGINT ( 0xcb ), - BIGINT ( 0xde ), - BIGINT ( 0xbd, 0x73, 0xbf ), - BIGINT ( 0x17 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x17 ), - BIGINT ( 0xb9 ), - BIGINT ( 0x39, 0x68, 0xba, 0x7d ), - BIGINT ( 0x17 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x2e ), - BIGINT ( 0xb7 ), - BIGINT ( 0x39, 0x07, 0x1b, 0x49, 0x5b, 0xea, - 0xf2, 0x61, 0x75, 0x94, 0x60, 0x86, - 0x73, 0xd0, 0xeb, 0x11, 0x08, 0x19, - 0x90, 0x19, 0xe0, 0xed, 0x2a ), - BIGINT ( 0x19 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x59 ), - BIGINT ( 0xce ), - BIGINT ( 0xdf, 0xbc, 0x0d, 0x0c, 0x09, 0xeb, - 0xf8, 0xcf, 0xdb, 0xb6, 0x00, 0xa3, - 0x9e, 0xc3, 0x6c, 0x8d, 0xf1, 0xc3, - 0x03, 0x36, 0xaa, 0xd4, 0x22, 0x7c, - 0x20, 0x7b, 0xa9, 0x9a, 0x01, 0xe4, - 0xf2, 0x50, 0x42, 0x29, 0x68, 0x7a, - 0xa6, 0x2c, 0xdf, 0xb6, 0x51, 0xa9, - 0x73, 0x10, 0x98, 0x37, 0x69, 0xb3, - 0x21, 0x49, 0x6d, 0xcc, 0x80, 0xfa, - 0x7e, 0x12, 0xe4, 0x9c, 0xc2, 0xbb, - 0xe3, 0xa3, 0x10, 0x3f, 0xba, 0x99, - 0x22, 0x79, 0x71, 0x39, 0x96, 0x7b, - 0x1a, 0x89, 0xdc, 0xda, 0x43, 0x52, - 0x50, 0x7b, 0xe3, 0x8c, 0xd3, 0xc0, - 0xf5, 0x7d, 0xfc, 0x80, 0x71, 0x6e, - 0xaf, 0x5c, 0xd0, 0x14, 0xc0, 0x60, - 0x24, 0xa8, 0x9a, 0x8a, 0x54, 0x4a, - 0x6f, 0x42, 0x7a, 0x14, 0x14, 0x25, - 0xd5, 0x22, 0x08, 0x8f, 0xd9, 0xdb, - 0xd4, 0x0f, 0x14, 0xf4, 0x3b, 0x26, - 0x0e, 0xb6, 0x72, 0xd7, 0x03, 0xd5, - 0xf0, 0x0e ), - BIGINT ( 0xa9 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x7f, 0x30 ), - BIGINT ( 0x73, 0x74 ), - BIGINT ( 0x75 ), - BIGINT ( 0x4b, 0xe8 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x04, 0x6c ), - BIGINT ( 0x99, 0x04 ), - BIGINT ( 0x33, 0xd2 ), - BIGINT ( 0x86, 0x74 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xca, 0x88 ), - BIGINT ( 0xdc, 0x60 ), - BIGINT ( 0x7e, 0x76, 0x79 ), - BIGINT ( 0x42, 0x40 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x68, 0x97 ), - BIGINT ( 0x52, 0x8b ), - BIGINT ( 0x4f, 0x7f, 0xe7, 0xda ), - BIGINT ( 0x22, 0x77 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xbd, 0x14 ), - BIGINT ( 0x9e, 0xfc ), - BIGINT ( 0x23, 0xf7, 0xd0, 0xa1, 0x9e, 0x9b, - 0x05, 0xd2, 0x44, 0x24, 0x4f, 0x3f, - 0x83, 0xcc, 0x49, 0x70, 0xa5, 0x0d, - 0xfc, 0xa7, 0x43, 0xf3, 0x3e ), - BIGINT ( 0x1a, 0xc8 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x46, 0x3e ), - BIGINT ( 0xb8, 0xde ), - BIGINT ( 0xa9, 0xc0, 0xdc, 0x45, 0x65, 0x0d, - 0xa5, 0x56, 0x70, 0x4c, 0xf1, 0xda, - 0xab, 0x64, 0xc2, 0x04, 0xf6, 0x32, - 0x20, 0x68, 0x31, 0x5f, 0x9a, 0x00, - 0x0f, 0x7b, 0x24, 0x33, 0xdf, 0xaf, - 0xfe, 0x03, 0x1e, 0x4a, 0xa1, 0xf8, - 0x45, 0x8d, 0x5a, 0x7d, 0x12, 0x58, - 0x00, 0x6d, 0xba, 0x79, 0x9f, 0xe1, - 0xa1, 0xfc, 0x1f, 0xb9, 0xf3, 0xa7, - 0x07, 0xf5, 0xfe, 0xd6, 0xa1, 0xba, - 0xda, 0x63, 0xef, 0x39, 0x8e, 0xb7, - 0x48, 0xa8, 0x81, 0x86, 0xb1, 0x22, - 0x14, 0x9f, 0x9e, 0xac, 0x69, 0xf7, - 0xae, 0x1f, 0xf2, 0x99, 0x41, 0xb7, - 0x37, 0xa7, 0xbc, 0x42, 0xf2, 0x45, - 0x43, 0xf2, 0x2a, 0xef, 0xc2, 0x83, - 0xd5, 0x32, 0x6e, 0xfa, 0x49, 0x1c, - 0x94, 0x9c, 0xc2, 0xc5, 0xad, 0x28, - 0x53, 0x1c, 0x11, 0xc4, 0x1c, 0x78, - 0x8f, 0x13, 0xdc, 0xb3, 0x2a, 0x63, - 0xfd, 0x1f, 0x89, 0x9b, 0x0c, 0x31, - 0x92, 0x73 ), - BIGINT ( 0x7b, 0x8a ) ); - bigint_mod_exp_ok ( BIGINT ( 0xf3, 0xc3, 0xab ), - BIGINT ( 0xd0, 0x7e, 0xd0 ), - BIGINT ( 0xf6 ), - BIGINT ( 0x1f, 0xb3, 0x09 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x13, 0xec, 0xf6 ), - BIGINT ( 0x87, 0x1a, 0x9a ), - BIGINT ( 0x03, 0xf3 ), - BIGINT ( 0x15, 0xe9, 0x8e ) ); - bigint_mod_exp_ok ( BIGINT ( 0x5a, 0x96, 0xe5 ), - BIGINT ( 0x56, 0x4a, 0xd1 ), - BIGINT ( 0x89, 0x62, 0x8e ), - BIGINT ( 0x34, 0xb8, 0xaa ) ); - bigint_mod_exp_ok ( BIGINT ( 0x84, 0x7c, 0xbd ), - BIGINT ( 0x3c, 0x80, 0x0a ), - BIGINT ( 0x5e, 0x52, 0x9d, 0xba ), - BIGINT ( 0x04, 0xcb, 0x4f ) ); - bigint_mod_exp_ok ( BIGINT ( 0x50, 0x01, 0x51 ), - BIGINT ( 0x02, 0xe6, 0x96 ), - BIGINT ( 0x34, 0x0c, 0x7e, 0xbf, 0x27, 0x23, - 0x46, 0x92, 0x1c, 0xca, 0x91, 0xab, - 0x50, 0x2c, 0x3a, 0x64, 0xc8, 0x4a, - 0x75, 0xd6, 0xe2, 0xde, 0x31 ), - BIGINT ( 0x02, 0x16, 0x05 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x5e, 0x47, 0xd8 ), - BIGINT ( 0x26, 0xd1, 0xb6 ), - BIGINT ( 0x49, 0x61, 0x84, 0x7a, 0xa9, 0xfb, - 0x93, 0x45, 0xe4, 0xfa, 0x53, 0x60, - 0x73, 0x98, 0x5a, 0x17, 0xe7, 0x77, - 0x2d, 0xcd, 0x97, 0xf4, 0xc0, 0x34, - 0x46, 0xfa, 0xbd, 0x21, 0xdf, 0xa5, - 0xa0, 0x12, 0x38, 0x7c, 0xbd, 0xd9, - 0xcd, 0xbc, 0xde, 0x29, 0xa5, 0x13, - 0xa8, 0xf0, 0xf6, 0x88, 0xc6, 0x31, - 0xed, 0x90, 0x19, 0x11, 0x7d, 0xe1, - 0x0e, 0x81, 0x98, 0x8e, 0x98, 0x86, - 0xde, 0x2a, 0x4c, 0xad, 0xff, 0x57, - 0x12, 0xbc, 0x4b, 0xaf, 0x21, 0xde, - 0xca, 0x3a, 0x25, 0xd7, 0x98, 0xe3, - 0x25, 0xbc, 0x17, 0x74, 0x0b, 0x9c, - 0x53, 0xe1, 0x1a, 0xec, 0x9a, 0x5a, - 0xdc, 0x68, 0xdf, 0xad, 0xd6, 0x71, - 0x6b, 0x5b, 0x8b, 0x85, 0xbb, 0xe5, - 0xd5, 0x14, 0x4c, 0x30, 0x27, 0x68, - 0xd1, 0xf7, 0x58, 0x34, 0x4c, 0xe1, - 0x71, 0xde, 0x7b, 0x8d, 0xa2, 0xe6, - 0x0a, 0x44, 0x22, 0x26, 0x5a, 0x70, - 0xbb, 0x68 ), - BIGINT ( 0x18, 0x36, 0x96 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xc7, 0x4a, 0xf0, 0x48 ), - BIGINT ( 0x5d, 0x27, 0x07, 0x54 ), - BIGINT ( 0x4a ), - BIGINT ( 0x48, 0x68, 0x7b, 0xe0 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xb4, 0x89, 0xc9, 0x5b ), - BIGINT ( 0x7c, 0xd7, 0xc7, 0xff ), - BIGINT ( 0xc6, 0x9c ), - BIGINT ( 0x0b, 0x2d, 0xf8, 0xf7 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xea, 0x72, 0x43, 0xfe ), - BIGINT ( 0xfc, 0x57, 0x2d, 0x47 ), - BIGINT ( 0x60, 0x01, 0x2c ), - BIGINT ( 0x12, 0x01, 0xe3, 0xf5 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x81, 0x7f, 0x27, 0x94 ), - BIGINT ( 0x17, 0x21, 0x67, 0xab ), - BIGINT ( 0x50, 0x19, 0x12, 0x52 ), - BIGINT ( 0x05, 0x17, 0x6b, 0x13 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x38, 0xab, 0xd4, 0xec ), - BIGINT ( 0x0c, 0x2a, 0x56, 0x38 ), - BIGINT ( 0x2f, 0x85, 0x85, 0x57, 0xf6, 0xde, - 0x24, 0xb4, 0x28, 0x3c, 0x5a, 0x3c, - 0x0b, 0x12, 0x85, 0x85, 0x85, 0x98, - 0x46, 0x5b, 0x9c, 0x52, 0x3a ), - BIGINT ( 0x02, 0xe6, 0x6a, 0x70 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xa6, 0x35, 0xc0, 0x6f ), - BIGINT ( 0x23, 0xac, 0x78, 0x72 ), - BIGINT ( 0x6a, 0x07, 0x80, 0xbf, 0x1b, 0xa5, - 0xf8, 0x0b, 0x90, 0x06, 0xa4, 0xa5, - 0x44, 0x13, 0xba, 0x4b, 0xb3, 0xce, - 0x9f, 0x55, 0x42, 0x56, 0xc3, 0x30, - 0x82, 0x85, 0x5a, 0x3b, 0xae, 0x88, - 0x92, 0x4e, 0x3c, 0x37, 0xf6, 0x80, - 0x4c, 0x03, 0x3c, 0x1e, 0x2c, 0x17, - 0xef, 0x9d, 0xd7, 0x6f, 0xdc, 0xbb, - 0x42, 0x42, 0xa1, 0x7f, 0x97, 0x66, - 0xcd, 0xc8, 0x8a, 0x7c, 0xc6, 0x70, - 0x61, 0x54, 0x82, 0xd0, 0xd0, 0x8b, - 0xd5, 0x4f, 0x57, 0x7b, 0x8e, 0xab, - 0xdc, 0xbf, 0x8e, 0x85, 0x94, 0x83, - 0x8a, 0xb3, 0x72, 0x69, 0x2d, 0x51, - 0xdd, 0x86, 0x1e, 0x58, 0xb8, 0x00, - 0xe2, 0x5e, 0xa7, 0xef, 0x6a, 0x6a, - 0xb0, 0x10, 0x3d, 0x53, 0xfe, 0x23, - 0x51, 0xc0, 0x51, 0xed, 0x1f, 0x02, - 0x4b, 0x73, 0x17, 0x59, 0xfa, 0xb9, - 0xa8, 0x05, 0xa7, 0x79, 0xc3, 0xc9, - 0x4c, 0x2d, 0x58, 0x59, 0x10, 0x99, - 0x71, 0xe6 ), - BIGINT ( 0x01, 0x63, 0xd0, 0x07 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xff, 0x2a, 0x37, 0x04, 0xd4, 0x08, - 0x9f, 0xf5, 0xac, 0x29, 0x7f, 0x4b, - 0x93, 0x86, 0x02, 0x26, 0xac, 0x29, - 0xa8, 0xf9, 0x77, 0x91, 0x20 ), - BIGINT ( 0x2c, 0xb2, 0xe2, 0x1f, 0x4b, 0x97, - 0xaa, 0x3b, 0xd1, 0x36, 0xb0, 0x40, - 0x8b, 0x1c, 0x19, 0xa2, 0xea, 0xc8, - 0xc6, 0x4e, 0x2a, 0x66, 0x50 ), - BIGINT ( 0x97 ), - BIGINT ( 0x04, 0x22, 0x44, 0xe2, 0x14, 0x54, - 0x6c, 0x5a, 0xba, 0x1b, 0x39, 0xb7, - 0xaa, 0x06, 0xcf, 0x2b, 0xc8, 0x7e, - 0xc0, 0xe0, 0x70, 0xf2, 0x90 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xcd, 0xf3, 0xf7, 0x50, 0x13, 0x39, - 0x13, 0x4a, 0x56, 0xc5, 0xb8, 0xa6, - 0x42, 0x2d, 0x40, 0x5e, 0x07, 0xf2, - 0x92, 0x2a, 0x51, 0x87, 0x20 ), - BIGINT ( 0x93, 0x1a, 0x28, 0xbb, 0x69, 0x4f, - 0x31, 0x01, 0xe0, 0x88, 0x8a, 0x4c, - 0x4f, 0x9b, 0xda, 0xf6, 0x4e, 0xf3, - 0x11, 0xe7, 0x35, 0xa1, 0xfb ), - BIGINT ( 0x66, 0x69 ), - BIGINT ( 0x7a, 0x5a, 0x9b, 0x84, 0x72, 0x8f, - 0x57, 0x31, 0xb4, 0x34, 0x70, 0x18, - 0x77, 0xa6, 0x43, 0xa9, 0x51, 0x69, - 0x07, 0x3e, 0xf6, 0x68, 0x82 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xdd, 0x4c, 0x85, 0xcb, 0x3f, 0x45, - 0x61, 0xe0, 0x58, 0x1e, 0xad, 0xd3, - 0x6b, 0xef, 0x82, 0x53, 0x4a, 0x16, - 0x1a, 0xf0, 0x09, 0x82, 0x74 ), - BIGINT ( 0xd2, 0xa2, 0x73, 0x89, 0x0c, 0x56, - 0xe4, 0x31, 0xdf, 0x70, 0x3c, 0x40, - 0x0d, 0x36, 0xfc, 0x4a, 0xf3, 0xa2, - 0x8f, 0x9a, 0x9d, 0xaa, 0xb0 ), - BIGINT ( 0xbc, 0xca, 0x45 ), - BIGINT ( 0x9f, 0x5f, 0x7c, 0xac, 0x5e, 0xc7, - 0xf2, 0xc5, 0x72, 0x3d, 0xff, 0x29, - 0xd2, 0x25, 0xa9, 0x64, 0x5b, 0xbe, - 0x63, 0x63, 0xc6, 0x84, 0x20 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xf8, 0xc9, 0xb9, 0x3d, 0xe1, 0xff, - 0xa6, 0x8e, 0xb0, 0xd2, 0xa9, 0xa9, - 0xc1, 0x5c, 0xc5, 0x94, 0x90, 0xb9, - 0xca, 0x2f, 0x1a, 0xbd, 0x21 ), - BIGINT ( 0xa7, 0xf4, 0xb0, 0x3c, 0xf4, 0x2b, - 0x9d, 0x40, 0x5f, 0xfd, 0x2e, 0x28, - 0xa9, 0x23, 0x01, 0xaf, 0x0b, 0x73, - 0xaa, 0xcf, 0x14, 0xdc, 0xd8 ), - BIGINT ( 0x31, 0xe2, 0xe8, 0xf0 ), - BIGINT ( 0x53, 0x30, 0xc6, 0x10, 0x12, 0x7c, - 0xb3, 0x91, 0x15, 0x5f, 0x01, 0x62, - 0xec, 0x1f, 0x15, 0x61, 0x3b, 0x9a, - 0x76, 0x22, 0xf8, 0x31, 0xb1 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xff, 0x8c, 0x04, 0x74, 0x3e, 0x93, - 0xfd, 0xce, 0xd5, 0x7f, 0xc5, 0x58, - 0xce, 0x00, 0x53, 0x44, 0x02, 0xf4, - 0xfd, 0x01, 0xc3, 0xb0, 0x3c ), - BIGINT ( 0x2f, 0xbe, 0xb3, 0x2d, 0xd6, 0x59, - 0x69, 0x44, 0xc0, 0xd4, 0x27, 0x9c, - 0xff, 0x53, 0x9e, 0x66, 0x2c, 0x01, - 0x3a, 0x96, 0x5d, 0x75, 0xc1 ), - BIGINT ( 0x47, 0x3e, 0xb2, 0x81, 0x51, 0x9a, - 0xdf, 0x75, 0xba, 0xa5, 0x19, 0xc1, - 0xc7, 0xcc, 0xae, 0x82, 0x9c, 0x3e, - 0xfd, 0x7f, 0xb0, 0xd7, 0x00 ), - BIGINT ( 0x09, 0x9c, 0xd0, 0x49, 0x1d, 0x88, - 0xd8, 0x08, 0x45, 0x61, 0x71, 0xa1, - 0xb5, 0xab, 0xa9, 0x5b, 0xa8, 0xf1, - 0xc6, 0x53, 0x68, 0x8f, 0x3e ) ); - bigint_mod_exp_ok ( BIGINT ( 0xd8, 0x78, 0xad, 0x80, 0x81, 0xf1, - 0x84, 0x23, 0x82, 0x5d, 0x49, 0x46, - 0x75, 0xfd, 0xd1, 0x49, 0x53, 0x10, - 0x4d, 0x10, 0xab, 0x0f, 0xf0 ), - BIGINT ( 0x78, 0x3d, 0x09, 0x1b, 0xea, 0xa4, - 0xb9, 0x13, 0xf8, 0xb5, 0xb5, 0x5e, - 0x69, 0xa4, 0xe1, 0xfd, 0x88, 0x58, - 0x26, 0xb3, 0x76, 0xa2, 0x38 ), - BIGINT ( 0x3b, 0x12, 0xe0, 0x8e, 0xa2, 0x2f, - 0x2a, 0x2b, 0xb1, 0x78, 0xf9, 0xf6, - 0x93, 0x4d, 0x52, 0x82, 0x29, 0x2d, - 0xe4, 0x36, 0x92, 0x49, 0xc1, 0x25, - 0x6e, 0x26, 0xe6, 0x6e, 0xc2, 0x4d, - 0xea, 0x13, 0x86, 0x85, 0x71, 0x4d, - 0x85, 0x70, 0xf9, 0x2b, 0xa0, 0x0f, - 0x96, 0xe5, 0x63, 0x7a, 0xb4, 0x25, - 0x53, 0x1a, 0xd8, 0x30, 0x36, 0xba, - 0x6e, 0x2e, 0xce, 0x2d, 0x8f, 0x32, - 0xe9, 0xdc, 0x91, 0x9e, 0xd4, 0xf1, - 0x3b, 0x40, 0xc9, 0xf4, 0x97, 0x74, - 0x5e, 0x69, 0xcd, 0x34, 0x4a, 0x18, - 0x65, 0xe5, 0x07, 0xb5, 0x9e, 0x2a, - 0xc4, 0xeb, 0xb6, 0x96, 0x7b, 0x99, - 0x0c, 0xe4, 0xb3, 0x85, 0xff, 0x17, - 0x72, 0x5d, 0xf6, 0x30, 0xb4, 0xff, - 0x98, 0xe6, 0xf6, 0x31, 0x24, 0x82, - 0x91, 0xa6, 0x18, 0x6d, 0x0b, 0x84, - 0x6f, 0x5f, 0x64, 0xa3, 0xdf, 0x92, - 0x06, 0x16, 0xe3, 0x7c, 0x08, 0x61, - 0x77, 0xce ), - BIGINT ( 0x17, 0xc9, 0xc5, 0x38, 0x4c, 0x15, - 0x0f, 0x4e, 0xc2, 0x90, 0x3b, 0x46, - 0x7b, 0x2f, 0x95, 0x82, 0xfe, 0x51, - 0x95, 0x2b, 0xff, 0xd5, 0x28 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x69, 0xa3, 0x7e, 0x24, 0xdf, 0x9e, - 0x0b, 0x3e, 0x3f, 0x43, 0x06, 0x0e, - 0x1d, 0x57, 0x74, 0xe0, 0xa0, 0x5b, - 0x82, 0xca, 0xb0, 0x33, 0x8b, 0xe4, - 0x39, 0x27, 0x41, 0xd4, 0x2e, 0x30, - 0x3a, 0x0e, 0x62, 0x6f, 0xfa, 0xb4, - 0x02, 0x88, 0x70, 0x35, 0xa6, 0xea, - 0x7d, 0xb2, 0x87, 0xc3, 0xa5, 0x50, - 0x49, 0x38, 0xa4, 0x68, 0xa9, 0xe4, - 0xa6, 0xcc, 0xd7, 0x13, 0xb1, 0xd9, - 0x1c, 0x6a, 0x9a, 0xb8, 0x6c, 0x9b, - 0xff, 0xcd, 0x2c, 0xb3, 0xbd, 0xe2, - 0xfd, 0x1f, 0x08, 0xdd, 0xc6, 0xee, - 0x18, 0x0c, 0xa5, 0xcd, 0x09, 0x19, - 0x51, 0x51, 0xa5, 0x6f, 0x93, 0x1b, - 0x34, 0xfd, 0x8f, 0xd9, 0x87, 0xed, - 0x15, 0x7e, 0x36, 0x60, 0xdd, 0x1b, - 0xf4, 0xcc, 0xc4, 0x4c, 0x19, 0x2b, - 0xd6, 0x1e, 0xec, 0x51, 0xe9, 0x27, - 0xe9, 0xbd, 0x6a, 0x3f, 0x91, 0x45, - 0xc3, 0x6d, 0x40, 0x7e, 0x6c, 0x56, - 0x05, 0x5a ), - BIGINT ( 0x5c, 0x96, 0x05, 0x81, 0x94, 0x45, - 0xcf, 0x47, 0x5f, 0x1b, 0xb0, 0xf9, - 0xef, 0x13, 0x8f, 0xcc, 0x71, 0xfd, - 0x50, 0xf1, 0xe7, 0x62, 0x6e, 0xfa, - 0x48, 0x66, 0x1c, 0xf7, 0xef, 0x09, - 0x12, 0xa2, 0xfd, 0x17, 0xb7, 0x6a, - 0x3b, 0xed, 0xf7, 0x86, 0xd2, 0xbe, - 0x95, 0x90, 0xc6, 0x00, 0x14, 0x8d, - 0xe3, 0x27, 0xbe, 0x03, 0x7c, 0x9e, - 0x6b, 0x51, 0x31, 0x8d, 0x18, 0xc4, - 0x16, 0xd2, 0x84, 0x63, 0x9b, 0xe9, - 0xa4, 0xf8, 0xff, 0x70, 0x4d, 0xeb, - 0x6f, 0x4a, 0xb7, 0x5b, 0x54, 0xf1, - 0xb5, 0xbe, 0x78, 0xb6, 0xfd, 0x8b, - 0xe1, 0x39, 0x62, 0x85, 0x9b, 0xde, - 0x30, 0xa8, 0xe4, 0x37, 0x52, 0x57, - 0x39, 0x79, 0xdb, 0x0b, 0x19, 0x6b, - 0xc9, 0x17, 0xfd, 0x8c, 0x2c, 0xaa, - 0xa4, 0xf1, 0x04, 0xd1, 0xd3, 0x2f, - 0xbb, 0x3a, 0x36, 0x82, 0x31, 0xa4, - 0x40, 0xd4, 0x87, 0x46, 0xe3, 0x6e, - 0xd0, 0x17 ), - BIGINT ( 0x93 ), - BIGINT ( 0x0d, 0x39, 0x92, 0x57, 0xaa, 0x6d, - 0xfc, 0x3b, 0x10, 0x18, 0x6d, 0x59, - 0xbe, 0x31, 0x8f, 0xee, 0xf9, 0x82, - 0x84, 0xe0, 0xdf, 0xa5, 0x00, 0x28, - 0xd1, 0x64, 0x6b, 0x4b, 0x43, 0x3b, - 0x76, 0x3e, 0x6b, 0xc4, 0xe4, 0xf5, - 0x0b, 0x59, 0x5a, 0xe4, 0x53, 0x5e, - 0x02, 0xd4, 0xde, 0x72, 0xd3, 0xa3, - 0x58, 0x66, 0xa7, 0xdd, 0x2b, 0x0b, - 0xa4, 0x83, 0xd0, 0xd9, 0xef, 0x29, - 0x3d, 0x2f, 0x97, 0xff, 0x9a, 0xc7, - 0xf6, 0x8a, 0x8d, 0x59, 0xef, 0x87, - 0xd1, 0xe6, 0xba, 0x4d, 0x99, 0xd9, - 0x5f, 0x5e, 0x7a, 0x7e, 0x67, 0x22, - 0x5b, 0x77, 0x83, 0xa2, 0x02, 0xfd, - 0xb2, 0xe4, 0xf6, 0x20, 0x4c, 0x12, - 0x20, 0xa7, 0xda, 0x5b, 0x3b, 0x8c, - 0xa2, 0xca, 0xda, 0x20, 0xaa, 0x27, - 0xe6, 0x54, 0x3e, 0xa8, 0x6f, 0x64, - 0x9d, 0xa7, 0x0d, 0x57, 0x1b, 0x21, - 0xff, 0xd2, 0xe2, 0xb2, 0x0a, 0x4f, - 0xb7, 0x0e ) ); - bigint_mod_exp_ok ( BIGINT ( 0x06, 0xcf, 0x54, 0xf2, 0x0d, 0x62, - 0x33, 0xdd, 0xe7, 0x4d, 0x7f, 0x2f, - 0x8e, 0x52, 0x73, 0xf4, 0x73, 0x68, - 0x4b, 0x13, 0x6e, 0x58, 0x6b, 0x4a, - 0xb8, 0x4c, 0xef, 0x73, 0xfe, 0x5f, - 0xf6, 0xd0, 0xbb, 0x82, 0x17, 0x3f, - 0x9d, 0x91, 0xf8, 0xa3, 0xb8, 0x79, - 0xef, 0x41, 0x38, 0xc1, 0xef, 0xc9, - 0xc6, 0xcf, 0x2a, 0xc3, 0xaa, 0x75, - 0x17, 0xda, 0xbc, 0x76, 0x29, 0x61, - 0x6d, 0x05, 0x79, 0x0b, 0x44, 0xb1, - 0x54, 0x75, 0xb7, 0xd9, 0xf6, 0xa8, - 0xbd, 0xf7, 0x85, 0xe0, 0xe7, 0x90, - 0x62, 0xce, 0x79, 0xfb, 0xc5, 0x23, - 0xa5, 0x09, 0xc0, 0xc4, 0x4d, 0xe7, - 0x9c, 0x49, 0x8f, 0x82, 0xf1, 0x31, - 0x34, 0x85, 0xdd, 0x3b, 0xbe, 0xe9, - 0x93, 0x19, 0x03, 0x75, 0x3f, 0xc4, - 0xa4, 0x0f, 0x52, 0x53, 0xc1, 0xcd, - 0x08, 0xb0, 0x05, 0x0c, 0xa2, 0x0c, - 0x3a, 0x72, 0xb2, 0x3c, 0xdb, 0x4f, - 0xac, 0xc6 ), - BIGINT ( 0xe4, 0x40, 0xd8, 0x30, 0x00, 0xcf, - 0x4c, 0xfd, 0xda, 0xae, 0x90, 0xd3, - 0x5b, 0xc7, 0x20, 0xcc, 0x2b, 0xe2, - 0x0a, 0x39, 0x1e, 0xde, 0xef, 0x98, - 0x16, 0x3b, 0x9d, 0x36, 0x63, 0x0d, - 0x46, 0xed, 0x23, 0x6e, 0x38, 0xa8, - 0x15, 0xb5, 0xb1, 0xaf, 0x47, 0xb1, - 0xec, 0xaa, 0x8b, 0x57, 0xd6, 0xca, - 0x39, 0x2f, 0x62, 0xbd, 0xd5, 0xf8, - 0x98, 0x98, 0x5d, 0xfe, 0x14, 0xd6, - 0xdc, 0xe5, 0x98, 0x60, 0x5b, 0x16, - 0x92, 0xcb, 0xed, 0xb6, 0x9c, 0x5c, - 0x82, 0x40, 0x6b, 0xaa, 0x48, 0x7a, - 0xd4, 0xfe, 0xa3, 0xe7, 0x30, 0xf1, - 0x7c, 0xfb, 0x94, 0x2e, 0xeb, 0xb6, - 0x71, 0xe4, 0x33, 0x63, 0xc3, 0xb0, - 0x94, 0x6d, 0xee, 0xa5, 0x15, 0x3f, - 0x28, 0xf1, 0xfa, 0xdc, 0xf2, 0x13, - 0x0f, 0xc7, 0xd9, 0xe0, 0xbf, 0x1b, - 0x49, 0xee, 0x21, 0x8e, 0x26, 0xc9, - 0x28, 0x21, 0x86, 0x1d, 0x46, 0x33, - 0xd4, 0x69 ), - BIGINT ( 0xd9, 0x87 ), - BIGINT ( 0xdf, 0xff, 0xcc, 0xb7, 0xfe, 0x19, - 0x02, 0x92, 0x9d, 0xab, 0x33, 0xd2, - 0x21, 0xbc, 0xd3, 0xc4, 0x31, 0xad, - 0x4b, 0xb3, 0x16, 0x50, 0x96, 0xd9, - 0xdc, 0x88, 0x74, 0x60, 0xde, 0xdf, - 0xb7, 0x83, 0xdb, 0x22, 0xef, 0xcb, - 0xcb, 0xdb, 0x4c, 0xfb, 0x94, 0x4c, - 0x3f, 0xf5, 0xf5, 0x99, 0x85, 0x21, - 0x1a, 0x2b, 0xec, 0x90, 0x2d, 0xb4, - 0x20, 0x3c, 0x27, 0x9f, 0xe5, 0xb1, - 0x5c, 0x92, 0xfa, 0xb0, 0xa9, 0x8e, - 0x2c, 0x21, 0x8e, 0x8d, 0xe5, 0x55, - 0x84, 0x02, 0xa5, 0x15, 0x5c, 0x53, - 0x1f, 0x40, 0x81, 0x0a, 0x10, 0xde, - 0x21, 0x41, 0xa9, 0x97, 0xf8, 0x6f, - 0xbf, 0x42, 0x58, 0x9e, 0xc6, 0xdd, - 0x10, 0x33, 0x3f, 0xad, 0xe6, 0x8e, - 0x57, 0x27, 0x37, 0x20, 0xa4, 0x86, - 0xef, 0x39, 0x7b, 0x6f, 0x78, 0x77, - 0xab, 0xa0, 0x62, 0xe1, 0xfd, 0x9c, - 0xbe, 0xfa, 0x98, 0x2e, 0x29, 0xe3, - 0xeb, 0x52 ) ); - bigint_mod_exp_ok ( BIGINT ( 0x00, 0x91, 0xb3, 0x87, 0xe6, 0x01, - 0x57, 0xe9, 0x68, 0xa4, 0xf4, 0x9b, - 0xea, 0x6a, 0x8a, 0x9e, 0x1a, 0x8b, - 0xd3, 0x85, 0x9d, 0xba, 0x85, 0xab, - 0xd8, 0xcd, 0x25, 0x56, 0x8e, 0x85, - 0x8a, 0x8e, 0x48, 0x9e, 0xb4, 0x90, - 0xc8, 0x2e, 0x07, 0x78, 0x80, 0x49, - 0xa0, 0xb7, 0x95, 0x6a, 0xd8, 0xad, - 0xb5, 0xda, 0x5d, 0xe6, 0x11, 0x87, - 0xb8, 0x33, 0x8f, 0xa8, 0x6f, 0x4e, - 0xc6, 0xc3, 0x0d, 0xf5, 0xa9, 0x4e, - 0xb2, 0x42, 0x53, 0x81, 0xcd, 0x33, - 0x83, 0x49, 0xab, 0x0d, 0x0e, 0xf5, - 0x2c, 0xcd, 0x84, 0x58, 0xf3, 0x30, - 0xa3, 0x6e, 0x3c, 0x3a, 0xc6, 0x77, - 0x43, 0xb0, 0xe7, 0x4b, 0x66, 0x30, - 0xe9, 0x48, 0x0b, 0x0d, 0x86, 0x3f, - 0xd8, 0xe2, 0xb5, 0x88, 0xc1, 0x44, - 0xb2, 0x6b, 0xb0, 0x7a, 0x35, 0x3b, - 0x56, 0x83, 0xb1, 0xac, 0x9e, 0xeb, - 0x9b, 0x08, 0x43, 0xac, 0x0a, 0x3a, - 0x31, 0x69 ), - BIGINT ( 0x96, 0x6f, 0xb0, 0xa7, 0x02, 0xb5, - 0xd9, 0x19, 0xbe, 0x4b, 0x27, 0x65, - 0x5b, 0x96, 0xd4, 0x0b, 0x49, 0x70, - 0xf0, 0x09, 0x8e, 0xf2, 0x04, 0x85, - 0x93, 0xe9, 0x2e, 0x09, 0x31, 0x76, - 0x8b, 0xbb, 0xe9, 0xe1, 0x2b, 0x4f, - 0xed, 0x83, 0xa6, 0x87, 0xa3, 0x07, - 0x0a, 0x3d, 0x1c, 0x65, 0x14, 0x5a, - 0xd5, 0xc0, 0x5d, 0x3c, 0x31, 0x9a, - 0x83, 0xad, 0xca, 0x6a, 0x93, 0x0d, - 0x1a, 0x67, 0x4e, 0x68, 0x06, 0x64, - 0x53, 0x2e, 0x15, 0xd9, 0xdd, 0x5e, - 0xcb, 0xb7, 0x2e, 0xef, 0xd3, 0xbb, - 0x5f, 0xaf, 0xef, 0x9e, 0xf2, 0x7b, - 0x69, 0x15, 0xb0, 0x18, 0x6c, 0x67, - 0x10, 0xda, 0x33, 0x07, 0x48, 0x97, - 0x31, 0xb3, 0x3d, 0x3d, 0xc9, 0x2e, - 0x0b, 0x68, 0x91, 0x3f, 0x6a, 0x3b, - 0x1a, 0xdf, 0xa8, 0x69, 0x46, 0x1c, - 0xb2, 0x69, 0x08, 0x0b, 0x02, 0x1b, - 0x03, 0x64, 0xae, 0xb6, 0x2d, 0xc6, - 0xc4, 0x0a ), - BIGINT ( 0x6d, 0x3f, 0xdd ), - BIGINT ( 0x40, 0x6e, 0x9d, 0x3e, 0xeb, 0xa4, - 0xb1, 0x8d, 0xb7, 0xb4, 0x0f, 0x5b, - 0x12, 0xad, 0x27, 0x9e, 0xbd, 0xe7, - 0xe5, 0x9d, 0xec, 0xb4, 0xac, 0x23, - 0x5f, 0xa9, 0xec, 0x9c, 0xd1, 0x6a, - 0xbe, 0x99, 0xba, 0xb3, 0x66, 0x0e, - 0x17, 0xaa, 0x13, 0xa2, 0x2e, 0x01, - 0x28, 0xb1, 0x6c, 0xba, 0xad, 0x68, - 0x48, 0xf0, 0xf3, 0x4c, 0x08, 0x9f, - 0xd1, 0x9c, 0xb7, 0x75, 0xc5, 0xb6, - 0x5a, 0x05, 0xb0, 0x14, 0xd4, 0x61, - 0xea, 0x18, 0x9f, 0xe6, 0xe5, 0xe3, - 0xd4, 0xff, 0x35, 0x43, 0x0b, 0xb8, - 0xf6, 0xe9, 0x19, 0x7a, 0x88, 0xa7, - 0x4d, 0x01, 0x92, 0x05, 0xd2, 0x6e, - 0xa3, 0xc1, 0xb6, 0x66, 0x75, 0xb1, - 0x00, 0x0d, 0x42, 0x37, 0xcc, 0xca, - 0xc0, 0x8d, 0xc8, 0x7e, 0x5c, 0xc9, - 0x53, 0x81, 0x2f, 0xc4, 0x61, 0xb6, - 0x96, 0x3b, 0xa5, 0x04, 0x14, 0x1b, - 0xa7, 0x77, 0xa1, 0xbc, 0x73, 0x1d, - 0xad, 0xed ) ); - bigint_mod_exp_ok ( BIGINT ( 0x45, 0xfb, 0xf3, 0xdc, 0x31, 0xe5, - 0x56, 0x7a, 0xee, 0x15, 0xfb, 0x16, - 0xee, 0x6e, 0x90, 0x3e, 0xa3, 0x89, - 0xc2, 0x6d, 0x9b, 0x06, 0x65, 0xd0, - 0xcd, 0xa2, 0xcc, 0x01, 0x60, 0x0d, - 0xd1, 0xdd, 0x68, 0x14, 0xc2, 0xcd, - 0xd8, 0x79, 0x75, 0xad, 0x0a, 0x9f, - 0x39, 0x5f, 0x52, 0x4b, 0x58, 0x31, - 0x48, 0xbb, 0x2a, 0xcc, 0xe0, 0x42, - 0x18, 0x32, 0xdc, 0x63, 0x14, 0x11, - 0x4e, 0xab, 0x96, 0x29, 0xc5, 0x06, - 0x79, 0xe5, 0x06, 0xf7, 0x59, 0xdb, - 0x1e, 0x51, 0xfd, 0xc4, 0x48, 0x3a, - 0x4c, 0x7f, 0xd0, 0xe2, 0x36, 0x86, - 0xc1, 0x8b, 0xc5, 0x86, 0x52, 0xe0, - 0xdb, 0x92, 0x5f, 0x0e, 0x19, 0xb1, - 0xa3, 0x23, 0xdd, 0xf0, 0x78, 0xcc, - 0x81, 0x3f, 0x4a, 0xe6, 0xb0, 0x32, - 0xd1, 0x5c, 0x5e, 0x3a, 0xb0, 0xd8, - 0xe2, 0x04, 0xc0, 0x30, 0x85, 0x1d, - 0x5e, 0x28, 0xee, 0xd9, 0xb3, 0x83, - 0x9f, 0xe2 ), - BIGINT ( 0xb3, 0x2c, 0x2e, 0xc5, 0xba, 0xf8, - 0x41, 0x98, 0x79, 0x7e, 0xaa, 0x0c, - 0x2a, 0x8f, 0xd9, 0x56, 0x55, 0xaa, - 0x74, 0x60, 0x74, 0xd1, 0x49, 0x2c, - 0x6f, 0x0a, 0x4e, 0xf8, 0x3f, 0x1b, - 0x73, 0x4c, 0xe0, 0x17, 0x37, 0x06, - 0x76, 0x73, 0xd5, 0x2d, 0x4d, 0x3f, - 0xb0, 0x15, 0x7e, 0x98, 0xd0, 0xdf, - 0xf0, 0x33, 0x78, 0xe2, 0xe6, 0xec, - 0x21, 0x22, 0xad, 0xd5, 0xab, 0x2d, - 0x0d, 0x59, 0x95, 0x05, 0x34, 0x1f, - 0x51, 0xf5, 0xec, 0x93, 0x05, 0x15, - 0x37, 0xcf, 0x93, 0x03, 0xd7, 0xf6, - 0x35, 0x23, 0x8f, 0x33, 0xf6, 0xba, - 0x42, 0xc8, 0x52, 0x94, 0xd3, 0x33, - 0x3e, 0x39, 0x01, 0xd1, 0x55, 0x3f, - 0x48, 0x84, 0xe9, 0xbc, 0x0b, 0x0f, - 0xc9, 0x69, 0x41, 0x2c, 0x5f, 0x34, - 0xd0, 0xe6, 0x15, 0x50, 0x06, 0x64, - 0x5b, 0x8b, 0x71, 0x22, 0xb3, 0x3e, - 0x09, 0x9c, 0x76, 0x13, 0x9b, 0x29, - 0x57, 0x94 ), - BIGINT ( 0xca, 0x94, 0xf7, 0xca ), - BIGINT ( 0x83, 0x68, 0xb9, 0xe7, 0x91, 0xf3, - 0x3b, 0x5a, 0x0b, 0xb6, 0x1e, 0x2f, - 0x3f, 0x5f, 0xdc, 0x96, 0x5b, 0x7f, - 0x8d, 0xc5, 0x8e, 0xda, 0x6e, 0x21, - 0xe3, 0x20, 0xea, 0x37, 0x39, 0x3b, - 0xb4, 0xd7, 0xf6, 0xba, 0x61, 0xfe, - 0xdc, 0x7e, 0x82, 0x9a, 0x38, 0x7b, - 0xd5, 0xb1, 0x11, 0x98, 0xc4, 0x88, - 0x0b, 0x01, 0x7d, 0x81, 0xc9, 0x64, - 0x23, 0xc3, 0x3e, 0xf3, 0x67, 0x95, - 0x78, 0xca, 0xda, 0x52, 0xaf, 0x72, - 0x25, 0xd9, 0xf0, 0x27, 0xd3, 0x1c, - 0xfb, 0xad, 0xa1, 0xa7, 0x06, 0x2f, - 0xaa, 0x2f, 0x86, 0x5c, 0x8b, 0x30, - 0xe1, 0xda, 0x5a, 0x36, 0xf9, 0xfd, - 0xbf, 0xfe, 0x0d, 0x03, 0xf8, 0x9c, - 0x6b, 0x9b, 0xe5, 0x70, 0x6d, 0x75, - 0xd7, 0x54, 0x28, 0x43, 0x34, 0x69, - 0x98, 0x11, 0x29, 0xee, 0x50, 0x06, - 0xa4, 0xc4, 0x11, 0x6d, 0x60, 0x8c, - 0xcd, 0xd1, 0x88, 0xe9, 0x6b, 0xbb, - 0xc1, 0xd4 ) ); - bigint_mod_exp_ok ( BIGINT ( 0xa1, 0x01, 0x7e, 0xb4, 0x0e, 0x66, - 0xa5, 0x07, 0x8b, 0x10, 0x84, 0x0d, - 0x30, 0x0a, 0xa4, 0x2d, 0x10, 0x2c, - 0xd4, 0x9a, 0x27, 0xf1, 0x02, 0x8c, - 0x38, 0x18, 0x7f, 0x7f, 0x95, 0x65, - 0xf1, 0xa9, 0x3b, 0x7d, 0x1f, 0x4f, - 0x88, 0xb0, 0x65, 0x62, 0x63, 0x63, - 0xaa, 0x82, 0xfc, 0x83, 0x3a, 0x3a, - 0x46, 0x59, 0x6a, 0x89, 0xec, 0xa9, - 0xb0, 0x4c, 0x5e, 0xbe, 0x46, 0x98, - 0xd0, 0xd4, 0xb7, 0xe3, 0x1b, 0x30, - 0x0b, 0xfb, 0xbb, 0x4f, 0x0b, 0xd3, - 0xe4, 0xa0, 0x80, 0x54, 0xcb, 0x52, - 0x0a, 0xe8, 0x03, 0x75, 0x8e, 0x96, - 0xa4, 0x21, 0xaa, 0xbd, 0x7a, 0xfd, - 0xfa, 0xf8, 0xaf, 0x42, 0xf6, 0x61, - 0xd2, 0x93, 0xce, 0x66, 0x67, 0xe9, - 0x02, 0xda, 0x81, 0x0b, 0xb0, 0x1e, - 0x9e, 0x27, 0x57, 0x98, 0x18, 0x88, - 0x35, 0x49, 0xc0, 0x88, 0x88, 0x59, - 0xae, 0x2f, 0x66, 0x59, 0x31, 0x87, - 0x88, 0xda ), - BIGINT ( 0xfe, 0x21, 0x7c, 0xf4, 0xbe, 0xae, - 0x65, 0xda, 0x89, 0xd2, 0x26, 0xd6, - 0x9c, 0x65, 0xc6, 0xb6, 0xb4, 0x0a, - 0x84, 0x11, 0xe1, 0xe8, 0xba, 0xd8, - 0x16, 0xcf, 0x60, 0x6c, 0x83, 0xa5, - 0x4a, 0xbf, 0xa2, 0x24, 0x0b, 0x66, - 0xda, 0xe2, 0x4e, 0x2d, 0xe5, 0x9e, - 0xbf, 0xad, 0x5c, 0xa3, 0x1e, 0x5c, - 0xbd, 0xe2, 0x5b, 0x46, 0xcf, 0xcc, - 0xd5, 0xc9, 0x13, 0x95, 0xc3, 0xdb, - 0x64, 0xbf, 0xeb, 0x31, 0xa9, 0x8a, - 0x3b, 0xd2, 0x5d, 0x3b, 0x2e, 0xdc, - 0x0c, 0xca, 0xab, 0xde, 0x92, 0xae, - 0x45, 0x35, 0x96, 0xb0, 0xb7, 0xb9, - 0xe6, 0xfe, 0x28, 0x0d, 0x10, 0x72, - 0x53, 0x8e, 0x21, 0xc0, 0x33, 0x79, - 0x01, 0x43, 0x8d, 0x77, 0xc4, 0xaa, - 0xcf, 0x7f, 0xc3, 0xd1, 0xf5, 0xfd, - 0x79, 0x81, 0xf6, 0x2e, 0xb7, 0xeb, - 0x55, 0x5f, 0x74, 0xf0, 0x3a, 0xb9, - 0x57, 0x07, 0x09, 0x97, 0xa5, 0x4c, - 0x4a, 0x85 ), - BIGINT ( 0xd9, 0xb7, 0xb2, 0xd6, 0xeb, 0xf3, - 0x66, 0xbe, 0x15, 0x64, 0xad, 0x2e, - 0x9e, 0xc6, 0xaf, 0x5e, 0xaf, 0x40, - 0x1e, 0x90, 0x82, 0x2f, 0x98 ), - BIGINT ( 0x12, 0x48, 0x31, 0x7f, 0x09, 0xbb, - 0x8f, 0xd9, 0x02, 0x7e, 0x4a, 0xd0, - 0x2f, 0x42, 0x7c, 0x17, 0x6e, 0x83, - 0x74, 0x21, 0x95, 0x47, 0x7d, 0x93, - 0x4a, 0xce, 0x34, 0x7c, 0xde, 0xc7, - 0x8f, 0xf6, 0x28, 0x97, 0xba, 0x81, - 0x9b, 0xcc, 0x54, 0x14, 0x7f, 0xd3, - 0x93, 0x66, 0x41, 0x8c, 0x0e, 0x47, - 0xee, 0xc5, 0x5e, 0xd6, 0x5f, 0x01, - 0x62, 0x97, 0xf1, 0x2b, 0xee, 0x60, - 0x5e, 0x82, 0x2c, 0x7b, 0x0a, 0xf2, - 0xc3, 0x23, 0xbf, 0xb9, 0x83, 0xf7, - 0x97, 0xf5, 0xca, 0x58, 0xd7, 0xf0, - 0x87, 0x7b, 0xcb, 0x87, 0x69, 0x42, - 0xbc, 0x05, 0xc4, 0xad, 0xbd, 0x82, - 0xcf, 0x44, 0x16, 0x4f, 0x46, 0xe0, - 0xde, 0x2f, 0xfa, 0x77, 0xec, 0xa4, - 0x23, 0x7d, 0x47, 0x3e, 0x94, 0x19, - 0x8b, 0xb8, 0x84, 0x81, 0x80, 0x6c, - 0x1e, 0x31, 0xa3, 0x6d, 0x14, 0x94, - 0x57, 0x28, 0x99, 0x08, 0x0a, 0xa7, - 0x98, 0x4b ) ); - bigint_mod_exp_ok ( BIGINT ( 0xda, 0x52, 0xfd, 0x44, 0x5d, 0x11, - 0x60, 0x6c, 0xec, 0x87, 0xbf, 0x19, - 0xb8, 0x46, 0xaa, 0x41, 0xfc, 0x10, - 0xae, 0x47, 0xd6, 0x72, 0x42, 0x57, - 0xc3, 0x05, 0xca, 0xe3, 0x59, 0x94, - 0x82, 0x7c, 0xa1, 0xe0, 0xd2, 0x6b, - 0x77, 0x71, 0x42, 0xa1, 0xf7, 0x84, - 0xae, 0xf4, 0x6f, 0x44, 0x0d, 0x88, - 0xa2, 0xc5, 0x45, 0x9b, 0x49, 0x36, - 0xd4, 0x20, 0x3a, 0x7c, 0x92, 0xdb, - 0x65, 0xd9, 0x20, 0xd6, 0x71, 0x22, - 0x90, 0x70, 0xbf, 0xf3, 0x17, 0xe8, - 0x2c, 0x10, 0xe9, 0x4c, 0x02, 0x69, - 0x37, 0xa2, 0x91, 0x04, 0x46, 0x11, - 0xdc, 0xab, 0x5b, 0x1e, 0x3e, 0x31, - 0xd8, 0x69, 0xf8, 0x48, 0x84, 0x1f, - 0x56, 0x46, 0xf1, 0xc0, 0x14, 0x3f, - 0xcc, 0x5d, 0xe2, 0xf7, 0x8b, 0xa4, - 0x9e, 0x94, 0x32, 0xaa, 0x3c, 0x5e, - 0x21, 0x70, 0x00, 0x24, 0x2a, 0x1b, - 0xec, 0x25, 0xb1, 0xb6, 0x83, 0x36, - 0x5a, 0x95 ), - BIGINT ( 0x5e, 0xdc, 0x71, 0x1f, 0x5b, 0x55, - 0xaa, 0xda, 0x56, 0xf5, 0x93, 0x9b, - 0xe8, 0xfc, 0x6a, 0x80, 0xe1, 0xe3, - 0x93, 0xe4, 0xc0, 0x58, 0x6f, 0x22, - 0xce, 0x9d, 0x6f, 0x84, 0x4c, 0xd4, - 0x12, 0x44, 0x57, 0x25, 0xca, 0xe5, - 0x2b, 0x7c, 0x35, 0x88, 0xc7, 0x38, - 0x25, 0x20, 0x9b, 0x57, 0xf2, 0xf2, - 0x6c, 0x28, 0x47, 0x9c, 0x3f, 0x91, - 0x1e, 0x3f, 0xe9, 0xeb, 0x50, 0xd6, - 0xa7, 0x22, 0x88, 0x6c, 0x71, 0xe5, - 0x62, 0x2a, 0xb7, 0xce, 0xbe, 0xf7, - 0x1a, 0x8c, 0x52, 0xa6, 0xff, 0xb8, - 0x34, 0x83, 0x7e, 0x04, 0xa8, 0x9c, - 0xa8, 0xa7, 0xd1, 0x05, 0x8e, 0x13, - 0x03, 0xe0, 0x49, 0xd8, 0x4a, 0xc4, - 0x4d, 0x38, 0x21, 0x5b, 0x62, 0xc2, - 0x38, 0x23, 0x7c, 0x9e, 0xf1, 0xe9, - 0xb6, 0x9a, 0x75, 0x42, 0x14, 0x99, - 0x63, 0x36, 0x13, 0x4c, 0x2d, 0x3a, - 0x77, 0xd4, 0x74, 0xb7, 0x30, 0xb2, - 0x00, 0x0f ), - BIGINT ( 0xe3, 0xe5, 0x3b, 0xb5, 0x92, 0x5a, - 0xc6, 0xfa, 0x8f, 0xe8, 0x00, 0xb9, - 0x5c, 0xa0, 0xb6, 0x3e, 0x5e, 0x14, - 0x12, 0xa9, 0xdd, 0x2a, 0x3d, 0x4d, - 0xa3, 0x91, 0x6a, 0x56, 0x99, 0xc2, - 0x6c, 0x8e, 0xda, 0xb0, 0x5a, 0x2a, - 0x37, 0x55, 0x8b, 0xd3, 0x9b, 0xb6, - 0x1d, 0x49, 0x7d, 0x81, 0x76, 0x1c, - 0x2e, 0xb9, 0x92, 0x6d, 0xfa, 0x54, - 0x53, 0xfc, 0x74, 0x9b, 0x6b, 0x63, - 0x95, 0x1a, 0x89, 0xcc, 0xbd, 0x36, - 0xc5, 0x31, 0x7f, 0xf5, 0x31, 0x69, - 0x40, 0xd5, 0x7b, 0x94, 0x5d, 0xa9, - 0xd1, 0x34, 0x95, 0xa1, 0x8b, 0xa5, - 0xb5, 0x83, 0xda, 0xb5, 0x9d, 0x5b, - 0x74, 0x41, 0xad, 0x81, 0x45, 0x40, - 0x9b, 0xc3, 0xe8, 0xfe, 0x47, 0xdc, - 0xb0, 0xc3, 0x34, 0x5d, 0xf6, 0x3c, - 0x1d, 0x07, 0x76, 0xd9, 0x25, 0xca, - 0xa2, 0x39, 0x6c, 0xa8, 0xae, 0x30, - 0x4a, 0xde, 0xfb, 0xeb, 0x19, 0x80, - 0x5e, 0x49 ), - BIGINT ( 0x4b, 0x0e, 0x74, 0xb8, 0xa7, 0x92, - 0x74, 0xd9, 0x50, 0xf6, 0x1b, 0x67, - 0x76, 0x76, 0x56, 0x6c, 0x09, 0x9c, - 0x01, 0xda, 0xaf, 0xa3, 0xca, 0xb2, - 0x12, 0x85, 0x52, 0x24, 0xe9, 0x7e, - 0x2b, 0xf2, 0x6e, 0xe9, 0x1a, 0x10, - 0x5d, 0xa0, 0x25, 0x46, 0x8f, 0x2a, - 0x95, 0x62, 0x50, 0xb6, 0x66, 0x43, - 0x37, 0x8b, 0xcb, 0x05, 0xf8, 0x61, - 0x59, 0xf9, 0xdd, 0xd2, 0x68, 0x72, - 0xfa, 0x88, 0x13, 0x36, 0xd8, 0x24, - 0x73, 0xec, 0x47, 0x44, 0xdd, 0x45, - 0x8a, 0x59, 0xd2, 0xbd, 0x43, 0xe3, - 0x05, 0x16, 0xd5, 0x9b, 0x1c, 0x8a, - 0x4b, 0x07, 0xda, 0x58, 0x0d, 0x4a, - 0x4e, 0xe7, 0x15, 0xfc, 0xbd, 0x95, - 0xf7, 0x18, 0xa5, 0xa7, 0x93, 0xff, - 0xf8, 0x1f, 0xd4, 0x6b, 0x07, 0xc6, - 0x5d, 0x90, 0x73, 0x57, 0x57, 0x37, - 0xfa, 0x83, 0xd4, 0x7c, 0xe9, 0x77, - 0x46, 0x91, 0x3a, 0x50, 0x0d, 0x6a, - 0x25, 0xd0 ) ); -} - -/** Big integer self-test */ -struct self_test bigint_test __self_test = { - .name = "bigint", - .exec = bigint_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/bofm_test.c b/qemu/roms/ipxe/src/tests/bofm_test.c deleted file mode 100644 index 829924887..000000000 --- a/qemu/roms/ipxe/src/tests/bofm_test.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (C) 2011 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include -#include -#include -#include -#include -#include -#include -#include - -/** @file - * - * IBM BladeCenter Open Fabric Manager (BOFM) tests - * - */ - -/** Harvest test table */ -static struct { - struct bofm_global_header header; - struct bofm_section_header en_header; - struct bofm_en en; - struct bofm_section_header done; -} __attribute__ (( packed )) bofmtab_harvest = { - .header = { - .magic = BOFM_IOAA_MAGIC, - .action = BOFM_ACTION_HVST, - .version = 0x01, - .level = 0x01, - .length = sizeof ( bofmtab_harvest ), - .profile = "Harvest test profile", - }, - .en_header = { - .magic = BOFM_EN_MAGIC, - .length = sizeof ( bofmtab_harvest.en ), - }, - .en = { - .options = ( BOFM_EN_MAP_PFA | BOFM_EN_USAGE_HARVEST | - BOFM_EN_RQ_HVST_ACTIVE ), - .mport = 1, - }, - .done = { - .magic = BOFM_DONE_MAGIC, - }, -}; - -/** Update test table */ -static struct { - struct bofm_global_header header; - struct bofm_section_header en_header; - struct bofm_en en; - struct bofm_section_header done; -} __attribute__ (( packed )) bofmtab_update = { - .header = { - .magic = BOFM_IOAA_MAGIC, - .action = BOFM_ACTION_UPDT, - .version = 0x01, - .level = 0x01, - .length = sizeof ( bofmtab_update ), - .profile = "Update test profile", - }, - .en_header = { - .magic = BOFM_EN_MAGIC, - .length = sizeof ( bofmtab_update.en ), - }, - .en = { - .options = ( BOFM_EN_MAP_PFA | BOFM_EN_EN_A | - BOFM_EN_USAGE_ENTRY ), - .mport = 1, - .mac_a = { 0x02, 0x00, 0x69, 0x50, 0x58, 0x45 }, - }, - .done = { - .magic = BOFM_DONE_MAGIC, - }, -}; - -/** - * Perform BOFM test - * - * @v pci PCI device - */ -void bofm_test ( struct pci_device *pci ) { - int bofmrc; - - printf ( "BOFMTEST using " PCI_FMT "\n", PCI_ARGS ( pci ) ); - - /* Perform harvest test */ - printf ( "BOFMTEST performing harvest\n" ); - bofmtab_harvest.en.busdevfn = pci->busdevfn; - DBG_HDA ( 0, &bofmtab_harvest, sizeof ( bofmtab_harvest ) ); - bofmrc = bofm ( virt_to_user ( &bofmtab_harvest ), pci ); - printf ( "BOFMTEST harvest result %08x\n", bofmrc ); - if ( bofmtab_harvest.en.options & BOFM_EN_HVST ) { - printf ( "BOFMTEST harvested MAC address %s\n", - eth_ntoa ( &bofmtab_harvest.en.mac_a ) ); - } else { - printf ( "BOFMTEST failed to harvest a MAC address\n" ); - } - DBG_HDA ( 0, &bofmtab_harvest, sizeof ( bofmtab_harvest ) ); - - /* Perform update test */ - printf ( "BOFMTEST performing update\n" ); - bofmtab_update.en.busdevfn = pci->busdevfn; - DBG_HDA ( 0, &bofmtab_update, sizeof ( bofmtab_update ) ); - bofmrc = bofm ( virt_to_user ( &bofmtab_update ), pci ); - printf ( "BOFMTEST update result %08x\n", bofmrc ); - if ( bofmtab_update.en.options & BOFM_EN_CSM_SUCCESS ) { - printf ( "BOFMTEST updated MAC address to %s\n", - eth_ntoa ( &bofmtab_update.en.mac_a ) ); - } else { - printf ( "BOFMTEST failed to update MAC address\n" ); - } - DBG_HDA ( 0, &bofmtab_update, sizeof ( bofmtab_update ) ); -} - -/** - * Perform BOFM test at initialisation time - * - */ -static void bofm_test_init ( void ) { - struct pci_device pci; - int busdevfn = -1; - int rc; - - /* Uncomment the following line and specify the correct PCI - * bus:dev.fn address in order to perform a BOFM test at - * initialisation time. - */ - // busdevfn = PCI_BUSDEVFN ( , , ); - - /* Skip test if no PCI bus:dev.fn is defined */ - if ( busdevfn < 0 ) - return; - - /* Initialise PCI device */ - memset ( &pci, 0, sizeof ( pci ) ); - pci_init ( &pci, busdevfn ); - if ( ( rc = pci_read_config ( &pci ) ) != 0 ) { - printf ( "BOFMTEST could not create " PCI_FMT " device: %s\n", - PCI_ARGS ( &pci ), strerror ( rc ) ); - return; - } - - /* Perform test */ - bofm_test ( &pci ); -} - -/** BOFM test initialisation function */ -struct init_fn bofm_test_init_fn __init_fn ( INIT_NORMAL ) = { - .initialise = bofm_test_init, -}; diff --git a/qemu/roms/ipxe/src/tests/byteswap_test.c b/qemu/roms/ipxe/src/tests/byteswap_test.c deleted file mode 100644 index 92bdb1d59..000000000 --- a/qemu/roms/ipxe/src/tests/byteswap_test.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Byte-order swapping test functions - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include - -/* Provide global functions to allow inspection of generated assembly code */ - -uint16_t test_bswap16 ( uint16_t x ) { - return __bswap_16 ( x ); -} - -uint32_t test_bswap32 ( uint32_t x ) { - return __bswap_32 ( x ); -} - -uint64_t test_bswap64 ( uint64_t x ) { - return __bswap_64 ( x ); -} - -void test_bswap16s ( uint16_t *x ) { - __bswap_16s ( x ); -} - -void test_bswap32s ( uint32_t *x ) { - __bswap_32s ( x ); -} - -void test_bswap64s ( uint64_t *x ) { - __bswap_64s ( x ); -} - -/** - * Perform byte-order swapping - * - */ -static void byteswap_test_exec ( void ) { - uint16_t test16; - uint32_t test32; - uint64_t test64; - - ok ( test_bswap16 ( 0x1234 ) == 0x3412 ); - ok ( test_bswap32 ( 0x12345678UL ) == 0x78563412UL ); - ok ( test_bswap64 ( 0x123456789abcdef0ULL ) == 0xf0debc9a78563412ULL ); - - test16 = 0xabcd; - test_bswap16s ( &test16 ); - ok ( test16 == 0xcdab ); - - test32 = 0xabcdef01UL; - test_bswap32s ( &test32 ); - ok ( test32 == 0x01efcdabUL ); - - test64 = 0xabcdef0123456789ULL; - test_bswap64s ( &test64 ); - ok ( test64 == 0x8967452301efcdabULL ); -} - -/** Byte-order swapping self-test */ -struct self_test byteswap_test __self_test = { - .name = "byteswap", - .exec = byteswap_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/cipher_test.c b/qemu/roms/ipxe/src/tests/cipher_test.c deleted file mode 100644 index 800d6c138..000000000 --- a/qemu/roms/ipxe/src/tests/cipher_test.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Cipher self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include -#include -#include "cipher_test.h" - -/** Number of sample iterations for profiling */ -#define PROFILE_COUNT 16 - -/** - * Report a cipher encryption test result - * - * @v test Cipher test - * @v file Test code file - * @v line Test code line - */ -void cipher_encrypt_okx ( struct cipher_test *test, const char *file, - unsigned int line ) { - struct cipher_algorithm *cipher = test->cipher; - size_t len = test->len; - uint8_t ctx[cipher->ctxsize]; - uint8_t ciphertext[len]; - - /* Initialise cipher */ - okx ( cipher_setkey ( cipher, ctx, test->key, test->key_len ) == 0, - file, line ); - cipher_setiv ( cipher, ctx, test->iv ); - - /* Perform encryption */ - cipher_encrypt ( cipher, ctx, test->plaintext, ciphertext, len ); - - /* Compare against expected ciphertext */ - okx ( memcmp ( ciphertext, test->ciphertext, len ) == 0, file, line ); -} - -/** - * Report a cipher decryption test result - * - * @v test Cipher test - * @v file Test code file - * @v line Test code line - */ -void cipher_decrypt_okx ( struct cipher_test *test, const char *file, - unsigned int line ) { - struct cipher_algorithm *cipher = test->cipher; - size_t len = test->len; - uint8_t ctx[cipher->ctxsize]; - uint8_t plaintext[len]; - - /* Initialise cipher */ - okx ( cipher_setkey ( cipher, ctx, test->key, test->key_len ) == 0, - file, line ); - cipher_setiv ( cipher, ctx, test->iv ); - - /* Perform encryption */ - cipher_decrypt ( cipher, ctx, test->ciphertext, plaintext, len ); - - /* Compare against expected plaintext */ - okx ( memcmp ( plaintext, test->plaintext, len ) == 0, file, line ); -} - -/** - * Report a cipher encryption and decryption test result - * - * @v test Cipher test - * @v file Test code file - * @v line Test code line - */ -void cipher_okx ( struct cipher_test *test, const char *file, - unsigned int line ) { - - cipher_encrypt_okx ( test, file, line ); - cipher_decrypt_okx ( test, file, line ); -} - -/** - * Calculate cipher encryption or decryption cost - * - * @v cipher Cipher algorithm - * @v key_len Length of key - * @v op Encryption or decryption operation - * @ret cost Cost (in cycles per byte) - */ -static unsigned long -cipher_cost ( struct cipher_algorithm *cipher, size_t key_len, - void ( * op ) ( struct cipher_algorithm *cipher, void *ctx, - const void *src, void *dst, size_t len ) ) { - static uint8_t random[8192]; /* Too large for stack */ - uint8_t key[key_len]; - uint8_t iv[cipher->blocksize]; - uint8_t ctx[cipher->ctxsize]; - struct profiler profiler; - unsigned long cost; - unsigned int i; - int rc; - - /* Fill buffer with pseudo-random data */ - srand ( 0x1234568 ); - for ( i = 0 ; i < sizeof ( random ) ; i++ ) - random[i] = rand(); - for ( i = 0 ; i < sizeof ( key ) ; i++ ) - key[i] = rand(); - for ( i = 0 ; i < sizeof ( iv ) ; i++ ) - iv[i] = rand(); - - /* Initialise cipher */ - rc = cipher_setkey ( cipher, ctx, key, key_len ); - assert ( rc == 0 ); - cipher_setiv ( cipher, ctx, iv ); - - /* Profile cipher operation */ - memset ( &profiler, 0, sizeof ( profiler ) ); - for ( i = 0 ; i < PROFILE_COUNT ; i++ ) { - profile_start ( &profiler ); - op ( cipher, ctx, random, random, sizeof ( random ) ); - profile_stop ( &profiler ); - } - - /* Round to nearest whole number of cycles per byte */ - cost = ( ( profile_mean ( &profiler ) + ( sizeof ( random ) / 2 ) ) / - sizeof ( random ) ); - - return cost; -} - -/** - * Calculate cipher encryption cost - * - * @v cipher Cipher algorithm - * @v key_len Length of key - * @ret cost Cost (in cycles per byte) - */ -unsigned long cipher_cost_encrypt ( struct cipher_algorithm *cipher, - size_t key_len ) { - return cipher_cost ( cipher, key_len, cipher_encrypt ); -} - -/** - * Calculate cipher decryption cost - * - * @v cipher Cipher algorithm - * @v key_len Length of key - * @ret cost Cost (in cycles per byte) - */ -unsigned long cipher_cost_decrypt ( struct cipher_algorithm *cipher, - size_t key_len ) { - return cipher_cost ( cipher, key_len, cipher_decrypt ); -} diff --git a/qemu/roms/ipxe/src/tests/cipher_test.h b/qemu/roms/ipxe/src/tests/cipher_test.h deleted file mode 100644 index d7c5aef8f..000000000 --- a/qemu/roms/ipxe/src/tests/cipher_test.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef _CIPHER_TEST_H -#define _CIPHER_TEST_H - -/** @file - * - * Cipher self-tests - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include -#include -#include - -/** A cipher test */ -struct cipher_test { - /** Cipher algorithm */ - struct cipher_algorithm *cipher; - /** Key */ - const void *key; - /** Length of key */ - size_t key_len; - /** Initialisation vector */ - const void *iv; - /** Length of initialisation vector */ - size_t iv_len; - /** Plaintext */ - const void *plaintext; - /** Ciphertext */ - const void *ciphertext; - /** Length of text */ - size_t len; -}; - -/** Define inline key */ -#define KEY(...) { __VA_ARGS__ } - -/** Define inline initialisation vector */ -#define IV(...) { __VA_ARGS__ } - -/** Define inline plaintext data */ -#define PLAINTEXT(...) { __VA_ARGS__ } - -/** Define inline ciphertext data */ -#define CIPHERTEXT(...) { __VA_ARGS__ } - -/** - * Define a cipher test - * - * @v name Test name - * @v CIPHER Cipher algorithm - * @v KEY Key - * @v IV Initialisation vector - * @v PLAINTEXT Plaintext - * @v CIPHERTEXT Ciphertext - * @ret test Cipher test - */ -#define CIPHER_TEST( name, CIPHER, KEY, IV, PLAINTEXT, CIPHERTEXT ) \ - static const uint8_t name ## _key [] = KEY; \ - static const uint8_t name ## _iv [] = IV; \ - static const uint8_t name ## _plaintext [] = PLAINTEXT; \ - static const uint8_t name ## _ciphertext \ - [ sizeof ( name ## _plaintext ) ] = CIPHERTEXT; \ - static struct cipher_test name = { \ - .cipher = CIPHER, \ - .key = name ## _key, \ - .key_len = sizeof ( name ## _key ), \ - .iv = name ## _iv, \ - .iv_len = sizeof ( name ## _iv ), \ - .plaintext = name ## _plaintext, \ - .ciphertext = name ## _ciphertext, \ - .len = sizeof ( name ## _plaintext ), \ - } - -extern void cipher_encrypt_okx ( struct cipher_test *test, const char *file, - unsigned int line ); -extern void cipher_decrypt_okx ( struct cipher_test *test, const char *file, - unsigned int line ); -extern void cipher_okx ( struct cipher_test *test, const char *file, - unsigned int line ); -extern unsigned long cipher_cost_encrypt ( struct cipher_algorithm *cipher, - size_t key_len ); -extern unsigned long cipher_cost_decrypt ( struct cipher_algorithm *cipher, - size_t key_len ); - -/** - * Report a cipher encryption test result - * - * @v test Cipher test - */ -#define cipher_encrypt_ok( test ) \ - cipher_encrypt_okx ( test, __FILE__, __LINE__ ) - -/** - * Report a cipher decryption test result - * - * @v test Cipher test - */ -#define cipher_decrypt_ok( test ) \ - cipher_decrypt_okx ( test, __FILE__, __LINE__ ) - -/** - * Report a cipher encryption and decryption test result - * - * @v test Cipher test - */ -#define cipher_ok( test ) \ - cipher_okx ( test, __FILE__, __LINE__ ) - -#endif /* _CIPHER_TEST_H */ diff --git a/qemu/roms/ipxe/src/tests/cms_test.c b/qemu/roms/ipxe/src/tests/cms_test.c deleted file mode 100644 index b805a9974..000000000 --- a/qemu/roms/ipxe/src/tests/cms_test.c +++ /dev/null @@ -1,1481 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * CMS self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include -#include - -/** Fingerprint algorithm used for X.509 test certificates */ -#define cms_test_algorithm sha256_algorithm - -/** CMS test code blob */ -struct cms_test_code { - /** Data */ - const void *data; - /** Length of data */ - size_t len; -}; - -/** CMS test signature */ -struct cms_test_signature { - /** Data */ - const void *data; - /** Length of data */ - size_t len; - - /** Parsed signature */ - struct cms_signature *sig; -}; - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define inline fingerprint data */ -#define FINGERPRINT(...) { __VA_ARGS__ } - -/** Define a test code blob */ -#define SIGNED_CODE( name, DATA ) \ - static const uint8_t name ## _data[] = DATA; \ - static struct cms_test_code name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - } - -/** Define a test signature */ -#define SIGNATURE( name, DATA ) \ - static const uint8_t name ## _data[] = DATA; \ - static struct cms_test_signature name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - } - -/** Code that has been signed */ -SIGNED_CODE ( test_code, - DATA ( 0x23, 0x21, 0x69, 0x70, 0x78, 0x65, 0x0a, 0x0a, 0x65, 0x63, - 0x68, 0x6f, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x20, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x2e, 0x20, 0x20, 0x44, 0x6f, 0x20, 0x61, - 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x79, 0x6f, - 0x75, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x21, 0x0a, 0x73, 0x68, - 0x65, 0x6c, 0x6c, 0x0a ) ); - -/** Code that has not been signed */ -SIGNED_CODE ( bad_code, - DATA ( 0x23, 0x21, 0x69, 0x70, 0x78, 0x65, 0x0a, 0x0a, 0x65, 0x63, - 0x68, 0x6f, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x20, 0x6d, 0x61, 0x6c, 0x69, 0x63, 0x69, 0x6f, - 0x75, 0x73, 0x20, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x2e, 0x20, 0x20, 0x44, 0x6f, 0x20, - 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x79, - 0x6f, 0x75, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x21, 0x0a, 0x73, - 0x68, 0x65, 0x6c, 0x6c, 0x0a ) ); - -/** Valid signature */ -SIGNATURE ( codesigned_sig, - DATA ( 0x30, 0x82, 0x0c, 0x41, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x0c, 0x32, 0x30, - 0x82, 0x0c, 0x2e, 0x02, 0x01, 0x01, 0x31, 0x09, 0x30, 0x07, - 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x30, 0x0b, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, - 0xa0, 0x82, 0x0a, 0xd8, 0x30, 0x82, 0x02, 0xac, 0x30, 0x82, - 0x02, 0x15, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x04, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, - 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, - 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, - 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, - 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, - 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, - 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, - 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, - 0x66, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, - 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x34, - 0x5a, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x32, 0x32, 0x30, - 0x30, 0x30, 0x31, 0x33, 0x34, 0x5a, 0x30, 0x81, 0x88, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x16, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x69, 0x70, 0x78, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x30, 0x81, 0x9f, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, - 0x02, 0x81, 0x81, 0x00, 0xc3, 0x3a, 0xdb, 0x7b, 0x17, 0x24, - 0x47, 0xb9, 0xb9, 0x17, 0x02, 0x17, 0xa8, 0xce, 0x21, 0x97, - 0x92, 0x2f, 0x65, 0x53, 0x3b, 0x7e, 0x5c, 0x7d, 0x13, 0xab, - 0x46, 0xe8, 0x4a, 0x44, 0x6c, 0x5d, 0x8f, 0xa2, 0x0c, 0x1d, - 0x69, 0xc1, 0x66, 0x48, 0xc4, 0x1a, 0xc9, 0x32, 0xe5, 0x97, - 0x92, 0xb7, 0x11, 0xa7, 0x1f, 0x21, 0xac, 0x96, 0xcb, 0x85, - 0x10, 0xcc, 0x23, 0x20, 0x51, 0xdd, 0xaf, 0xbe, 0xf5, 0x23, - 0x12, 0x0b, 0x03, 0xe9, 0xf9, 0x61, 0x86, 0x64, 0x82, 0xa4, - 0xfd, 0x53, 0x24, 0xdf, 0xc2, 0x96, 0x2e, 0x28, 0xbb, 0x94, - 0xfb, 0x2c, 0xaf, 0x9e, 0x07, 0x79, 0x96, 0x48, 0x24, 0xf0, - 0x9d, 0xb3, 0x11, 0x3d, 0x4c, 0x2e, 0xd8, 0xc9, 0xf9, 0x69, - 0xca, 0xdb, 0x16, 0xbd, 0x4c, 0xc5, 0xce, 0x28, 0x18, 0xdc, - 0x88, 0x1b, 0x31, 0x0d, 0x10, 0x6b, 0x5b, 0x10, 0xe9, 0xcc, - 0xfe, 0xa1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x24, 0x30, - 0x22, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, - 0x03, 0x02, 0x07, 0x80, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, - 0x25, 0x04, 0x0c, 0x30, 0x0a, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x03, 0x03, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x03, 0x81, 0x81, 0x00, 0x22, 0x20, 0xe4, 0xc5, 0x0a, 0xef, - 0xae, 0xab, 0xbd, 0xab, 0x96, 0x56, 0x2c, 0x30, 0xeb, 0x06, - 0x84, 0xa0, 0x96, 0x37, 0x1a, 0x29, 0x2b, 0xeb, 0x8c, 0xb5, - 0x23, 0x22, 0x10, 0xef, 0x81, 0xe8, 0xdc, 0xa9, 0xdd, 0x8e, - 0x1d, 0x2c, 0xfc, 0xf5, 0x07, 0x19, 0xb7, 0x94, 0x91, 0xf7, - 0x2e, 0x07, 0xa1, 0xbc, 0xc5, 0x17, 0x34, 0xbe, 0x8a, 0x62, - 0x05, 0x5e, 0x9f, 0xe3, 0xce, 0xfd, 0x16, 0x42, 0xca, 0x25, - 0x2e, 0x0a, 0x03, 0x54, 0xd5, 0x3a, 0x52, 0x7f, 0x99, 0x94, - 0x96, 0xc6, 0xf5, 0xf0, 0xe3, 0x09, 0xd6, 0x00, 0x9b, 0x6f, - 0x0b, 0xa4, 0x9a, 0x13, 0x70, 0x9e, 0x67, 0xf9, 0x8c, 0x64, - 0xab, 0x22, 0x5d, 0xb3, 0xba, 0x2d, 0xe2, 0x70, 0xb8, 0x0c, - 0x6d, 0xd3, 0x12, 0x70, 0x5e, 0x04, 0x80, 0xef, 0x5e, 0x42, - 0x0a, 0x77, 0x57, 0x79, 0xa2, 0x1d, 0xe5, 0xbd, 0x20, 0xce, - 0x45, 0xc3, 0x30, 0x82, 0x02, 0xb3, 0x30, 0x82, 0x02, 0x1c, - 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, - 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, - 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, - 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, - 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, - 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, - 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, - 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, - 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, - 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, - 0x74, 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, - 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, - 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x17, - 0x0d, 0x31, 0x34, 0x31, 0x32, 0x31, 0x37, 0x30, 0x30, 0x30, - 0x31, 0x33, 0x33, 0x5a, 0x30, 0x81, 0x90, 0x31, 0x0b, 0x30, - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, - 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, - 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, - 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, - 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, - 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, - 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, - 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, - 0x1e, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, - 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x20, 0x43, - 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, - 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, - 0xc9, 0x3a, 0xee, 0xc6, 0x3c, 0xac, 0x4d, 0x81, 0xc6, 0x98, - 0x5e, 0xe1, 0x48, 0x66, 0x1a, 0x1e, 0x60, 0x19, 0x41, 0xae, - 0xca, 0x14, 0x97, 0xc8, 0x3a, 0x50, 0xb6, 0x48, 0xf5, 0x42, - 0xac, 0x0f, 0xe1, 0xe3, 0x47, 0xf0, 0xbf, 0x7c, 0xd0, 0xee, - 0x8f, 0xb7, 0xa6, 0x19, 0xad, 0xbb, 0xc5, 0x1b, 0x34, 0x38, - 0xc8, 0xbd, 0x55, 0x84, 0x93, 0x72, 0xaf, 0x84, 0xfc, 0x9b, - 0x97, 0x1d, 0xb5, 0x54, 0x24, 0xd6, 0x5d, 0xb7, 0x31, 0xf4, - 0xbd, 0x3b, 0x40, 0x97, 0xc0, 0xa9, 0x5a, 0x2a, 0xcb, 0x6b, - 0x98, 0x07, 0xdb, 0xb5, 0x9f, 0xe8, 0x31, 0x3f, 0x01, 0x46, - 0x46, 0x70, 0x05, 0xa2, 0x0f, 0x8c, 0x7a, 0x61, 0xf3, 0xdf, - 0xdb, 0xa1, 0x37, 0x2c, 0x88, 0x6a, 0x81, 0x21, 0x12, 0x4c, - 0xf5, 0xcd, 0xaf, 0xc9, 0xd2, 0x36, 0x3d, 0x82, 0xd1, 0xca, - 0x19, 0xaf, 0x4e, 0xae, 0x50, 0x71, 0x44, 0xbf, 0x02, 0x03, - 0x01, 0x00, 0x01, 0xa3, 0x23, 0x30, 0x21, 0x30, 0x0f, 0x06, - 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, - 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, - 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x5d, - 0x3c, 0xb3, 0x52, 0x19, 0xa6, 0x9e, 0x4a, 0x44, 0x98, 0xbf, - 0x51, 0x20, 0x47, 0x0a, 0xf3, 0x26, 0x1a, 0xcc, 0x35, 0x2f, - 0xc9, 0xed, 0xe0, 0x9d, 0x46, 0xeb, 0xbc, 0x7e, 0xc9, 0xb9, - 0x1d, 0x76, 0xa4, 0x1d, 0xc2, 0xd9, 0x16, 0x29, 0x77, 0x01, - 0x40, 0xdd, 0xe5, 0xcb, 0x28, 0x91, 0x3a, 0x0c, 0x13, 0x01, - 0x1b, 0x72, 0x62, 0x45, 0x27, 0xfd, 0xd7, 0x00, 0x47, 0x36, - 0x09, 0x1e, 0x7b, 0xd2, 0xcb, 0x95, 0x3d, 0x28, 0x82, 0xce, - 0x83, 0x59, 0x32, 0xf9, 0xe6, 0xec, 0x89, 0xac, 0x88, 0x45, - 0x22, 0x88, 0x6f, 0x5e, 0xa2, 0x79, 0x95, 0xba, 0xb9, 0xc9, - 0xb6, 0x4c, 0x7c, 0xb4, 0x29, 0xa1, 0x02, 0xf5, 0xac, 0x5d, - 0x8e, 0x52, 0xeb, 0xe8, 0xb1, 0x56, 0x49, 0xb3, 0x77, 0x62, - 0x7d, 0x87, 0x4d, 0x17, 0xf2, 0x62, 0x83, 0x08, 0x59, 0x21, - 0x60, 0x0d, 0x84, 0x8e, 0x5a, 0x84, 0xf6, 0x30, 0x82, 0x02, - 0xb3, 0x30, 0x82, 0x02, 0x1c, 0xa0, 0x03, 0x02, 0x01, 0x02, - 0x02, 0x09, 0x00, 0xc6, 0xb8, 0x9c, 0x58, 0xd2, 0xdc, 0xc9, - 0x5d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x88, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, - 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, - 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, - 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, - 0x33, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, 0x38, 0x30, 0x38, - 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x30, 0x81, 0x88, - 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, - 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, - 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, - 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, - 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, - 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, - 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, - 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, - 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, - 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x72, - 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x81, 0x9f, 0x30, - 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, - 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, - 0x89, 0x02, 0x81, 0x81, 0x00, 0xaa, 0x72, 0xb5, 0xc1, 0x73, - 0xf4, 0x95, 0x76, 0xa4, 0x27, 0xab, 0x5e, 0xeb, 0x1d, 0x9d, - 0xd0, 0x04, 0xb2, 0x93, 0x05, 0xc7, 0xfa, 0x75, 0x84, 0x66, - 0xe6, 0x3a, 0x26, 0x1f, 0xbc, 0x2d, 0xfd, 0x8f, 0x59, 0x64, - 0xac, 0xcf, 0x65, 0x9d, 0x82, 0x23, 0xc3, 0x72, 0x93, 0xf2, - 0x40, 0x68, 0x32, 0xd1, 0xb8, 0xf1, 0x47, 0x61, 0x50, 0xea, - 0xbc, 0xcc, 0x3c, 0x6b, 0x74, 0x7a, 0xec, 0x2b, 0x75, 0xa6, - 0xc2, 0xa2, 0xb8, 0xbf, 0x23, 0x48, 0x97, 0xd5, 0xaf, 0x77, - 0xc1, 0x92, 0x88, 0xd7, 0x38, 0xb7, 0x9e, 0xda, 0xee, 0x72, - 0x04, 0xcb, 0x96, 0xe5, 0xdb, 0xfd, 0x9b, 0x5d, 0x99, 0x4e, - 0x7a, 0x60, 0x23, 0x34, 0xa4, 0x8d, 0xd7, 0x6c, 0xe7, 0x5d, - 0x93, 0x97, 0xe1, 0xab, 0x36, 0x2c, 0x24, 0x16, 0x92, 0x66, - 0xf6, 0x6a, 0x14, 0x23, 0x1d, 0x18, 0xb9, 0x44, 0x24, 0x61, - 0x6b, 0xd3, 0x75, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x23, - 0x30, 0x21, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, - 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, - 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, - 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x03, 0x81, 0x81, 0x00, 0x94, 0x9e, 0xea, 0x17, 0x8d, 0x27, - 0xa9, 0x17, 0xe5, 0xa9, 0x19, 0xbe, 0x82, 0x36, 0xbd, 0xac, - 0x74, 0xf3, 0x6e, 0x75, 0x71, 0x30, 0x1c, 0x05, 0x80, 0x6d, - 0x1a, 0x69, 0x37, 0x86, 0x9c, 0x77, 0x75, 0x29, 0xa1, 0xc6, - 0xb7, 0x11, 0x0a, 0x63, 0x27, 0xee, 0xb1, 0xc8, 0x94, 0xa9, - 0x2e, 0x56, 0x8f, 0xca, 0x9d, 0xbe, 0xf4, 0xdb, 0x63, 0x97, - 0x68, 0x3b, 0x13, 0xf8, 0x6a, 0xa5, 0xd1, 0x3d, 0xed, 0xbb, - 0x86, 0x9d, 0x42, 0xfc, 0x15, 0x0a, 0x04, 0xf8, 0x3c, 0x0e, - 0xc4, 0x86, 0x05, 0x57, 0x56, 0x96, 0xf6, 0xc0, 0x18, 0x53, - 0xb0, 0xc5, 0xf0, 0xca, 0x72, 0x77, 0x77, 0xc9, 0x8e, 0x90, - 0xa5, 0x4b, 0xb6, 0x80, 0x4a, 0x4c, 0x34, 0x6f, 0xc9, 0xe8, - 0x6f, 0xc2, 0x28, 0xdf, 0x93, 0xa9, 0xf5, 0x63, 0x18, 0xc0, - 0xec, 0x9e, 0xd5, 0x19, 0x36, 0xc5, 0x94, 0x10, 0xd4, 0x72, - 0xd2, 0xb8, 0x30, 0x82, 0x02, 0xb6, 0x30, 0x82, 0x02, 0x1f, - 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x30, 0x81, 0x90, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, - 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, - 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, - 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, - 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, - 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, - 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, - 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, - 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1e, - 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, - 0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x20, 0x43, 0x41, - 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, - 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x31, - 0x34, 0x31, 0x32, 0x31, 0x37, 0x30, 0x30, 0x30, 0x31, 0x33, - 0x33, 0x5a, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, - 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, - 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, - 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, - 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, - 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, - 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, - 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, - 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, - 0x65, 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x43, - 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, - 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, - 0xc3, 0x55, 0xad, 0xdf, 0x7b, 0xd1, 0x48, 0xc3, 0xd3, 0x02, - 0x54, 0x6c, 0x92, 0x45, 0x22, 0x3d, 0x90, 0xd8, 0xc7, 0x13, - 0xcd, 0xc1, 0x59, 0xc6, 0xe0, 0xad, 0x0e, 0xe6, 0xdb, 0x3b, - 0xe8, 0x63, 0xea, 0x4e, 0xb6, 0xea, 0x50, 0xea, 0x6e, 0x33, - 0x9d, 0x28, 0x25, 0x42, 0x49, 0xd0, 0xf0, 0xed, 0xc5, 0x5b, - 0x6b, 0x4a, 0xe7, 0x45, 0xfa, 0xd3, 0x3f, 0xae, 0xde, 0x5a, - 0x90, 0xab, 0xf1, 0x61, 0x2f, 0x40, 0x5e, 0xcf, 0x8b, 0x0b, - 0x10, 0x59, 0xa9, 0xd0, 0x1e, 0x0f, 0x18, 0x6b, 0x92, 0xd8, - 0x9f, 0x58, 0x10, 0x84, 0xb6, 0x15, 0xe8, 0x5b, 0xc4, 0xa0, - 0x3e, 0x49, 0x8b, 0xea, 0xdd, 0xa9, 0x7e, 0x32, 0x26, 0x9a, - 0x68, 0x44, 0xf0, 0x30, 0xca, 0x2a, 0xd6, 0x19, 0x7a, 0x80, - 0xfd, 0xd7, 0xfc, 0xc7, 0x5d, 0xe7, 0x61, 0xd2, 0x3f, 0x1f, - 0x2c, 0x40, 0x70, 0x7b, 0x34, 0xcb, 0x08, 0xa9, 0x02, 0x03, - 0x01, 0x00, 0x01, 0xa3, 0x26, 0x30, 0x24, 0x30, 0x12, 0x06, - 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, - 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, - 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, - 0x02, 0x02, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, - 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, - 0x81, 0x00, 0x40, 0xd2, 0x70, 0x02, 0x08, 0x19, 0xa0, 0xb8, - 0x8d, 0x9d, 0x3d, 0x62, 0x41, 0x90, 0x2a, 0x36, 0x4a, 0x8b, - 0x21, 0x42, 0x9a, 0xb4, 0xc5, 0xf8, 0x79, 0x17, 0xd7, 0x64, - 0x4d, 0xbf, 0x8f, 0x6a, 0x04, 0x54, 0x7a, 0x0b, 0xd4, 0xb5, - 0x0e, 0xab, 0xf7, 0xb7, 0x06, 0x2b, 0xf8, 0xde, 0x87, 0xb2, - 0x37, 0x3b, 0x95, 0x01, 0xba, 0x9f, 0x8f, 0xec, 0x0a, 0x86, - 0xca, 0x51, 0xb6, 0x25, 0x73, 0x2f, 0xa1, 0x66, 0xc8, 0x7a, - 0x5e, 0x51, 0xbd, 0x49, 0xb5, 0x75, 0xda, 0xea, 0xe5, 0xeb, - 0x5d, 0xe3, 0xb0, 0xad, 0x49, 0x9f, 0x8b, 0xfd, 0x89, 0xb3, - 0xb7, 0xb2, 0x4c, 0x7d, 0x8a, 0x29, 0xb2, 0xbe, 0x04, 0xef, - 0x9c, 0x73, 0x3c, 0xea, 0xa3, 0x9f, 0x07, 0x66, 0x5a, 0x2f, - 0x38, 0xad, 0x1a, 0xeb, 0xe1, 0xb0, 0x62, 0x14, 0x55, 0xdc, - 0x8c, 0x83, 0xbb, 0xc7, 0x13, 0x04, 0x41, 0x54, 0xf1, 0x45, - 0x31, 0x82, 0x01, 0x33, 0x30, 0x82, 0x01, 0x2f, 0x02, 0x01, - 0x01, 0x30, 0x81, 0x8e, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, - 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, - 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, - 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, - 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, - 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, - 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, - 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, - 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, - 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x66, - 0x20, 0x43, 0x41, 0x02, 0x01, 0x04, 0x30, 0x07, 0x06, 0x05, - 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, - 0x04, 0x81, 0x80, 0x1f, 0x95, 0x53, 0x9c, 0x63, 0xcc, 0x9e, - 0xe3, 0x41, 0x30, 0xaf, 0x66, 0xac, 0x7c, 0x39, 0x69, 0xa0, - 0x02, 0xe3, 0x28, 0xfa, 0xf6, 0x71, 0xf4, 0xcf, 0x97, 0x2a, - 0xbb, 0xe0, 0x1d, 0x71, 0x73, 0x4a, 0xa7, 0xea, 0xb0, 0x72, - 0xc3, 0xd2, 0xba, 0x52, 0x42, 0x06, 0x88, 0x4a, 0xa6, 0x41, - 0x1d, 0x2f, 0x82, 0xb3, 0x7d, 0x32, 0x59, 0x34, 0x4e, 0x47, - 0x1b, 0xaa, 0x5e, 0x90, 0xe2, 0x73, 0x62, 0x2d, 0x6f, 0x6c, - 0x47, 0x52, 0x05, 0x90, 0xcb, 0xac, 0x30, 0xa8, 0x20, 0x71, - 0x14, 0x39, 0x16, 0x85, 0x3d, 0x32, 0x2f, 0x9d, 0x31, 0x97, - 0xa8, 0x96, 0xb9, 0xf2, 0x2b, 0xdc, 0xa6, 0x2f, 0x68, 0xc7, - 0xac, 0x46, 0xa2, 0xc7, 0x26, 0xd0, 0xde, 0xac, 0x1d, 0x5d, - 0x70, 0x65, 0xc6, 0x26, 0xdd, 0x30, 0x3f, 0x3a, 0xbd, 0x5e, - 0x8f, 0x87, 0x64, 0xab, 0xe7, 0xf9, 0x71, 0x64, 0x03, 0x05, - 0xbf ) ); - -/** Signature with a broken certificate chain */ -SIGNATURE ( brokenchain_sig, - DATA ( 0x30, 0x82, 0x09, 0x8a, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x09, 0x7b, 0x30, - 0x82, 0x09, 0x77, 0x02, 0x01, 0x01, 0x31, 0x09, 0x30, 0x07, - 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x30, 0x0b, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, - 0xa0, 0x82, 0x08, 0x21, 0x30, 0x82, 0x02, 0xac, 0x30, 0x82, - 0x02, 0x15, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x04, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, - 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, - 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, - 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, - 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, - 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, - 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, - 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, - 0x66, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, - 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x34, - 0x5a, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x32, 0x32, 0x30, - 0x30, 0x30, 0x31, 0x33, 0x34, 0x5a, 0x30, 0x81, 0x88, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x16, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x69, 0x70, 0x78, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x30, 0x81, 0x9f, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, - 0x02, 0x81, 0x81, 0x00, 0xc3, 0x3a, 0xdb, 0x7b, 0x17, 0x24, - 0x47, 0xb9, 0xb9, 0x17, 0x02, 0x17, 0xa8, 0xce, 0x21, 0x97, - 0x92, 0x2f, 0x65, 0x53, 0x3b, 0x7e, 0x5c, 0x7d, 0x13, 0xab, - 0x46, 0xe8, 0x4a, 0x44, 0x6c, 0x5d, 0x8f, 0xa2, 0x0c, 0x1d, - 0x69, 0xc1, 0x66, 0x48, 0xc4, 0x1a, 0xc9, 0x32, 0xe5, 0x97, - 0x92, 0xb7, 0x11, 0xa7, 0x1f, 0x21, 0xac, 0x96, 0xcb, 0x85, - 0x10, 0xcc, 0x23, 0x20, 0x51, 0xdd, 0xaf, 0xbe, 0xf5, 0x23, - 0x12, 0x0b, 0x03, 0xe9, 0xf9, 0x61, 0x86, 0x64, 0x82, 0xa4, - 0xfd, 0x53, 0x24, 0xdf, 0xc2, 0x96, 0x2e, 0x28, 0xbb, 0x94, - 0xfb, 0x2c, 0xaf, 0x9e, 0x07, 0x79, 0x96, 0x48, 0x24, 0xf0, - 0x9d, 0xb3, 0x11, 0x3d, 0x4c, 0x2e, 0xd8, 0xc9, 0xf9, 0x69, - 0xca, 0xdb, 0x16, 0xbd, 0x4c, 0xc5, 0xce, 0x28, 0x18, 0xdc, - 0x88, 0x1b, 0x31, 0x0d, 0x10, 0x6b, 0x5b, 0x10, 0xe9, 0xcc, - 0xfe, 0xa1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x24, 0x30, - 0x22, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, - 0x03, 0x02, 0x07, 0x80, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, - 0x25, 0x04, 0x0c, 0x30, 0x0a, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x03, 0x03, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x03, 0x81, 0x81, 0x00, 0x22, 0x20, 0xe4, 0xc5, 0x0a, 0xef, - 0xae, 0xab, 0xbd, 0xab, 0x96, 0x56, 0x2c, 0x30, 0xeb, 0x06, - 0x84, 0xa0, 0x96, 0x37, 0x1a, 0x29, 0x2b, 0xeb, 0x8c, 0xb5, - 0x23, 0x22, 0x10, 0xef, 0x81, 0xe8, 0xdc, 0xa9, 0xdd, 0x8e, - 0x1d, 0x2c, 0xfc, 0xf5, 0x07, 0x19, 0xb7, 0x94, 0x91, 0xf7, - 0x2e, 0x07, 0xa1, 0xbc, 0xc5, 0x17, 0x34, 0xbe, 0x8a, 0x62, - 0x05, 0x5e, 0x9f, 0xe3, 0xce, 0xfd, 0x16, 0x42, 0xca, 0x25, - 0x2e, 0x0a, 0x03, 0x54, 0xd5, 0x3a, 0x52, 0x7f, 0x99, 0x94, - 0x96, 0xc6, 0xf5, 0xf0, 0xe3, 0x09, 0xd6, 0x00, 0x9b, 0x6f, - 0x0b, 0xa4, 0x9a, 0x13, 0x70, 0x9e, 0x67, 0xf9, 0x8c, 0x64, - 0xab, 0x22, 0x5d, 0xb3, 0xba, 0x2d, 0xe2, 0x70, 0xb8, 0x0c, - 0x6d, 0xd3, 0x12, 0x70, 0x5e, 0x04, 0x80, 0xef, 0x5e, 0x42, - 0x0a, 0x77, 0x57, 0x79, 0xa2, 0x1d, 0xe5, 0xbd, 0x20, 0xce, - 0x45, 0xc3, 0x30, 0x82, 0x02, 0xb3, 0x30, 0x82, 0x02, 0x1c, - 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xc6, 0xb8, - 0x9c, 0x58, 0xd2, 0xdc, 0xc9, 0x5d, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, - 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, - 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, - 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, - 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, - 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, - 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, - 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, - 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x33, - 0x39, 0x30, 0x38, 0x30, 0x38, 0x30, 0x30, 0x30, 0x31, 0x33, - 0x33, 0x5a, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, - 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, - 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, - 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, - 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, - 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, - 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, - 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, - 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, - 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, - 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, - 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, - 0xaa, 0x72, 0xb5, 0xc1, 0x73, 0xf4, 0x95, 0x76, 0xa4, 0x27, - 0xab, 0x5e, 0xeb, 0x1d, 0x9d, 0xd0, 0x04, 0xb2, 0x93, 0x05, - 0xc7, 0xfa, 0x75, 0x84, 0x66, 0xe6, 0x3a, 0x26, 0x1f, 0xbc, - 0x2d, 0xfd, 0x8f, 0x59, 0x64, 0xac, 0xcf, 0x65, 0x9d, 0x82, - 0x23, 0xc3, 0x72, 0x93, 0xf2, 0x40, 0x68, 0x32, 0xd1, 0xb8, - 0xf1, 0x47, 0x61, 0x50, 0xea, 0xbc, 0xcc, 0x3c, 0x6b, 0x74, - 0x7a, 0xec, 0x2b, 0x75, 0xa6, 0xc2, 0xa2, 0xb8, 0xbf, 0x23, - 0x48, 0x97, 0xd5, 0xaf, 0x77, 0xc1, 0x92, 0x88, 0xd7, 0x38, - 0xb7, 0x9e, 0xda, 0xee, 0x72, 0x04, 0xcb, 0x96, 0xe5, 0xdb, - 0xfd, 0x9b, 0x5d, 0x99, 0x4e, 0x7a, 0x60, 0x23, 0x34, 0xa4, - 0x8d, 0xd7, 0x6c, 0xe7, 0x5d, 0x93, 0x97, 0xe1, 0xab, 0x36, - 0x2c, 0x24, 0x16, 0x92, 0x66, 0xf6, 0x6a, 0x14, 0x23, 0x1d, - 0x18, 0xb9, 0x44, 0x24, 0x61, 0x6b, 0xd3, 0x75, 0x02, 0x03, - 0x01, 0x00, 0x01, 0xa3, 0x23, 0x30, 0x21, 0x30, 0x0f, 0x06, - 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, - 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, - 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x94, - 0x9e, 0xea, 0x17, 0x8d, 0x27, 0xa9, 0x17, 0xe5, 0xa9, 0x19, - 0xbe, 0x82, 0x36, 0xbd, 0xac, 0x74, 0xf3, 0x6e, 0x75, 0x71, - 0x30, 0x1c, 0x05, 0x80, 0x6d, 0x1a, 0x69, 0x37, 0x86, 0x9c, - 0x77, 0x75, 0x29, 0xa1, 0xc6, 0xb7, 0x11, 0x0a, 0x63, 0x27, - 0xee, 0xb1, 0xc8, 0x94, 0xa9, 0x2e, 0x56, 0x8f, 0xca, 0x9d, - 0xbe, 0xf4, 0xdb, 0x63, 0x97, 0x68, 0x3b, 0x13, 0xf8, 0x6a, - 0xa5, 0xd1, 0x3d, 0xed, 0xbb, 0x86, 0x9d, 0x42, 0xfc, 0x15, - 0x0a, 0x04, 0xf8, 0x3c, 0x0e, 0xc4, 0x86, 0x05, 0x57, 0x56, - 0x96, 0xf6, 0xc0, 0x18, 0x53, 0xb0, 0xc5, 0xf0, 0xca, 0x72, - 0x77, 0x77, 0xc9, 0x8e, 0x90, 0xa5, 0x4b, 0xb6, 0x80, 0x4a, - 0x4c, 0x34, 0x6f, 0xc9, 0xe8, 0x6f, 0xc2, 0x28, 0xdf, 0x93, - 0xa9, 0xf5, 0x63, 0x18, 0xc0, 0xec, 0x9e, 0xd5, 0x19, 0x36, - 0xc5, 0x94, 0x10, 0xd4, 0x72, 0xd2, 0xb8, 0x30, 0x82, 0x02, - 0xb6, 0x30, 0x82, 0x02, 0x1f, 0xa0, 0x03, 0x02, 0x01, 0x02, - 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, - 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, - 0x90, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, - 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, - 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, - 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, - 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, - 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, - 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, - 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, - 0x55, 0x04, 0x03, 0x0c, 0x1e, 0x69, 0x50, 0x58, 0x45, 0x20, - 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x65, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, - 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, - 0x33, 0x5a, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x32, 0x31, 0x37, - 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x30, 0x81, 0x88, - 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, - 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, - 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, - 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, - 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, - 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, - 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, - 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, - 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, - 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, - 0x65, 0x61, 0x66, 0x20, 0x43, 0x41, 0x30, 0x81, 0x9f, 0x30, - 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, - 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, - 0x89, 0x02, 0x81, 0x81, 0x00, 0xc3, 0x55, 0xad, 0xdf, 0x7b, - 0xd1, 0x48, 0xc3, 0xd3, 0x02, 0x54, 0x6c, 0x92, 0x45, 0x22, - 0x3d, 0x90, 0xd8, 0xc7, 0x13, 0xcd, 0xc1, 0x59, 0xc6, 0xe0, - 0xad, 0x0e, 0xe6, 0xdb, 0x3b, 0xe8, 0x63, 0xea, 0x4e, 0xb6, - 0xea, 0x50, 0xea, 0x6e, 0x33, 0x9d, 0x28, 0x25, 0x42, 0x49, - 0xd0, 0xf0, 0xed, 0xc5, 0x5b, 0x6b, 0x4a, 0xe7, 0x45, 0xfa, - 0xd3, 0x3f, 0xae, 0xde, 0x5a, 0x90, 0xab, 0xf1, 0x61, 0x2f, - 0x40, 0x5e, 0xcf, 0x8b, 0x0b, 0x10, 0x59, 0xa9, 0xd0, 0x1e, - 0x0f, 0x18, 0x6b, 0x92, 0xd8, 0x9f, 0x58, 0x10, 0x84, 0xb6, - 0x15, 0xe8, 0x5b, 0xc4, 0xa0, 0x3e, 0x49, 0x8b, 0xea, 0xdd, - 0xa9, 0x7e, 0x32, 0x26, 0x9a, 0x68, 0x44, 0xf0, 0x30, 0xca, - 0x2a, 0xd6, 0x19, 0x7a, 0x80, 0xfd, 0xd7, 0xfc, 0xc7, 0x5d, - 0xe7, 0x61, 0xd2, 0x3f, 0x1f, 0x2c, 0x40, 0x70, 0x7b, 0x34, - 0xcb, 0x08, 0xa9, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x26, - 0x30, 0x24, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, - 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, - 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, - 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x40, 0xd2, 0x70, - 0x02, 0x08, 0x19, 0xa0, 0xb8, 0x8d, 0x9d, 0x3d, 0x62, 0x41, - 0x90, 0x2a, 0x36, 0x4a, 0x8b, 0x21, 0x42, 0x9a, 0xb4, 0xc5, - 0xf8, 0x79, 0x17, 0xd7, 0x64, 0x4d, 0xbf, 0x8f, 0x6a, 0x04, - 0x54, 0x7a, 0x0b, 0xd4, 0xb5, 0x0e, 0xab, 0xf7, 0xb7, 0x06, - 0x2b, 0xf8, 0xde, 0x87, 0xb2, 0x37, 0x3b, 0x95, 0x01, 0xba, - 0x9f, 0x8f, 0xec, 0x0a, 0x86, 0xca, 0x51, 0xb6, 0x25, 0x73, - 0x2f, 0xa1, 0x66, 0xc8, 0x7a, 0x5e, 0x51, 0xbd, 0x49, 0xb5, - 0x75, 0xda, 0xea, 0xe5, 0xeb, 0x5d, 0xe3, 0xb0, 0xad, 0x49, - 0x9f, 0x8b, 0xfd, 0x89, 0xb3, 0xb7, 0xb2, 0x4c, 0x7d, 0x8a, - 0x29, 0xb2, 0xbe, 0x04, 0xef, 0x9c, 0x73, 0x3c, 0xea, 0xa3, - 0x9f, 0x07, 0x66, 0x5a, 0x2f, 0x38, 0xad, 0x1a, 0xeb, 0xe1, - 0xb0, 0x62, 0x14, 0x55, 0xdc, 0x8c, 0x83, 0xbb, 0xc7, 0x13, - 0x04, 0x41, 0x54, 0xf1, 0x45, 0x31, 0x82, 0x01, 0x33, 0x30, - 0x82, 0x01, 0x2f, 0x02, 0x01, 0x01, 0x30, 0x81, 0x8e, 0x30, - 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, - 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, - 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, - 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, - 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, - 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, - 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, - 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, - 0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x43, 0x41, 0x02, 0x01, - 0x04, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x81, 0x80, 0x1f, 0x95, - 0x53, 0x9c, 0x63, 0xcc, 0x9e, 0xe3, 0x41, 0x30, 0xaf, 0x66, - 0xac, 0x7c, 0x39, 0x69, 0xa0, 0x02, 0xe3, 0x28, 0xfa, 0xf6, - 0x71, 0xf4, 0xcf, 0x97, 0x2a, 0xbb, 0xe0, 0x1d, 0x71, 0x73, - 0x4a, 0xa7, 0xea, 0xb0, 0x72, 0xc3, 0xd2, 0xba, 0x52, 0x42, - 0x06, 0x88, 0x4a, 0xa6, 0x41, 0x1d, 0x2f, 0x82, 0xb3, 0x7d, - 0x32, 0x59, 0x34, 0x4e, 0x47, 0x1b, 0xaa, 0x5e, 0x90, 0xe2, - 0x73, 0x62, 0x2d, 0x6f, 0x6c, 0x47, 0x52, 0x05, 0x90, 0xcb, - 0xac, 0x30, 0xa8, 0x20, 0x71, 0x14, 0x39, 0x16, 0x85, 0x3d, - 0x32, 0x2f, 0x9d, 0x31, 0x97, 0xa8, 0x96, 0xb9, 0xf2, 0x2b, - 0xdc, 0xa6, 0x2f, 0x68, 0xc7, 0xac, 0x46, 0xa2, 0xc7, 0x26, - 0xd0, 0xde, 0xac, 0x1d, 0x5d, 0x70, 0x65, 0xc6, 0x26, 0xdd, - 0x30, 0x3f, 0x3a, 0xbd, 0x5e, 0x8f, 0x87, 0x64, 0xab, 0xe7, - 0xf9, 0x71, 0x64, 0x03, 0x05, 0xbf ) ); - -/** Signature generated with a non-code-signing certificate */ -SIGNATURE ( genericsigned_sig, - DATA ( 0x30, 0x82, 0x0c, 0x2f, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x0c, 0x20, 0x30, - 0x82, 0x0c, 0x1c, 0x02, 0x01, 0x01, 0x31, 0x09, 0x30, 0x07, - 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x30, 0x0b, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, - 0xa0, 0x82, 0x0a, 0xc6, 0x30, 0x82, 0x02, 0x9a, 0x30, 0x82, - 0x02, 0x03, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x05, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, - 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, - 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, - 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, - 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, - 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, - 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, - 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, - 0x66, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, - 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x35, - 0x5a, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x32, 0x32, 0x30, - 0x30, 0x30, 0x31, 0x33, 0x35, 0x5a, 0x30, 0x81, 0x8b, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x19, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, - 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x30, 0x81, - 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, - 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xc6, 0xfc, 0x96, - 0x1e, 0x90, 0x32, 0xed, 0xb8, 0x54, 0xb2, 0xc2, 0x39, 0x66, - 0x19, 0xca, 0xd8, 0x45, 0x21, 0xb7, 0x5a, 0x8d, 0x8d, 0x71, - 0xef, 0x69, 0x37, 0x40, 0xbb, 0xa4, 0xde, 0x09, 0x1b, 0x17, - 0x83, 0x3a, 0x7a, 0xf1, 0x7b, 0x02, 0x31, 0x5d, 0x1f, 0x3a, - 0xe5, 0x29, 0x28, 0x9b, 0x7e, 0x7b, 0x5a, 0xc4, 0x18, 0x3e, - 0x43, 0xe6, 0xe9, 0x6e, 0xd1, 0x8d, 0x86, 0xcf, 0xb5, 0x9f, - 0x7f, 0x50, 0x4e, 0x06, 0x13, 0xf7, 0xb2, 0xee, 0xef, 0x0e, - 0xab, 0x50, 0x44, 0x42, 0xfd, 0x3a, 0xa9, 0x47, 0x83, 0x34, - 0x17, 0xdf, 0xee, 0x3d, 0x84, 0x1f, 0xed, 0x7e, 0xfa, 0x0f, - 0xa8, 0xfc, 0x07, 0xf8, 0xd1, 0x49, 0x99, 0x1a, 0xad, 0x39, - 0x16, 0xb3, 0x71, 0x15, 0x2e, 0x82, 0x20, 0x7a, 0x92, 0xed, - 0x1e, 0x37, 0xf6, 0x46, 0x5e, 0x7d, 0x9b, 0xa1, 0x53, 0x4d, - 0x13, 0x91, 0xcd, 0x7a, 0x77, 0x02, 0x03, 0x01, 0x00, 0x01, - 0xa3, 0x0f, 0x30, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, - 0x0f, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, - 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0xb2, 0x39, 0x0b, 0x02, - 0x33, 0xca, 0x48, 0x96, 0x13, 0x53, 0xe9, 0x1b, 0x28, 0xd6, - 0x35, 0x4e, 0x0c, 0x9d, 0xd0, 0xe3, 0x79, 0x65, 0x0a, 0xe7, - 0xa6, 0x22, 0x61, 0x26, 0xbe, 0xb4, 0x05, 0xec, 0x5f, 0x83, - 0xb7, 0x0e, 0xa4, 0xae, 0x50, 0xb1, 0xa9, 0x45, 0x25, 0xf2, - 0x52, 0x1a, 0x63, 0x05, 0x50, 0x75, 0x33, 0xca, 0x8a, 0xb1, - 0xf2, 0x19, 0xd3, 0x93, 0x84, 0x67, 0x42, 0xe3, 0xb7, 0xa6, - 0xf9, 0x4d, 0x90, 0x7e, 0x13, 0x40, 0xd3, 0x22, 0x9f, 0x83, - 0xaf, 0x70, 0xb2, 0x7d, 0x4d, 0xcc, 0xae, 0x18, 0x9e, 0xca, - 0xc8, 0xcb, 0x82, 0x93, 0xcb, 0xce, 0xc6, 0x32, 0xcf, 0x4e, - 0x04, 0x64, 0x18, 0x5b, 0xc2, 0x1a, 0xb6, 0xd1, 0x8a, 0xc4, - 0x99, 0xce, 0xdd, 0xd7, 0x7e, 0xec, 0xf5, 0xa9, 0xa7, 0x00, - 0xc2, 0xd3, 0x6a, 0xb9, 0xcd, 0x25, 0x88, 0x08, 0x71, 0xf5, - 0x6d, 0x44, 0xe7, 0x93, 0x30, 0x82, 0x02, 0xb3, 0x30, 0x82, - 0x02, 0x1c, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, - 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, - 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, - 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, - 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, - 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, - 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, - 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, 0x6f, - 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, - 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, - 0x5a, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x32, 0x31, 0x37, 0x30, - 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x30, 0x81, 0x90, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x1e, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, - 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, - 0x20, 0x43, 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, - 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, - 0x81, 0x00, 0xc9, 0x3a, 0xee, 0xc6, 0x3c, 0xac, 0x4d, 0x81, - 0xc6, 0x98, 0x5e, 0xe1, 0x48, 0x66, 0x1a, 0x1e, 0x60, 0x19, - 0x41, 0xae, 0xca, 0x14, 0x97, 0xc8, 0x3a, 0x50, 0xb6, 0x48, - 0xf5, 0x42, 0xac, 0x0f, 0xe1, 0xe3, 0x47, 0xf0, 0xbf, 0x7c, - 0xd0, 0xee, 0x8f, 0xb7, 0xa6, 0x19, 0xad, 0xbb, 0xc5, 0x1b, - 0x34, 0x38, 0xc8, 0xbd, 0x55, 0x84, 0x93, 0x72, 0xaf, 0x84, - 0xfc, 0x9b, 0x97, 0x1d, 0xb5, 0x54, 0x24, 0xd6, 0x5d, 0xb7, - 0x31, 0xf4, 0xbd, 0x3b, 0x40, 0x97, 0xc0, 0xa9, 0x5a, 0x2a, - 0xcb, 0x6b, 0x98, 0x07, 0xdb, 0xb5, 0x9f, 0xe8, 0x31, 0x3f, - 0x01, 0x46, 0x46, 0x70, 0x05, 0xa2, 0x0f, 0x8c, 0x7a, 0x61, - 0xf3, 0xdf, 0xdb, 0xa1, 0x37, 0x2c, 0x88, 0x6a, 0x81, 0x21, - 0x12, 0x4c, 0xf5, 0xcd, 0xaf, 0xc9, 0xd2, 0x36, 0x3d, 0x82, - 0xd1, 0xca, 0x19, 0xaf, 0x4e, 0xae, 0x50, 0x71, 0x44, 0xbf, - 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x23, 0x30, 0x21, 0x30, - 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, - 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, - 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, - 0x02, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, - 0x00, 0x5d, 0x3c, 0xb3, 0x52, 0x19, 0xa6, 0x9e, 0x4a, 0x44, - 0x98, 0xbf, 0x51, 0x20, 0x47, 0x0a, 0xf3, 0x26, 0x1a, 0xcc, - 0x35, 0x2f, 0xc9, 0xed, 0xe0, 0x9d, 0x46, 0xeb, 0xbc, 0x7e, - 0xc9, 0xb9, 0x1d, 0x76, 0xa4, 0x1d, 0xc2, 0xd9, 0x16, 0x29, - 0x77, 0x01, 0x40, 0xdd, 0xe5, 0xcb, 0x28, 0x91, 0x3a, 0x0c, - 0x13, 0x01, 0x1b, 0x72, 0x62, 0x45, 0x27, 0xfd, 0xd7, 0x00, - 0x47, 0x36, 0x09, 0x1e, 0x7b, 0xd2, 0xcb, 0x95, 0x3d, 0x28, - 0x82, 0xce, 0x83, 0x59, 0x32, 0xf9, 0xe6, 0xec, 0x89, 0xac, - 0x88, 0x45, 0x22, 0x88, 0x6f, 0x5e, 0xa2, 0x79, 0x95, 0xba, - 0xb9, 0xc9, 0xb6, 0x4c, 0x7c, 0xb4, 0x29, 0xa1, 0x02, 0xf5, - 0xac, 0x5d, 0x8e, 0x52, 0xeb, 0xe8, 0xb1, 0x56, 0x49, 0xb3, - 0x77, 0x62, 0x7d, 0x87, 0x4d, 0x17, 0xf2, 0x62, 0x83, 0x08, - 0x59, 0x21, 0x60, 0x0d, 0x84, 0x8e, 0x5a, 0x84, 0xf6, 0x30, - 0x82, 0x02, 0xb3, 0x30, 0x82, 0x02, 0x1c, 0xa0, 0x03, 0x02, - 0x01, 0x02, 0x02, 0x09, 0x00, 0xc6, 0xb8, 0x9c, 0x58, 0xd2, - 0xdc, 0xc9, 0x5d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, - 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, - 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, - 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, - 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, - 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, - 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, - 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, - 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, - 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, - 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, - 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, - 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, - 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, - 0x31, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, 0x38, - 0x30, 0x38, 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x30, - 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, - 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, - 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, - 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, - 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, - 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, - 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, - 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, - 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x81, - 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, - 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xaa, 0x72, 0xb5, - 0xc1, 0x73, 0xf4, 0x95, 0x76, 0xa4, 0x27, 0xab, 0x5e, 0xeb, - 0x1d, 0x9d, 0xd0, 0x04, 0xb2, 0x93, 0x05, 0xc7, 0xfa, 0x75, - 0x84, 0x66, 0xe6, 0x3a, 0x26, 0x1f, 0xbc, 0x2d, 0xfd, 0x8f, - 0x59, 0x64, 0xac, 0xcf, 0x65, 0x9d, 0x82, 0x23, 0xc3, 0x72, - 0x93, 0xf2, 0x40, 0x68, 0x32, 0xd1, 0xb8, 0xf1, 0x47, 0x61, - 0x50, 0xea, 0xbc, 0xcc, 0x3c, 0x6b, 0x74, 0x7a, 0xec, 0x2b, - 0x75, 0xa6, 0xc2, 0xa2, 0xb8, 0xbf, 0x23, 0x48, 0x97, 0xd5, - 0xaf, 0x77, 0xc1, 0x92, 0x88, 0xd7, 0x38, 0xb7, 0x9e, 0xda, - 0xee, 0x72, 0x04, 0xcb, 0x96, 0xe5, 0xdb, 0xfd, 0x9b, 0x5d, - 0x99, 0x4e, 0x7a, 0x60, 0x23, 0x34, 0xa4, 0x8d, 0xd7, 0x6c, - 0xe7, 0x5d, 0x93, 0x97, 0xe1, 0xab, 0x36, 0x2c, 0x24, 0x16, - 0x92, 0x66, 0xf6, 0x6a, 0x14, 0x23, 0x1d, 0x18, 0xb9, 0x44, - 0x24, 0x61, 0x6b, 0xd3, 0x75, 0x02, 0x03, 0x01, 0x00, 0x01, - 0xa3, 0x23, 0x30, 0x21, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, - 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, - 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, - 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, - 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x94, 0x9e, 0xea, 0x17, - 0x8d, 0x27, 0xa9, 0x17, 0xe5, 0xa9, 0x19, 0xbe, 0x82, 0x36, - 0xbd, 0xac, 0x74, 0xf3, 0x6e, 0x75, 0x71, 0x30, 0x1c, 0x05, - 0x80, 0x6d, 0x1a, 0x69, 0x37, 0x86, 0x9c, 0x77, 0x75, 0x29, - 0xa1, 0xc6, 0xb7, 0x11, 0x0a, 0x63, 0x27, 0xee, 0xb1, 0xc8, - 0x94, 0xa9, 0x2e, 0x56, 0x8f, 0xca, 0x9d, 0xbe, 0xf4, 0xdb, - 0x63, 0x97, 0x68, 0x3b, 0x13, 0xf8, 0x6a, 0xa5, 0xd1, 0x3d, - 0xed, 0xbb, 0x86, 0x9d, 0x42, 0xfc, 0x15, 0x0a, 0x04, 0xf8, - 0x3c, 0x0e, 0xc4, 0x86, 0x05, 0x57, 0x56, 0x96, 0xf6, 0xc0, - 0x18, 0x53, 0xb0, 0xc5, 0xf0, 0xca, 0x72, 0x77, 0x77, 0xc9, - 0x8e, 0x90, 0xa5, 0x4b, 0xb6, 0x80, 0x4a, 0x4c, 0x34, 0x6f, - 0xc9, 0xe8, 0x6f, 0xc2, 0x28, 0xdf, 0x93, 0xa9, 0xf5, 0x63, - 0x18, 0xc0, 0xec, 0x9e, 0xd5, 0x19, 0x36, 0xc5, 0x94, 0x10, - 0xd4, 0x72, 0xd2, 0xb8, 0x30, 0x82, 0x02, 0xb6, 0x30, 0x82, - 0x02, 0x1f, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x90, 0x31, 0x0b, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, - 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, - 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, - 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, - 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, - 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, - 0x67, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x0c, 0x1e, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, - 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x20, - 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, - 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x17, - 0x0d, 0x31, 0x34, 0x31, 0x32, 0x31, 0x37, 0x30, 0x30, 0x30, - 0x31, 0x33, 0x33, 0x5a, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, - 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, - 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, - 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, - 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, - 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, - 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, - 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, - 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, - 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x66, - 0x20, 0x43, 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, - 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, - 0x81, 0x00, 0xc3, 0x55, 0xad, 0xdf, 0x7b, 0xd1, 0x48, 0xc3, - 0xd3, 0x02, 0x54, 0x6c, 0x92, 0x45, 0x22, 0x3d, 0x90, 0xd8, - 0xc7, 0x13, 0xcd, 0xc1, 0x59, 0xc6, 0xe0, 0xad, 0x0e, 0xe6, - 0xdb, 0x3b, 0xe8, 0x63, 0xea, 0x4e, 0xb6, 0xea, 0x50, 0xea, - 0x6e, 0x33, 0x9d, 0x28, 0x25, 0x42, 0x49, 0xd0, 0xf0, 0xed, - 0xc5, 0x5b, 0x6b, 0x4a, 0xe7, 0x45, 0xfa, 0xd3, 0x3f, 0xae, - 0xde, 0x5a, 0x90, 0xab, 0xf1, 0x61, 0x2f, 0x40, 0x5e, 0xcf, - 0x8b, 0x0b, 0x10, 0x59, 0xa9, 0xd0, 0x1e, 0x0f, 0x18, 0x6b, - 0x92, 0xd8, 0x9f, 0x58, 0x10, 0x84, 0xb6, 0x15, 0xe8, 0x5b, - 0xc4, 0xa0, 0x3e, 0x49, 0x8b, 0xea, 0xdd, 0xa9, 0x7e, 0x32, - 0x26, 0x9a, 0x68, 0x44, 0xf0, 0x30, 0xca, 0x2a, 0xd6, 0x19, - 0x7a, 0x80, 0xfd, 0xd7, 0xfc, 0xc7, 0x5d, 0xe7, 0x61, 0xd2, - 0x3f, 0x1f, 0x2c, 0x40, 0x70, 0x7b, 0x34, 0xcb, 0x08, 0xa9, - 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x26, 0x30, 0x24, 0x30, - 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, - 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, - 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, - 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x03, 0x81, 0x81, 0x00, 0x40, 0xd2, 0x70, 0x02, 0x08, 0x19, - 0xa0, 0xb8, 0x8d, 0x9d, 0x3d, 0x62, 0x41, 0x90, 0x2a, 0x36, - 0x4a, 0x8b, 0x21, 0x42, 0x9a, 0xb4, 0xc5, 0xf8, 0x79, 0x17, - 0xd7, 0x64, 0x4d, 0xbf, 0x8f, 0x6a, 0x04, 0x54, 0x7a, 0x0b, - 0xd4, 0xb5, 0x0e, 0xab, 0xf7, 0xb7, 0x06, 0x2b, 0xf8, 0xde, - 0x87, 0xb2, 0x37, 0x3b, 0x95, 0x01, 0xba, 0x9f, 0x8f, 0xec, - 0x0a, 0x86, 0xca, 0x51, 0xb6, 0x25, 0x73, 0x2f, 0xa1, 0x66, - 0xc8, 0x7a, 0x5e, 0x51, 0xbd, 0x49, 0xb5, 0x75, 0xda, 0xea, - 0xe5, 0xeb, 0x5d, 0xe3, 0xb0, 0xad, 0x49, 0x9f, 0x8b, 0xfd, - 0x89, 0xb3, 0xb7, 0xb2, 0x4c, 0x7d, 0x8a, 0x29, 0xb2, 0xbe, - 0x04, 0xef, 0x9c, 0x73, 0x3c, 0xea, 0xa3, 0x9f, 0x07, 0x66, - 0x5a, 0x2f, 0x38, 0xad, 0x1a, 0xeb, 0xe1, 0xb0, 0x62, 0x14, - 0x55, 0xdc, 0x8c, 0x83, 0xbb, 0xc7, 0x13, 0x04, 0x41, 0x54, - 0xf1, 0x45, 0x31, 0x82, 0x01, 0x33, 0x30, 0x82, 0x01, 0x2f, - 0x02, 0x01, 0x01, 0x30, 0x81, 0x8e, 0x30, 0x81, 0x88, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, - 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, 0x65, - 0x61, 0x66, 0x20, 0x43, 0x41, 0x02, 0x01, 0x05, 0x30, 0x07, - 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x04, 0x81, 0x80, 0xc5, 0x08, 0x17, 0x23, 0xb9, - 0x8d, 0x45, 0x0b, 0x1a, 0x9a, 0x10, 0xa7, 0x16, 0x57, 0x05, - 0x86, 0x0c, 0x9a, 0xfd, 0x2d, 0x9c, 0x87, 0x15, 0xb3, 0x0f, - 0xd5, 0x3b, 0x7b, 0xa8, 0xce, 0xa2, 0xcc, 0x2a, 0x2a, 0x6a, - 0xa0, 0xab, 0x2f, 0x57, 0x8c, 0xb7, 0xc7, 0x4e, 0x2a, 0xbd, - 0x72, 0xc5, 0xef, 0x2a, 0xd8, 0xb8, 0xf2, 0x9d, 0xbe, 0xd4, - 0xa7, 0x55, 0x3e, 0x06, 0x3b, 0x3f, 0xfa, 0x92, 0x4f, 0x1f, - 0x84, 0x84, 0x16, 0xcf, 0x9b, 0x26, 0x71, 0xf7, 0x57, 0x6a, - 0x6d, 0xdd, 0x34, 0x6b, 0x12, 0xc4, 0x70, 0x78, 0x59, 0x9b, - 0xf7, 0x45, 0xf4, 0xae, 0x30, 0xb0, 0x8c, 0x21, 0xb7, 0xb1, - 0x96, 0xda, 0x91, 0x0e, 0x57, 0x7e, 0x1b, 0xe2, 0xef, 0x82, - 0xd5, 0xa3, 0xd1, 0xeb, 0x47, 0x5c, 0x33, 0x91, 0xf8, 0x90, - 0xf9, 0x99, 0x0c, 0x69, 0x05, 0xee, 0xa1, 0x1a, 0x2d, 0x44, - 0x7e, 0x7c, 0x99 ) ); - -/** Signature generated with a non-signing certificate */ -SIGNATURE ( nonsigned_sig, - DATA ( 0x30, 0x82, 0x0c, 0x12, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x0c, 0x03, 0x30, - 0x82, 0x0b, 0xff, 0x02, 0x01, 0x01, 0x31, 0x09, 0x30, 0x07, - 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x30, 0x0b, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, - 0xa0, 0x82, 0x0a, 0xa9, 0x30, 0x82, 0x02, 0x7d, 0x30, 0x82, - 0x01, 0xe6, 0x02, 0x01, 0x03, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, - 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, - 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, - 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, - 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, - 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, - 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, - 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, - 0x74, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x43, 0x41, 0x30, - 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, - 0x30, 0x30, 0x31, 0x33, 0x34, 0x5a, 0x17, 0x0d, 0x31, 0x33, - 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x34, - 0x5a, 0x30, 0x81, 0x84, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, - 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, - 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, - 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, - 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1b, 0x30, - 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x12, 0x62, 0x6f, - 0x6f, 0x74, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x69, 0x70, - 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x30, 0x81, 0x9f, 0x30, - 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, - 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, - 0x89, 0x02, 0x81, 0x81, 0x00, 0xbd, 0x43, 0x97, 0x45, 0xa2, - 0xe0, 0x1d, 0x38, 0x41, 0xb0, 0xd9, 0x91, 0xf9, 0x77, 0xa9, - 0xcb, 0x9c, 0x9c, 0x93, 0xfe, 0x5a, 0xee, 0xbc, 0xd9, 0x0f, - 0x39, 0xf6, 0x42, 0xe4, 0x55, 0x21, 0xbb, 0x11, 0xfd, 0xfd, - 0xba, 0x25, 0x58, 0xc8, 0xc6, 0xa5, 0x3b, 0x6f, 0x80, 0xba, - 0x5b, 0xbc, 0x89, 0xca, 0x7a, 0xdf, 0x6e, 0xb9, 0x81, 0xb6, - 0x25, 0x67, 0x0a, 0x38, 0x10, 0xf8, 0x26, 0x43, 0x0c, 0x51, - 0x02, 0x14, 0xd6, 0xf2, 0x9d, 0x7c, 0xf5, 0x25, 0x1c, 0x78, - 0x4d, 0x47, 0xaf, 0x87, 0x2e, 0x38, 0x49, 0x87, 0xb5, 0x8a, - 0xf3, 0xb5, 0xd4, 0x15, 0x69, 0x2a, 0x52, 0xc9, 0x46, 0x97, - 0x34, 0x8e, 0x50, 0x4b, 0xc4, 0xf2, 0xfb, 0x39, 0xfd, 0x16, - 0x68, 0xdb, 0xa8, 0x17, 0xe2, 0x71, 0x4b, 0xe0, 0xdf, 0x3d, - 0xfc, 0xc3, 0x9b, 0x9d, 0x22, 0xc9, 0xd3, 0xf6, 0x02, 0xa6, - 0x60, 0xef, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x7d, 0xff, 0x73, - 0xf3, 0x68, 0xe3, 0x75, 0xf1, 0xcf, 0xac, 0x2e, 0x23, 0x73, - 0xea, 0xd1, 0x26, 0x33, 0xbf, 0xf9, 0x56, 0xdf, 0xbf, 0x98, - 0x20, 0x84, 0x08, 0x78, 0x6b, 0xe6, 0x71, 0x7e, 0x22, 0x68, - 0x4d, 0x6c, 0xbb, 0xd5, 0xcc, 0xb4, 0x28, 0x33, 0x5e, 0xbe, - 0x4d, 0x10, 0x16, 0x9f, 0x65, 0x3b, 0x68, 0x90, 0xa7, 0xf7, - 0x9d, 0x57, 0x71, 0x45, 0x39, 0x86, 0x4c, 0xc0, 0x97, 0x34, - 0x03, 0x9c, 0x2b, 0x25, 0x05, 0xb1, 0x5c, 0x0c, 0x4e, 0xf2, - 0x14, 0xbf, 0xcf, 0xf0, 0x9a, 0x2d, 0xcf, 0x02, 0x47, 0x60, - 0xd2, 0xe9, 0xed, 0xbf, 0x71, 0x5d, 0x07, 0x09, 0x01, 0x87, - 0xeb, 0xf7, 0xa8, 0x26, 0x86, 0x24, 0x59, 0xf0, 0x31, 0x3b, - 0x42, 0xd1, 0xf1, 0xfd, 0x7c, 0x49, 0x5f, 0x1a, 0xf0, 0x41, - 0x67, 0xf0, 0x16, 0x3a, 0xfd, 0xb6, 0xb5, 0xf6, 0x2e, 0x0c, - 0x18, 0x1f, 0x09, 0x8e, 0x4d, 0x30, 0x82, 0x02, 0xb3, 0x30, - 0x82, 0x02, 0x1c, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, - 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x88, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, - 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x72, 0x6f, - 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, - 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, - 0x33, 0x5a, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x32, 0x31, 0x37, - 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x30, 0x81, 0x90, - 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, - 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, - 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, - 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, - 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, - 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, - 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, - 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, - 0x6f, 0x72, 0x67, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x0c, 0x1e, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, - 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x65, 0x20, 0x43, 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, - 0x81, 0x81, 0x00, 0xc9, 0x3a, 0xee, 0xc6, 0x3c, 0xac, 0x4d, - 0x81, 0xc6, 0x98, 0x5e, 0xe1, 0x48, 0x66, 0x1a, 0x1e, 0x60, - 0x19, 0x41, 0xae, 0xca, 0x14, 0x97, 0xc8, 0x3a, 0x50, 0xb6, - 0x48, 0xf5, 0x42, 0xac, 0x0f, 0xe1, 0xe3, 0x47, 0xf0, 0xbf, - 0x7c, 0xd0, 0xee, 0x8f, 0xb7, 0xa6, 0x19, 0xad, 0xbb, 0xc5, - 0x1b, 0x34, 0x38, 0xc8, 0xbd, 0x55, 0x84, 0x93, 0x72, 0xaf, - 0x84, 0xfc, 0x9b, 0x97, 0x1d, 0xb5, 0x54, 0x24, 0xd6, 0x5d, - 0xb7, 0x31, 0xf4, 0xbd, 0x3b, 0x40, 0x97, 0xc0, 0xa9, 0x5a, - 0x2a, 0xcb, 0x6b, 0x98, 0x07, 0xdb, 0xb5, 0x9f, 0xe8, 0x31, - 0x3f, 0x01, 0x46, 0x46, 0x70, 0x05, 0xa2, 0x0f, 0x8c, 0x7a, - 0x61, 0xf3, 0xdf, 0xdb, 0xa1, 0x37, 0x2c, 0x88, 0x6a, 0x81, - 0x21, 0x12, 0x4c, 0xf5, 0xcd, 0xaf, 0xc9, 0xd2, 0x36, 0x3d, - 0x82, 0xd1, 0xca, 0x19, 0xaf, 0x4e, 0xae, 0x50, 0x71, 0x44, - 0xbf, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x23, 0x30, 0x21, - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, - 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, - 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, - 0x02, 0x02, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, - 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, - 0x81, 0x00, 0x5d, 0x3c, 0xb3, 0x52, 0x19, 0xa6, 0x9e, 0x4a, - 0x44, 0x98, 0xbf, 0x51, 0x20, 0x47, 0x0a, 0xf3, 0x26, 0x1a, - 0xcc, 0x35, 0x2f, 0xc9, 0xed, 0xe0, 0x9d, 0x46, 0xeb, 0xbc, - 0x7e, 0xc9, 0xb9, 0x1d, 0x76, 0xa4, 0x1d, 0xc2, 0xd9, 0x16, - 0x29, 0x77, 0x01, 0x40, 0xdd, 0xe5, 0xcb, 0x28, 0x91, 0x3a, - 0x0c, 0x13, 0x01, 0x1b, 0x72, 0x62, 0x45, 0x27, 0xfd, 0xd7, - 0x00, 0x47, 0x36, 0x09, 0x1e, 0x7b, 0xd2, 0xcb, 0x95, 0x3d, - 0x28, 0x82, 0xce, 0x83, 0x59, 0x32, 0xf9, 0xe6, 0xec, 0x89, - 0xac, 0x88, 0x45, 0x22, 0x88, 0x6f, 0x5e, 0xa2, 0x79, 0x95, - 0xba, 0xb9, 0xc9, 0xb6, 0x4c, 0x7c, 0xb4, 0x29, 0xa1, 0x02, - 0xf5, 0xac, 0x5d, 0x8e, 0x52, 0xeb, 0xe8, 0xb1, 0x56, 0x49, - 0xb3, 0x77, 0x62, 0x7d, 0x87, 0x4d, 0x17, 0xf2, 0x62, 0x83, - 0x08, 0x59, 0x21, 0x60, 0x0d, 0x84, 0x8e, 0x5a, 0x84, 0xf6, - 0x30, 0x82, 0x02, 0xb3, 0x30, 0x82, 0x02, 0x1c, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xc6, 0xb8, 0x9c, 0x58, - 0xd2, 0xdc, 0xc9, 0x5d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, - 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, - 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, - 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, - 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, - 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, - 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, - 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, - 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, - 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, - 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, - 0x30, 0x31, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, - 0x38, 0x30, 0x38, 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, - 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, - 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, - 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, - 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, - 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, - 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, - 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, - 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, - 0x74, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, - 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, - 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xaa, 0x72, - 0xb5, 0xc1, 0x73, 0xf4, 0x95, 0x76, 0xa4, 0x27, 0xab, 0x5e, - 0xeb, 0x1d, 0x9d, 0xd0, 0x04, 0xb2, 0x93, 0x05, 0xc7, 0xfa, - 0x75, 0x84, 0x66, 0xe6, 0x3a, 0x26, 0x1f, 0xbc, 0x2d, 0xfd, - 0x8f, 0x59, 0x64, 0xac, 0xcf, 0x65, 0x9d, 0x82, 0x23, 0xc3, - 0x72, 0x93, 0xf2, 0x40, 0x68, 0x32, 0xd1, 0xb8, 0xf1, 0x47, - 0x61, 0x50, 0xea, 0xbc, 0xcc, 0x3c, 0x6b, 0x74, 0x7a, 0xec, - 0x2b, 0x75, 0xa6, 0xc2, 0xa2, 0xb8, 0xbf, 0x23, 0x48, 0x97, - 0xd5, 0xaf, 0x77, 0xc1, 0x92, 0x88, 0xd7, 0x38, 0xb7, 0x9e, - 0xda, 0xee, 0x72, 0x04, 0xcb, 0x96, 0xe5, 0xdb, 0xfd, 0x9b, - 0x5d, 0x99, 0x4e, 0x7a, 0x60, 0x23, 0x34, 0xa4, 0x8d, 0xd7, - 0x6c, 0xe7, 0x5d, 0x93, 0x97, 0xe1, 0xab, 0x36, 0x2c, 0x24, - 0x16, 0x92, 0x66, 0xf6, 0x6a, 0x14, 0x23, 0x1d, 0x18, 0xb9, - 0x44, 0x24, 0x61, 0x6b, 0xd3, 0x75, 0x02, 0x03, 0x01, 0x00, - 0x01, 0xa3, 0x23, 0x30, 0x21, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, - 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, - 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x94, 0x9e, 0xea, - 0x17, 0x8d, 0x27, 0xa9, 0x17, 0xe5, 0xa9, 0x19, 0xbe, 0x82, - 0x36, 0xbd, 0xac, 0x74, 0xf3, 0x6e, 0x75, 0x71, 0x30, 0x1c, - 0x05, 0x80, 0x6d, 0x1a, 0x69, 0x37, 0x86, 0x9c, 0x77, 0x75, - 0x29, 0xa1, 0xc6, 0xb7, 0x11, 0x0a, 0x63, 0x27, 0xee, 0xb1, - 0xc8, 0x94, 0xa9, 0x2e, 0x56, 0x8f, 0xca, 0x9d, 0xbe, 0xf4, - 0xdb, 0x63, 0x97, 0x68, 0x3b, 0x13, 0xf8, 0x6a, 0xa5, 0xd1, - 0x3d, 0xed, 0xbb, 0x86, 0x9d, 0x42, 0xfc, 0x15, 0x0a, 0x04, - 0xf8, 0x3c, 0x0e, 0xc4, 0x86, 0x05, 0x57, 0x56, 0x96, 0xf6, - 0xc0, 0x18, 0x53, 0xb0, 0xc5, 0xf0, 0xca, 0x72, 0x77, 0x77, - 0xc9, 0x8e, 0x90, 0xa5, 0x4b, 0xb6, 0x80, 0x4a, 0x4c, 0x34, - 0x6f, 0xc9, 0xe8, 0x6f, 0xc2, 0x28, 0xdf, 0x93, 0xa9, 0xf5, - 0x63, 0x18, 0xc0, 0xec, 0x9e, 0xd5, 0x19, 0x36, 0xc5, 0x94, - 0x10, 0xd4, 0x72, 0xd2, 0xb8, 0x30, 0x82, 0x02, 0xb6, 0x30, - 0x82, 0x02, 0x1f, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, - 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x90, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x1e, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, - 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, - 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, - 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, - 0x17, 0x0d, 0x31, 0x34, 0x31, 0x32, 0x31, 0x37, 0x30, 0x30, - 0x30, 0x31, 0x33, 0x33, 0x5a, 0x30, 0x81, 0x88, 0x31, 0x0b, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, - 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, - 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, - 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, - 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, - 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, - 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, - 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, - 0x66, 0x20, 0x43, 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, - 0x81, 0x81, 0x00, 0xc3, 0x55, 0xad, 0xdf, 0x7b, 0xd1, 0x48, - 0xc3, 0xd3, 0x02, 0x54, 0x6c, 0x92, 0x45, 0x22, 0x3d, 0x90, - 0xd8, 0xc7, 0x13, 0xcd, 0xc1, 0x59, 0xc6, 0xe0, 0xad, 0x0e, - 0xe6, 0xdb, 0x3b, 0xe8, 0x63, 0xea, 0x4e, 0xb6, 0xea, 0x50, - 0xea, 0x6e, 0x33, 0x9d, 0x28, 0x25, 0x42, 0x49, 0xd0, 0xf0, - 0xed, 0xc5, 0x5b, 0x6b, 0x4a, 0xe7, 0x45, 0xfa, 0xd3, 0x3f, - 0xae, 0xde, 0x5a, 0x90, 0xab, 0xf1, 0x61, 0x2f, 0x40, 0x5e, - 0xcf, 0x8b, 0x0b, 0x10, 0x59, 0xa9, 0xd0, 0x1e, 0x0f, 0x18, - 0x6b, 0x92, 0xd8, 0x9f, 0x58, 0x10, 0x84, 0xb6, 0x15, 0xe8, - 0x5b, 0xc4, 0xa0, 0x3e, 0x49, 0x8b, 0xea, 0xdd, 0xa9, 0x7e, - 0x32, 0x26, 0x9a, 0x68, 0x44, 0xf0, 0x30, 0xca, 0x2a, 0xd6, - 0x19, 0x7a, 0x80, 0xfd, 0xd7, 0xfc, 0xc7, 0x5d, 0xe7, 0x61, - 0xd2, 0x3f, 0x1f, 0x2c, 0x40, 0x70, 0x7b, 0x34, 0xcb, 0x08, - 0xa9, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x26, 0x30, 0x24, - 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, - 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, - 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, - 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, - 0x00, 0x03, 0x81, 0x81, 0x00, 0x40, 0xd2, 0x70, 0x02, 0x08, - 0x19, 0xa0, 0xb8, 0x8d, 0x9d, 0x3d, 0x62, 0x41, 0x90, 0x2a, - 0x36, 0x4a, 0x8b, 0x21, 0x42, 0x9a, 0xb4, 0xc5, 0xf8, 0x79, - 0x17, 0xd7, 0x64, 0x4d, 0xbf, 0x8f, 0x6a, 0x04, 0x54, 0x7a, - 0x0b, 0xd4, 0xb5, 0x0e, 0xab, 0xf7, 0xb7, 0x06, 0x2b, 0xf8, - 0xde, 0x87, 0xb2, 0x37, 0x3b, 0x95, 0x01, 0xba, 0x9f, 0x8f, - 0xec, 0x0a, 0x86, 0xca, 0x51, 0xb6, 0x25, 0x73, 0x2f, 0xa1, - 0x66, 0xc8, 0x7a, 0x5e, 0x51, 0xbd, 0x49, 0xb5, 0x75, 0xda, - 0xea, 0xe5, 0xeb, 0x5d, 0xe3, 0xb0, 0xad, 0x49, 0x9f, 0x8b, - 0xfd, 0x89, 0xb3, 0xb7, 0xb2, 0x4c, 0x7d, 0x8a, 0x29, 0xb2, - 0xbe, 0x04, 0xef, 0x9c, 0x73, 0x3c, 0xea, 0xa3, 0x9f, 0x07, - 0x66, 0x5a, 0x2f, 0x38, 0xad, 0x1a, 0xeb, 0xe1, 0xb0, 0x62, - 0x14, 0x55, 0xdc, 0x8c, 0x83, 0xbb, 0xc7, 0x13, 0x04, 0x41, - 0x54, 0xf1, 0x45, 0x31, 0x82, 0x01, 0x33, 0x30, 0x82, 0x01, - 0x2f, 0x02, 0x01, 0x01, 0x30, 0x81, 0x8e, 0x30, 0x81, 0x88, - 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, - 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, - 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, - 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, - 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, - 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, - 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, - 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, - 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, - 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6c, - 0x65, 0x61, 0x66, 0x20, 0x43, 0x41, 0x02, 0x01, 0x03, 0x30, - 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x01, 0x05, 0x00, 0x04, 0x81, 0x80, 0x33, 0x5c, 0xf8, 0xb4, - 0xa5, 0x70, 0xb9, 0x0f, 0x05, 0x50, 0x72, 0xdb, 0xa3, 0xba, - 0x8e, 0x0d, 0x6d, 0x8a, 0x2a, 0x91, 0x65, 0xb8, 0x76, 0xd0, - 0xfc, 0x9e, 0x1a, 0xdb, 0x2b, 0xd2, 0xfc, 0x03, 0xef, 0x8d, - 0xef, 0xfe, 0x32, 0x16, 0xad, 0xf8, 0xcb, 0x28, 0xb0, 0x61, - 0x15, 0xb8, 0x38, 0x72, 0xfc, 0x5d, 0xa1, 0xd2, 0xae, 0x9d, - 0x6a, 0xb0, 0x5e, 0xbb, 0x78, 0xd3, 0x39, 0x24, 0xa3, 0x71, - 0xa6, 0x90, 0x64, 0xa5, 0x82, 0xba, 0x3b, 0x85, 0x2d, 0x16, - 0x78, 0xf4, 0xcc, 0x9f, 0xfa, 0xc5, 0x68, 0x44, 0x2c, 0x22, - 0xb9, 0x4c, 0x07, 0x5c, 0xb4, 0x79, 0x1a, 0x48, 0xc2, 0x66, - 0x71, 0x57, 0x6d, 0xdf, 0x33, 0xa2, 0x26, 0x99, 0xdd, 0xe9, - 0xb9, 0x1b, 0xe1, 0xa6, 0x4d, 0x53, 0x8e, 0x71, 0x81, 0xa9, - 0x5d, 0x70, 0x47, 0x54, 0xbc, 0x15, 0xad, 0x9c, 0xe8, 0x90, - 0x52, 0x3e, 0x49, 0x86 ) ); - -/** iPXE self-test root CA certificate */ -static uint8_t root_crt_fingerprint[] = - FINGERPRINT ( 0x71, 0x5d, 0x51, 0x37, 0x5e, 0x18, 0xb3, 0xbc, - 0xbb, 0x30, 0x0e, 0x8f, 0x50, 0xc7, 0x55, 0xf5, - 0x96, 0xe7, 0xa8, 0x6d, 0x63, 0x2d, 0x32, 0x38, - 0xaf, 0x00, 0xc4, 0x1a, 0xfc, 0xd8, 0xac, 0xc3 ); - -/** Empty certificate store */ -static struct x509_chain empty_store = { - .refcnt = REF_INIT ( ref_no_free ), - .links = LIST_HEAD_INIT ( empty_store.links ), -}; - -/** Root certificate list containing the iPXE self-test root CA */ -static struct x509_root test_root = { - .digest = &cms_test_algorithm, - .count = 1, - .fingerprints = root_crt_fingerprint, -}; - -/** Dummy fingerprint (not matching any certificates) */ -static uint8_t dummy_fingerprint[] = - FINGERPRINT ( 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff ); - -/** Certificate store containing a dummy fingerprint */ -static struct x509_root dummy_root = { - .digest = &cms_test_algorithm, - .count = 1, - .fingerprints = dummy_fingerprint, -}; - -/** Time at which all test certificates are valid */ -static time_t test_time = 1332374737ULL; /* Thu Mar 22 00:05:37 2012 */ - -/** Time at which end-entity test certificates are invalid */ -static time_t test_expired = 1375573111ULL; /* Sat Aug 3 23:38:31 2013 */ - -/** - * Report signature parsing test result - * - * @v sgn Test signature - * @v file Test code file - * @v line Test code line - */ -static void cms_signature_okx ( struct cms_test_signature *sgn, - const char *file, unsigned int line ) { - - okx ( cms_signature ( sgn->data, sgn->len, &sgn->sig ) == 0, - file, line ); -} -#define cms_signature_ok( sgn ) \ - cms_signature_okx ( sgn, __FILE__, __LINE__ ) - -/** - * Report signature verification test result - * - * @v sgn Test signature - * @v code Test signed code - * @v name Test verification name - * @v time Test verification time - * @v store Test certificate store - * @v root Test root certificate list - * @v file Test code file - * @v line Test code line - */ -static void cms_verify_okx ( struct cms_test_signature *sgn, - struct cms_test_code *code, const char *name, - time_t time, struct x509_chain *store, - struct x509_root *root, const char *file, - unsigned int line ) { - - x509_invalidate_chain ( sgn->sig->certificates ); - okx ( cms_verify ( sgn->sig, virt_to_user ( code->data ), code->len, - name, time, store, root ) == 0, file, line ); -} -#define cms_verify_ok( sgn, code, name, time, store, root ) \ - cms_verify_okx ( sgn, code, name, time, store, root, \ - __FILE__, __LINE__ ) - -/** - * Report signature verification failure test result - * - * @v sgn Test signature - * @v code Test signed code - * @v name Test verification name - * @v time Test verification time - * @v store Test certificate store - * @v root Test root certificate list - * @v file Test code file - * @v line Test code line - */ -static void cms_verify_fail_okx ( struct cms_test_signature *sgn, - struct cms_test_code *code, const char *name, - time_t time, struct x509_chain *store, - struct x509_root *root, const char *file, - unsigned int line ) { - - x509_invalidate_chain ( sgn->sig->certificates ); - okx ( cms_verify ( sgn->sig, virt_to_user ( code->data ), code->len, - name, time, store, root ) != 0, file, line ); -} -#define cms_verify_fail_ok( sgn, code, name, time, store, root ) \ - cms_verify_fail_okx ( sgn, code, name, time, store, root, \ - __FILE__, __LINE__ ) - -/** - * Perform CMS self-tests - * - */ -static void cms_test_exec ( void ) { - - /* Check that all signatures can be parsed */ - cms_signature_ok ( &codesigned_sig ); - cms_signature_ok ( &brokenchain_sig ); - cms_signature_ok ( &genericsigned_sig ); - cms_signature_ok ( &nonsigned_sig ); - - /* Check good signature */ - cms_verify_ok ( &codesigned_sig, &test_code, "codesign.test.ipxe.org", - test_time, &empty_store, &test_root ); - cms_verify_ok ( &codesigned_sig, &test_code, - NULL, test_time, &empty_store, &test_root ); - - /* Check incorrect signer name */ - cms_verify_fail_ok ( &codesigned_sig, &test_code, - "wrongname.test.ipxe.org", test_time, - &empty_store, &test_root ); - - /* Check non-code-signing certificate */ - cms_verify_fail_ok ( &genericsigned_sig, &test_code, - NULL, test_time, &empty_store, &test_root ); - - /* Check non-signing certificate */ - cms_verify_fail_ok ( &nonsigned_sig, &test_code, - NULL, test_time, &empty_store, &test_root ); - - /* Check broken chain */ - cms_verify_fail_ok ( &brokenchain_sig, &test_code, - NULL, test_time, &empty_store, &test_root ); - - /* Check untrusted signature */ - cms_verify_fail_ok ( &codesigned_sig, &test_code, - NULL, test_time, &empty_store, &dummy_root ); - - /* Check incorrect signed content */ - cms_verify_fail_ok ( &codesigned_sig, &bad_code, - NULL, test_time, &empty_store, &test_root ); - - /* Check expired signature */ - cms_verify_fail_ok ( &codesigned_sig, &test_code, - NULL, test_expired, &empty_store, &test_root ); - - /* Sanity check */ - assert ( list_empty ( &empty_store.links ) ); - - /* Drop signature references */ - cms_put ( nonsigned_sig.sig ); - cms_put ( genericsigned_sig.sig ); - cms_put ( brokenchain_sig.sig ); - cms_put ( codesigned_sig.sig ); -} - -/** CMS self-test */ -struct self_test cms_test __self_test = { - .name = "cms", - .exec = cms_test_exec, -}; - -/* Drag in algorithms required for tests */ -REQUIRING_SYMBOL ( cms_test ); -REQUIRE_OBJECT ( rsa ); -REQUIRE_OBJECT ( md5 ); -REQUIRE_OBJECT ( sha1 ); -REQUIRE_OBJECT ( sha256 ); diff --git a/qemu/roms/ipxe/src/tests/comboot/shuffle-simple.asm b/qemu/roms/ipxe/src/tests/comboot/shuffle-simple.asm deleted file mode 100644 index efc7d9b46..000000000 --- a/qemu/roms/ipxe/src/tests/comboot/shuffle-simple.asm +++ /dev/null @@ -1,40 +0,0 @@ - bits 16 - org 100h - - jmp start - -shuffle_start: - push 0xB800 - pop es - mov cx, 80*24*2 - mov ax, 'AA' - xor di, di - rep stosw -.lbl: jmp .lbl -shuffle_end: - nop -shuffle_len equ (shuffle_end - shuffle_start + 1) - -start: - ; calculate physical address of shuffled part - xor eax, eax - push ds - pop ax - shl eax, 4 - add ax, shuffle_start - mov dword [source], eax - - mov ax, 0012h - mov di, shuffle_descriptors - mov cx, num_shuffle_descriptors - mov ebp, 0x7c00 - int 22h - int3 - -shuffle_descriptors: - dd 0x7C00 -source: dd 0 - dd shuffle_len - -num_shuffle_descriptors equ 1 - diff --git a/qemu/roms/ipxe/src/tests/comboot/version.asm b/qemu/roms/ipxe/src/tests/comboot/version.asm deleted file mode 100644 index 011404239..000000000 --- a/qemu/roms/ipxe/src/tests/comboot/version.asm +++ /dev/null @@ -1,136 +0,0 @@ - bits 16 - org 100h - -_start: - ; first check for SYSLINUX - mov ah, 30h - int 21h - - cmp eax, 59530000h - jne .not_syslinux - cmp ebx, 4c530000h - jne .not_syslinux - cmp ecx, 4e490000h - jne .not_syslinux - cmp edx, 58550000h - jne .not_syslinux - - ; now get syslinux version - mov ax, 0001h - int 22h - - push cx - push dx - push di - push si - push es - - ; print version string - mov dx, str_version - mov ah, 09h - int 21h - - pop es - pop bx - push es - mov ax, 0002h - int 22h - - ; print copyright string - mov dx, str_copyright - mov ah, 09h - int 21h - - pop es - pop bx - mov ax, 0002h - int 22h - - ; print syslinux derivative id - mov dx, str_derivative - mov ah, 09h - int 21h - - pop ax - call print_hex_byte - - ; print version number - mov dx, str_version_num - mov ah, 09h - int 21h - - pop cx - push cx - mov ax, cx - and ax, 0FFh - call print_dec_word - - mov dl, '.' - mov ah, 02h - int 21h - - pop cx - mov ax, cx - shr ax, 8 - call print_dec_word - - ret - - -.not_syslinux: - mov dx, str_not_syslinux - mov ah, 09h - int 21h - ret - -; input: al = byte to print in hex -print_hex_byte: - push ax - shr al, 4 - call print_hex_nybble - pop ax - call print_hex_nybble - ret - -; input: bottom half of al = nybble to print in hex -print_hex_nybble: - push ax - mov bl, al - and bx, 1111b - mov dl, [str_hex + bx] - mov ah, 02h - int 21h - pop ax - ret - -str_hex: db "01234567890abcdef" - -; input: ax = word to print -print_dec_word: - mov cx, 10 - mov word [.count], 0 -.loop: - xor dx, dx - div cx - inc word [.count] - push dx - test ax, ax - jnz .loop - -.print: - pop dx - add dx, '0' - mov ah, 02h - int 21h - dec word [.count] - jnz .print - - ret - -.count: dw 0 - -str_not_syslinux: db "Not SYSLINUX or derivative (running on DOS?)$" -str_version: db "Version: $" -str_copyright: db 10, "Copyright: $" -str_derivative: db 10, "Derivative ID: 0x$" -str_version_num: db 10, "Version number: $" diff --git a/qemu/roms/ipxe/src/tests/crc32_test.c b/qemu/roms/ipxe/src/tests/crc32_test.c deleted file mode 100644 index 46cde0f7b..000000000 --- a/qemu/roms/ipxe/src/tests/crc32_test.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * CRC32 tests - * - * - * Test vectors generated using Perl's Digest::CRC: - * - * use Digest::CRC qw ( crc ); - * - * printf "%#08x", crc ( $data, 32, $seed, 0, 1, 0x04c11db7, 1 ); - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** A CRC32 test */ -struct crc32_test { - /** Test data */ - const void *data; - /** Length of test data */ - size_t len; - /** Seed */ - uint32_t seed; - /** Expected CRC32 */ - uint32_t crc32; -}; - -/** - * Define a CRC32 test - * - * @v name Test name - * @v DATA Test data - * @v SEED Seed - * @v CRC32 Expected CRC32 - * @ret test CRC32 test - */ -#define CRC32_TEST( name, DATA, SEED, CRC32 ) \ - static const uint8_t name ## _data[] = DATA; \ - static struct crc32_test name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - .seed = SEED, \ - .crc32 = CRC32, \ - }; - -/** - * Report a CRC32 test result - * - * @v test CRC32 test - */ -#define crc32_ok( test ) do { \ - uint32_t crc32; \ - crc32 = crc32_le ( (test)->seed, (test)->data, (test)->len ); \ - ok ( crc32 == (test)->crc32 ); \ - } while ( 0 ) - -/* CRC32 tests */ -CRC32_TEST ( empty_test, - DATA ( ), - 0x12345678UL, 0x12345678UL ); -CRC32_TEST ( hw_test, - DATA ( 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' ), - 0xffffffffUL, 0xf2b5ee7aUL ); -CRC32_TEST ( hw_split_part1_test, - DATA ( 'h', 'e', 'l', 'l', 'o' ), - 0xffffffffUL, 0xc9ef5979UL ); -CRC32_TEST ( hw_split_part2_test, - DATA ( ' ', 'w', 'o', 'r', 'l', 'd' ), - 0xc9ef5979UL, 0xf2b5ee7aUL ); - -/** - * Perform CRC32 self-tests - * - */ -static void crc32_test_exec ( void ) { - - crc32_ok ( &empty_test ); - crc32_ok ( &hw_test ); - crc32_ok ( &hw_split_part1_test ); - crc32_ok ( &hw_split_part2_test ); -} - -/** CRC32 self-test */ -struct self_test crc32_test __self_test = { - .name = "crc32", - .exec = crc32_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/deflate_test.c b/qemu/roms/ipxe/src/tests/deflate_test.c deleted file mode 100644 index 20ff5b9a2..000000000 --- a/qemu/roms/ipxe/src/tests/deflate_test.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (C) 2014 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * DEFLATE tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include - -/** A DEFLATE test */ -struct deflate_test { - /** Compression format */ - enum deflate_format format; - /** Compressed data */ - const void *compressed; - /** Length of compressed data */ - size_t compressed_len; - /** Expected uncompressed data */ - const void *expected; - /** Length of expected uncompressed data */ - size_t expected_len; -}; - -/** A DEFLATE fragment list */ -struct deflate_test_fragments { - /** Fragment lengths */ - size_t len[8]; -}; - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define a DEFLATE test */ -#define DEFLATE( name, FORMAT, COMPRESSED, EXPECTED ) \ - static const uint8_t name ## _compressed[] = COMPRESSED; \ - static const uint8_t name ## _expected[] = EXPECTED; \ - static struct deflate_test name = { \ - .format = FORMAT, \ - .compressed = name ## _compressed, \ - .compressed_len = sizeof ( name ## _compressed ), \ - .expected = name ## _expected, \ - .expected_len = sizeof ( name ## _expected ), \ - }; - -/* Empty file, no compression */ -DEFLATE ( empty_literal, DEFLATE_RAW, - DATA ( 0x01, 0x00, 0x00, 0xff, 0xff ), DATA() ); - -/* "iPXE" string, no compression */ -DEFLATE ( literal, DEFLATE_RAW, - DATA ( 0x01, 0x04, 0x00, 0xfb, 0xff, 0x69, 0x50, 0x58, 0x45 ), - DATA ( 0x69, 0x50, 0x58, 0x45 ) ); - -/* "iPXE" string, no compression, split into two literals */ -DEFLATE ( split_literal, DEFLATE_RAW, - DATA ( 0x00, 0x02, 0x00, 0xfd, 0xff, 0x69, 0x50, 0x01, 0x02, 0x00, - 0xfd, 0xff, 0x58, 0x45 ), - DATA ( 0x69, 0x50, 0x58, 0x45 ) ); - -/* Empty file */ -DEFLATE ( empty, DEFLATE_RAW, DATA ( 0x03, 0x00 ), DATA() ); - -/* "Hello world" */ -DEFLATE ( hello_world, DEFLATE_RAW, - DATA ( 0xf3, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x28, 0xcf, 0x2f, 0xca, - 0x49, 0x01, 0x00 ), - DATA ( 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, - 0x64 ) ); - -/* "Hello hello world" */ -DEFLATE ( hello_hello_world, DEFLATE_RAW, - DATA ( 0xf3, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0xc8, 0x00, 0x93, 0xe5, - 0xf9, 0x45, 0x39, 0x29, 0x00 ), - DATA ( 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64 ) ); - -/* "This specification defines a lossless compressed data format" */ -DEFLATE ( rfc_sentence, DEFLATE_RAW, - DATA ( 0x0d, 0xc6, 0xdb, 0x09, 0x00, 0x21, 0x0c, 0x04, 0xc0, 0x56, - 0xb6, 0x28, 0x1b, 0x08, 0x79, 0x70, 0x01, 0x35, 0xe2, 0xa6, - 0x7f, 0xce, 0xf9, 0x9a, 0xf1, 0x25, 0xc1, 0xe3, 0x9a, 0x91, - 0x2a, 0x9d, 0xb5, 0x61, 0x1e, 0xb9, 0x9d, 0x10, 0xcc, 0x22, - 0xa7, 0x93, 0xd0, 0x5a, 0xe7, 0xbe, 0xb8, 0xc1, 0xa4, 0x05, - 0x51, 0x77, 0x49, 0xff ), - DATA ( 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, - 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x64, - 0x61, 0x74, 0x61, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74 ) ); - -/* "ZLIB Compressed Data Format Specification" */ -DEFLATE ( zlib, DEFLATE_ZLIB, - DATA ( 0x78, 0x01, 0x8b, 0xf2, 0xf1, 0x74, 0x52, 0x70, 0xce, 0xcf, - 0x2d, 0x28, 0x4a, 0x2d, 0x2e, 0x4e, 0x4d, 0x51, 0x70, 0x49, - 0x2c, 0x49, 0x54, 0x70, 0xcb, 0x2f, 0xca, 0x4d, 0x2c, 0x51, - 0x08, 0x2e, 0x48, 0x4d, 0xce, 0x4c, 0xcb, 0x4c, 0x4e, 0x2c, - 0xc9, 0xcc, 0xcf, 0x03, 0x00, 0x2c, 0x0e, 0x0e, 0xeb ), - DATA ( 0x5a, 0x4c, 0x49, 0x42, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x44, 0x61, 0x74, 0x61, - 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e ) ); - -/* "ZLIB Compressed Data Format Specification" fragment list */ -static struct deflate_test_fragments zlib_fragments[] = { - { { -1UL, } }, - { { 0, 1, 5, -1UL, } }, - { { 0, 0, 1, 0, 0, 1, -1UL } }, - { { 10, 8, 4, 7, 11, -1UL } }, - { { 45, -1UL } }, - { { 48, -1UL } }, -}; - -/** - * Report DEFLATE test result - * - * @v deflate Decompressor - * @v test Deflate test - * @v frags Fragment list, or NULL - * @v file Test code file - * @v line Test code line - */ -static void deflate_okx ( struct deflate *deflate, - struct deflate_test *test, - struct deflate_test_fragments *frags, - const char *file, unsigned int line ) { - uint8_t data[ test->expected_len ]; - struct deflate_chunk in; - struct deflate_chunk out; - size_t frag_len = -1UL; - size_t offset = 0; - size_t remaining = test->compressed_len; - unsigned int i; - - /* Initialise decompressor */ - deflate_init ( deflate, test->format ); - - /* Initialise output chunk */ - deflate_chunk_init ( &out, virt_to_user ( data ), 0, sizeof ( data ) ); - - /* Process input (in fragments, if applicable) */ - for ( i = 0 ; i < ( sizeof ( frags->len ) / - sizeof ( frags->len[0] ) ) ; i++ ) { - - /* Initialise input chunk */ - if ( frags ) - frag_len = frags->len[i]; - if ( frag_len > remaining ) - frag_len = remaining; - deflate_chunk_init ( &in, virt_to_user ( test->compressed ), - offset, ( offset + frag_len ) ); - - /* Decompress this fragment */ - okx ( deflate_inflate ( deflate, &in, &out ) == 0, file, line ); - okx ( in.len == ( offset + frag_len ), file, line ); - okx ( in.offset == in.len, file, line ); - - /* Move to next fragment */ - offset = in.offset; - remaining -= frag_len; - if ( ! remaining ) - break; - - /* Check that decompression has not terminated early */ - okx ( ! deflate_finished ( deflate ), file, line ); - } - - /* Check decompression has terminated as expected */ - okx ( deflate_finished ( deflate ), file, line ); - okx ( offset == test->compressed_len, file, line ); - okx ( out.offset == test->expected_len, file, line ); - okx ( memcmp ( data, test->expected, test->expected_len ) == 0, - file, line ); -} -#define deflate_ok( deflate, test, frags ) \ - deflate_okx ( deflate, test, frags, __FILE__, __LINE__ ) - -/** - * Perform DEFLATE self-test - * - */ -static void deflate_test_exec ( void ) { - struct deflate *deflate; - unsigned int i; - - /* Allocate shared structure */ - deflate = malloc ( sizeof ( *deflate ) ); - ok ( deflate != NULL ); - - /* Perform self-tests */ - if ( deflate ) { - - /* Test as a single pass */ - deflate_ok ( deflate, &empty_literal, NULL ); - deflate_ok ( deflate, &literal, NULL ); - deflate_ok ( deflate, &split_literal, NULL ); - deflate_ok ( deflate, &empty, NULL ); - deflate_ok ( deflate, &hello_world, NULL ); - deflate_ok ( deflate, &hello_hello_world, NULL ); - deflate_ok ( deflate, &rfc_sentence, NULL ); - deflate_ok ( deflate, &zlib, NULL ); - - /* Test fragmentation */ - for ( i = 0 ; i < ( sizeof ( zlib_fragments ) / - sizeof ( zlib_fragments[0] ) ) ; i++ ) { - deflate_ok ( deflate, &zlib, &zlib_fragments[i] ); - } - } - - /* Free shared structure */ - free ( deflate ); -} - -/** DEFLATE self-test */ -struct self_test deflate_test __self_test = { - .name = "deflate", - .exec = deflate_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/digest_test.c b/qemu/roms/ipxe/src/tests/digest_test.c deleted file mode 100644 index c3a128853..000000000 --- a/qemu/roms/ipxe/src/tests/digest_test.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Digest self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include "digest_test.h" - -/** Maximum number of digest test fragments */ -#define NUM_DIGEST_TEST_FRAG 8 - -/** A digest test fragment list */ -struct digest_test_fragments { - /** Fragment lengths */ - size_t len[NUM_DIGEST_TEST_FRAG]; -}; - -/** Digest test fragment lists */ -static struct digest_test_fragments digest_test_fragments[] = { - { { 0, -1UL, } }, - { { 1, 1, 1, 1, 1, 1, 1, 1 } }, - { { 2, 0, 23, 4, 6, 1, 0 } }, -}; - -/** Number of sample iterations for profiling */ -#define PROFILE_COUNT 16 - -/** - * Report a digest fragmented test result - * - * @v test Digest test - * @v fragments Fragment list - * @v file Test code file - * @v line Test code line - */ -void digest_frag_okx ( struct digest_test *test, - struct digest_test_fragments *fragments, - const char *file, unsigned int line ) { - struct digest_algorithm *digest = test->digest; - uint8_t ctx[digest->ctxsize]; - uint8_t out[digest->digestsize]; - const void *data = test->data; - size_t len = test->len; - size_t frag_len = 0; - unsigned int i; - - /* Sanity check */ - okx ( test->expected_len == sizeof ( out ), file, line ); - - /* Initialise digest */ - digest_init ( digest, ctx ); - - /* Update digest fragment-by-fragment */ - for ( i = 0 ; len && ( i < ( sizeof ( fragments->len ) / - sizeof ( fragments->len[0] ) ) ) ; i++ ) { - if ( fragments ) - frag_len = fragments->len[i]; - if ( ( frag_len == 0 ) || ( frag_len < len ) ) - frag_len = len; - digest_update ( digest, ctx, data, frag_len ); - data += frag_len; - len -= frag_len; - } - - /* Finalise digest */ - digest_final ( digest, ctx, out ); - - /* Compare against expected output */ - okx ( memcmp ( test->expected, out, sizeof ( out ) ) == 0, file, line ); -} - -/** - * Report a digest test result - * - * @v test Digest test - * @v file Test code file - * @v line Test code line - */ -void digest_okx ( struct digest_test *test, const char *file, - unsigned int line ) { - unsigned int i; - - /* Test with a single pass */ - digest_frag_okx ( test, NULL, file, line ); - - /* Test with fragment lists */ - for ( i = 0 ; i < ( sizeof ( digest_test_fragments ) / - sizeof ( digest_test_fragments[0] ) ) ; i++ ) { - digest_frag_okx ( test, &digest_test_fragments[i], file, line ); - } -} - -/** - * Calculate digest algorithm cost - * - * @v digest Digest algorithm - * @ret cost Cost (in cycles per byte) - */ -unsigned long digest_cost ( struct digest_algorithm *digest ) { - static uint8_t random[8192]; /* Too large for stack */ - uint8_t ctx[digest->ctxsize]; - uint8_t out[digest->digestsize]; - struct profiler profiler; - unsigned long cost; - unsigned int i; - - /* Fill buffer with pseudo-random data */ - srand ( 0x1234568 ); - for ( i = 0 ; i < sizeof ( random ) ; i++ ) - random[i] = rand(); - - /* Profile digest calculation */ - memset ( &profiler, 0, sizeof ( profiler ) ); - for ( i = 0 ; i < PROFILE_COUNT ; i++ ) { - profile_start ( &profiler ); - digest_init ( digest, ctx ); - digest_update ( digest, ctx, random, sizeof ( random ) ); - digest_final ( digest, ctx, out ); - profile_stop ( &profiler ); - } - - /* Round to nearest whole number of cycles per byte */ - cost = ( ( profile_mean ( &profiler ) + ( sizeof ( random ) / 2 ) ) / - sizeof ( random ) ); - - return cost; -} diff --git a/qemu/roms/ipxe/src/tests/digest_test.h b/qemu/roms/ipxe/src/tests/digest_test.h deleted file mode 100644 index abf1b834f..000000000 --- a/qemu/roms/ipxe/src/tests/digest_test.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef _DIGEST_TEST_H -#define _DIGEST_TEST_H - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include -#include -#include - -/** A digest test */ -struct digest_test { - /** Digest algorithm */ - struct digest_algorithm *digest; - /** Test data */ - const void *data; - /** Length of test data */ - size_t len; - /** Expected digest value */ - const void *expected; - /** Expected digest length */ - size_t expected_len; -}; - -/** Define inline test data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define inline expected digest value */ -#define DIGEST(...) { __VA_ARGS__ } - -/** - * Define a digest test - * - * @v name Test name - * @v DIGEST Digest algorithm - * @v DATA Test data - * @v EXPECTED Expected digest value - * @ret test Digest test - */ -#define DIGEST_TEST( name, DIGEST, DATA, EXPECTED ) \ - static const uint8_t name ## _data[] = DATA; \ - static const uint8_t name ## _expected[] = EXPECTED; \ - static struct digest_test name = { \ - .digest = DIGEST, \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - .expected = name ## _expected, \ - .expected_len = sizeof ( name ## _expected ), \ - }; - -/** Standard test vector: empty data */ -#define DIGEST_EMPTY DATA() - -/** Standard test vector: NIST string "abc" - * - * The NIST Cryptographic Toolkit examples for all digest algorithms - * include a test vector which is the unterminated string - * - * "abc" - */ -#define DIGEST_NIST_ABC \ - DATA ( 0x61, 0x62, 0x63 ) - -/** Standard test vector: NIST string "abc...opq" - * - * The NIST Cryptographic Toolkit examples for all 32-bit digest - * algorithms (SHA-1 and the SHA-256 family) include a test vector - * which is the unterminated string - * - * "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" - */ -#define DIGEST_NIST_ABC_OPQ \ - DATA ( 0x61, 0x62, 0x63, 0x64, 0x62, 0x63, 0x64, 0x65, 0x63, \ - 0x64, 0x65, 0x66, 0x64, 0x65, 0x66, 0x67, 0x65, 0x66, \ - 0x67, 0x68, 0x66, 0x67, 0x68, 0x69, 0x67, 0x68, 0x69, \ - 0x6a, 0x68, 0x69, 0x6a, 0x6b, 0x69, 0x6a, 0x6b, 0x6c, \ - 0x6a, 0x6b, 0x6c, 0x6d, 0x6b, 0x6c, 0x6d, 0x6e, 0x6c, \ - 0x6d, 0x6e, 0x6f, 0x6d, 0x6e, 0x6f, 0x70, 0x6e, 0x6f, \ - 0x70, 0x71 ) - -/** Standard test vector: NIST string "abc...stu" - * - * The NIST Cryptographic Toolkit examples for all 64-bit digest - * algorithms (SHA-512 family) include a test vector which is the - * unterminated string - * - * "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn" - * "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu" - */ -#define DIGEST_NIST_ABC_STU \ - DATA ( 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x62, \ - 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x63, 0x64, \ - 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x64, 0x65, 0x66, \ - 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x65, 0x66, 0x67, 0x68, \ - 0x69, 0x6a, 0x6b, 0x6c, 0x66, 0x67, 0x68, 0x69, 0x6a, \ - 0x6b, 0x6c, 0x6d, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, \ - 0x6d, 0x6e, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, \ - 0x6f, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, \ - 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x6b, \ - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x6c, 0x6d, \ - 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x6d, 0x6e, 0x6f, \ - 0x70, 0x71, 0x72, 0x73, 0x74, 0x6e, 0x6f, 0x70, 0x71, \ - 0x72, 0x73, 0x74, 0x75 ) - -/** - * Report a digest test result - * - * @v test Digest test - */ -#define digest_ok(test) digest_okx ( test, __FILE__, __LINE__ ) - -extern void digest_okx ( struct digest_test *test, const char *file, - unsigned int line ); -extern unsigned long digest_cost ( struct digest_algorithm *digest ); - -#endif /* _DIGEST_TEST_H */ diff --git a/qemu/roms/ipxe/src/tests/dns_test.c b/qemu/roms/ipxe/src/tests/dns_test.c deleted file mode 100644 index f08e7810f..000000000 --- a/qemu/roms/ipxe/src/tests/dns_test.c +++ /dev/null @@ -1,609 +0,0 @@ -/* - * Copyright (C) 2014 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * DNS self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** A DNS encoding test */ -struct dns_encode_test { - /** String */ - const char *string; - /** Encoded string */ - const void *data; - /** Length of encoded string */ - int len; -}; - -/** - * Define a DNS encoding test - * - * @v _name Test name - * @v _string Test string - * @v _data Expected encoded data - * @ret test DNS encoding test - */ -#define DNS_ENCODE( _name, _string, _data ) \ - static const uint8_t _name ## __data[] = _data; \ - static struct dns_encode_test _name = { \ - .string = _string, \ - .data = _name ## __data, \ - .len = sizeof ( _name ## __data ), \ - } - -/** - * Report DNS encoding test result - * - * @v test DNS encoding test - * @v file Test code file - * @v line Test code line - */ -static void dns_encode_okx ( struct dns_encode_test *test, const char *file, - unsigned int line ) { - uint8_t data[ test->len ]; - struct dns_name name; - int len; - - /* Check ability to determine length with no buffer */ - memset ( &name, 0, sizeof ( name ) ); - len = dns_encode ( test->string, &name ); - okx ( len >= 0, file, line ); - okx ( len == test->len, file, line ); - - /* Check encoded name */ - name.data = data; - name.len = sizeof ( data ); - len = dns_encode ( test->string, &name ); - okx ( len >= 0, file, line ); - if ( len >= 0 ) { - okx ( len == test->len, file, line ); - okx ( memcmp ( data, test->data, test->len ) == 0, file, line ); - DBGC ( test, "DNS encoded \"%s\" to:\n", test->string ); - DBGC_HDA ( test, 0, data, len ); - } -} -#define dns_encode_ok( test ) dns_encode_okx ( test, __FILE__, __LINE__ ) - -/** - * Report DNS encoding failure test result - * - * @v test DNS encoding test - * @v file Test code file - * @v line Test code line - */ -static void dns_encode_fail_okx ( struct dns_encode_test *test, - const char *file, unsigned int line ) { - struct dns_name name = { .data = NULL, .len = 0 }; - int len; - - len = dns_encode ( test->string, &name ); - okx ( len < 0, file, line ); -} -#define dns_encode_fail_ok( test ) \ - dns_encode_fail_okx ( test, __FILE__, __LINE__ ) - -/** A DNS decoding test */ -struct dns_decode_test { - /** Name */ - struct dns_name name; - /** Expected string */ - const char *string; -}; - -/** - * Define a DNS decoding test - * - * @v _name Test name - * @v _data RFC1035-encoded data - * @v _offset Starting offset within encoded data - * @v _string Expected decoded string - * @ret test DNS decoding test - */ -#define DNS_DECODE( _name, _data, _offset, _string ) \ - static uint8_t _name ## __data[] = _data; \ - static struct dns_decode_test _name = { \ - .name = { \ - .data = _name ## __data, \ - .offset = _offset, \ - .len = sizeof ( _name ## __data ), \ - }, \ - .string = _string, \ - } - -/** - * Report DNS decoding test result - * - * @v test DNS decoding test - * @v file Test code file - * @v line Test code line - */ -static void dns_decode_okx ( struct dns_decode_test *test, const char *file, - unsigned int line ) { - char string[ strlen ( test->string ) + 1 /* NUL */ ]; - int len; - - /* Check ability to determine length with no buffer */ - len = dns_decode ( &test->name, NULL, 0 ); - okx ( len >= 0, file, line ); - okx ( len == ( ( int ) strlen ( test->string ) ), file, line ); - - /* Check decoded string */ - len = dns_decode ( &test->name, string, sizeof ( string ) ); - okx ( len >= 0, file, line ); - if ( len >= 0 ) { - okx ( strcmp ( string, test->string ) == 0, file, line ); - DBGC ( test, "DNS decoded \"%s\" from offset %#zx in:\n", - string, test->name.offset ); - DBGC_HDA ( test, 0, test->name.data, test->name.len ); - } -} -#define dns_decode_ok( test ) dns_decode_okx ( test, __FILE__, __LINE__ ) - -/** - * Report DNS decoding failure test result - * - * @v test DNS decoding test - * @v file Test code file - * @v line Test code line - */ -static void dns_decode_fail_okx ( struct dns_decode_test *test, - const char *file, unsigned int line ) { - int len; - - len = dns_decode ( &test->name, NULL, 0 ); - okx ( len < 0, file, line ); -} -#define dns_decode_fail_ok( test ) \ - dns_decode_fail_okx ( test, __FILE__, __LINE__ ) - -/** A DNS comparison test */ -struct dns_compare_test { - /** First name */ - struct dns_name first; - /** Second name */ - struct dns_name second; -}; - -/** - * Define a DNS comparison test - * - * @v _name Test name - * @v _first_data First RFC1035-encoded data - * @v _first_offset Starting offset within first encoded data - * @v _second_data Second RFC1035-encoded data - * @v _second_offset Starting offset within second encoded data - * @ret test DNS comparison test - */ -#define DNS_COMPARE( _name, _first_data, _first_offset, _second_data, \ - _second_offset ) \ - static uint8_t _name ## __first_data[] = _first_data; \ - static uint8_t _name ## __second_data[] = _second_data; \ - static struct dns_compare_test _name = { \ - .first = { \ - .data = _name ## __first_data, \ - .offset = _first_offset, \ - .len = sizeof ( _name ## __first_data ), \ - }, \ - .second = { \ - .data = _name ## __second_data, \ - .offset = _second_offset, \ - .len = sizeof ( _name ## __second_data ), \ - }, \ - } - -/** - * Report DNS comparison test result - * - * @v test DNS comparison test - * @v file Test code file - * @v line Test code line - */ -static void dns_compare_okx ( struct dns_compare_test *test, const char *file, - unsigned int line ) { - - okx ( dns_compare ( &test->first, &test->second ) == 0, file, line ); -} -#define dns_compare_ok( test ) dns_compare_okx ( test, __FILE__, __LINE__ ) - -/** - * Report DNS comparison test failure result - * - * @v test DNS comparison test - * @v file Test code file - * @v line Test code line - */ -static void dns_compare_fail_okx ( struct dns_compare_test *test, - const char *file, unsigned int line ) { - - okx ( dns_compare ( &test->first, &test->second ) != 0, file, line ); -} -#define dns_compare_fail_ok( test ) \ - dns_compare_fail_okx ( test, __FILE__, __LINE__ ) - -/** A DNS copying test */ -struct dns_copy_test { - /** Source name */ - struct dns_name src; - /** Expected copied name */ - struct dns_name dst; -}; - -/** - * Define a DNS copying test - * - * @v _name Test name - * @v _src_data Source RFC1035-encoded data - * @v _src_offset Starting offset within source encoded data - * @v _dst_data Expected copied RFC1035-encoded data - * @v _dst_offset Starting offset withint copied encoded data - * @ret test DNS copying test - */ -#define DNS_COPY( _name, _src_data, _src_offset, _dst_data, \ - _dst_offset ) \ - static uint8_t _name ## __src_data[] = _src_data; \ - static uint8_t _name ## __dst_data[] = _dst_data; \ - static struct dns_copy_test _name = { \ - .src = { \ - .data = _name ## __src_data, \ - .offset = _src_offset, \ - .len = sizeof ( _name ## __src_data ), \ - }, \ - .dst = { \ - .data = _name ## __dst_data, \ - .offset = _dst_offset, \ - .len = sizeof ( _name ## __dst_data ), \ - }, \ - } - -/** - * Report a DNS copying test result - * - * @v test DNS copying test - * @v file Test code file - * @v line Test code line - */ -static void dns_copy_okx ( struct dns_copy_test *test, - const char *file, unsigned int line ) { - uint8_t data[ test->dst.len ]; - struct dns_name dst; - int len; - - /* Check ability to determine length with no buffer */ - memset ( &dst, 0, sizeof ( dst ) ); - len = dns_copy ( &test->src, &dst ); - okx ( len >= 0, file, line ); - okx ( len == ( ( int ) ( test->dst.len - test->dst.offset ) ), - file, line ); - - /* Check copied name */ - dst.data = data; - dst.offset = test->dst.offset; - dst.len = sizeof ( data ); - memcpy ( dst.data, test->dst.data, test->dst.offset ); - len = dns_copy ( &test->src, &dst ); - okx ( len >= 0, file, line ); - okx ( len == ( ( int ) ( test->dst.len - test->dst.offset ) ), - file, line ); - okx ( memcmp ( data, test->dst.data, sizeof ( data ) ) == 0, - file, line ); - DBGC ( test, "DNS copied:\n" ); - DBGC_HDA ( test, 0, test->src.data, test->src.len ); - DBGC_HDA ( test, 0, data, ( test->dst.offset + len ) ); -} -#define dns_copy_ok( test ) dns_copy_okx ( test, __FILE__, __LINE__ ) - -/** - * Report a DNS copying failure test result - * - * @v test DNS copying test - * @v file Test code file - * @v line Test code line - */ -static void dns_copy_fail_okx ( struct dns_copy_test *test, - const char *file, unsigned int line ) { - struct dns_name dst; - int len; - - memset ( &dst, 0, sizeof ( dst ) ); - len = dns_copy ( &test->src, &dst ); - okx ( len < 0, file, line ); -} -#define dns_copy_fail_ok( test ) dns_copy_fail_okx ( test, __FILE__, __LINE__ ) - -/** A DNS search list test */ -struct dns_list_test { - /** Search list */ - struct dns_name list; - /** Expected decoded search list */ - const char **strings; - /** Number of expected decoded string */ - unsigned int count; -}; - -/** - * Define a DNS search list test - * - * @v _name Test name - * @v _list RFC1035-encoded data - * @v _strings Expected decoded strings - * @ret test DNS search list test - */ -#define DNS_LIST( _name, _list, _strings ) \ - static uint8_t _name ## __list[] = _list; \ - static const char * _name ## __strings[] = _strings; \ - static struct dns_list_test _name = { \ - .list = { \ - .data = _name ## __list, \ - .offset = 0, \ - .len = sizeof ( _name ## __list ), \ - }, \ - .strings = _name ## __strings, \ - .count = ( sizeof ( _name ## __strings ) / \ - sizeof ( _name ## __strings[0] ) ), \ - } - -/** - * Report DNS search list test result - * - * @v test DNS search list test - * @v file Test code file - * @v line Test code line - */ -static void dns_list_okx ( struct dns_list_test *test, const char *file, - unsigned int line ) { - struct dns_name name; - unsigned int i; - - DBGC ( test, "DNS search list:\n" ); - DBGC_HDA ( test, 0, test->list.data, test->list.len ); - memcpy ( &name, &test->list, sizeof ( name ) ); - for ( i = 0 ; i < test->count ; i++ ) { - char buf[ strlen ( test->strings[i] ) + 1 /* NUL */ ]; - int len; - int offset; - - /* Decode this name */ - len = dns_decode ( &name, buf, sizeof ( buf ) ); - okx ( len >= 0, file, line ); - if ( len >= 0 ) { - okx ( len == ( ( int ) strlen ( test->strings[i] ) ), - file, line ); - okx ( strcmp ( buf, test->strings[i] ) == 0, - file, line ); - DBGC ( test, "DNS search list found \"%s\" at offset " - "%#zx\n", buf, name.offset ); - } - - /* Skip to next name */ - offset = dns_skip ( &name ); - okx ( offset >= 0, file, line ); - name.offset = offset; - } - - /* Check that we have consumed the whole search list */ - okx ( name.offset == name.len, file, line ); -} -#define dns_list_ok( test ) dns_list_okx ( test, __FILE__, __LINE__ ) - -/* Simple encoding test */ -DNS_ENCODE ( encode_simple, "ipxe.org", - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ) ); - -/* Single-word encoding test */ -DNS_ENCODE ( encode_single, "foo", DATA ( 3, 'f', 'o', 'o', 0 ) ); - -/* Absolute encoding test */ -DNS_ENCODE ( encode_absolute, "git.ipxe.org.", - DATA ( 3, 'g', 'i', 't', 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', - 0 ) ); - -/* Empty string encoding test */ -DNS_ENCODE ( encode_empty, "", DATA ( 0 ) ); - -/* Root domain encoding test */ -DNS_ENCODE ( encode_root, ".", DATA ( 0 ) ); - -/* Invalid initial dot encoding test */ -DNS_ENCODE ( encode_initial_dot, ".foo", DATA() ); - -/* Invalid double dot encoding test */ -DNS_ENCODE ( encode_double_dot, "ipxe..org", DATA() ); - -/* Invalid solo double dot encoding test */ -DNS_ENCODE ( encode_solo_double_dot, "..", DATA() ); - -/* Invalid trailing double dot encoding test */ -DNS_ENCODE ( encode_trailing_double_dot, "ipxe.org..", DATA() ); - -/* Invalid overlength label encoding test */ -DNS_ENCODE ( encode_overlength, - "this-label-is-maliciously-long-in-an-attempt-to-overflow-the-" - "length-field-and-generate-a-length-which-looks-like-a-" - "compression-pointer", DATA() ); - -/* Simple decoding test */ -DNS_DECODE ( decode_simple, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0, - "ipxe.org" ); - -/* Compression pointer decoding test */ -DNS_DECODE ( decode_ptr, - DATA ( 3, 'o', 'r', 'g', 0, 3, 'g', 'i', 't', 4, 'i', 'p', 'x', - 'e', 0xc0, 0x00 ), 5, - "git.ipxe.org" ); - -/* Root decoding test */ -DNS_DECODE ( decode_root, - DATA ( 0 ), 0, "" ); - -/* Incomplete name decoding test */ -DNS_DECODE ( decode_incomplete_name, - DATA ( 4, 'i', 'p', 'x', 'e' ), 0, NULL ); - -/* Incomplete label decoding test */ -DNS_DECODE ( decode_incomplete_label, - DATA ( 4, 'i', 'p', 'x' ), 0, NULL ); - -/* Incomplete compression pointer decoding test */ -DNS_DECODE ( decode_incomplete_ptr, - DATA ( 3, 'o', 'r', 'g', 0, 4, 'i', 'p', 'x', 'e', 0xc0 ), 5, - NULL ); - -/* Forward reference decoding test */ -DNS_DECODE ( decode_forward, - DATA ( 0xc0, 0x02, 3, 'f', 'o', 'o', 0 ), 0, NULL ); - -/* Infinite loop decoding test */ -DNS_DECODE ( decode_infinite, - DATA ( 4, 'i', 'p', 'x', 'e', 0xc0, 0x00 ), 0, NULL ); - -/* Empty decoding test */ -DNS_DECODE ( decode_empty, - DATA (), 0, NULL ); - -/* Simple comparison test */ -DNS_COMPARE ( compare_simple, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0 ); - -/* Compression pointer comparison test */ -DNS_COMPARE ( compare_ptr, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0, - DATA ( 3, 'o', 'r', 'g', 0, 4, 'i', 'p', 'x', 'e', - 0xc0, 0x00 ), 5 ); - -/* Case insensitive comparison test */ -DNS_COMPARE ( compare_case, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'O', 'R', 'G', 0 ), 0 ); - -/* Mismatch comparison test */ -DNS_COMPARE ( compare_mismatch, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0, - DATA ( 4, 'g', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0 ); - -/* Infinite loop comparison test */ -DNS_COMPARE ( compare_infinite, - DATA ( 3, 'f', 'o', 'o', 0xc0, 0x00 ), 0, - DATA ( 3, 'f', 'o', 'o', 0xc0, 0x00 ), 0 ); - -/* Simple copying test */ -DNS_COPY ( copy_simple, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0 ); - -/* Simple copying test with offset */ -DNS_COPY ( copy_offset, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0 ), 0, - DATA ( 'f', 'o', 'o', 0, 4, 'i', 'p', 'x', 'e', - 3, 'o', 'r', 'g', 0 ), 4 ); - -/* Compression pointer copying test */ -DNS_COPY ( copy_ptr, - DATA ( 3, 'o', 'r', 'g', 0, 3, 'g', 'i', 't', 4, 'i', 'p', 'x', 'e', - 0xc0, 0x00 ), 5, - DATA ( 3, 'g', 'i', 't', 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', - 0 ), 0 ); - -/* Infinite loop copying test */ -DNS_COPY ( copy_infinite, - DATA ( 4, 'l', 'o', 'o', 'p', 7, 'f', 'o', 'r', 'e', 'v', 'e', 'r', - 0xc0, 0x05 ), 0, - DATA (), 0 ); - -/* DNS search list test */ -DNS_LIST ( search, - DATA ( 4, 'i', 'p', 'x', 'e', 3, 'o', 'r', 'g', 0, - 4, 'b', 'o', 'o', 't', 0xc0, 0x00, - 3, 'd', 'e', 'v', 0xc0, 0x0a, - 11, 'n', 'e', 't', 'w', 'o', 'r', 'k', 'b', 'o', 'o', 't', - 0xc0, 0x05 ), - DATA ( "ipxe.org", "boot.ipxe.org", "dev.boot.ipxe.org", - "networkboot.org" ) ); - -/** - * Perform DNS self-test - * - */ -static void dns_test_exec ( void ) { - - /* Encoding tests */ - dns_encode_ok ( &encode_simple ); - dns_encode_ok ( &encode_single ); - dns_encode_ok ( &encode_absolute ); - dns_encode_ok ( &encode_empty ); - dns_encode_ok ( &encode_root ); - dns_encode_fail_ok ( &encode_initial_dot ); - dns_encode_fail_ok ( &encode_double_dot ); - dns_encode_fail_ok ( &encode_solo_double_dot ); - dns_encode_fail_ok ( &encode_trailing_double_dot ); - dns_encode_fail_ok ( &encode_overlength ); - - /* Decoding tests */ - dns_decode_ok ( &decode_simple ); - dns_decode_ok ( &decode_ptr ); - dns_decode_ok ( &decode_root ); - dns_decode_fail_ok ( &decode_incomplete_name ); - dns_decode_fail_ok ( &decode_incomplete_label ); - dns_decode_fail_ok ( &decode_incomplete_ptr ); - dns_decode_fail_ok ( &decode_forward ); - dns_decode_fail_ok ( &decode_infinite ); - dns_decode_fail_ok ( &decode_empty ); - - /* Comparison tests */ - dns_compare_ok ( &compare_simple ); - dns_compare_ok ( &compare_ptr ); - dns_compare_ok ( &compare_case ); - dns_compare_fail_ok ( &compare_mismatch ); - dns_compare_fail_ok ( &compare_infinite ); - - /* Copying tests */ - dns_copy_ok ( ©_simple ); - dns_copy_ok ( ©_offset ); - dns_copy_ok ( ©_ptr ); - dns_copy_fail_ok ( ©_infinite ); - - /* Search list tets */ - dns_list_ok ( &search ); -} - -/** DNS self-test */ -struct self_test dns_test __self_test = { - .name = "dns", - .exec = dns_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/entropy_sample.c b/qemu/roms/ipxe/src/tests/entropy_sample.c deleted file mode 100644 index b45648c11..000000000 --- a/qemu/roms/ipxe/src/tests/entropy_sample.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Entropy sampling - * - */ - -#include -#include -#include - -/** Total number of test samples */ -#define SAMPLE_COUNT 65536 - -/** Number of samples per block */ -#define SAMPLE_BLOCKSIZE 256 - -/** - * Generate entropy samples for external testing - * - */ -static void entropy_sample_test_exec ( void ) { - static noise_sample_t samples[SAMPLE_BLOCKSIZE]; - unsigned int i; - unsigned int j; - int rc; - - /* Collect and print blocks of samples */ - for ( i = 0 ; i < ( SAMPLE_COUNT / SAMPLE_BLOCKSIZE ) ; i++ ) { - - /* Collect one block of samples */ - rc = entropy_enable(); - ok ( rc == 0 ); - for ( j = 0 ; j < SAMPLE_BLOCKSIZE ; j++ ) { - rc = get_noise ( &samples[j] ); - ok ( rc == 0 ); - } - entropy_disable(); - - /* Print out sample values */ - for ( j = 0 ; j < SAMPLE_BLOCKSIZE ; j++ ) { - printf ( "SAMPLE %d %d\n", ( i * SAMPLE_BLOCKSIZE + j ), - samples[j] ); - } - } -} - -/** Entropy sampling self-test */ -struct self_test entropy_sample_test __self_test = { - .name = "entropy_sample", - .exec = entropy_sample_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/gdbstub_test.S b/qemu/roms/ipxe/src/tests/gdbstub_test.S deleted file mode 100644 index 739b0527a..000000000 --- a/qemu/roms/ipxe/src/tests/gdbstub_test.S +++ /dev/null @@ -1,54 +0,0 @@ - .arch i386 - - .section ".data", "aw", @progbits -watch_me: - .long 0xfeedbeef - - .section ".text", "ax", @progbits - .code32 -gdbstub_test: - /* 1. Read registers test */ - movl $0xea010203, %eax - movl $0xeb040506, %ebx - movl $0xec070809, %ecx - movl $0xed0a0b0c, %edx - movl $0x510d0e0f, %esi - movl $0xd1102030, %edi - int $3 - - /* 2. Write registers test */ - int $3 - - /* 3. Read memory test */ - subl $8, %esp - movl $0x11223344, 4(%esp) - movw $0x5566, 2(%esp) - movb $0x77, (%esp) - int $3 - - /* 4. Write memory test */ - int $3 - addl $8, %esp - - /* 5. Step test */ - int $3 - nop - - /* 6. Access watch test */ - movl $0x600d0000, %ecx - movl watch_me, %eax - movl $0xbad00000, %ecx - int $3 - movl $0x600d0001, %ecx - movl %eax, watch_me - movl $0xbad00001, %ecx - int $3 - - /* 7. Write watch test */ - movl $0x600d0002, %ecx - movl %eax, watch_me - movl $0xbad00002, %ecx - int $3 - -1: - jmp 1b diff --git a/qemu/roms/ipxe/src/tests/gdbstub_test.gdb b/qemu/roms/ipxe/src/tests/gdbstub_test.gdb deleted file mode 100755 index bcfa07dae..000000000 --- a/qemu/roms/ipxe/src/tests/gdbstub_test.gdb +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/gdb -x -# Test suite for GDB remote debugging -# Run: -# make bin/ipxe.hd.tmp -# make -# gdb -# (gdb) target remote :TCPPORT -# OR -# (gdb) target remote udp:IP:UDPPORT -# (gdb) source tests/gdbstub_test.gdb - -define ipxe_load_symbols - file bin/ipxe.hd.tmp -end - -define ipxe_assert - if $arg0 != $arg1 - echo FAIL $arg2\n - else - echo PASS $arg2\n - end -end - -define ipxe_start_tests - jump gdbstub_test -end - -define ipxe_test_regs_read - ipxe_assert $eax 0xea010203 "ipxe_test_regs_read eax" - ipxe_assert $ebx 0xeb040506 "ipxe_test_regs_read ebx" - ipxe_assert $ecx 0xec070809 "ipxe_test_regs_read ecx" - ipxe_assert $edx 0xed0a0b0c "ipxe_test_regs_read edx" - ipxe_assert $esi 0x510d0e0f "ipxe_test_regs_read esi" - ipxe_assert $edi 0xd1102030 "ipxe_test_regs_read edi" -end - -define ipxe_test_regs_write - set $eax = 0xea112233 - set $ebx = 0xeb445566 - set $ecx = 0xec778899 - set $edx = 0xedaabbcc - set $esi = 0x51ddeeff - set $edi = 0xd1010203 - c - ipxe_assert $eax 0xea112233 "ipxe_test_regs_write eax" - ipxe_assert $ebx 0xeb445566 "ipxe_test_regs_write ebx" - ipxe_assert $ecx 0xec778899 "ipxe_test_regs_write ecx" - ipxe_assert $edx 0xedaabbcc "ipxe_test_regs_write edx" - ipxe_assert $esi 0x51ddeeff "ipxe_test_regs_write esi" - ipxe_assert $edi 0xd1010203 "ipxe_test_regs_write edi" - - # This assumes segment selectors are always 0x10 or 0x8 (for code). - ipxe_assert $cs 0x08 "ipxe_test_regs_write cs" - ipxe_assert $ds 0x10 "ipxe_test_regs_write ds" -end - -define ipxe_test_mem_read - c - ipxe_assert ({int}($esp+4)) 0x11223344 "ipxe_test_mem_read int" - ipxe_assert ({short}($esp+2)) 0x5566 "ipxe_test_mem_read short" - ipxe_assert ({char}($esp)) 0x77 "ipxe_test_mem_read char" -end - -define ipxe_test_mem_write - set ({int}($esp+4)) = 0xaabbccdd - set ({short}($esp+2)) = 0xeeff - set ({char}($esp)) = 0x99 - c - ipxe_assert ({int}($esp+4)) 0xaabbccdd "ipxe_test_mem_write int" - ipxe_assert ({short}($esp+2)) (short)0xeeff "ipxe_test_mem_write short" - ipxe_assert ({char}($esp)) (char)0x99 "ipxe_test_mem_write char" -end - -define ipxe_test_step - c - si - ipxe_assert ({char}($eip-1)) (char)0x90 "ipxe_test_step" # nop = 0x90 -end - -define ipxe_test_awatch - awatch watch_me - - c - ipxe_assert $ecx 0x600d0000 "ipxe_test_awatch read" - if $ecx == 0x600d0000 - c - end - - c - ipxe_assert $ecx 0x600d0001 "ipxe_test_awatch write" - if $ecx == 0x600d0001 - c - end - - delete -end - -define ipxe_test_watch - watch watch_me - c - ipxe_assert $ecx 0x600d0002 "ipxe_test_watch" - if $ecx == 0x600d0002 - c - end - delete -end - -ipxe_load_symbols -ipxe_start_tests -ipxe_test_regs_read -ipxe_test_regs_write -ipxe_test_mem_read -ipxe_test_mem_write -ipxe_test_step -ipxe_test_awatch -ipxe_test_watch diff --git a/qemu/roms/ipxe/src/tests/hash_df_test.c b/qemu/roms/ipxe/src/tests/hash_df_test.c deleted file mode 100644 index 0b7d56ad7..000000000 --- a/qemu/roms/ipxe/src/tests/hash_df_test.c +++ /dev/null @@ -1,902 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Hash-based derivation function (Hash_df) tests - * - * These test vectors are provided by NIST as part of the - * Cryptographic Toolkit Examples, downloadable from: - * - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/Hash_DRBG.pdf - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include - -/** Define inline input data */ -#define INPUT(...) { __VA_ARGS__ } - -/** Define inline expected data */ -#define EXPECT(...) { __VA_ARGS__ } - -/** A Hash_df test */ -struct hash_df_test { - /** Underlying hash algorithm */ - struct digest_algorithm *hash; - /** Input data */ - const void *input; - /** Length of input data */ - size_t input_len; - /** Expected output data */ - const void *expected; - /** Length of expected output data */ - size_t expected_len; -}; - -/** - * Define a Hash_df test - * - * @v name Test name - * @v hash_algorithm Underlying hash algorithm - * @v input_array Input data - * @v expected_array Expected output data - * @ret test Hash_df test - */ -#define HASH_DF_TEST( name, hash_algorithm, input_array, expected_array ) \ - static const uint8_t name ## _input [] = input_array; \ - static const uint8_t name ## _expected [] = expected_array; \ - static struct hash_df_test name = { \ - .hash = &(hash_algorithm), \ - .input = name ## _input, \ - .input_len = sizeof ( name ## _input ), \ - .expected = name ## _expected, \ - .expected_len = sizeof ( name ## _expected ), \ - } - -/** SHA-1 Test 1 */ -HASH_DF_TEST ( test_sha1_1, sha1_algorithm, - INPUT ( 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x20, 0x21, 0x22, 0x23, 0x24 ), - EXPECT ( 0xd0, 0x8f, 0xb4, 0x41, 0xf2, 0xf4, 0xcb, 0x37, 0xcf, 0x6c, - 0x24, 0x20, 0xa8, 0x2c, 0x74, 0x27, 0xac, 0xf7, 0xfc, 0xfd, - 0x79, 0x90, 0x14, 0x38, 0x34, 0xa5, 0xc2, 0x56, 0xab, 0x28, - 0x39, 0x36, 0x6d, 0x96, 0x34, 0x8c, 0xfe, 0x8c, 0x97, 0xab, - 0x67, 0x67, 0xb0, 0x5e, 0x83, 0xa9, 0x80, 0x40, 0x6d, 0x94, - 0xbe, 0xe3, 0x3c, 0xbb, 0x89 ) ); - -/** SHA-1 Test 2 */ -HASH_DF_TEST ( test_sha1_2, sha1_algorithm, - INPUT ( 0x00, 0xd0, 0x8f, 0xb4, 0x41, 0xf2, 0xf4, 0xcb, 0x37, 0xcf, - 0x6c, 0x24, 0x20, 0xa8, 0x2c, 0x74, 0x27, 0xac, 0xf7, 0xfc, - 0xfd, 0x79, 0x90, 0x14, 0x38, 0x34, 0xa5, 0xc2, 0x56, 0xab, - 0x28, 0x39, 0x36, 0x6d, 0x96, 0x34, 0x8c, 0xfe, 0x8c, 0x97, - 0xab, 0x67, 0x67, 0xb0, 0x5e, 0x83, 0xa9, 0x80, 0x40, 0x6d, - 0x94, 0xbe, 0xe3, 0x3c, 0xbb, 0x89 ), - EXPECT ( 0x54, 0xc5, 0x21, 0x7b, 0x51, 0x02, 0xd8, 0xda, 0x8b, 0xf1, - 0x68, 0x6e, 0xdb, 0xab, 0x2b, 0xbc, 0x0c, 0x11, 0xb0, 0xcc, - 0xb0, 0xf0, 0xaf, 0x23, 0x4c, 0x24, 0xcf, 0x15, 0xec, 0xc8, - 0xcb, 0x39, 0xc2, 0x33, 0xaa, 0xca, 0x48, 0xfc, 0xce, 0xee, - 0x86, 0x3d, 0xa8, 0x81, 0xff, 0xcb, 0xb4, 0x34, 0xa6, 0xcc, - 0xb7, 0xda, 0x2f, 0xb2, 0x10 ) ); - -/** SHA-1 Test 3 */ -HASH_DF_TEST ( test_sha1_3, sha1_algorithm, - INPUT ( 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x20, 0x21, 0x22, 0x23, 0x24, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76 ), - EXPECT ( 0x99, 0xb9, 0x53, 0x7b, 0x84, 0x27, 0xb8, 0xce, 0x23, 0x21, - 0x9a, 0x61, 0x1c, 0xbe, 0x61, 0x06, 0x44, 0xcf, 0x85, 0x03, - 0xee, 0xc5, 0xba, 0x22, 0xde, 0x1a, 0xb2, 0x12, 0xc3, 0xd0, - 0x85, 0x8e, 0x9e, 0x3b, 0x90, 0x26, 0xd4, 0xe7, 0x7d, 0x58, - 0xe0, 0x2e, 0x85, 0xa2, 0x31, 0x4c, 0xe3, 0xd7, 0x4a, 0x93, - 0x32, 0x4b, 0x27, 0xbd, 0xe8 ) ); - -/** SHA-1 Test 4 */ -HASH_DF_TEST ( test_sha1_4, sha1_algorithm, - INPUT ( 0x00, 0x99, 0xb9, 0x53, 0x7b, 0x84, 0x27, 0xb8, 0xce, 0x23, - 0x21, 0x9a, 0x61, 0x1c, 0xbe, 0x61, 0x06, 0x44, 0xcf, 0x85, - 0x03, 0xee, 0xc5, 0xba, 0x22, 0xde, 0x1a, 0xb2, 0x12, 0xc3, - 0xd0, 0x85, 0x8e, 0x9e, 0x3b, 0x90, 0x26, 0xd4, 0xe7, 0x7d, - 0x58, 0xe0, 0x2e, 0x85, 0xa2, 0x31, 0x4c, 0xe3, 0xd7, 0x4a, - 0x93, 0x32, 0x4b, 0x27, 0xbd, 0xe8 ), - EXPECT ( 0xa7, 0x02, 0x66, 0xf7, 0xf9, 0x1e, 0xc4, 0xd2, 0x88, 0x73, - 0x14, 0x79, 0x34, 0xce, 0xaf, 0x2a, 0x2c, 0xc3, 0x5a, 0x0f, - 0xd5, 0xe0, 0x0a, 0xba, 0xe7, 0x9d, 0xc6, 0x60, 0x5f, 0xab, - 0xd6, 0xf5, 0xf9, 0x28, 0xe1, 0x8c, 0x63, 0x26, 0x8e, 0x1a, - 0xf4, 0x85, 0xda, 0x6c, 0xbf, 0x04, 0x16, 0xdc, 0xdc, 0x5f, - 0xb8, 0xbc, 0x9c, 0x94, 0xb6 ) ); - -/** SHA-1 Test 5 */ -HASH_DF_TEST ( test_sha1_5, sha1_algorithm, - INPUT ( 0x01, 0xd0, 0x8f, 0xb4, 0x41, 0xf2, 0xf4, 0xcb, 0x37, 0xcf, - 0x6c, 0x24, 0x20, 0xa8, 0x2c, 0x74, 0x27, 0xac, 0xf7, 0xfc, - 0xfd, 0x79, 0x90, 0x14, 0x38, 0x34, 0xa5, 0xc2, 0x56, 0xab, - 0x28, 0x39, 0x36, 0x6d, 0x96, 0x34, 0x8c, 0xfe, 0x8c, 0x97, - 0xab, 0x67, 0x67, 0xb0, 0x5e, 0x83, 0xa9, 0x80, 0x40, 0x6d, - 0x94, 0xbe, 0xe3, 0x3c, 0xbb, 0x89, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6 ), - EXPECT ( 0x0a, 0x04, 0x41, 0xa5, 0x2b, 0xed, 0xf7, 0x94, 0xf5, 0xaa, - 0x62, 0x7b, 0xcb, 0xd8, 0x1f, 0x93, 0xe0, 0x11, 0xd5, 0x1f, - 0x34, 0x74, 0x80, 0x2c, 0x37, 0x50, 0x76, 0x75, 0x51, 0xb4, - 0x5b, 0x69, 0xf3, 0xd3, 0x59, 0x39, 0xc9, 0x32, 0xae, 0x1c, - 0xb7, 0xc9, 0x89, 0x4f, 0xb8, 0x84, 0x65, 0xe0, 0xcf, 0xd1, - 0xcc, 0x26, 0x1e, 0x22, 0xc5 ) ); - -/** SHA-1 Test 6 */ -HASH_DF_TEST ( test_sha1_6, sha1_algorithm, - INPUT ( 0x00, 0x0a, 0x04, 0x41, 0xa5, 0x2b, 0xed, 0xf7, 0x94, 0xf5, - 0xaa, 0x62, 0x7b, 0xcb, 0xd8, 0x1f, 0x93, 0xe0, 0x11, 0xd5, - 0x1f, 0x34, 0x74, 0x80, 0x2c, 0x37, 0x50, 0x76, 0x75, 0x51, - 0xb4, 0x5b, 0x69, 0xf3, 0xd3, 0x59, 0x39, 0xc9, 0x32, 0xae, - 0x1c, 0xb7, 0xc9, 0x89, 0x4f, 0xb8, 0x84, 0x65, 0xe0, 0xcf, - 0xd1, 0xcc, 0x26, 0x1e, 0x22, 0xc5 ), - EXPECT ( 0x04, 0x11, 0xc8, 0xb0, 0xdb, 0xa7, 0x56, 0xe8, 0x84, 0x2b, - 0x3f, 0xb0, 0x2d, 0x2f, 0xeb, 0x7c, 0xee, 0xa5, 0x67, 0x42, - 0xee, 0x93, 0x79, 0xc9, 0x0e, 0x6d, 0x3b, 0x2f, 0x10, 0x10, - 0xd4, 0x0f, 0x4f, 0x4d, 0xca, 0xda, 0x61, 0xcf, 0xdf, 0xb4, - 0x8a, 0xf8, 0x47, 0xca, 0xcc, 0x4c, 0x92, 0xc6, 0x14, 0x44, - 0x85, 0xc2, 0x27, 0xca, 0x05 ) ); - -/** SHA-1 Test 7 */ -HASH_DF_TEST ( test_sha1_7, sha1_algorithm, - INPUT ( 0x01, 0x0e, 0x16, 0x0a, 0x56, 0x07, 0x95, 0x4e, 0x7d, 0x79, - 0xd5, 0xa2, 0x2b, 0xf9, 0x08, 0x0b, 0x10, 0xce, 0xb7, 0x3c, - 0x62, 0x23, 0x07, 0xf9, 0xf5, 0x45, 0xbd, 0xb1, 0xa4, 0x61, - 0xc5, 0x2f, 0x79, 0x43, 0x21, 0x24, 0x3a, 0xac, 0xe2, 0x3f, - 0x36, 0x3f, 0xef, 0xb3, 0x5d, 0xc5, 0xbe, 0xa7, 0xe7, 0x31, - 0x44, 0x14, 0xcf, 0x78, 0xb3, 0xf9, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6 ), - EXPECT ( 0xdc, 0x24, 0xdf, 0x10, 0x2f, 0xa9, 0xf9, 0x6c, 0xc1, 0xcf, - 0xf8, 0xc1, 0x16, 0xc7, 0x9d, 0x14, 0x97, 0xd7, 0xc2, 0x7b, - 0xba, 0x5b, 0xa8, 0x01, 0xe1, 0x56, 0x21, 0x93, 0x35, 0x3f, - 0x31, 0xe3, 0x22, 0x39, 0x57, 0x84, 0x69, 0xb8, 0x0f, 0x2f, - 0x51, 0x64, 0x54, 0x37, 0x28, 0x71, 0x7f, 0x17, 0x1f, 0xdb, - 0x02, 0xb2, 0xad, 0x57, 0x95 ) ); - -/** SHA-1 Test 8 */ -HASH_DF_TEST ( test_sha1_8, sha1_algorithm, - INPUT ( 0x00, 0xdc, 0x24, 0xdf, 0x10, 0x2f, 0xa9, 0xf9, 0x6c, 0xc1, - 0xcf, 0xf8, 0xc1, 0x16, 0xc7, 0x9d, 0x14, 0x97, 0xd7, 0xc2, - 0x7b, 0xba, 0x5b, 0xa8, 0x01, 0xe1, 0x56, 0x21, 0x93, 0x35, - 0x3f, 0x31, 0xe3, 0x22, 0x39, 0x57, 0x84, 0x69, 0xb8, 0x0f, - 0x2f, 0x51, 0x64, 0x54, 0x37, 0x28, 0x71, 0x7f, 0x17, 0x1f, - 0xdb, 0x02, 0xb2, 0xad, 0x57, 0x95 ), - EXPECT ( 0xff, 0xaf, 0x45, 0x66, 0x5b, 0x11, 0x0c, 0xa1, 0x33, 0x5a, - 0x3f, 0xce, 0x73, 0xa7, 0x98, 0x1d, 0x0f, 0xd5, 0xc8, 0xd9, - 0x03, 0xf6, 0x5f, 0xaa, 0x46, 0xa3, 0xd5, 0x97, 0xbf, 0x34, - 0xc4, 0xe0, 0xcc, 0x16, 0x75, 0x60, 0xab, 0x94, 0xec, 0x10, - 0xd6, 0x41, 0x5f, 0x37, 0x83, 0xb0, 0x15, 0x67, 0x89, 0x1b, - 0x57, 0x66, 0x2a, 0xbb, 0x39 ) ); - -/** SHA-1 Test 9 */ -HASH_DF_TEST ( test_sha1_9, sha1_algorithm, - INPUT ( 0x01, 0xd0, 0x8f, 0xb4, 0x41, 0xf2, 0xf4, 0xcb, 0x37, 0xcf, - 0x6c, 0x24, 0x20, 0xa8, 0x2c, 0x74, 0x27, 0xac, 0xf7, 0xfc, - 0xfd, 0x79, 0x90, 0x14, 0x38, 0x34, 0xa5, 0xc2, 0x56, 0xab, - 0x28, 0x39, 0x36, 0x6d, 0x96, 0x34, 0x8c, 0xfe, 0x8c, 0x97, - 0xab, 0x67, 0x67, 0xb0, 0x5e, 0x83, 0xa9, 0x80, 0x40, 0x6d, - 0x94, 0xbe, 0xe3, 0x3c, 0xbb, 0x89, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, - 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, - 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, - 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96 ), - EXPECT ( 0x8f, 0xde, 0xc9, 0xe6, 0x18, 0x96, 0x36, 0xf0, 0xa5, 0xce, - 0x53, 0xe8, 0x1c, 0x13, 0xac, 0x93, 0x84, 0xfa, 0xfb, 0xa0, - 0xee, 0x50, 0xc1, 0xe2, 0xc8, 0xa0, 0x99, 0xde, 0x41, 0xd8, - 0xcc, 0x7a, 0x31, 0x42, 0x9e, 0x8c, 0x8c, 0x88, 0x80, 0xe3, - 0xb4, 0x5d, 0x89, 0xdb, 0x61, 0x2c, 0xd9, 0xd2, 0x8a, 0x55, - 0xc0, 0xf0, 0xd1, 0xf8, 0xf9 ) ); - -/** SHA-1 Test 10 */ -HASH_DF_TEST ( test_sha1_10, sha1_algorithm, - INPUT ( 0x00, 0x8f, 0xde, 0xc9, 0xe6, 0x18, 0x96, 0x36, 0xf0, 0xa5, - 0xce, 0x53, 0xe8, 0x1c, 0x13, 0xac, 0x93, 0x84, 0xfa, 0xfb, - 0xa0, 0xee, 0x50, 0xc1, 0xe2, 0xc8, 0xa0, 0x99, 0xde, 0x41, - 0xd8, 0xcc, 0x7a, 0x31, 0x42, 0x9e, 0x8c, 0x8c, 0x88, 0x80, - 0xe3, 0xb4, 0x5d, 0x89, 0xdb, 0x61, 0x2c, 0xd9, 0xd2, 0x8a, - 0x55, 0xc0, 0xf0, 0xd1, 0xf8, 0xf9 ), - EXPECT ( 0x97, 0xd0, 0x76, 0x31, 0xb2, 0x2f, 0x7c, 0x95, 0x7f, 0x19, - 0xf8, 0x44, 0xf4, 0xdc, 0x2a, 0xfa, 0x6f, 0xf9, 0x7c, 0x35, - 0x66, 0x18, 0x98, 0x21, 0x69, 0x91, 0xd1, 0x5b, 0xda, 0x75, - 0xbb, 0xd0, 0x5e, 0xdf, 0x8a, 0x0f, 0xa8, 0x0c, 0xca, 0xb9, - 0x51, 0x95, 0xf4, 0x79, 0xcd, 0x76, 0x20, 0x22, 0x35, 0x10, - 0x2e, 0xf6, 0x27, 0x29, 0x19 ) ); - -/** SHA-1 Test 11 */ -HASH_DF_TEST ( test_sha1_11, sha1_algorithm, - INPUT ( 0x01, 0x27, 0xaf, 0x40, 0x17, 0xca, 0xc5, 0xb3, 0x86, 0x24, - 0xe8, 0x4c, 0x2d, 0x10, 0xef, 0xd7, 0x8d, 0xf4, 0xf4, 0x77, - 0xd6, 0x54, 0x69, 0x5a, 0x04, 0x32, 0x32, 0x6b, 0x3a, 0x1c, - 0x4e, 0x88, 0x4a, 0x90, 0x22, 0x28, 0xe8, 0x9e, 0xaa, 0x90, - 0x36, 0xcd, 0x2a, 0xf7, 0x05, 0x66, 0x81, 0x26, 0x23, 0x72, - 0xc7, 0x13, 0x71, 0xd4, 0x53, 0x3d, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, - 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, - 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, - 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6 ), - EXPECT ( 0x2c, 0x9c, 0x0d, 0x80, 0x03, 0xe3, 0x40, 0x23, 0xbe, 0x5b, - 0x63, 0xfd, 0xb9, 0xd2, 0x24, 0xb4, 0x25, 0x0c, 0xc8, 0x15, - 0x5b, 0xd1, 0xee, 0xd8, 0xe5, 0x5d, 0x91, 0x06, 0x2f, 0xdd, - 0x27, 0x64, 0xb8, 0xae, 0xa9, 0xc8, 0x2f, 0x84, 0x7e, 0x09, - 0xa3, 0xfe, 0xa1, 0xc7, 0x11, 0x7d, 0x6f, 0x7d, 0xd2, 0xef, - 0x77, 0x7d, 0x7c, 0xf3, 0xeb ) ); - -/** SHA-1 Test 12 */ -HASH_DF_TEST ( test_sha1_12, sha1_algorithm, - INPUT ( 0x00, 0x2c, 0x9c, 0x0d, 0x80, 0x03, 0xe3, 0x40, 0x23, 0xbe, - 0x5b, 0x63, 0xfd, 0xb9, 0xd2, 0x24, 0xb4, 0x25, 0x0c, 0xc8, - 0x15, 0x5b, 0xd1, 0xee, 0xd8, 0xe5, 0x5d, 0x91, 0x06, 0x2f, - 0xdd, 0x27, 0x64, 0xb8, 0xae, 0xa9, 0xc8, 0x2f, 0x84, 0x7e, - 0x09, 0xa3, 0xfe, 0xa1, 0xc7, 0x11, 0x7d, 0x6f, 0x7d, 0xd2, - 0xef, 0x77, 0x7d, 0x7c, 0xf3, 0xeb ), - EXPECT ( 0x7e, 0x8a, 0xa4, 0x93, 0x42, 0x72, 0xf2, 0xa2, 0x8b, 0xbf, - 0xd7, 0xaf, 0xcc, 0x88, 0xce, 0x1c, 0x80, 0x6a, 0x38, 0xea, - 0x7b, 0x89, 0x45, 0xc8, 0xd1, 0xb6, 0xf1, 0x75, 0x03, 0x78, - 0x54, 0x6a, 0xb1, 0xa2, 0x96, 0x00, 0xd6, 0x44, 0xec, 0x52, - 0x0e, 0x8b, 0xff, 0xf6, 0x0c, 0xb7, 0x7f, 0xa5, 0x4b, 0xb1, - 0x1a, 0x83, 0x31, 0xcb, 0x24 ) ); - -/** SHA-1 Test 13 */ -HASH_DF_TEST ( test_sha1_13, sha1_algorithm, - INPUT ( 0x01, 0x99, 0xb9, 0x53, 0x7b, 0x84, 0x27, 0xb8, 0xce, 0x23, - 0x21, 0x9a, 0x61, 0x1c, 0xbe, 0x61, 0x06, 0x44, 0xcf, 0x85, - 0x03, 0xee, 0xc5, 0xba, 0x22, 0xde, 0x1a, 0xb2, 0x12, 0xc3, - 0xd0, 0x85, 0x8e, 0x9e, 0x3b, 0x90, 0x26, 0xd4, 0xe7, 0x7d, - 0x58, 0xe0, 0x2e, 0x85, 0xa2, 0x31, 0x4c, 0xe3, 0xd7, 0x4a, - 0x93, 0x32, 0x4b, 0x27, 0xbd, 0xe8, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6 ), - EXPECT ( 0xe5, 0x04, 0x3d, 0x1b, 0x95, 0x4b, 0x34, 0xba, 0x60, 0xd2, - 0x48, 0xe8, 0x83, 0xef, 0x49, 0x8c, 0x5c, 0x52, 0x36, 0xb8, - 0x26, 0x0e, 0x23, 0x8e, 0x02, 0xc8, 0xd4, 0xfc, 0x5f, 0xfe, - 0x90, 0xfa, 0x40, 0x13, 0x44, 0x70, 0x75, 0xbb, 0x54, 0x3e, - 0xf0, 0x0c, 0x3b, 0xda, 0x59, 0x6b, 0x10, 0x88, 0x61, 0xf0, - 0x6b, 0xf9, 0x1b, 0x45, 0xd6 ) ); - -/** SHA-1 Test 14 */ -HASH_DF_TEST ( test_sha1_14, sha1_algorithm, - INPUT ( 0x00, 0xe5, 0x04, 0x3d, 0x1b, 0x95, 0x4b, 0x34, 0xba, 0x60, - 0xd2, 0x48, 0xe8, 0x83, 0xef, 0x49, 0x8c, 0x5c, 0x52, 0x36, - 0xb8, 0x26, 0x0e, 0x23, 0x8e, 0x02, 0xc8, 0xd4, 0xfc, 0x5f, - 0xfe, 0x90, 0xfa, 0x40, 0x13, 0x44, 0x70, 0x75, 0xbb, 0x54, - 0x3e, 0xf0, 0x0c, 0x3b, 0xda, 0x59, 0x6b, 0x10, 0x88, 0x61, - 0xf0, 0x6b, 0xf9, 0x1b, 0x45, 0xd6 ), - EXPECT ( 0x1f, 0x3f, 0x63, 0x10, 0xed, 0x10, 0xfc, 0x9f, 0x93, 0x8c, - 0x43, 0x22, 0x61, 0xaf, 0x42, 0xe9, 0xe9, 0x17, 0x5f, 0x08, - 0x0f, 0x32, 0x22, 0xdc, 0x11, 0x8b, 0xa7, 0xcf, 0x88, 0x8c, - 0xdc, 0x3f, 0x36, 0x0d, 0xd2, 0x8f, 0x5e, 0xcb, 0x7c, 0x80, - 0xa6, 0xbc, 0xfc, 0xfc, 0x0f, 0x51, 0xfe, 0x2f, 0x77, 0xc1, - 0xc9, 0x9d, 0xf0, 0xa2, 0x09 ) ); - -/** SHA-1 Test 15 */ -HASH_DF_TEST ( test_sha1_15, sha1_algorithm, - INPUT ( 0x01, 0x04, 0x43, 0xa0, 0x2c, 0x82, 0x5c, 0x31, 0x59, 0xf4, - 0x5e, 0x8c, 0x0a, 0xe5, 0x9e, 0x8c, 0x76, 0x45, 0x69, 0x95, - 0xc0, 0x35, 0x40, 0x46, 0x6a, 0x14, 0x54, 0x7c, 0xcb, 0xe8, - 0x8b, 0x6d, 0x39, 0x76, 0x21, 0x17, 0x32, 0x84, 0x72, 0xf5, - 0x2b, 0x84, 0x57, 0x5a, 0xaf, 0xe8, 0x8b, 0x2d, 0x1e, 0x50, - 0x4f, 0x21, 0xec, 0x4e, 0x31, 0x35, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6 ), - EXPECT ( 0x9d, 0xc3, 0x52, 0x08, 0xee, 0x2b, 0x8c, 0x58, 0x1e, 0xa3, - 0x0b, 0xaa, 0xcb, 0x5d, 0x74, 0x31, 0x7a, 0x87, 0x94, 0x54, - 0x10, 0x71, 0x7e, 0x58, 0xd3, 0x70, 0x5f, 0xbd, 0xc7, 0x60, - 0xbe, 0x0c, 0xc9, 0x0e, 0xd1, 0xcc, 0xbb, 0x89, 0x7d, 0x47, - 0xd2, 0x7e, 0x2b, 0x2e, 0x42, 0x2b, 0x32, 0xb9, 0x7f, 0x05, - 0x0d, 0x1b, 0xd2, 0xb4, 0x90 ) ); - -/** SHA-1 Test 16 */ -HASH_DF_TEST ( test_sha1_16, sha1_algorithm, - INPUT ( 0x00, 0x9d, 0xc3, 0x52, 0x08, 0xee, 0x2b, 0x8c, 0x58, 0x1e, - 0xa3, 0x0b, 0xaa, 0xcb, 0x5d, 0x74, 0x31, 0x7a, 0x87, 0x94, - 0x54, 0x10, 0x71, 0x7e, 0x58, 0xd3, 0x70, 0x5f, 0xbd, 0xc7, - 0x60, 0xbe, 0x0c, 0xc9, 0x0e, 0xd1, 0xcc, 0xbb, 0x89, 0x7d, - 0x47, 0xd2, 0x7e, 0x2b, 0x2e, 0x42, 0x2b, 0x32, 0xb9, 0x7f, - 0x05, 0x0d, 0x1b, 0xd2, 0xb4, 0x90 ), - EXPECT ( 0x1a, 0x5a, 0xd6, 0xce, 0xa3, 0xd1, 0x5d, 0xa5, 0xfb, 0x47, - 0x42, 0x13, 0x13, 0x09, 0xf0, 0xed, 0x88, 0xcf, 0x4c, 0x90, - 0xa6, 0xc1, 0xcc, 0xee, 0x35, 0xa8, 0x76, 0xeb, 0xfc, 0xcc, - 0x82, 0x67, 0x29, 0xb6, 0x63, 0x9f, 0x81, 0x19, 0x65, 0xb0, - 0xef, 0x85, 0x76, 0xe7, 0x5c, 0xb3, 0xcf, 0xe8, 0x22, 0x07, - 0x68, 0xb2, 0x6c, 0xe7, 0x7a ) ); - -/** SHA-1 Test 17 */ -HASH_DF_TEST ( test_sha1_17, sha1_algorithm, - INPUT ( 0x01, 0x99, 0xb9, 0x53, 0x7b, 0x84, 0x27, 0xb8, 0xce, 0x23, - 0x21, 0x9a, 0x61, 0x1c, 0xbe, 0x61, 0x06, 0x44, 0xcf, 0x85, - 0x03, 0xee, 0xc5, 0xba, 0x22, 0xde, 0x1a, 0xb2, 0x12, 0xc3, - 0xd0, 0x85, 0x8e, 0x9e, 0x3b, 0x90, 0x26, 0xd4, 0xe7, 0x7d, - 0x58, 0xe0, 0x2e, 0x85, 0xa2, 0x31, 0x4c, 0xe3, 0xd7, 0x4a, - 0x93, 0x32, 0x4b, 0x27, 0xbd, 0xe8, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, - 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, - 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, - 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96 ), - EXPECT ( 0x56, 0x3a, 0x5d, 0x20, 0x7d, 0x37, 0x70, 0x7b, 0xf5, 0xf2, - 0x4d, 0x0b, 0xd4, 0x93, 0x5d, 0xc3, 0x8d, 0xbe, 0x04, 0x36, - 0x37, 0xb3, 0xff, 0x8a, 0xb6, 0x8c, 0xfc, 0xe2, 0xf2, 0x90, - 0xd1, 0x69, 0x95, 0x20, 0x55, 0x24, 0x19, 0x0f, 0xd2, 0x91, - 0xaa, 0x8a, 0x6e, 0x6b, 0x8e, 0x6d, 0x56, 0xa4, 0x31, 0x33, - 0x3b, 0x40, 0x8e, 0x6f, 0xa8 ) ); - -/** SHA-1 Test 18 */ -HASH_DF_TEST ( test_sha1_18, sha1_algorithm, - INPUT ( 0x00, 0x56, 0x3a, 0x5d, 0x20, 0x7d, 0x37, 0x70, 0x7b, 0xf5, - 0xf2, 0x4d, 0x0b, 0xd4, 0x93, 0x5d, 0xc3, 0x8d, 0xbe, 0x04, - 0x36, 0x37, 0xb3, 0xff, 0x8a, 0xb6, 0x8c, 0xfc, 0xe2, 0xf2, - 0x90, 0xd1, 0x69, 0x95, 0x20, 0x55, 0x24, 0x19, 0x0f, 0xd2, - 0x91, 0xaa, 0x8a, 0x6e, 0x6b, 0x8e, 0x6d, 0x56, 0xa4, 0x31, - 0x33, 0x3b, 0x40, 0x8e, 0x6f, 0xa8 ), - EXPECT ( 0xc5, 0xd3, 0xe9, 0x55, 0x1e, 0x00, 0xe4, 0xee, 0x32, 0xb2, - 0x11, 0x6f, 0xaf, 0x4d, 0xef, 0xf4, 0xd4, 0xcf, 0xad, 0x2b, - 0xdc, 0x2d, 0xba, 0xa2, 0xe0, 0xe7, 0xf9, 0xdd, 0xb9, 0xd8, - 0x1e, 0xed, 0x45, 0xe0, 0xa5, 0x0d, 0xa5, 0xaf, 0xd5, 0xc1, - 0xf6, 0xbc, 0xda, 0xf8, 0x1d, 0x28, 0x9c, 0xf4, 0xbd, 0x3c, - 0x91, 0xb7, 0x00, 0x5c, 0x18 ) ); - -/** SHA-1 Test 19 */ -HASH_DF_TEST ( test_sha1_19, sha1_algorithm, - INPUT ( 0x01, 0x1c, 0x0e, 0x46, 0x75, 0x9b, 0x38, 0x55, 0x6a, 0x28, - 0xa4, 0x5e, 0x7b, 0x83, 0xe1, 0x4d, 0xb8, 0x62, 0x8d, 0xb1, - 0x62, 0x13, 0xe1, 0xba, 0x2d, 0x97, 0x74, 0xf6, 0xc0, 0xac, - 0x68, 0xf0, 0x56, 0xdb, 0x00, 0xfb, 0x12, 0xe1, 0x5b, 0xf4, - 0xde, 0x95, 0x50, 0xb7, 0x33, 0x1e, 0x2d, 0xbd, 0x66, 0x4c, - 0x3a, 0xb7, 0x76, 0xe8, 0x25, 0x51, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, - 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, - 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, - 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6 ), - EXPECT ( 0x60, 0x01, 0x93, 0xc8, 0xf6, 0x03, 0x1a, 0x2d, 0x49, 0x37, - 0x2a, 0x8b, 0x0f, 0x60, 0xf6, 0x8c, 0x1d, 0xfd, 0xac, 0xd4, - 0xf8, 0xea, 0x01, 0x37, 0x47, 0xd7, 0x14, 0x82, 0x33, 0x3d, - 0xf5, 0x25, 0x2e, 0x95, 0xb8, 0x22, 0x57, 0x39, 0x1b, 0xf1, - 0x0a, 0xb0, 0x7d, 0x12, 0x08, 0xb6, 0xbd, 0x66, 0x5b, 0x30, - 0x0a, 0xa4, 0xdb, 0x9c, 0x3e ) ); - -/** SHA-1 Test 20 */ -HASH_DF_TEST ( test_sha1_20, sha1_algorithm, - INPUT ( 0x00, 0x60, 0x01, 0x93, 0xc8, 0xf6, 0x03, 0x1a, 0x2d, 0x49, - 0x37, 0x2a, 0x8b, 0x0f, 0x60, 0xf6, 0x8c, 0x1d, 0xfd, 0xac, - 0xd4, 0xf8, 0xea, 0x01, 0x37, 0x47, 0xd7, 0x14, 0x82, 0x33, - 0x3d, 0xf5, 0x25, 0x2e, 0x95, 0xb8, 0x22, 0x57, 0x39, 0x1b, - 0xf1, 0x0a, 0xb0, 0x7d, 0x12, 0x08, 0xb6, 0xbd, 0x66, 0x5b, - 0x30, 0x0a, 0xa4, 0xdb, 0x9c, 0x3e ), - EXPECT ( 0x6b, 0x71, 0x82, 0x3b, 0x18, 0x20, 0x07, 0x71, 0xca, 0xae, - 0x5d, 0x12, 0x55, 0xc1, 0x40, 0x3e, 0xdf, 0xe3, 0x8b, 0x4d, - 0x18, 0xc7, 0x87, 0xbb, 0x44, 0xcd, 0x17, 0x18, 0x61, 0x52, - 0xef, 0xea, 0xd6, 0xfd, 0xc4, 0xb8, 0x94, 0xf9, 0x20, 0x02, - 0xc0, 0x72, 0x09, 0x55, 0x5d, 0x7e, 0x35, 0x54, 0xf9, 0xd1, - 0x2f, 0xc5, 0x59, 0x7f, 0x22 ) ); - -/** SHA-256 Test 1 */ -HASH_DF_TEST ( test_sha256_1, sha256_algorithm, - INPUT ( 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x20, 0x21, 0x22, 0x23, 0x24, - 0x25, 0x26, 0x27 ), - EXPECT ( 0xab, 0x41, 0xcd, 0xe4, 0x37, 0xab, 0x8b, 0x09, 0x1c, 0xa7, - 0xc5, 0x75, 0x5d, 0x10, 0xf0, 0x11, 0x0c, 0x1d, 0xbd, 0x46, - 0x2f, 0x22, 0x6c, 0xfd, 0xab, 0xfb, 0xb0, 0x4a, 0x8b, 0xcd, - 0xef, 0x95, 0x16, 0x7d, 0x84, 0xaf, 0x64, 0x12, 0x8c, 0x0d, - 0x71, 0xf4, 0xd5, 0xb8, 0xc0, 0xed, 0xfb, 0xbe, 0x3d, 0xf4, - 0x04, 0x48, 0xd2, 0xd8, 0xe1 ) ); - -/** SHA-256 Test 2 */ -HASH_DF_TEST ( test_sha256_2, sha256_algorithm, - INPUT ( 0x00, 0xab, 0x41, 0xcd, 0xe4, 0x37, 0xab, 0x8b, 0x09, 0x1c, - 0xa7, 0xc5, 0x75, 0x5d, 0x10, 0xf0, 0x11, 0x0c, 0x1d, 0xbd, - 0x46, 0x2f, 0x22, 0x6c, 0xfd, 0xab, 0xfb, 0xb0, 0x4a, 0x8b, - 0xcd, 0xef, 0x95, 0x16, 0x7d, 0x84, 0xaf, 0x64, 0x12, 0x8c, - 0x0d, 0x71, 0xf4, 0xd5, 0xb8, 0xc0, 0xed, 0xfb, 0xbe, 0x3d, - 0xf4, 0x04, 0x48, 0xd2, 0xd8, 0xe1 ), - EXPECT ( 0xe1, 0x5d, 0xe4, 0xa8, 0xe3, 0xb1, 0x41, 0x9b, 0x61, 0xd5, - 0x34, 0xf1, 0x5d, 0xbd, 0x31, 0xee, 0x19, 0xec, 0x59, 0x5f, - 0x8b, 0x98, 0x11, 0x1a, 0x94, 0xf5, 0x22, 0x37, 0xad, 0x5d, - 0x66, 0xf0, 0xcf, 0xaa, 0xfd, 0xdc, 0x90, 0x19, 0x59, 0x02, - 0xe9, 0x79, 0xf7, 0x9b, 0x65, 0x35, 0x7f, 0xea, 0x85, 0x99, - 0x8e, 0x4e, 0x37, 0xd2, 0xc1 ) ); - -/** SHA-256 Test 3 */ -HASH_DF_TEST ( test_sha256_3, sha256_algorithm, - INPUT ( 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x20, 0x21, 0x22, 0x23, 0x24, - 0x25, 0x26, 0x27, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, - 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, - 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, - 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76 ), - EXPECT ( 0xa3, 0xe9, 0x4e, 0x39, 0x26, 0xfd, 0xa1, 0x69, 0xc3, 0x03, - 0xd6, 0x64, 0x38, 0x39, 0x05, 0xe0, 0xd7, 0x99, 0x62, 0xd1, - 0x65, 0x44, 0x6d, 0x63, 0xbd, 0xa6, 0x54, 0xd1, 0x32, 0xf7, - 0x2d, 0xb4, 0x71, 0x56, 0x4b, 0x45, 0x6f, 0xf2, 0xee, 0xc8, - 0x36, 0x42, 0x2a, 0xcc, 0x5a, 0x02, 0x99, 0x35, 0xa7, 0x99, - 0x29, 0x90, 0x94, 0xa1, 0xca ) ); - -/** SHA-256 Test 4 */ -HASH_DF_TEST ( test_sha256_4, sha256_algorithm, - INPUT ( 0x00, 0xa3, 0xe9, 0x4e, 0x39, 0x26, 0xfd, 0xa1, 0x69, 0xc3, - 0x03, 0xd6, 0x64, 0x38, 0x39, 0x05, 0xe0, 0xd7, 0x99, 0x62, - 0xd1, 0x65, 0x44, 0x6d, 0x63, 0xbd, 0xa6, 0x54, 0xd1, 0x32, - 0xf7, 0x2d, 0xb4, 0x71, 0x56, 0x4b, 0x45, 0x6f, 0xf2, 0xee, - 0xc8, 0x36, 0x42, 0x2a, 0xcc, 0x5a, 0x02, 0x99, 0x35, 0xa7, - 0x99, 0x29, 0x90, 0x94, 0xa1, 0xca ), - EXPECT ( 0x44, 0x74, 0x8a, 0x78, 0xb1, 0x6e, 0x75, 0x55, 0x9f, 0x88, - 0x1d, 0x51, 0xc1, 0x5d, 0xfe, 0x6c, 0x52, 0xcf, 0xb0, 0xbb, - 0x71, 0x62, 0x01, 0x69, 0xc7, 0x93, 0x34, 0x27, 0x67, 0xe7, - 0xf8, 0x87, 0x5f, 0x42, 0xcb, 0x6a, 0x20, 0xc8, 0x9d, 0x7c, - 0x6e, 0xf3, 0xdc, 0x61, 0x0d, 0x8f, 0xf2, 0x03, 0xd6, 0x76, - 0x6c, 0xed, 0x19, 0x19, 0xd0 ) ); - -/** SHA-256 Test 5 */ -HASH_DF_TEST ( test_sha256_5, sha256_algorithm, - INPUT ( 0x01, 0xab, 0x41, 0xcd, 0xe4, 0x37, 0xab, 0x8b, 0x09, 0x1c, - 0xa7, 0xc5, 0x75, 0x5d, 0x10, 0xf0, 0x11, 0x0c, 0x1d, 0xbd, - 0x46, 0x2f, 0x22, 0x6c, 0xfd, 0xab, 0xfb, 0xb0, 0x4a, 0x8b, - 0xcd, 0xef, 0x95, 0x16, 0x7d, 0x84, 0xaf, 0x64, 0x12, 0x8c, - 0x0d, 0x71, 0xf4, 0xd5, 0xb8, 0xc0, 0xed, 0xfb, 0xbe, 0x3d, - 0xf4, 0x04, 0x48, 0xd2, 0xd8, 0xe1, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6 ), - EXPECT ( 0x3c, 0x40, 0xe8, 0xdc, 0x71, 0x72, 0xfd, 0xa2, 0x32, 0x55, - 0x0a, 0x1d, 0x8e, 0x14, 0x47, 0xc1, 0x1f, 0x47, 0x48, 0x88, - 0xf9, 0x6c, 0xd8, 0x5c, 0x38, 0x63, 0xd5, 0xe4, 0x84, 0x26, - 0x67, 0x56, 0x28, 0xd0, 0x88, 0x85, 0x34, 0x7c, 0x3e, 0xfd, - 0x62, 0x92, 0xfd, 0xdc, 0xd1, 0xa1, 0x42, 0x1e, 0xed, 0x51, - 0xb7, 0x13, 0xab, 0x09, 0x0f ) ); - -/** SHA-256 Test 6 */ -HASH_DF_TEST ( test_sha256_6, sha256_algorithm, - INPUT ( 0x00, 0x3c, 0x40, 0xe8, 0xdc, 0x71, 0x72, 0xfd, 0xa2, 0x32, - 0x55, 0x0a, 0x1d, 0x8e, 0x14, 0x47, 0xc1, 0x1f, 0x47, 0x48, - 0x88, 0xf9, 0x6c, 0xd8, 0x5c, 0x38, 0x63, 0xd5, 0xe4, 0x84, - 0x26, 0x67, 0x56, 0x28, 0xd0, 0x88, 0x85, 0x34, 0x7c, 0x3e, - 0xfd, 0x62, 0x92, 0xfd, 0xdc, 0xd1, 0xa1, 0x42, 0x1e, 0xed, - 0x51, 0xb7, 0x13, 0xab, 0x09, 0x0f ), - EXPECT ( 0xe7, 0x56, 0x83, 0x84, 0xf2, 0x64, 0xe4, 0xa7, 0xe7, 0xae, - 0x85, 0x0d, 0x9d, 0x50, 0x1f, 0xd6, 0x31, 0x83, 0x56, 0x4f, - 0xd7, 0xd3, 0x90, 0x44, 0x6f, 0x5b, 0xe5, 0xf6, 0x7b, 0x50, - 0x19, 0x5b, 0x52, 0x84, 0x69, 0x2a, 0xd4, 0xb7, 0x6d, 0xfd, - 0x4f, 0x52, 0x4b, 0xcf, 0xcc, 0xab, 0x62, 0xc1, 0x30, 0x9f, - 0x25, 0x15, 0x17, 0xdf, 0xfd ) ); - -/** SHA-256 Test 7 */ -HASH_DF_TEST ( test_sha256_7, sha256_algorithm, - INPUT ( 0x01, 0x23, 0x97, 0x6c, 0x61, 0x63, 0xd7, 0xe2, 0x4a, 0x1a, - 0x03, 0x8f, 0x2b, 0x2b, 0x64, 0x67, 0x97, 0x50, 0xca, 0x9e, - 0xd8, 0xd1, 0x40, 0x69, 0x8d, 0x64, 0x22, 0x39, 0x7b, 0x02, - 0x96, 0x9e, 0x6e, 0xcd, 0xd2, 0x9d, 0xac, 0xc5, 0x76, 0x7e, - 0x2c, 0xc2, 0xd0, 0xa1, 0x56, 0xc8, 0x7a, 0xd0, 0xb3, 0x57, - 0x89, 0x05, 0x07, 0xe0, 0x37, 0x77, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6 ), - EXPECT ( 0xe9, 0x83, 0xb1, 0x66, 0xa9, 0x2a, 0x99, 0x7e, 0xab, 0xcc, - 0x96, 0x6c, 0x6a, 0xa3, 0xd3, 0xb3, 0xa1, 0x68, 0x1f, 0xc5, - 0x8f, 0x58, 0x29, 0x40, 0x3b, 0x48, 0x60, 0x1e, 0xc1, 0x77, - 0x54, 0x94, 0x2e, 0x11, 0xc1, 0xcd, 0x46, 0x5b, 0x7d, 0xbe, - 0x2a, 0x78, 0xca, 0x04, 0x2c, 0xf9, 0xb3, 0x05, 0x71, 0xff, - 0x12, 0xe3, 0xb9, 0xf6, 0xc9 ) ); - -/** SHA-256 Test 8 */ -HASH_DF_TEST ( test_sha256_8, sha256_algorithm, - INPUT ( 0x00, 0xe9, 0x83, 0xb1, 0x66, 0xa9, 0x2a, 0x99, 0x7e, 0xab, - 0xcc, 0x96, 0x6c, 0x6a, 0xa3, 0xd3, 0xb3, 0xa1, 0x68, 0x1f, - 0xc5, 0x8f, 0x58, 0x29, 0x40, 0x3b, 0x48, 0x60, 0x1e, 0xc1, - 0x77, 0x54, 0x94, 0x2e, 0x11, 0xc1, 0xcd, 0x46, 0x5b, 0x7d, - 0xbe, 0x2a, 0x78, 0xca, 0x04, 0x2c, 0xf9, 0xb3, 0x05, 0x71, - 0xff, 0x12, 0xe3, 0xb9, 0xf6, 0xc9 ), - EXPECT ( 0xa9, 0x77, 0x5c, 0xe1, 0x65, 0x5b, 0xff, 0x95, 0x1b, 0xe0, - 0xaf, 0x5b, 0x79, 0x59, 0x72, 0x5c, 0x76, 0x7d, 0x86, 0xf1, - 0xe1, 0x9b, 0x11, 0xb8, 0x90, 0x04, 0xf6, 0x97, 0x4d, 0xbf, - 0xa0, 0x46, 0x04, 0x45, 0x8e, 0x5c, 0x52, 0x8e, 0x7e, 0x1d, - 0xfa, 0xb3, 0x88, 0x7b, 0xa4, 0xaa, 0xdb, 0xd6, 0xfb, 0xde, - 0x0b, 0x31, 0x6f, 0x1d, 0x91 ) ); - -/** SHA-256 Test 9 */ -HASH_DF_TEST ( test_sha256_9, sha256_algorithm, - INPUT ( 0x01, 0xab, 0x41, 0xcd, 0xe4, 0x37, 0xab, 0x8b, 0x09, 0x1c, - 0xa7, 0xc5, 0x75, 0x5d, 0x10, 0xf0, 0x11, 0x0c, 0x1d, 0xbd, - 0x46, 0x2f, 0x22, 0x6c, 0xfd, 0xab, 0xfb, 0xb0, 0x4a, 0x8b, - 0xcd, 0xef, 0x95, 0x16, 0x7d, 0x84, 0xaf, 0x64, 0x12, 0x8c, - 0x0d, 0x71, 0xf4, 0xd5, 0xb8, 0xc0, 0xed, 0xfb, 0xbe, 0x3d, - 0xf4, 0x04, 0x48, 0xd2, 0xd8, 0xe1, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, - 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, - 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, - 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96 ), - EXPECT ( 0x57, 0xb2, 0xcf, 0x00, 0xb5, 0x42, 0x97, 0x46, 0x0b, 0x08, - 0x7e, 0x52, 0x75, 0xd7, 0xdd, 0x74, 0x23, 0xb6, 0xe3, 0xb6, - 0x5e, 0x35, 0x16, 0xd2, 0x48, 0x11, 0x99, 0xa0, 0x17, 0xb5, - 0x3a, 0x22, 0x20, 0x33, 0xfe, 0x68, 0xa6, 0x0b, 0xd0, 0xbd, - 0x70, 0x40, 0x26, 0xcd, 0x5a, 0x3e, 0x79, 0x55, 0xdb, 0x01, - 0xdc, 0xb2, 0x84, 0x48, 0xd1 ) ); - -/** SHA-256 Test 10 */ -HASH_DF_TEST ( test_sha256_10, sha256_algorithm, - INPUT ( 0x00, 0x57, 0xb2, 0xcf, 0x00, 0xb5, 0x42, 0x97, 0x46, 0x0b, - 0x08, 0x7e, 0x52, 0x75, 0xd7, 0xdd, 0x74, 0x23, 0xb6, 0xe3, - 0xb6, 0x5e, 0x35, 0x16, 0xd2, 0x48, 0x11, 0x99, 0xa0, 0x17, - 0xb5, 0x3a, 0x22, 0x20, 0x33, 0xfe, 0x68, 0xa6, 0x0b, 0xd0, - 0xbd, 0x70, 0x40, 0x26, 0xcd, 0x5a, 0x3e, 0x79, 0x55, 0xdb, - 0x01, 0xdc, 0xb2, 0x84, 0x48, 0xd1 ), - EXPECT ( 0x5b, 0xc1, 0xc6, 0x45, 0xcc, 0x8d, 0x32, 0x15, 0x82, 0xaf, - 0xbb, 0x00, 0x16, 0x99, 0x2b, 0x0f, 0x3a, 0xfe, 0x0f, 0x54, - 0x7a, 0xe7, 0xa7, 0x4c, 0x9c, 0x05, 0xa1, 0x44, 0x02, 0xfb, - 0xb1, 0xd5, 0x40, 0xe6, 0x80, 0x9d, 0x8b, 0xee, 0xf5, 0x99, - 0xed, 0x4c, 0x39, 0x16, 0x47, 0x40, 0xed, 0xa0, 0xd9, 0xc3, - 0x79, 0x5d, 0xe5, 0x52, 0xc5 ) ); - -/** SHA-256 Test 11 */ -HASH_DF_TEST ( test_sha256_11, sha256_algorithm, - INPUT ( 0x01, 0xb3, 0x74, 0x95, 0x46, 0x81, 0xcf, 0xc9, 0x5b, 0x8d, - 0xb8, 0x39, 0x52, 0x8c, 0x71, 0x08, 0x83, 0x5e, 0xb4, 0xf3, - 0x0a, 0xd9, 0x1c, 0xbe, 0x9e, 0xa0, 0xd5, 0x45, 0xcc, 0xfd, - 0x18, 0x13, 0x2a, 0xf1, 0xd3, 0x76, 0x8f, 0x47, 0x02, 0x77, - 0x2b, 0x69, 0x15, 0x9f, 0x2c, 0xc0, 0x7f, 0x48, 0x74, 0x1e, - 0xb5, 0xb2, 0xb1, 0x22, 0x11, 0x25, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, - 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, - 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, - 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6 ), - EXPECT ( 0x5d, 0xc1, 0xc5, 0xf4, 0xb4, 0x11, 0x50, 0xce, 0xe0, 0xef, - 0xc1, 0x29, 0xb8, 0x37, 0xb3, 0x1c, 0x84, 0xd7, 0x91, 0xff, - 0x2e, 0x7e, 0xda, 0xc2, 0x9c, 0x2c, 0x50, 0xcf, 0x8a, 0x40, - 0x70, 0x9b, 0x98, 0x64, 0x0f, 0x7b, 0xbd, 0x32, 0xbc, 0xf0, - 0xfc, 0xb6, 0x13, 0xf9, 0x6d, 0x55, 0xd1, 0x60, 0x56, 0xbb, - 0x3c, 0xa6, 0xa7, 0x74, 0x05 ) ); - -/** SHA-256 Test 12 */ -HASH_DF_TEST ( test_sha256_12, sha256_algorithm, - INPUT ( 0x00, 0x5d, 0xc1, 0xc5, 0xf4, 0xb4, 0x11, 0x50, 0xce, 0xe0, - 0xef, 0xc1, 0x29, 0xb8, 0x37, 0xb3, 0x1c, 0x84, 0xd7, 0x91, - 0xff, 0x2e, 0x7e, 0xda, 0xc2, 0x9c, 0x2c, 0x50, 0xcf, 0x8a, - 0x40, 0x70, 0x9b, 0x98, 0x64, 0x0f, 0x7b, 0xbd, 0x32, 0xbc, - 0xf0, 0xfc, 0xb6, 0x13, 0xf9, 0x6d, 0x55, 0xd1, 0x60, 0x56, - 0xbb, 0x3c, 0xa6, 0xa7, 0x74, 0x05 ), - EXPECT ( 0x62, 0x22, 0x10, 0x8c, 0xed, 0xfe, 0x6d, 0x6a, 0x22, 0x9f, - 0x8c, 0x3c, 0xbf, 0x44, 0x68, 0xc8, 0xf5, 0x17, 0x22, 0x86, - 0x4c, 0xc4, 0x16, 0xa4, 0x29, 0x26, 0xd9, 0x9b, 0xa6, 0xf0, - 0x45, 0xc1, 0xf6, 0x21, 0x11, 0x56, 0x94, 0x6c, 0x6e, 0x79, - 0x37, 0x29, 0x97, 0x4e, 0xb4, 0xc5, 0xa6, 0x07, 0x8f, 0x9a, - 0x1d, 0x4d, 0x1c, 0xd7, 0x49 ) ); - -/** SHA-256 Test 13 */ -HASH_DF_TEST ( test_sha256_13, sha256_algorithm, - INPUT ( 0x01, 0xa3, 0xe9, 0x4e, 0x39, 0x26, 0xfd, 0xa1, 0x69, 0xc3, - 0x03, 0xd6, 0x64, 0x38, 0x39, 0x05, 0xe0, 0xd7, 0x99, 0x62, - 0xd1, 0x65, 0x44, 0x6d, 0x63, 0xbd, 0xa6, 0x54, 0xd1, 0x32, - 0xf7, 0x2d, 0xb4, 0x71, 0x56, 0x4b, 0x45, 0x6f, 0xf2, 0xee, - 0xc8, 0x36, 0x42, 0x2a, 0xcc, 0x5a, 0x02, 0x99, 0x35, 0xa7, - 0x99, 0x29, 0x90, 0x94, 0xa1, 0xca, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6 ), - EXPECT ( 0xe0, 0x26, 0xa5, 0xc2, 0xe7, 0x62, 0x3e, 0x62, 0xb7, 0x1a, - 0x2e, 0x04, 0xc2, 0x5f, 0x0b, 0x08, 0x58, 0x2b, 0xe2, 0x16, - 0x36, 0x34, 0xc0, 0x49, 0x6d, 0x2b, 0x65, 0xda, 0x7e, 0xaa, - 0x03, 0xb5, 0xc3, 0xb6, 0xb5, 0x10, 0xbb, 0x3f, 0xe4, 0x74, - 0x34, 0x07, 0x1f, 0x70, 0x7a, 0xc7, 0xfe, 0x4c, 0x39, 0x6a, - 0xaa, 0xee, 0x76, 0x4c, 0x90 ) ); - -/** SHA-256 Test 14 */ -HASH_DF_TEST ( test_sha256_14, sha256_algorithm, - INPUT ( 0x00, 0xe0, 0x26, 0xa5, 0xc2, 0xe7, 0x62, 0x3e, 0x62, 0xb7, - 0x1a, 0x2e, 0x04, 0xc2, 0x5f, 0x0b, 0x08, 0x58, 0x2b, 0xe2, - 0x16, 0x36, 0x34, 0xc0, 0x49, 0x6d, 0x2b, 0x65, 0xda, 0x7e, - 0xaa, 0x03, 0xb5, 0xc3, 0xb6, 0xb5, 0x10, 0xbb, 0x3f, 0xe4, - 0x74, 0x34, 0x07, 0x1f, 0x70, 0x7a, 0xc7, 0xfe, 0x4c, 0x39, - 0x6a, 0xaa, 0xee, 0x76, 0x4c, 0x90 ), - EXPECT ( 0xc9, 0xea, 0x75, 0x4b, 0xee, 0x0a, 0xb6, 0x44, 0x15, 0xca, - 0x7f, 0xe3, 0x2e, 0xbb, 0xfb, 0x07, 0xed, 0x93, 0x2e, 0x7c, - 0x95, 0x7e, 0xce, 0xae, 0xf0, 0xcd, 0x2f, 0xa7, 0x7a, 0x46, - 0xf9, 0xe8, 0x59, 0x62, 0x78, 0x97, 0x54, 0xc6, 0xd2, 0x98, - 0xf9, 0xb5, 0xe4, 0x59, 0x6b, 0x4e, 0x0e, 0x6d, 0xf4, 0xf4, - 0xb8, 0x23, 0x60, 0xda, 0x33 ) ); - -/** SHA-256 Test 15 */ -HASH_DF_TEST ( test_sha256_15, sha256_algorithm, - INPUT ( 0x01, 0xaa, 0x11, 0x1b, 0x0e, 0xd5, 0x6c, 0xf4, 0xa6, 0xcc, - 0xe4, 0xad, 0xe7, 0xf1, 0x1b, 0x06, 0x10, 0x45, 0xbf, 0x10, - 0x92, 0xcb, 0xb3, 0x8f, 0xf3, 0x23, 0x95, 0xea, 0x62, 0xd2, - 0x6b, 0x27, 0xc8, 0x86, 0x89, 0x45, 0xc5, 0x93, 0xba, 0x70, - 0xc3, 0x84, 0xad, 0xad, 0x45, 0x77, 0x1c, 0x93, 0xb0, 0x9c, - 0x27, 0x69, 0x07, 0x52, 0xd1, 0xd8, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6 ), - EXPECT ( 0xfc, 0x5f, 0x56, 0x48, 0xed, 0xc4, 0xfc, 0x30, 0x7b, 0x5c, - 0x5a, 0x53, 0xd5, 0x12, 0x89, 0xb5, 0x0e, 0x73, 0xdc, 0xec, - 0x4a, 0xa1, 0xcb, 0x47, 0xa3, 0xba, 0xd8, 0x46, 0xbb, 0x57, - 0xc3, 0xc4, 0x80, 0x49, 0x1d, 0xf5, 0x21, 0xc4, 0x66, 0x9b, - 0xff, 0xf3, 0x7a, 0x41, 0x8b, 0xaf, 0x6e, 0x9b, 0xea, 0xec, - 0x34, 0x96, 0xd0, 0xf1, 0xa6 ) ); - -/** SHA-256 Test 16 */ -HASH_DF_TEST ( test_sha256_16, sha256_algorithm, - INPUT ( 0x00, 0xfc, 0x5f, 0x56, 0x48, 0xed, 0xc4, 0xfc, 0x30, 0x7b, - 0x5c, 0x5a, 0x53, 0xd5, 0x12, 0x89, 0xb5, 0x0e, 0x73, 0xdc, - 0xec, 0x4a, 0xa1, 0xcb, 0x47, 0xa3, 0xba, 0xd8, 0x46, 0xbb, - 0x57, 0xc3, 0xc4, 0x80, 0x49, 0x1d, 0xf5, 0x21, 0xc4, 0x66, - 0x9b, 0xff, 0xf3, 0x7a, 0x41, 0x8b, 0xaf, 0x6e, 0x9b, 0xea, - 0xec, 0x34, 0x96, 0xd0, 0xf1, 0xa6 ), - EXPECT ( 0x62, 0xb0, 0x7d, 0xc3, 0x9e, 0xbd, 0xf3, 0x10, 0x87, 0xb8, - 0x5d, 0xdc, 0xec, 0xfd, 0x43, 0x35, 0x62, 0xe5, 0x3b, 0xae, - 0x9f, 0x72, 0x1c, 0x5a, 0xfa, 0xb8, 0xf1, 0xcf, 0x01, 0x61, - 0xc8, 0x8e, 0x45, 0x50, 0x3e, 0x15, 0xb2, 0x6e, 0x7b, 0x80, - 0xd5, 0x1d, 0xb0, 0xb9, 0x24, 0x52, 0x36, 0x2d, 0xc3, 0xdc, - 0x57, 0x0d, 0xfe, 0x6e, 0x17 ) ); - -/** SHA-256 Test 17 */ -HASH_DF_TEST ( test_sha256_17, sha256_algorithm, - INPUT ( 0x01, 0xa3, 0xe9, 0x4e, 0x39, 0x26, 0xfd, 0xa1, 0x69, 0xc3, - 0x03, 0xd6, 0x64, 0x38, 0x39, 0x05, 0xe0, 0xd7, 0x99, 0x62, - 0xd1, 0x65, 0x44, 0x6d, 0x63, 0xbd, 0xa6, 0x54, 0xd1, 0x32, - 0xf7, 0x2d, 0xb4, 0x71, 0x56, 0x4b, 0x45, 0x6f, 0xf2, 0xee, - 0xc8, 0x36, 0x42, 0x2a, 0xcc, 0x5a, 0x02, 0x99, 0x35, 0xa7, - 0x99, 0x29, 0x90, 0x94, 0xa1, 0xca, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, - 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, - 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, - 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96 ), - EXPECT ( 0x98, 0x75, 0xbb, 0x7c, 0x7a, 0x0b, 0x23, 0x6b, 0xf4, 0x6f, - 0x4e, 0xa6, 0x6f, 0x67, 0xc7, 0xb4, 0x4f, 0x80, 0xef, 0x70, - 0x61, 0x4b, 0xef, 0xe8, 0xb0, 0x85, 0xcc, 0xaf, 0x55, 0x89, - 0xa7, 0x6f, 0x85, 0xfd, 0x96, 0x69, 0x53, 0xe2, 0x0a, 0x55, - 0xd2, 0xf3, 0x5b, 0xa5, 0x81, 0xef, 0x51, 0x11, 0xbf, 0xbf, - 0x05, 0x65, 0x3a, 0xf7, 0xe7 ) ); - -/** SHA-256 Test 18 */ -HASH_DF_TEST ( test_sha256_18, sha256_algorithm, - INPUT ( 0x00, 0x98, 0x75, 0xbb, 0x7c, 0x7a, 0x0b, 0x23, 0x6b, 0xf4, - 0x6f, 0x4e, 0xa6, 0x6f, 0x67, 0xc7, 0xb4, 0x4f, 0x80, 0xef, - 0x70, 0x61, 0x4b, 0xef, 0xe8, 0xb0, 0x85, 0xcc, 0xaf, 0x55, - 0x89, 0xa7, 0x6f, 0x85, 0xfd, 0x96, 0x69, 0x53, 0xe2, 0x0a, - 0x55, 0xd2, 0xf3, 0x5b, 0xa5, 0x81, 0xef, 0x51, 0x11, 0xbf, - 0xbf, 0x05, 0x65, 0x3a, 0xf7, 0xe7 ), - EXPECT ( 0x12, 0x80, 0xfe, 0x1f, 0x05, 0x79, 0x8c, 0xca, 0xed, 0x5d, - 0x6d, 0xf6, 0xe7, 0xd2, 0x6f, 0x04, 0x6e, 0x53, 0x8c, 0xc5, - 0x2a, 0x6a, 0x03, 0x0d, 0xa8, 0x26, 0xb2, 0xb4, 0x79, 0x82, - 0xd6, 0xee, 0x8a, 0x68, 0x67, 0x58, 0x07, 0x06, 0x93, 0x9e, - 0xcc, 0x03, 0xfc, 0x11, 0xb0, 0x05, 0x9f, 0xe2, 0xae, 0xad, - 0xea, 0x0a, 0x46, 0x98, 0x5c ) ); - -/** SHA-256 Test 19 */ -HASH_DF_TEST ( test_sha256_19, sha256_algorithm, - INPUT ( 0x01, 0xaa, 0xf6, 0xb9, 0x9b, 0x7f, 0x84, 0xb0, 0x36, 0xe1, - 0xcc, 0xbc, 0x9d, 0x57, 0x3a, 0x36, 0xb8, 0xbd, 0xd4, 0x7c, - 0x35, 0x8b, 0xb5, 0xf3, 0xc1, 0xd6, 0xe7, 0x90, 0x3a, 0xaa, - 0x29, 0xf1, 0xc8, 0x7a, 0xe6, 0x66, 0xb8, 0x86, 0x93, 0xbe, - 0xf4, 0x6c, 0x51, 0xc2, 0x4c, 0x47, 0xbe, 0xfe, 0x4b, 0x35, - 0x75, 0x4d, 0xcb, 0xfa, 0x1e, 0x7d, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, - 0xf6, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, - 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, - 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, - 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6 ), - EXPECT ( 0xb0, 0x6d, 0xbf, 0xb1, 0x4e, 0x7f, 0x4e, 0x01, 0x25, 0x62, - 0x94, 0x2f, 0xe4, 0xf2, 0xa9, 0x60, 0x17, 0x07, 0x55, 0x9d, - 0x7d, 0xd1, 0x90, 0x89, 0x8b, 0xc8, 0x06, 0x24, 0xe5, 0xc8, - 0xc1, 0xbb, 0x9b, 0x90, 0xfb, 0x2e, 0xef, 0x12, 0xed, 0x24, - 0xbe, 0xbd, 0x8d, 0xf7, 0x1e, 0xf6, 0x5c, 0x70, 0xfa, 0x4e, - 0x91, 0x86, 0x3a, 0x31, 0xbe ) ); - -/** SHA-256 Test 20 */ -HASH_DF_TEST ( test_sha256_20, sha256_algorithm, - INPUT ( 0x00, 0xb0, 0x6d, 0xbf, 0xb1, 0x4e, 0x7f, 0x4e, 0x01, 0x25, - 0x62, 0x94, 0x2f, 0xe4, 0xf2, 0xa9, 0x60, 0x17, 0x07, 0x55, - 0x9d, 0x7d, 0xd1, 0x90, 0x89, 0x8b, 0xc8, 0x06, 0x24, 0xe5, - 0xc8, 0xc1, 0xbb, 0x9b, 0x90, 0xfb, 0x2e, 0xef, 0x12, 0xed, - 0x24, 0xbe, 0xbd, 0x8d, 0xf7, 0x1e, 0xf6, 0x5c, 0x70, 0xfa, - 0x4e, 0x91, 0x86, 0x3a, 0x31, 0xbe ), - EXPECT ( 0x5c, 0x07, 0xb7, 0x9c, 0x12, 0x83, 0x1b, 0xac, 0x36, 0x52, - 0x17, 0x8b, 0x2f, 0x90, 0x7a, 0x69, 0x61, 0x98, 0x39, 0xd8, - 0xa7, 0xfa, 0xa2, 0xb6, 0x95, 0xef, 0xb3, 0x10, 0x82, 0x38, - 0x01, 0x35, 0x85, 0x19, 0x1f, 0x59, 0x9c, 0x99, 0x07, 0xc7, - 0x21, 0x92, 0xed, 0x25, 0x7e, 0x9f, 0x6c, 0xd3, 0x77, 0xdd, - 0x6b, 0xac, 0x33, 0x7c, 0x19 ) ); - -/** - * Report Hash_df test result - * - * @v test Hash_df test - */ -#define hash_df_ok( test ) do { \ - uint8_t output[ (test)->expected_len ]; \ - hash_df ( (test)->hash, (test)->input, (test)->input_len, \ - output, sizeof ( output ) ); \ - ok ( memcmp ( (test)->expected, output, \ - sizeof ( output ) ) == 0 ); \ - } while ( 0 ) - -/** - * Perform Hash_df self-test - * - */ -static void hash_df_test_exec ( void ) { - - hash_df_ok ( &test_sha1_1 ); - hash_df_ok ( &test_sha1_2 ); - hash_df_ok ( &test_sha1_3 ); - hash_df_ok ( &test_sha1_4 ); - hash_df_ok ( &test_sha1_5 ); - hash_df_ok ( &test_sha1_6 ); - hash_df_ok ( &test_sha1_7 ); - hash_df_ok ( &test_sha1_8 ); - hash_df_ok ( &test_sha1_9 ); - hash_df_ok ( &test_sha1_10 ); - hash_df_ok ( &test_sha1_11 ); - hash_df_ok ( &test_sha1_12 ); - hash_df_ok ( &test_sha1_13 ); - hash_df_ok ( &test_sha1_14 ); - hash_df_ok ( &test_sha1_15 ); - hash_df_ok ( &test_sha1_16 ); - hash_df_ok ( &test_sha1_17 ); - hash_df_ok ( &test_sha1_18 ); - hash_df_ok ( &test_sha1_19 ); - hash_df_ok ( &test_sha1_20 ); - - hash_df_ok ( &test_sha256_1 ); - hash_df_ok ( &test_sha256_2 ); - hash_df_ok ( &test_sha256_3 ); - hash_df_ok ( &test_sha256_4 ); - hash_df_ok ( &test_sha256_5 ); - hash_df_ok ( &test_sha256_6 ); - hash_df_ok ( &test_sha256_7 ); - hash_df_ok ( &test_sha256_8 ); - hash_df_ok ( &test_sha256_9 ); - hash_df_ok ( &test_sha256_10 ); - hash_df_ok ( &test_sha256_11 ); - hash_df_ok ( &test_sha256_12 ); - hash_df_ok ( &test_sha256_13 ); - hash_df_ok ( &test_sha256_14 ); - hash_df_ok ( &test_sha256_15 ); - hash_df_ok ( &test_sha256_16 ); - hash_df_ok ( &test_sha256_17 ); - hash_df_ok ( &test_sha256_18 ); - hash_df_ok ( &test_sha256_19 ); - hash_df_ok ( &test_sha256_20 ); -} - -/** Hash_df self-test */ -struct self_test hash_df_test __self_test = { - .name = "hash_df", - .exec = hash_df_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/hmac_drbg_test.c b/qemu/roms/ipxe/src/tests/hmac_drbg_test.c deleted file mode 100644 index ddf9db2c5..000000000 --- a/qemu/roms/ipxe/src/tests/hmac_drbg_test.c +++ /dev/null @@ -1,1390 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * HMAC_DRBG tests - * - * These test vectors are provided by NIST as part of the - * Cryptographic Toolkit Examples, downloadable from: - * - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/HMAC_DRBG.pdf - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include - -/** Define inline expected data */ -#define EXPECT(...) { __VA_ARGS__ } - -/** An HMAC_DRBG instantiation test */ -struct hmac_drbg_test_instantiate { - /** Underlying hash algorithm */ - struct digest_algorithm *hash; - /** Output block length */ - size_t out_len; - /** Entropy */ - const void *entropy; - /** Length of entropy */ - size_t entropy_len; - /** Nonce */ - const void *nonce; - /** Length of nonce */ - size_t nonce_len; - /** Personalisation string */ - const void *personal; - /** Length of personalisation string */ - size_t personal_len; - /** Expected key */ - const void *expected_key; - /** Length of expected key */ - size_t expected_key_len; - /** Expected value */ - const void *expected_value; - /** Length of expected value */ - size_t expected_value_len; -}; - -/** - * Define an HMAC_DRBG instantiation test - * - * @v name Test name - * @v hmac_drbg HMAC_DRBG algorithm - * @v entropy_array Entropy input - * @v nonce_array Nonce - * @v personal_array Personalisation string - * @v key Expected key - * @v value Expected value - * @ret test Instantiation test - */ -#define HMAC_DRBG_TEST_INSTANTIATE( name, hmac_drbg, entropy_array, \ - nonce_array, personal_array, \ - key, value ) \ - static const uint8_t name ## _key [] = key; \ - static const uint8_t name ## _value [] = value; \ - static struct hmac_drbg_test_instantiate name = { \ - .hash = HMAC_DRBG_HASH ( hmac_drbg ), \ - .out_len = HMAC_DRBG_OUTLEN_BYTES ( hmac_drbg ), \ - .entropy = entropy_array, \ - .entropy_len = sizeof ( entropy_array ), \ - .nonce = nonce_array, \ - .nonce_len = sizeof ( nonce_array ), \ - .personal = personal_array, \ - .personal_len = sizeof ( personal_array ), \ - .expected_key = name ## _key, \ - .expected_key_len = sizeof ( name ## _key ), \ - .expected_value = name ## _value, \ - .expected_value_len = sizeof ( name ## _value ), \ - } - -/** - * Report instantiation test result - * - * @v state HMAC_DRBG internal state - * @v test Instantiation test - */ -#define instantiate_ok( state, test ) do { \ - struct { \ - uint8_t entropy[(test)->entropy_len]; \ - uint8_t nonce[(test)->nonce_len]; \ - } __attribute__ (( packed )) entropy_nonce; \ - \ - assert ( (test)->expected_key_len == (test)->out_len ); \ - assert ( (test)->expected_value_len == (test)->out_len ); \ - memcpy ( entropy_nonce.entropy, (test)->entropy, \ - sizeof ( entropy_nonce.entropy ) ); \ - memcpy ( entropy_nonce.nonce, (test)->nonce, \ - sizeof ( entropy_nonce.nonce ) ); \ - hmac_drbg_instantiate ( (test)->hash, (state), &entropy_nonce, \ - sizeof ( entropy_nonce ), \ - (test)->personal, \ - (test)->personal_len ); \ - ok ( memcmp ( (state)->key, (test)->expected_key, \ - (test)->expected_key_len ) == 0 ); \ - ok ( memcmp ( (state)->value, (test)->expected_value, \ - (test)->expected_value_len ) == 0 ); \ - } while ( 0 ) - -/** An HMAC_DRBG reseed test */ -struct hmac_drbg_test_reseed { - /** Underlying hash algorithm */ - struct digest_algorithm *hash; - /** Output block length */ - size_t out_len; - /** Entropy */ - const void *entropy; - /** Length of entropy */ - size_t entropy_len; - /** Additional input */ - const void *additional; - /** Length of additional_input */ - size_t additional_len; - /** Expected key */ - const void *expected_key; - /** Length of expected key */ - size_t expected_key_len; - /** Expected value */ - const void *expected_value; - /** Length of expected value */ - size_t expected_value_len; -}; - -/** - * Define an HMAC_DRBG reseed test - * - * @v name Test name - * @v hmac_drbg HMAC_DRBG algorithm - * @v entropy_array Entropy input - * @v additional_array Additional input - * @v key Expected key - * @v value Expected value - * @ret test Reseed test - */ -#define HMAC_DRBG_TEST_RESEED( name, hmac_drbg, entropy_array, \ - additional_array, key, value ) \ - static const uint8_t name ## _key [] = key; \ - static const uint8_t name ## _value [] = value; \ - static struct hmac_drbg_test_reseed name = { \ - .hash = HMAC_DRBG_HASH ( hmac_drbg ), \ - .out_len = HMAC_DRBG_OUTLEN_BYTES ( hmac_drbg ), \ - .entropy = entropy_array, \ - .entropy_len = sizeof ( entropy_array ), \ - .additional = additional_array, \ - .additional_len = sizeof ( additional_array ), \ - .expected_key = name ## _key, \ - .expected_key_len = sizeof ( name ## _key ), \ - .expected_value = name ## _value, \ - .expected_value_len = sizeof ( name ## _value ), \ - } - -/** - * Report reseed test result - * - * @v state HMAC_DRBG internal state - * @v test Reseed test - */ -#define reseed_ok( state, test ) do { \ - assert ( (test)->expected_key_len == (test)->out_len ); \ - assert ( (test)->expected_value_len == (test)->out_len ); \ - hmac_drbg_reseed ( (test)->hash, (state), (test)->entropy, \ - (test)->entropy_len, (test)->additional, \ - (test)->additional_len ); \ - ok ( memcmp ( (state)->key, (test)->expected_key, \ - (test)->expected_key_len ) == 0 ); \ - ok ( memcmp ( (state)->value, (test)->expected_value, \ - (test)->expected_value_len ) == 0 ); \ - } while ( 0 ) - -/** An HMAC_DRBG generation test */ -struct hmac_drbg_test_generate { - /** Underlying hash algorithm */ - struct digest_algorithm *hash; - /** Output block length */ - size_t out_len; - /** Additional input */ - const void *additional; - /** Length of additional_input */ - size_t additional_len; - /** Expected key */ - const void *expected_key; - /** Length of expected key */ - size_t expected_key_len; - /** Expected value */ - const void *expected_value; - /** Length of expected value */ - size_t expected_value_len; - /** Expected pseudorandom data */ - const void *expected_data; - /** Length of data */ - size_t expected_data_len; -}; - -/** - * Define an HMAC_DRBG generation test - * - * @v name Test name - * @v hmac_drbg HMAC_DRBG algorithm - * @v additional_array Additional input - * @v key Expected key - * @v value Expected value - * @v data Expected pseudorandom data - * @ret test Generation test - */ -#define HMAC_DRBG_TEST_GENERATE( name, hmac_drbg, additional_array, \ - key, value, data ) \ - static const uint8_t name ## _key [] = key; \ - static const uint8_t name ## _value [] = value; \ - static const uint8_t name ## _data [] = data; \ - static struct hmac_drbg_test_generate name = { \ - .hash = HMAC_DRBG_HASH ( hmac_drbg ), \ - .out_len = HMAC_DRBG_OUTLEN_BYTES ( hmac_drbg ), \ - .additional = additional_array, \ - .additional_len = sizeof ( additional_array ), \ - .expected_key = name ## _key, \ - .expected_key_len = sizeof ( name ## _key ), \ - .expected_value = name ## _value, \ - .expected_value_len = sizeof ( name ## _value ), \ - .expected_data = name ## _data, \ - .expected_data_len = sizeof ( name ## _data ), \ - } - -/** - * Report generation test result - * - * @v state HMAC_DRBG internal state - * @v test Generation test - */ -#define generate_ok( state, test ) do { \ - uint8_t data[ (test)->expected_data_len ]; \ - int rc; \ - \ - assert ( (test)->expected_key_len == (test)->out_len ); \ - assert ( (test)->expected_value_len == (test)->out_len ); \ - rc = hmac_drbg_generate ( (test)->hash, (state), \ - (test)->additional, \ - (test)->additional_len, \ - data, sizeof ( data ) ); \ - ok ( rc == 0 ); \ - ok ( memcmp ( (state)->key, (test)->expected_key, \ - (test)->expected_key_len ) == 0 ); \ - ok ( memcmp ( (state)->value, (test)->expected_value, \ - (test)->expected_value_len ) == 0 ); \ - ok ( memcmp ( data, (test)->expected_data, \ - (test)->expected_data_len ) == 0 ); \ - } while ( 0 ) - -/** An HMAC_DRBG generation failure test */ -struct hmac_drbg_test_generate_fail { - /** Underlying hash algorithm */ - struct digest_algorithm *hash; - /** Additional input */ - const void *additional; - /** Length of additional_input */ - size_t additional_len; - /** Length of requested data */ - size_t requested_len; -}; - -/** - * Define an HMAC_DRBG generation failure test - * - * @v name Test name - * @v hmac_drbg HMAC_DRBG algorithm - * @v additional_array Additional input - * @ret test Generation failure test - */ -#define HMAC_DRBG_TEST_GENERATE_FAIL( name, hmac_drbg, \ - additional_array, len ) \ - static struct hmac_drbg_test_generate_fail name = { \ - .hash = HMAC_DRBG_HASH ( hmac_drbg ), \ - .additional = additional_array, \ - .additional_len = sizeof ( additional_array ), \ - .requested_len = len, \ - } - -/** - * Report generation failure test result - * - * @v state HMAC_DRBG internal state - * @v test Generation failure test - */ -#define generate_fail_ok( state, test ) do { \ - uint8_t data[ (test)->requested_len ]; \ - int rc; \ - \ - rc = hmac_drbg_generate ( (test)->hash, (state), \ - (test)->additional, \ - (test)->additional_len, data, \ - sizeof ( data ) ); \ - ok ( rc != 0 ); \ - } while ( 0 ) - -/** "EntropyInput" */ -static const uint8_t entropy_input[] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36 -}; - -/** "Nonce" for SHA-1 */ -static const uint8_t nonce_sha1[] = { - 0x20, 0x21, 0x22, 0x23, 0x24 -}; - -/** "Nonce" for SHA-256 */ -static const uint8_t nonce_sha256[] = { - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27 -}; - -/** "EntropyInput1 (for Reseed1) */ -static const uint8_t entropy_input_1[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, - 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, - 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6 -}; - -/** "EntropyInput2 (for Reseed2) */ -static const uint8_t entropy_input_2[] = { - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, - 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, - 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6 -}; - -/** "PersonalizationString = " */ -static const uint8_t personalisation_string_empty[] = {}; - -/** "PersonalizationString" */ -static const uint8_t personalisation_string[] = { - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76 -}; - -/** "AdditionalInput = " */ -static const uint8_t additional_input_empty[] = {}; - -/** "AdditionalInput1" */ -static const uint8_t additional_input_1[] = { - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96 -}; - -/** "AdditionalInput2" */ -static const uint8_t additional_input_2[] = { - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, - 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6 -}; - -/** SHA-1 Test 1 : Instantiation */ -HMAC_DRBG_TEST_INSTANTIATE ( sha1_instantiate_1, HMAC_DRBG_SHA1, - entropy_input, nonce_sha1, personalisation_string_empty, - EXPECT ( 0xab, 0x16, 0x0d, 0xd2, 0x1c, 0x30, 0x98, 0x0c, 0xa3, 0xca, - 0x5a, 0x9c, 0x77, 0xb7, 0xbd, 0xf0, 0x50, 0xe6, 0x4e, 0xe9 ), - EXPECT ( 0x61, 0x44, 0x99, 0xea, 0x98, 0x0c, 0xfb, 0x3d, 0xaa, 0x2c, - 0xa8, 0x6d, 0x65, 0xa4, 0x6b, 0xf4, 0x48, 0x8d, 0x8c, 0xc5 ) ); - -/** SHA-1 Test 1.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_1_1, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x7b, 0xb1, 0x80, 0x28, 0xe0, 0x1d, 0x03, 0x42, 0xdf, 0x4f, - 0x54, 0xda, 0x51, 0x22, 0xfa, 0x5f, 0x2c, 0x3a, 0x05, 0xe4 ), - EXPECT ( 0x2f, 0x89, 0x4f, 0x28, 0xcc, 0x2f, 0x53, 0x82, 0x96, 0x40, - 0x64, 0x3a, 0xd1, 0x7b, 0x84, 0xb0, 0xcd, 0x3c, 0x79, 0x79 ), - EXPECT ( 0x5a, 0x7d, 0x3b, 0x44, 0x9f, 0x48, 0x1c, 0xb3, 0x8d, 0xf7, - 0x9a, 0xd2, 0xb1, 0xfc, 0xc0, 0x1e, 0x57, 0xf8, 0x13, 0x5e, - 0x8c, 0x0b, 0x22, 0xcd, 0x06, 0x30, 0xbf, 0xb0, 0x12, 0x7f, - 0xb5, 0x40, 0x8c, 0x8e, 0xfc, 0x17, 0xa9, 0x29, 0x89, 0x6e ) ); - -/** SHA-1 Test 1.2 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_1_2, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x3d, 0x4d, 0x73, 0x77, 0xe9, 0x17, 0x2a, 0xaf, 0xa7, 0x76, - 0xb0, 0xdd, 0xcb, 0x89, 0x42, 0x00, 0x4a, 0x44, 0xb7, 0xfd ), - EXPECT ( 0x1a, 0x26, 0xbd, 0x9b, 0xfc, 0x97, 0x44, 0xbd, 0x29, 0xf6, - 0xae, 0xbe, 0x24, 0x37, 0xe2, 0x09, 0xf1, 0xf7, 0x16, 0x25 ), - EXPECT ( 0x82, 0xcf, 0x77, 0x2e, 0xc3, 0xe8, 0x4b, 0x00, 0xfc, 0x74, - 0xf5, 0xdf, 0x10, 0x4e, 0xfb, 0xfb, 0x24, 0x28, 0x55, 0x4e, - 0x9c, 0xe3, 0x67, 0xd0, 0x3a, 0xea, 0xde, 0x37, 0x82, 0x7f, - 0xa8, 0xe9, 0xcb, 0x6a, 0x08, 0x19, 0x61, 0x15, 0xd9, 0x48 ) ); - -/** SHA-1 Test 2 : Instantiation */ -#define sha1_instantiate_2 sha1_instantiate_1 - -/** SHA-1 Test 2.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_2_1, HMAC_DRBG_SHA1, - additional_input_1, - EXPECT ( 0x3a, 0x06, 0x2e, 0x6b, 0x79, 0xfe, 0x70, 0xdb, 0xff, 0xeb, - 0x3a, 0x2b, 0x6b, 0xe8, 0x03, 0x23, 0xf7, 0xd6, 0x74, 0xc5 ), - EXPECT ( 0xbd, 0x36, 0x31, 0x28, 0xbf, 0x58, 0x0d, 0x7a, 0x54, 0x42, - 0x9d, 0xdd, 0x58, 0xe8, 0x19, 0x3b, 0x98, 0x43, 0xbd, 0x2b ), - EXPECT ( 0xc7, 0xaa, 0xac, 0x58, 0x3c, 0x6e, 0xf6, 0x30, 0x07, 0x14, - 0xc2, 0xcc, 0x5d, 0x06, 0xc1, 0x48, 0xcf, 0xfb, 0x40, 0x44, - 0x9a, 0xd0, 0xbb, 0x26, 0xfa, 0xc0, 0x49, 0x7b, 0x5c, 0x57, - 0xe1, 0x61, 0xe3, 0x66, 0x81, 0xbc, 0xc9, 0x30, 0xce, 0x80 ) ); - -/** SHA-1 Test 2.2 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_2_2, HMAC_DRBG_SHA1, - additional_input_2, - EXPECT ( 0x8a, 0xd7, 0xe3, 0x47, 0x72, 0xb5, 0xfc, 0x7c, 0x3b, 0x3b, - 0x27, 0x62, 0x4f, 0x0b, 0x91, 0x77, 0x6a, 0x8a, 0x71, 0x12 ), - EXPECT ( 0xd7, 0x13, 0x76, 0xa4, 0x6d, 0x76, 0x4b, 0x17, 0xc3, 0xb7, - 0x39, 0x34, 0x7b, 0x38, 0x4e, 0x51, 0x51, 0xe8, 0x7e, 0x88 ), - EXPECT ( 0x6e, 0xbd, 0x2b, 0x7b, 0x5e, 0x0a, 0x2a, 0xd7, 0xa2, 0x4b, - 0x1b, 0xf9, 0xa1, 0xdb, 0xa4, 0x7d, 0x43, 0x27, 0x17, 0x19, - 0xb9, 0xc3, 0x7b, 0x7f, 0xe8, 0x1b, 0xa9, 0x40, 0x45, 0xa1, - 0x4a, 0x7c, 0xb5, 0x14, 0xb4, 0x46, 0x66, 0x6e, 0xa5, 0xa7 ) ); - -/** SHA-1 Test 3 : Instantiation */ -HMAC_DRBG_TEST_INSTANTIATE ( sha1_instantiate_3, HMAC_DRBG_SHA1, - entropy_input, nonce_sha1, personalisation_string, - EXPECT ( 0xb7, 0xd9, 0x66, 0xd7, 0x0d, 0x4e, 0x27, 0xa7, 0xfa, 0x83, - 0x8f, 0x7d, 0x61, 0x12, 0x6c, 0x0e, 0xdc, 0x84, 0x76, 0x1c ), - EXPECT ( 0xda, 0xb2, 0xa7, 0x18, 0x83, 0xf1, 0x00, 0x5c, 0x5d, 0xd0, - 0x39, 0x32, 0x4d, 0x3c, 0x36, 0x4d, 0x6e, 0x18, 0xf9, 0x54 ) ); - -/** SHA-1 Test 3.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_3_1, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x87, 0xd3, 0x82, 0x8b, 0xe0, 0x3a, 0x80, 0x7d, 0xd3, 0x40, - 0x29, 0x41, 0xbe, 0xd6, 0xde, 0x98, 0x6e, 0xe7, 0xa2, 0x86 ), - EXPECT ( 0x6a, 0xe1, 0xd0, 0x08, 0x6f, 0x53, 0xb1, 0xb7, 0x63, 0xa4, - 0x51, 0x5b, 0x19, 0x06, 0xfe, 0xe4, 0x76, 0x61, 0xfd, 0x47 ), - EXPECT ( 0xb3, 0xbd, 0x05, 0x24, 0x6c, 0xba, 0x12, 0xa6, 0x47, 0x35, - 0xa4, 0xe3, 0xfd, 0xe5, 0x99, 0xbc, 0x1b, 0xe3, 0x0f, 0x43, - 0x9b, 0xd0, 0x60, 0x20, 0x8e, 0xea, 0x7d, 0x71, 0xf9, 0xd1, - 0x23, 0xdf, 0x47, 0xb3, 0xce, 0x06, 0x9d, 0x98, 0xed, 0xe6 ) ); - -/** SHA-1 Test 3.2 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_3_2, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x26, 0xab, 0xbf, 0x54, 0xb2, 0x8b, 0x93, 0xff, 0x90, 0x08, - 0x67, 0x0e, 0xbf, 0xee, 0x86, 0xcd, 0xd7, 0x22, 0x8e, 0xd5 ), - EXPECT ( 0xe9, 0x25, 0x47, 0x29, 0xe0, 0x02, 0x04, 0xa1, 0xb6, 0xc0, - 0x21, 0x58, 0xa6, 0xc7, 0x27, 0x86, 0x47, 0x14, 0xf1, 0xf7 ), - EXPECT ( 0xb5, 0xda, 0xda, 0x38, 0x0e, 0x28, 0x72, 0xdf, 0x93, 0x5b, - 0xca, 0x55, 0xb8, 0x82, 0xc8, 0xc9, 0x37, 0x69, 0x02, 0xab, - 0x63, 0x97, 0x65, 0x47, 0x2b, 0x71, 0xac, 0xeb, 0xe2, 0xea, - 0x8b, 0x1b, 0x6b, 0x49, 0x62, 0x9c, 0xb6, 0x73, 0x17, 0xe0 ) ); - -/** SHA-1 Test 4 : Instantiation */ -#define sha1_instantiate_4 sha1_instantiate_3 - -/** SHA-1 Test 4.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_4_1, HMAC_DRBG_SHA1, - additional_input_1, - EXPECT ( 0x17, 0xa5, 0xd7, 0x9f, 0x07, 0x67, 0x87, 0x6f, 0x3a, 0x45, - 0xe0, 0xc9, 0xc3, 0x3e, 0xc8, 0x8b, 0x03, 0xce, 0xea, 0x13 ), - EXPECT ( 0x4d, 0x2f, 0x3b, 0xc7, 0x77, 0x50, 0x5c, 0x45, 0xf7, 0xe1, - 0x7d, 0xcd, 0x3d, 0x86, 0xbf, 0x37, 0x9c, 0xb6, 0x02, 0x5e ), - EXPECT ( 0x1f, 0x8f, 0xec, 0x7b, 0xc7, 0xcf, 0xa9, 0xa8, 0x80, 0x34, - 0x5d, 0x28, 0x0b, 0x13, 0xc6, 0x32, 0xb8, 0x52, 0x77, 0x0a, - 0x6d, 0xfc, 0x30, 0x2e, 0xad, 0x4c, 0xe3, 0xf5, 0x54, 0xc7, - 0x9b, 0x0d, 0x44, 0x23, 0x9e, 0xba, 0x56, 0xa7, 0xea, 0x2d ) ); - -/** SHA-1 Test 4.2 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_4_2, HMAC_DRBG_SHA1, - additional_input_2, - EXPECT ( 0x07, 0x9b, 0x57, 0xd9, 0x40, 0x6e, 0x11, 0xc2, 0xf8, 0x7c, - 0x8c, 0x82, 0x8c, 0x8c, 0x6f, 0xa7, 0x6e, 0x40, 0xea, 0x01 ), - EXPECT ( 0xa6, 0x54, 0xfe, 0x72, 0xf8, 0xa7, 0x7b, 0xb8, 0xf0, 0x3d, - 0xff, 0x07, 0xc7, 0x9a, 0x51, 0x53, 0x00, 0x9e, 0xdd, 0xda ), - EXPECT ( 0xaf, 0x97, 0xcd, 0xe1, 0xe8, 0xab, 0x32, 0x2a, 0x2e, 0xac, - 0xa8, 0xe6, 0xf4, 0xe5, 0xbf, 0x78, 0xa1, 0x1b, 0xde, 0xf7, - 0xdc, 0x91, 0x21, 0x5d, 0x44, 0xb1, 0x07, 0xb4, 0xd5, 0xa7, - 0x79, 0x01, 0x59, 0x25, 0x09, 0x76, 0x52, 0x80, 0xf9, 0x69 ) ); - -/** SHA-1 Test 5 : Instantiation */ -#define sha1_instantiate_5 sha1_instantiate_1 - -/** SHA-1 Test 5.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha1_generate_fail_5_1, HMAC_DRBG_SHA1, - additional_input_empty, ( 320 / 8 ) ); - -/** SHA-1 Test 5.2 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha1_reseed_5_2, HMAC_DRBG_SHA1, - entropy_input_1, additional_input_empty, - EXPECT ( 0xcd, 0x4c, 0xab, 0x38, 0xc8, 0xad, 0x65, 0x71, 0x22, 0xbf, - 0x5d, 0x3d, 0x00, 0xd0, 0xac, 0x9b, 0x13, 0xd6, 0x29, 0xbb ), - EXPECT ( 0xf6, 0x60, 0xe2, 0x3e, 0x91, 0x00, 0x6b, 0x62, 0xc6, 0x54, - 0x3a, 0xb1, 0x34, 0x4d, 0x23, 0xa3, 0x1a, 0xb4, 0xcf, 0x2c ) ); - -/** SHA-1 Test 5.3 : Retried first call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_5_3, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x58, 0x7f, 0xd8, 0x21, 0xef, 0x6c, 0x9d, 0xa4, 0xa8, 0x3c, - 0x19, 0x21, 0x1f, 0x10, 0x56, 0xca, 0xcd, 0x23, 0xfc, 0x1a ), - EXPECT ( 0x84, 0x8f, 0xd1, 0x4c, 0x13, 0xb7, 0xea, 0x93, 0x72, 0x0c, - 0xcf, 0xde, 0x71, 0xf2, 0xf6, 0x44, 0x39, 0xdb, 0x79, 0x5d ), - EXPECT ( 0xfe, 0xc4, 0x59, 0x7f, 0x06, 0xa3, 0xa8, 0xcc, 0x85, 0x29, - 0xd5, 0x95, 0x57, 0xb9, 0xe6, 0x61, 0x05, 0x38, 0x09, 0xc0, - 0xbc, 0x0e, 0xfc, 0x28, 0x2a, 0xbd, 0x87, 0x60, 0x5c, 0xc9, - 0x0c, 0xba, 0x9b, 0x86, 0x33, 0xdc, 0xb1, 0xda, 0xe0, 0x2e ) ); - -/** SHA-1 Test 5.4 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha1_generate_fail_5_4, HMAC_DRBG_SHA1, - additional_input_empty, ( 320 / 8 ) ); - -/** SHA-1 Test 5.5 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha1_reseed_5_5, HMAC_DRBG_SHA1, - entropy_input_2, additional_input_empty, - EXPECT ( 0xdb, 0xa1, 0xcf, 0xf4, 0x87, 0x95, 0x46, 0xa0, 0x38, 0xa5, - 0x59, 0xb2, 0xa2, 0x4d, 0xf2, 0xc0, 0x30, 0x08, 0x9a, 0x41 ), - EXPECT ( 0x2f, 0x88, 0x3c, 0x46, 0x48, 0xe1, 0x31, 0xe8, 0x6d, 0xdf, - 0x9d, 0xca, 0x0d, 0x74, 0xf3, 0x0c, 0xa1, 0xce, 0x6e, 0xfb ) ); - -/** SHA-1 Test 5.6 : Retried second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_5_6, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0xf9, 0x39, 0xa5, 0xab, 0x08, 0xa3, 0x9f, 0x23, 0x10, 0x70, - 0xb0, 0xd4, 0xc9, 0x6d, 0xc2, 0x37, 0x90, 0xba, 0x01, 0x53 ), - EXPECT ( 0xce, 0x6d, 0x08, 0xb4, 0xae, 0x2c, 0xe3, 0x83, 0xfd, 0xab, - 0xb0, 0x1e, 0xaa, 0xfc, 0x9c, 0x8e, 0x76, 0xa0, 0xd4, 0x72 ), - EXPECT ( 0x84, 0xad, 0xd5, 0xe2, 0xd2, 0x04, 0x1c, 0x01, 0x72, 0x3a, - 0x4d, 0xe4, 0x33, 0x5b, 0x13, 0xef, 0xdf, 0x16, 0xb0, 0xe5, - 0x1a, 0x0a, 0xd3, 0x9b, 0xd1, 0x5e, 0x86, 0x2e, 0x64, 0x4f, - 0x31, 0xe4, 0xa2, 0xd7, 0xd8, 0x43, 0xe5, 0x7c, 0x59, 0x68 ) ); - -/** SHA-1 Test 6 : Instantiate */ -#define sha1_instantiate_6 sha1_instantiate_1 - -/** SHA-1 Test 6.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha1_generate_fail_6_1, HMAC_DRBG_SHA1, - additional_input_1, ( 320 / 8 ) ); - -/** SHA-1 Test 6.2 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha1_reseed_6_2, HMAC_DRBG_SHA1, - entropy_input_1, additional_input_1, - EXPECT ( 0x52, 0x28, 0xa4, 0xb6, 0xa4, 0x46, 0x92, 0x90, 0x5e, 0xc0, - 0x44, 0xbf, 0xf0, 0xbb, 0x4e, 0x25, 0xa3, 0x87, 0xca, 0xc1 ), - EXPECT ( 0x24, 0x77, 0x32, 0xd0, 0x4c, 0xb8, 0x4e, 0xd4, 0x1a, 0xdd, - 0x95, 0xa4, 0xb7, 0x8b, 0x50, 0xcd, 0x9b, 0x3d, 0x3f, 0x32 ) ); - -/** SHA-1 Test 6.3 : Retried first call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_6_3, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0xab, 0x3d, 0xd4, 0x89, 0x5b, 0xc8, 0xcd, 0x22, 0x71, 0xde, - 0xba, 0x5f, 0x3c, 0x13, 0x63, 0x52, 0x6b, 0x8b, 0x74, 0x52 ), - EXPECT ( 0xa8, 0x66, 0xc5, 0xef, 0xf2, 0xaf, 0x04, 0x2b, 0x11, 0x86, - 0x44, 0x94, 0x45, 0x23, 0x7f, 0x9c, 0x02, 0x44, 0x98, 0x64 ), - EXPECT ( 0xa1, 0xba, 0x8f, 0xa5, 0x8b, 0xb5, 0x01, 0x3f, 0x43, 0xf7, - 0xb6, 0xed, 0x52, 0xb4, 0x53, 0x9f, 0xa1, 0x6d, 0xc7, 0x79, - 0x57, 0xae, 0xe8, 0x15, 0xb9, 0xc0, 0x70, 0x04, 0xc7, 0xe9, - 0x92, 0xeb, 0x8c, 0x7e, 0x59, 0x19, 0x64, 0xaf, 0xee, 0xa2 ) ); - -/** SHA-1 Test 6.4 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha1_generate_fail_6_4, HMAC_DRBG_SHA1, - additional_input_2, ( 320 / 8 ) ); - -/** SHA-1 Test 6.5 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha1_reseed_6_5, HMAC_DRBG_SHA1, - entropy_input_2, additional_input_2, - EXPECT ( 0xe5, 0x73, 0x9f, 0x9c, 0xf7, 0xff, 0x43, 0x84, 0xd1, 0x27, - 0x3e, 0x02, 0x6b, 0x45, 0x31, 0x21, 0x36, 0x49, 0x4f, 0x41 ), - EXPECT ( 0x30, 0xc3, 0x43, 0x05, 0xc2, 0xc6, 0x48, 0xb0, 0x57, 0xa6, - 0x40, 0x22, 0x1b, 0x5c, 0x56, 0x57, 0x26, 0xcd, 0x32, 0xb2 ) ); - -/** SHA-1 Test 6.6 : Retried second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_6_6, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x61, 0x91, 0xca, 0x9b, 0xf0, 0x00, 0xd1, 0x0a, 0x71, 0x69, - 0x0a, 0xc1, 0x0e, 0x09, 0xff, 0xc8, 0x92, 0xab, 0xde, 0x9a ), - EXPECT ( 0x1e, 0xc0, 0x49, 0x0f, 0xa0, 0xb7, 0x65, 0x52, 0x7e, 0x5e, - 0xa1, 0x8b, 0x53, 0x22, 0xb2, 0x8b, 0xdd, 0x0e, 0x7b, 0xc0 ), - EXPECT ( 0x84, 0x26, 0x4a, 0x73, 0xa8, 0x18, 0xc9, 0x5c, 0x2f, 0x42, - 0x4b, 0x37, 0xd3, 0xcc, 0x99, 0x0b, 0x04, 0x6f, 0xb5, 0x0c, - 0x2d, 0xc6, 0x4a, 0x16, 0x42, 0x11, 0x88, 0x9a, 0x01, 0x0f, - 0x24, 0x71, 0xa0, 0x91, 0x2f, 0xfe, 0xa1, 0xbf, 0x01, 0x95 ) ); - -/** SHA-1 Test 7 : Instantiation */ -#define sha1_instantiate_7 sha1_instantiate_3 - -/** SHA-1 Test 7.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha1_generate_fail_7_1, HMAC_DRBG_SHA1, - additional_input_empty, ( 320 / 8 ) ); - -/** SHA-1 Test 7.2 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha1_reseed_7_2, HMAC_DRBG_SHA1, - entropy_input_1, additional_input_empty, - EXPECT ( 0xb9, 0x25, 0x4d, 0x8a, 0xac, 0xba, 0x43, 0xfb, 0xda, 0xe6, - 0x39, 0x4f, 0x2b, 0x3a, 0xfc, 0x5d, 0x58, 0x08, 0x00, 0xbf ), - EXPECT ( 0x28, 0x40, 0x3b, 0x60, 0x36, 0x38, 0xd0, 0x7d, 0x79, 0x66, - 0x66, 0x1e, 0xf6, 0x7b, 0x9d, 0x39, 0x05, 0xf4, 0x6d, 0xb9 ) ); - -/** SHA-1 Test 7.3 : Retried first call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_7_3, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x64, 0xfe, 0x07, 0x4a, 0x6e, 0x77, 0x97, 0xd1, 0xa4, 0x35, - 0xda, 0x89, 0x64, 0x48, 0x4d, 0x6c, 0xf8, 0xbd, 0xc0, 0x1b ), - EXPECT ( 0x43, 0xe0, 0xc0, 0x52, 0x15, 0x86, 0xe9, 0x47, 0x3b, 0x06, - 0x0d, 0x87, 0xd0, 0x8a, 0x23, 0x25, 0xfa, 0xe1, 0x49, 0xd1 ), - EXPECT ( 0x6c, 0x37, 0xfd, 0xd7, 0x29, 0xaa, 0x40, 0xf8, 0x0b, 0xc6, - 0xab, 0x08, 0xca, 0x7c, 0xc6, 0x49, 0x79, 0x4f, 0x69, 0x98, - 0xb5, 0x70, 0x81, 0xe4, 0x22, 0x0f, 0x22, 0xc5, 0xc2, 0x83, - 0xe2, 0xc9, 0x1b, 0x8e, 0x30, 0x5a, 0xb8, 0x69, 0xc6, 0x25 ) ); - -/** SHA-1 Test 7.4 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha1_generate_fail_7_4, HMAC_DRBG_SHA1, - additional_input_empty, ( 320 / 8 ) ); - -/** SHA-1 Test 7.5 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha1_reseed_7_5, HMAC_DRBG_SHA1, - entropy_input_2, additional_input_empty, - EXPECT ( 0x02, 0xbc, 0x57, 0x7f, 0xd1, 0x0e, 0xf7, 0x19, 0x3c, 0x1d, - 0xb0, 0x98, 0xbd, 0x5b, 0x75, 0xc7, 0xc4, 0xb6, 0x79, 0x59 ), - EXPECT ( 0xbc, 0xbd, 0xf0, 0x52, 0xe0, 0xe0, 0x2a, 0xe8, 0x9a, 0x77, - 0x67, 0x94, 0x3f, 0x98, 0x65, 0xb8, 0xb7, 0x22, 0x90, 0x2d ) ); - -/** SHA-1 Test 7.6 : Retried second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_7_6, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x1a, 0xa4, 0x24, 0x1c, 0x69, 0x5e, 0x29, 0xc0, 0xa5, 0x9a, - 0xd1, 0x8a, 0x60, 0x70, 0xe3, 0x38, 0xa5, 0x48, 0xbe, 0x92 ), - EXPECT ( 0x03, 0x47, 0x35, 0x9b, 0xc9, 0xc7, 0xf8, 0x8c, 0xc8, 0x33, - 0x0d, 0x4f, 0x59, 0xfb, 0xc7, 0x70, 0xb0, 0xb7, 0x7b, 0x03 ), - EXPECT ( 0xca, 0xf5, 0x7d, 0xcf, 0xea, 0x39, 0x3b, 0x92, 0x36, 0xbf, - 0x69, 0x1f, 0xa4, 0x56, 0xfe, 0xa7, 0xfd, 0xf1, 0xdf, 0x83, - 0x61, 0x48, 0x2c, 0xa5, 0x4d, 0x5f, 0xa7, 0x23, 0xf4, 0xc8, - 0x8b, 0x4f, 0xa5, 0x04, 0xbf, 0x03, 0x27, 0x7f, 0xa7, 0x83 ) ); - -/** SHA-1 Test 8 : Instantiate */ -#define sha1_instantiate_8 sha1_instantiate_3 - -/** SHA-1 Test 8.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha1_generate_fail_8_1, HMAC_DRBG_SHA1, - additional_input_1, ( 320 / 8 ) ); - -/** SHA-1 Test 8.2 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha1_reseed_8_2, HMAC_DRBG_SHA1, - entropy_input_1, additional_input_1, - EXPECT ( 0xc0, 0x95, 0x48, 0xc0, 0xd3, 0xc8, 0x61, 0xd7, 0x40, 0xf2, - 0x83, 0x7d, 0x72, 0xb5, 0x07, 0x23, 0x5c, 0x26, 0xdb, 0x82 ), - EXPECT ( 0x17, 0x4b, 0x3f, 0x84, 0xc3, 0x53, 0x1f, 0x7c, 0x0a, 0x2e, - 0x54, 0x21, 0x23, 0x4e, 0xa1, 0x6b, 0x70, 0x8d, 0xdf, 0x0d ) ); - -/** SHA-1 Test 8.3 : Retried first call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_8_3, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0x60, 0x3f, 0x09, 0x49, 0x27, 0x9c, 0x70, 0xe8, 0xc6, 0x6c, - 0x0f, 0x56, 0x37, 0xc0, 0xf3, 0x75, 0x60, 0x07, 0xe5, 0xac ), - EXPECT ( 0xf2, 0xb3, 0x3b, 0x21, 0x15, 0x1f, 0xaf, 0x61, 0x20, 0x01, - 0x83, 0x10, 0xf4, 0x4e, 0x4c, 0xd0, 0xbf, 0xe3, 0x68, 0xea ), - EXPECT ( 0xbd, 0x07, 0xc2, 0x5c, 0xfd, 0x7c, 0x5e, 0x3a, 0x4e, 0xaa, - 0x6e, 0x2e, 0xdc, 0x5a, 0xb7, 0xea, 0x49, 0x42, 0xa0, 0x91, - 0x34, 0x71, 0xfd, 0xa5, 0x5c, 0x6d, 0xdd, 0x2c, 0x03, 0xef, - 0xa3, 0xb9, 0x64, 0x3a, 0xb3, 0xbb, 0x22, 0xf6, 0xc9, 0xf2 ) ); - -/** SHA-1 Test 8.4 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha1_generate_fail_8_4, HMAC_DRBG_SHA1, - additional_input_2, ( 320 / 8 ) ); - -/** SHA-1 Test 8.5 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha1_reseed_8_5, HMAC_DRBG_SHA1, - entropy_input_2, additional_input_2, - EXPECT ( 0x89, 0x42, 0xa5, 0x4f, 0x34, 0x9e, 0x28, 0x1b, 0x84, 0xaa, - 0x46, 0x95, 0x87, 0xfb, 0xdd, 0xaf, 0x9d, 0x11, 0x40, 0x82 ), - EXPECT ( 0x07, 0x73, 0x0e, 0x3c, 0xbf, 0xfd, 0x3c, 0xaf, 0xd7, 0xa8, - 0xaa, 0xe2, 0xbf, 0x01, 0xd6, 0x01, 0x43, 0x01, 0xe2, 0x4d ) ); - -/** SHA-1 Test 8.6 : Retried second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha1_generate_8_6, HMAC_DRBG_SHA1, - additional_input_empty, - EXPECT ( 0xbd, 0xe1, 0xb4, 0x6c, 0xdc, 0x54, 0x13, 0xb3, 0xd9, 0xf7, - 0x35, 0xac, 0xdb, 0x80, 0xb1, 0x3c, 0x57, 0xbf, 0xe4, 0x73 ), - EXPECT ( 0x72, 0x5a, 0x3c, 0x78, 0x20, 0xde, 0x1a, 0x06, 0xd0, 0x95, - 0x81, 0x9c, 0xcf, 0x6f, 0x2c, 0x9b, 0x3a, 0x67, 0xf2, 0xce ), - EXPECT ( 0xd1, 0xa9, 0xc1, 0xa2, 0x2c, 0x84, 0xfc, 0x23, 0xff, 0x22, - 0x27, 0xef, 0x98, 0xec, 0x8b, 0xa9, 0xdf, 0x2a, 0x20, 0x9b, - 0xa1, 0xdb, 0x09, 0x80, 0x9f, 0x57, 0xbf, 0xea, 0xe5, 0xb3, - 0xe5, 0xf1, 0x46, 0xc7, 0x5f, 0x2d, 0x8d, 0xbb, 0x5e, 0x4a ) ); - -/** SHA-256 Test 1 : Instantiation */ -HMAC_DRBG_TEST_INSTANTIATE ( sha256_instantiate_1, HMAC_DRBG_SHA256, - entropy_input, nonce_sha256, personalisation_string_empty, - EXPECT ( 0x3d, 0xda, 0x54, 0x3e, 0x7e, 0xef, 0x14, 0xf9, 0x36, 0x23, - 0x7b, 0xe6, 0x5d, 0x09, 0x4b, 0x4d, 0xdc, 0x96, 0x9c, 0x0b, - 0x2b, 0x5e, 0xaf, 0xb5, 0xd8, 0x05, 0xe8, 0x6c, 0xfa, 0x64, - 0xd7, 0x41 ), - EXPECT ( 0x2d, 0x02, 0xc2, 0xf8, 0x22, 0x51, 0x7d, 0x54, 0xb8, 0x17, - 0x27, 0x9a, 0x59, 0x49, 0x1c, 0x41, 0xa1, 0x98, 0x9b, 0x3e, - 0x38, 0x2d, 0xeb, 0xe8, 0x0d, 0x2c, 0x7f, 0x66, 0x0f, 0x44, - 0x76, 0xc4 ) ); - -/** SHA-256 Test 1.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_1_1, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0xdd, 0x30, 0x95, 0x79, 0x35, 0x38, 0x02, 0xcc, 0xdd, 0x43, - 0x99, 0xc3, 0x69, 0x1c, 0x9d, 0xd9, 0x09, 0xdd, 0x3b, 0x2d, - 0xd0, 0x03, 0xcc, 0xd5, 0x9d, 0x6f, 0x08, 0xd8, 0x5f, 0x2e, - 0x35, 0x09 ), - EXPECT ( 0xa1, 0xc2, 0x0f, 0xf2, 0x70, 0xa3, 0x9d, 0x2b, 0x8d, 0x03, - 0xd6, 0x59, 0xb9, 0xdd, 0xd0, 0x11, 0xc2, 0xcc, 0xdf, 0x24, - 0x48, 0x55, 0x7e, 0xf6, 0xa1, 0xa9, 0x15, 0xd1, 0x89, 0x40, - 0xa6, 0x88 ), - EXPECT ( 0xd6, 0x7b, 0x8c, 0x17, 0x34, 0xf4, 0x6f, 0xa3, 0xf7, 0x63, - 0xcf, 0x57, 0xc6, 0xf9, 0xf4, 0xf2, 0xdc, 0x10, 0x89, 0xbd, - 0x8b, 0xc1, 0xf6, 0xf0, 0x23, 0x95, 0x0b, 0xfc, 0x56, 0x17, - 0x63, 0x52, 0x08, 0xc8, 0x50, 0x12, 0x38, 0xad, 0x7a, 0x44, - 0x00, 0xde, 0xfe, 0xe4, 0x6c, 0x64, 0x0b, 0x61, 0xaf, 0x77, - 0xc2, 0xd1, 0xa3, 0xbf, 0xaa, 0x90, 0xed, 0xe5, 0xd2, 0x07, - 0x40, 0x6e, 0x54, 0x03 ) ); - -/** SHA-256 Test 1.2 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_1_2, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0x5c, 0xd5, 0xe5, 0x0a, 0x3e, 0x44, 0x8a, 0x07, 0xc3, 0xd2, - 0xf2, 0xa3, 0xf9, 0xde, 0xbc, 0xc0, 0x46, 0x5f, 0x9c, 0xf1, - 0x1c, 0xa1, 0x36, 0xe9, 0xb5, 0x04, 0xb4, 0xd3, 0x1c, 0x7f, - 0xf1, 0xb8 ), - EXPECT ( 0x33, 0xb3, 0x09, 0xf2, 0xff, 0x01, 0xce, 0x10, 0x4b, 0x44, - 0x29, 0xb6, 0x75, 0xfa, 0xfa, 0x19, 0x01, 0x1e, 0x34, 0x8b, - 0x28, 0x12, 0x71, 0x5a, 0x76, 0x37, 0xf6, 0xa6, 0xe6, 0x3b, - 0x5d, 0x57 ), - EXPECT ( 0x8f, 0xda, 0xec, 0x20, 0xf8, 0xb4, 0x21, 0x40, 0x70, 0x59, - 0xe3, 0x58, 0x89, 0x20, 0xda, 0x7e, 0xda, 0x9d, 0xce, 0x3c, - 0xf8, 0x27, 0x4d, 0xfa, 0x1c, 0x59, 0xc1, 0x08, 0xc1, 0xd0, - 0xaa, 0x9b, 0x0f, 0xa3, 0x8d, 0xa5, 0xc7, 0x92, 0x03, 0x7c, - 0x4d, 0x33, 0xcd, 0x07, 0x0c, 0xa7, 0xcd, 0x0c, 0x56, 0x08, - 0xdb, 0xa8, 0xb8, 0x85, 0x65, 0x46, 0x39, 0xde, 0x21, 0x87, - 0xb7, 0x4c, 0xb2, 0x63 ) ); - -/** SHA-256 Test 2 : Instantiation */ -#define sha256_instantiate_2 sha256_instantiate_1 - -/** SHA-256 Test 2.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_2_1, HMAC_DRBG_SHA256, - additional_input_1, - EXPECT ( 0x79, 0x1d, 0x31, 0x44, 0xb3, 0x02, 0xad, 0x6c, 0xe4, 0x32, - 0x41, 0x34, 0x42, 0x10, 0xaa, 0xd0, 0xd3, 0x99, 0xed, 0xb7, - 0xb5, 0x90, 0x6f, 0xb2, 0x51, 0xdb, 0x1c, 0xb6, 0x00, 0x04, - 0xea, 0x51 ), - EXPECT ( 0x58, 0xfd, 0x96, 0x5f, 0x4f, 0x99, 0x89, 0x3c, 0x17, 0xe6, - 0xa3, 0x3c, 0xb8, 0xe9, 0x04, 0x15, 0xb5, 0x16, 0xd0, 0x06, - 0x14, 0xa4, 0x49, 0xd4, 0x06, 0xe0, 0x3c, 0x68, 0x5b, 0xd8, - 0x59, 0xbd ), - EXPECT ( 0x41, 0x87, 0x87, 0x35, 0x81, 0x35, 0x41, 0x9b, 0x93, 0x81, - 0x33, 0x53, 0x53, 0x06, 0x17, 0x6a, 0xfb, 0x25, 0x1c, 0xdd, - 0x2b, 0xa3, 0x79, 0x88, 0x59, 0xb5, 0x66, 0xa0, 0x5c, 0xfb, - 0x1d, 0x68, 0x0e, 0xa9, 0x25, 0x85, 0x6d, 0x5b, 0x84, 0xd5, - 0x6a, 0xda, 0xe8, 0x70, 0x45, 0xa6, 0xba, 0x28, 0xd2, 0xc9, - 0x08, 0xab, 0x75, 0xb7, 0xcc, 0x41, 0x43, 0x1f, 0xac, 0x59, - 0xf3, 0x89, 0x18, 0xa3 ) ); - -/** SHA-256 Test 2.2 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_2_2, HMAC_DRBG_SHA256, - additional_input_2, - EXPECT ( 0xe7, 0x45, 0x8f, 0xb4, 0x4a, 0x36, 0x9a, 0x65, 0x3f, 0x2f, - 0x8f, 0x57, 0x7b, 0xf9, 0x75, 0xc4, 0xb3, 0x62, 0xc4, 0xfe, - 0x61, 0x8b, 0x2f, 0x1f, 0xf6, 0x76, 0x9b, 0x13, 0xc9, 0x4d, - 0xec, 0xf4 ), - EXPECT ( 0x19, 0x33, 0x4b, 0x8c, 0x31, 0xb7, 0x49, 0x32, 0xdd, 0xd7, - 0xb2, 0xa4, 0x68, 0xf6, 0x43, 0x6d, 0xf9, 0x2e, 0x10, 0x0d, - 0x39, 0xd3, 0xac, 0xb3, 0x68, 0xc7, 0x02, 0x9c, 0xb8, 0x83, - 0xec, 0x89 ), - EXPECT ( 0x7c, 0x06, 0x7b, 0xdd, 0xca, 0x81, 0x72, 0x48, 0x23, 0xd6, - 0x4c, 0x69, 0x82, 0x92, 0x85, 0xbd, 0xbf, 0xf5, 0x37, 0x71, - 0x61, 0x02, 0xc1, 0x88, 0x2e, 0x20, 0x22, 0x50, 0xe0, 0xfa, - 0x5e, 0xf3, 0xa3, 0x84, 0xcd, 0x34, 0xa2, 0x0f, 0xfd, 0x1f, - 0xbc, 0x91, 0xe0, 0xc5, 0x32, 0xa8, 0xa4, 0x21, 0xbc, 0x4a, - 0xfe, 0x3c, 0xd4, 0x7f, 0x22, 0x32, 0x3e, 0xb4, 0xba, 0xe1, - 0xa0, 0x07, 0x89, 0x81 ) ); - -/** SHA-256 Test 3 : Instantiation */ -HMAC_DRBG_TEST_INSTANTIATE ( sha256_instantiate_3, HMAC_DRBG_SHA256, - entropy_input, nonce_sha256, personalisation_string, - EXPECT ( 0x65, 0x67, 0x3c, 0x34, 0x8e, 0x51, 0xcf, 0xac, 0xc4, 0x10, - 0xbd, 0x20, 0x02, 0x49, 0xa5, 0x9a, 0x9d, 0x6b, 0xae, 0x77, - 0x69, 0x04, 0x27, 0x1b, 0xb1, 0xf7, 0x18, 0xda, 0x1d, 0x18, - 0x20, 0x42 ), - EXPECT ( 0xe0, 0xf9, 0x1a, 0xc9, 0x96, 0x30, 0xee, 0xe6, 0x7c, 0xf8, - 0x30, 0xcf, 0xd5, 0x04, 0x4f, 0xeb, 0xf5, 0x5c, 0x0c, 0x11, - 0x50, 0x07, 0x99, 0x7a, 0xda, 0x11, 0x29, 0x6f, 0xc4, 0x16, - 0x4a, 0x9a ) ); - -/** SHA-256 Test 3.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_3_1, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0xf0, 0xb2, 0xf2, 0x42, 0xca, 0xd9, 0x92, 0xa7, 0x24, 0xf7, - 0xe5, 0x59, 0x1d, 0x2f, 0x3b, 0x0c, 0x21, 0x57, 0xae, 0x70, - 0xd5, 0x32, 0x78, 0x99, 0x40, 0xf1, 0x64, 0x45, 0x9b, 0x00, - 0xc7, 0x49 ), - EXPECT ( 0x1a, 0x03, 0xf9, 0x1c, 0x51, 0x20, 0xba, 0xca, 0x2b, 0xf6, - 0xc6, 0x4d, 0xd7, 0x3a, 0xb1, 0x1d, 0xf6, 0xfd, 0x3f, 0xf1, - 0xac, 0x3b, 0x57, 0x20, 0xa3, 0xf7, 0xfb, 0xe3, 0x9e, 0x7e, - 0x7f, 0xe9 ), - EXPECT ( 0x0d, 0xd9, 0xc8, 0x55, 0x89, 0xf3, 0x57, 0xc3, 0x89, 0xd6, - 0xaf, 0x8d, 0xe9, 0xd7, 0x34, 0xa9, 0x17, 0xc7, 0x71, 0xef, - 0x2d, 0x88, 0x16, 0xb9, 0x82, 0x59, 0x6e, 0xd1, 0x2d, 0xb4, - 0x5d, 0x73, 0x4a, 0x62, 0x68, 0x08, 0x35, 0xc0, 0x2f, 0xda, - 0x66, 0xb0, 0x8e, 0x1a, 0x36, 0x9a, 0xe2, 0x18, 0xf2, 0x6d, - 0x52, 0x10, 0xad, 0x56, 0x42, 0x48, 0x87, 0x2d, 0x7a, 0x28, - 0x78, 0x41, 0x59, 0xc3 ) ); - -/** SHA-256 Test 3.2 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_3_2, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0x5c, 0x0d, 0xec, 0x09, 0x37, 0x08, 0xc1, 0x7c, 0xa7, 0x6b, - 0x57, 0xc0, 0xcb, 0x60, 0xcf, 0x88, 0x9d, 0xcc, 0x47, 0xad, - 0x10, 0xbd, 0x64, 0xbc, 0x6a, 0x14, 0xb2, 0x3f, 0x20, 0x26, - 0x07, 0x8a ), - EXPECT ( 0x45, 0x67, 0x52, 0xa5, 0x11, 0xb8, 0x48, 0xbd, 0x05, 0xf1, - 0x81, 0x9b, 0x9f, 0x6b, 0x15, 0x42, 0xc7, 0xd5, 0xec, 0xf9, - 0x32, 0x73, 0x39, 0x26, 0x7a, 0x0c, 0x77, 0x23, 0x5b, 0x87, - 0xdc, 0x5a ), - EXPECT ( 0x46, 0xb4, 0xf4, 0x75, 0x6a, 0xe7, 0x15, 0xe0, 0xe5, 0x16, - 0x81, 0xab, 0x29, 0x32, 0xde, 0x15, 0x23, 0xbe, 0x5d, 0x13, - 0xba, 0xf0, 0xf4, 0x58, 0x8b, 0x11, 0xfe, 0x37, 0x2f, 0xda, - 0x37, 0xab, 0xe3, 0x68, 0x31, 0x73, 0x41, 0xbc, 0x8b, 0xa9, - 0x1f, 0xc5, 0xd8, 0x5b, 0x7f, 0xb8, 0xca, 0x8f, 0xbc, 0x30, - 0x9a, 0x75, 0x8f, 0xd6, 0xfc, 0xa9, 0xdf, 0x43, 0xc7, 0x66, - 0x0b, 0x22, 0x13, 0x22 ) ); - -/** SHA-256 Test 4 : Instantiation */ -#define sha256_instantiate_4 sha256_instantiate_3 - -/** SHA-256 Test 4.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_4_1, HMAC_DRBG_SHA256, - additional_input_1, - EXPECT ( 0x57, 0x2c, 0x03, 0x74, 0xc1, 0xa1, 0x01, 0x25, 0xbf, 0xa6, - 0xae, 0xcd, 0x7c, 0xeb, 0xfe, 0x32, 0xf7, 0x52, 0xc3, 0xfb, - 0x31, 0x67, 0x31, 0xb7, 0xcf, 0xdb, 0xde, 0xc2, 0x63, 0x56, - 0x93, 0x2b ), - EXPECT ( 0xd6, 0x8b, 0xf0, 0x41, 0xf3, 0xeb, 0x50, 0x88, 0x08, 0x8d, - 0x8b, 0x8e, 0x71, 0x2c, 0x36, 0xae, 0x95, 0x83, 0xbb, 0x08, - 0xfd, 0x1f, 0x90, 0x34, 0xa4, 0xe9, 0x42, 0xe9, 0xa6, 0x74, - 0x7c, 0xe7 ), - EXPECT ( 0x14, 0x78, 0xf2, 0x9e, 0x94, 0xb0, 0x2c, 0xb4, 0x0d, 0x3a, - 0xab, 0x86, 0x24, 0x55, 0x57, 0xce, 0x13, 0xa8, 0xca, 0x2f, - 0xdb, 0x65, 0x7d, 0x98, 0xef, 0xc1, 0x92, 0x34, 0x6b, 0x9f, - 0xac, 0x33, 0xea, 0x58, 0xad, 0xa2, 0xcc, 0xa4, 0x32, 0xcc, - 0xde, 0xfb, 0xcd, 0xaa, 0x8b, 0x82, 0xf5, 0x53, 0xef, 0x96, - 0x61, 0x34, 0xe2, 0xcd, 0x13, 0x9f, 0x15, 0xf0, 0x1c, 0xad, - 0x56, 0x85, 0x65, 0xa8 ) ); - -/** SHA-256 Test 4.2 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_4_2, HMAC_DRBG_SHA256, - additional_input_2, - EXPECT ( 0x28, 0x2e, 0x07, 0x34, 0x80, 0x80, 0x93, 0x75, 0x58, 0xb1, - 0x39, 0x2e, 0x95, 0xab, 0x91, 0xe7, 0xc1, 0xf6, 0x22, 0xb2, - 0x4f, 0xfb, 0x87, 0x20, 0xa5, 0xf0, 0xa5, 0xe0, 0x75, 0x50, - 0xc7, 0xc2 ), - EXPECT ( 0xdf, 0xc3, 0xbd, 0xb5, 0xf3, 0xbc, 0xf1, 0xaa, 0x68, 0x29, - 0x8e, 0x79, 0x0d, 0x72, 0x0a, 0x67, 0xa7, 0x6e, 0x31, 0xb9, - 0x2b, 0x9b, 0x35, 0xa8, 0xe5, 0x47, 0x1b, 0xb1, 0x7e, 0x30, - 0x3c, 0x6b ), - EXPECT ( 0x49, 0x7c, 0x7a, 0x16, 0xe8, 0x8a, 0x64, 0x11, 0xf8, 0xfc, - 0xe1, 0x0e, 0xf5, 0x67, 0x63, 0xc6, 0x10, 0x25, 0x80, 0x1d, - 0x8f, 0x51, 0xa7, 0x43, 0x52, 0xd6, 0x82, 0xcc, 0x23, 0xa0, - 0xa8, 0xe6, 0x73, 0xca, 0xe0, 0x32, 0x28, 0x93, 0x90, 0x64, - 0x7d, 0xc6, 0x83, 0xb7, 0x34, 0x28, 0x85, 0xd6, 0xb7, 0x6a, - 0xb1, 0xda, 0x69, 0x6d, 0x3e, 0x97, 0xe2, 0x2d, 0xff, 0xdd, - 0xff, 0xfd, 0x8d, 0xf0 ) ); - -/** SHA-256 Test 5 : Instantiation */ -#define sha256_instantiate_5 sha256_instantiate_1 - -/** SHA-256 Test 5.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha256_generate_fail_5_1, HMAC_DRBG_SHA256, - additional_input_empty, ( 512 / 8 ) ); - -/** SHA-256 Test 5.2 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha256_reseed_5_2, HMAC_DRBG_SHA256, - entropy_input_1, additional_input_empty, - EXPECT ( 0xb8, 0x40, 0x07, 0xe3, 0xe2, 0x7f, 0x34, 0xf9, 0xa7, 0x82, - 0x0b, 0x7a, 0xb5, 0x9b, 0xbe, 0xfc, 0xd0, 0xc4, 0xac, 0xae, - 0xde, 0x4b, 0x0b, 0x36, 0xb1, 0x47, 0xb8, 0x97, 0x79, 0xfd, - 0x74, 0x9d ), - EXPECT ( 0xa7, 0x2b, 0x8f, 0xee, 0x92, 0x39, 0x2f, 0x0a, 0x9d, 0x2d, - 0x61, 0xbf, 0x09, 0xa4, 0xdf, 0xcc, 0x9d, 0xe6, 0x9a, 0x16, - 0xa5, 0xf1, 0x50, 0x22, 0x4c, 0x3e, 0xf6, 0x04, 0x2d, 0x15, - 0x21, 0xfc ) ); - -/** SHA-256 Test 5.3 : Retried first call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_5_3, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0x43, 0x48, 0xaf, 0x84, 0x20, 0x84, 0x2f, 0xa0, 0x77, 0xb9, - 0xd3, 0xdb, 0xa8, 0xdc, 0xe9, 0xb3, 0xe1, 0xdf, 0x73, 0x4f, - 0xfc, 0xe1, 0xbe, 0xa5, 0xb9, 0xe2, 0xb1, 0x54, 0xdc, 0x5e, - 0xc6, 0x15 ), - EXPECT ( 0xd2, 0xc1, 0xac, 0x27, 0x88, 0x5d, 0x43, 0x32, 0x76, 0x71, - 0x31, 0x46, 0x32, 0xea, 0x60, 0x43, 0x3c, 0xca, 0x72, 0x73, - 0x04, 0x56, 0x9e, 0xa7, 0xd4, 0x71, 0xfe, 0xa7, 0xdb, 0x7d, - 0x31, 0x5d ), - EXPECT ( 0xfa, 0xbd, 0x0a, 0xe2, 0x5c, 0x69, 0xdc, 0x2e, 0xfd, 0xef, - 0xb7, 0xf2, 0x0c, 0x5a, 0x31, 0xb5, 0x7a, 0xc9, 0x38, 0xab, - 0x77, 0x1a, 0xa1, 0x9b, 0xf8, 0xf5, 0xf1, 0x46, 0x8f, 0x66, - 0x5c, 0x93, 0x8c, 0x9a, 0x1a, 0x5d, 0xf0, 0x62, 0x8a, 0x56, - 0x90, 0xf1, 0x5a, 0x1a, 0xd8, 0xa6, 0x13, 0xf3, 0x1b, 0xbd, - 0x65, 0xee, 0xad, 0x54, 0x57, 0xd5, 0xd2, 0x69, 0x47, 0xf2, - 0x9f, 0xe9, 0x1a, 0xa7 ) ); - -/** SHA-256 Test 5.4 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha256_generate_fail_5_4, HMAC_DRBG_SHA256, - additional_input_empty, ( 512 / 8 ) ); - -/** SHA-256 Test 5.5 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha256_reseed_5_5, HMAC_DRBG_SHA256, - entropy_input_2, additional_input_empty, - EXPECT ( 0xbf, 0xa0, 0x2c, 0xe7, 0xe9, 0x2d, 0xe9, 0x2b, 0x18, 0x24, - 0x28, 0x86, 0x89, 0x0e, 0x58, 0x6f, 0x83, 0x69, 0x06, 0xac, - 0xe9, 0xe5, 0x54, 0xf1, 0xb0, 0xed, 0x63, 0x57, 0x3c, 0xb8, - 0xb5, 0x03 ), - EXPECT ( 0xd3, 0x24, 0x03, 0xee, 0xa9, 0xdc, 0xe1, 0x61, 0x6e, 0x4e, - 0x11, 0x55, 0xb9, 0x23, 0xd8, 0x84, 0x2c, 0xc6, 0xe7, 0x84, - 0xc6, 0x7a, 0x93, 0x85, 0xb2, 0xa6, 0x37, 0xf1, 0x02, 0xfa, - 0x45, 0xd5 ) ); - -/** SHA-256 Test 5.6 : Retried second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_5_6, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0x81, 0x21, 0xf7, 0x76, 0x4c, 0x08, 0x1e, 0xe9, 0xd1, 0x17, - 0x1e, 0xd1, 0x87, 0xba, 0xe0, 0x88, 0x95, 0xca, 0xe2, 0x30, - 0xd0, 0xa2, 0x5e, 0x37, 0x39, 0xc5, 0x7d, 0x54, 0x16, 0x10, - 0x9b, 0x82 ), - EXPECT ( 0x37, 0x84, 0x97, 0x7c, 0xc0, 0xe5, 0x9f, 0xbc, 0x9c, 0xda, - 0x4e, 0x11, 0x92, 0x47, 0x5c, 0x6e, 0xfa, 0xf8, 0x07, 0x20, - 0x19, 0x86, 0x21, 0x22, 0xcb, 0x6b, 0xce, 0xaa, 0xcc, 0x4a, - 0x17, 0x5e ), - EXPECT ( 0x6b, 0xd9, 0x25, 0xb0, 0xe1, 0xc2, 0x32, 0xef, 0xd6, 0x7c, - 0xcd, 0x84, 0xf7, 0x22, 0xe9, 0x27, 0xec, 0xb4, 0x6a, 0xb2, - 0xb7, 0x40, 0x01, 0x47, 0x77, 0xaf, 0x14, 0xba, 0x0b, 0xbf, - 0x53, 0xa4, 0x5b, 0xdb, 0xb6, 0x2b, 0x3f, 0x7d, 0x0b, 0x9c, - 0x8e, 0xea, 0xd0, 0x57, 0xc0, 0xec, 0x75, 0x4e, 0xf8, 0xb5, - 0x3e, 0x60, 0xa1, 0xf4, 0x34, 0xf0, 0x59, 0x46, 0xa8, 0xb6, - 0x86, 0xaf, 0xbc, 0x7a ) ); - -/** SHA-256 Test 6 : Instantiate */ -#define sha256_instantiate_6 sha256_instantiate_1 - -/** SHA-256 Test 6.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha256_generate_fail_6_1, HMAC_DRBG_SHA256, - additional_input_1, ( 512 / 8 ) ); - -/** SHA-256 Test 6.2 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha256_reseed_6_2, HMAC_DRBG_SHA256, - entropy_input_1, additional_input_1, - EXPECT ( 0xc1, 0x25, 0xea, 0x99, 0x75, 0x8e, 0xbb, 0x9a, 0x6f, 0x69, - 0xae, 0x31, 0x2a, 0xc2, 0x04, 0xb5, 0x94, 0xc0, 0x0a, 0xb6, - 0x8b, 0x81, 0x6e, 0x3a, 0x52, 0x12, 0x8e, 0x02, 0x78, 0xa5, - 0x84, 0xac ), - EXPECT ( 0xb2, 0xcb, 0x2b, 0x89, 0x12, 0x3f, 0x5b, 0x4a, 0xf5, 0x87, - 0xb8, 0xf6, 0xbd, 0xc5, 0x42, 0x7a, 0x99, 0x14, 0x19, 0xd3, - 0x53, 0x07, 0x7c, 0x68, 0x5e, 0x70, 0x7a, 0xcd, 0xf8, 0xe9, - 0xfd, 0xa9 ) ); - -/** SHA-256 Test 6.3 : Retried first call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_6_3, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0xc6, 0xed, 0x8f, 0xed, 0x71, 0x57, 0xa4, 0xd0, 0x9e, 0xa1, - 0xdd, 0xe8, 0x94, 0x6b, 0x54, 0x43, 0x3e, 0xcc, 0x54, 0x49, - 0xa4, 0xa3, 0x52, 0xaf, 0x45, 0x76, 0x4e, 0xe6, 0x73, 0x4b, - 0xbb, 0x04 ), - EXPECT ( 0xeb, 0xc7, 0x75, 0x25, 0x6b, 0xb7, 0x81, 0x24, 0x1e, 0x9c, - 0x70, 0xbb, 0xcf, 0x73, 0x2b, 0xdc, 0x90, 0xad, 0x10, 0xd9, - 0xdd, 0x3a, 0x89, 0x6e, 0xcc, 0x12, 0xb9, 0x2f, 0xfb, 0x63, - 0x45, 0xab ), - EXPECT ( 0x08, 0x5d, 0x57, 0xaf, 0x6b, 0xab, 0xcf, 0x2b, 0x9a, 0xee, - 0xf3, 0x87, 0xd5, 0x31, 0x65, 0x0e, 0x6a, 0x50, 0x5c, 0x54, - 0x40, 0x6a, 0xb3, 0x7a, 0x52, 0x89, 0x9e, 0x0e, 0xca, 0xb3, - 0x63, 0x2b, 0x7a, 0x06, 0x8a, 0x28, 0x14, 0xc6, 0xdf, 0x6a, - 0xe5, 0x32, 0xb6, 0x58, 0xd0, 0xd9, 0x74, 0x1c, 0x84, 0x77, - 0x5f, 0xee, 0x45, 0xb6, 0x84, 0xcd, 0xbd, 0xc2, 0x5f, 0xbc, - 0xb4, 0xd8, 0xf3, 0x10 ) ); - -/** SHA-256 Test 6.4 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha256_generate_fail_6_4, HMAC_DRBG_SHA256, - additional_input_2, ( 512 / 8 ) ); - -/** SHA-256 Test 6.5 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha256_reseed_6_5, HMAC_DRBG_SHA256, - entropy_input_2, additional_input_2, - EXPECT ( 0xfc, 0x51, 0xda, 0x84, 0xf9, 0x69, 0x6b, 0xcc, 0x84, 0xc8, - 0xf2, 0xac, 0xb9, 0x24, 0xbc, 0xdf, 0x72, 0xf8, 0x2e, 0xa2, - 0xca, 0x64, 0x3f, 0x08, 0x3b, 0x0c, 0x16, 0xc3, 0x63, 0x4e, - 0xfc, 0x62 ), - EXPECT ( 0xb9, 0x74, 0xe4, 0x37, 0x0a, 0xd5, 0x76, 0xbb, 0x99, 0xc4, - 0xe4, 0x9e, 0xa6, 0x80, 0xbf, 0xf9, 0x8d, 0xe9, 0xe1, 0x2f, - 0xec, 0xd0, 0x13, 0xde, 0xd4, 0x3c, 0x80, 0xf6, 0x9a, 0x7a, - 0xde, 0x8a ) ); - -/** SHA-256 Test 6.6 : Retried second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_6_6, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0x56, 0xa2, 0xb4, 0x46, 0x32, 0xcb, 0x8f, 0xc3, 0xa6, 0x40, - 0x09, 0xbf, 0xd6, 0xec, 0x95, 0xe5, 0x6c, 0xef, 0x8e, 0x7c, - 0x91, 0x2a, 0xa8, 0x2b, 0x16, 0xf6, 0x14, 0x91, 0x5d, 0x9c, - 0xd6, 0xe3 ), - EXPECT ( 0xb5, 0xb3, 0x96, 0xa0, 0x15, 0x76, 0xb0, 0xfe, 0x42, 0xf4, - 0x08, 0x44, 0x55, 0x6c, 0x4c, 0xf4, 0xb6, 0x80, 0x4c, 0x94, - 0xde, 0x9d, 0x62, 0x38, 0xf1, 0xf7, 0xe7, 0xaf, 0x5c, 0x72, - 0x57, 0xf3 ), - EXPECT ( 0x9b, 0x21, 0x9f, 0xd9, 0x0d, 0xe2, 0xa0, 0x8e, 0x49, 0x34, - 0x05, 0xcf, 0x87, 0x44, 0x17, 0xb5, 0x82, 0x67, 0x70, 0xf3, - 0x94, 0x48, 0x15, 0x55, 0xdc, 0x66, 0x8a, 0xcd, 0x96, 0xb9, - 0xa3, 0xe5, 0x6f, 0x9d, 0x2c, 0x32, 0x5e, 0x26, 0xd4, 0x7c, - 0x1d, 0xfc, 0xfc, 0x8f, 0xbf, 0x86, 0x12, 0x6f, 0x40, 0xa1, - 0xe6, 0x39, 0x60, 0xf6, 0x27, 0x49, 0x34, 0x2e, 0xcd, 0xb7, - 0x1b, 0x24, 0x0d, 0xc6 ) ); - -/** SHA-256 Test 7 : Instantiation */ -#define sha256_instantiate_7 sha256_instantiate_3 - -/** SHA-256 Test 7.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha256_generate_fail_7_1, HMAC_DRBG_SHA256, - additional_input_empty, ( 512 / 8 ) ); - -/** SHA-256 Test 7.2 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha256_reseed_7_2, HMAC_DRBG_SHA256, - entropy_input_1, additional_input_empty, - EXPECT ( 0x44, 0x76, 0xc6, 0xd1, 0x1f, 0xc3, 0x5d, 0x44, 0x09, 0xd9, - 0x03, 0x2e, 0x45, 0x3b, 0x0f, 0x0d, 0xc3, 0x31, 0x4d, 0xb8, - 0x62, 0xcb, 0xdb, 0x60, 0x9c, 0x56, 0x02, 0x20, 0x8d, 0x4c, - 0x88, 0xd8 ), - EXPECT ( 0x95, 0xef, 0x78, 0x5a, 0x61, 0xc2, 0xf7, 0xb3, 0x6b, 0xc5, - 0x96, 0xba, 0x4b, 0xa2, 0x08, 0xa5, 0x2c, 0x6d, 0xc2, 0x03, - 0x63, 0x6d, 0x8f, 0x17, 0x87, 0x45, 0x3b, 0x85, 0x2b, 0x7e, - 0x49, 0xec ) ); - -/** SHA-256 Test 7.3 : Retried first call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_7_3, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0x0d, 0xf9, 0x11, 0x0e, 0x2f, 0x22, 0x58, 0x98, 0x24, 0xa9, - 0x47, 0x6c, 0x8e, 0x32, 0x08, 0x8e, 0x51, 0xa0, 0xda, 0x36, - 0x63, 0x3f, 0x8c, 0xd1, 0xf7, 0x54, 0x7d, 0xff, 0x69, 0x6e, - 0x4b, 0x29 ), - EXPECT ( 0xc0, 0xe3, 0xc8, 0xed, 0x5a, 0x8b, 0x57, 0x9e, 0x3f, 0xef, - 0x9d, 0xf3, 0xb7, 0xc2, 0xc2, 0x12, 0x98, 0x07, 0x17, 0xcc, - 0x91, 0xae, 0x18, 0x66, 0x45, 0xfa, 0xbb, 0x2c, 0xc7, 0x84, - 0xd5, 0xd7 ), - EXPECT ( 0xd8, 0xb6, 0x71, 0x30, 0x71, 0x41, 0x94, 0xff, 0xe5, 0xb2, - 0xa3, 0x5d, 0xbc, 0xd5, 0xe1, 0xa2, 0x99, 0x42, 0xad, 0x5c, - 0x68, 0xf3, 0xde, 0xb9, 0x4a, 0xdd, 0x9e, 0x9e, 0xba, 0xd8, - 0x60, 0x67, 0xed, 0xf0, 0x49, 0x15, 0xfb, 0x40, 0xc3, 0x91, - 0xea, 0xe7, 0x0c, 0x65, 0x9e, 0xaa, 0xe7, 0xef, 0x11, 0xa3, - 0xd4, 0x6a, 0x5b, 0x08, 0x5e, 0xdd, 0x90, 0xcc, 0x72, 0xce, - 0xa9, 0x89, 0x21, 0x0b ) ); - -/** SHA-256 Test 7.4 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha256_generate_fail_7_4, HMAC_DRBG_SHA256, - additional_input_empty, ( 512 / 8 ) ); - -/** SHA-256 Test 7.5 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha256_reseed_7_5, HMAC_DRBG_SHA256, - entropy_input_2, additional_input_empty, - EXPECT ( 0x3d, 0x77, 0x63, 0xe5, 0x30, 0x3d, 0xb5, 0x4b, 0xe2, 0x05, - 0x44, 0xa8, 0x1e, 0x9f, 0x00, 0xca, 0xdc, 0xfc, 0x1c, 0xb2, - 0x8d, 0xec, 0xb9, 0xcf, 0xc6, 0x99, 0xf6, 0x1d, 0xba, 0xf8, - 0x80, 0x21 ), - EXPECT ( 0xfe, 0xbc, 0x02, 0x79, 0xb7, 0x71, 0x0d, 0xec, 0x5c, 0x06, - 0x7e, 0xbe, 0xfa, 0x06, 0x8e, 0x4b, 0x59, 0x67, 0x49, 0x1b, - 0x7e, 0xef, 0x94, 0x75, 0x83, 0x50, 0x6d, 0x04, 0x97, 0xce, - 0x67, 0xba ) ); - -/** SHA-256 Test 7.6 : Retried second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_7_6, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0x2d, 0x21, 0xac, 0x94, 0x99, 0x2f, 0xd8, 0x2b, 0x09, 0x80, - 0xd3, 0xd5, 0x95, 0x51, 0xb9, 0xd0, 0x7c, 0x8d, 0x54, 0xb2, - 0x52, 0xb6, 0x16, 0x28, 0x93, 0x44, 0xf8, 0xac, 0x86, 0x9e, - 0xd3, 0x5b ), - EXPECT ( 0x61, 0x0c, 0x34, 0xcd, 0xbf, 0x6f, 0x75, 0x33, 0x54, 0x7f, - 0x23, 0x32, 0xea, 0xc5, 0x7e, 0xe3, 0x1e, 0x72, 0x4f, 0xb2, - 0x92, 0x55, 0x56, 0x6b, 0x59, 0x78, 0x33, 0x16, 0x6c, 0xd0, - 0x39, 0x9f ), - EXPECT ( 0x8b, 0xba, 0x71, 0xc2, 0x58, 0x3f, 0x25, 0x30, 0xc2, 0x59, - 0xc9, 0x07, 0x84, 0xa5, 0x9a, 0xc4, 0x4d, 0x1c, 0x80, 0x56, - 0x91, 0x7c, 0xcf, 0x38, 0x87, 0x88, 0x10, 0x2d, 0x73, 0x82, - 0x4c, 0x6c, 0x11, 0xd5, 0xd6, 0x3b, 0xe1, 0xf0, 0x10, 0x17, - 0xd8, 0x84, 0xcd, 0x69, 0xd9, 0x33, 0x4b, 0x9e, 0xbc, 0x01, - 0xe7, 0xbd, 0x8f, 0xdf, 0x2a, 0x8e, 0x52, 0x57, 0x22, 0x93, - 0xdc, 0x21, 0xc0, 0xe1 ) ); - -/** SHA-256 Test 8 : Instantiate */ -#define sha256_instantiate_8 sha256_instantiate_3 - -/** SHA-256 Test 8.1 : First call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha256_generate_fail_8_1, HMAC_DRBG_SHA256, - additional_input_1, ( 512 / 8 ) ); - -/** SHA-256 Test 8.2 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha256_reseed_8_2, HMAC_DRBG_SHA256, - entropy_input_1, additional_input_1, - EXPECT ( 0xb3, 0x81, 0x38, 0x8c, 0x1d, 0x7c, 0xfd, 0x56, 0x59, 0x30, - 0x99, 0x3b, 0xd9, 0x26, 0x90, 0x66, 0x50, 0x88, 0xd9, 0xb8, - 0x39, 0x96, 0x9b, 0x87, 0xf1, 0x6d, 0xb6, 0xdf, 0x4e, 0x43, - 0x00, 0xd7 ), - EXPECT ( 0xfa, 0x04, 0x25, 0x64, 0x00, 0xe3, 0x42, 0xe6, 0x55, 0xf4, - 0x33, 0x26, 0x94, 0xe3, 0xb2, 0x4c, 0x04, 0xfb, 0x85, 0xbf, - 0x87, 0x80, 0x21, 0xe4, 0x52, 0xe7, 0x3b, 0x8f, 0x46, 0xd4, - 0xbd, 0xc6 ) ); - -/** SHA-256 Test 8.3 : Retried first call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_8_3, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0xd4, 0x1f, 0x6f, 0x33, 0x65, 0x82, 0x21, 0x70, 0x50, 0xb1, - 0xf6, 0x59, 0x28, 0xfd, 0x6e, 0x94, 0xcb, 0xc9, 0x45, 0x68, - 0xfe, 0x3b, 0x6b, 0x53, 0x38, 0x9e, 0x1e, 0x3a, 0x5b, 0x49, - 0xe1, 0x01 ), - EXPECT ( 0xa6, 0x55, 0xc9, 0xe7, 0xd1, 0x33, 0xf1, 0xcd, 0x8b, 0x11, - 0x61, 0xf2, 0x7d, 0x54, 0xe7, 0x5a, 0x7e, 0x7c, 0x80, 0x42, - 0xbf, 0x74, 0xd4, 0x7f, 0x9f, 0xfd, 0x60, 0xe2, 0x45, 0xeb, - 0xa5, 0x7e ), - EXPECT ( 0x44, 0xd7, 0x8b, 0xbc, 0x3e, 0xb6, 0x7c, 0x59, 0xc2, 0x2f, - 0x6c, 0x31, 0x00, 0x3d, 0x21, 0x2a, 0x78, 0x37, 0xcc, 0xd8, - 0x4c, 0x43, 0x8b, 0x55, 0x15, 0x0f, 0xd0, 0x13, 0xa8, 0xa7, - 0x8f, 0xe8, 0xed, 0xea, 0x81, 0xc6, 0x72, 0xe4, 0xb8, 0xdd, - 0xc8, 0x18, 0x38, 0x86, 0xe6, 0x9c, 0x2e, 0x17, 0x7d, 0xf5, - 0x74, 0xc1, 0xf1, 0x90, 0xdf, 0x27, 0x18, 0x50, 0xf8, 0xce, - 0x55, 0xef, 0x20, 0xb8 ) ); - -/** SHA-256 Test 8.4 : Second call to Generate */ -HMAC_DRBG_TEST_GENERATE_FAIL ( sha256_generate_fail_8_4, HMAC_DRBG_SHA256, - additional_input_2, ( 512 / 8 ) ); - -/** SHA-256 Test 8.5 : Reseed */ -HMAC_DRBG_TEST_RESEED ( sha256_reseed_8_5, HMAC_DRBG_SHA256, - entropy_input_2, additional_input_2, - EXPECT ( 0xfb, 0xa8, 0x05, 0x45, 0x3e, 0x3c, 0x9a, 0x73, 0x64, 0x58, - 0x5c, 0xed, 0xbc, 0xd2, 0x92, 0x30, 0xfb, 0xc9, 0x3d, 0x6f, - 0x12, 0x9d, 0x21, 0xed, 0xdd, 0xf6, 0x61, 0x3b, 0x3a, 0x8f, - 0xf2, 0x83 ), - EXPECT ( 0x83, 0x64, 0x7a, 0x33, 0x8c, 0x15, 0x3c, 0xba, 0xf0, 0xe4, - 0x9a, 0x54, 0xa4, 0x4f, 0xea, 0x66, 0x70, 0xcf, 0xd7, 0xc1, - 0x71, 0x4d, 0x4a, 0xb3, 0x5f, 0x11, 0x12, 0x3d, 0xf2, 0x7b, - 0x69, 0xcf ) ); - -/** SHA-256 Test 8.6 : Retried second call to Generate */ -HMAC_DRBG_TEST_GENERATE ( sha256_generate_8_6, HMAC_DRBG_SHA256, - additional_input_empty, - EXPECT ( 0xae, 0x59, 0xc7, 0x0a, 0x7c, 0x60, 0xed, 0x49, 0x83, 0x78, - 0xea, 0x84, 0x5b, 0xe9, 0x7d, 0x8f, 0xf8, 0x81, 0xe0, 0xea, - 0x37, 0x2e, 0x26, 0x5f, 0xa6, 0x72, 0x84, 0x29, 0x3e, 0x1a, - 0x46, 0xac ), - EXPECT ( 0xe2, 0xf0, 0x4d, 0xe3, 0xce, 0x21, 0x79, 0x61, 0xae, 0x2b, - 0x2d, 0x20, 0xa7, 0xba, 0x7c, 0x6c, 0x82, 0x0b, 0x5b, 0x14, - 0x92, 0x6e, 0x59, 0x56, 0xae, 0x6d, 0xfa, 0x2e, 0xd1, 0xd6, - 0x39, 0x93 ), - EXPECT ( 0x91, 0x77, 0x80, 0xdc, 0x0c, 0xe9, 0x98, 0x9f, 0xee, 0x6c, - 0x08, 0x06, 0xd6, 0xda, 0x12, 0x3a, 0x18, 0x25, 0x29, 0x47, - 0x58, 0xd4, 0xe1, 0xb5, 0x82, 0x68, 0x72, 0x31, 0x78, 0x0a, - 0x2a, 0x9c, 0x33, 0xf1, 0xd1, 0x56, 0xcc, 0xad, 0x32, 0x77, - 0x64, 0xb2, 0x9a, 0x4c, 0xb2, 0x69, 0x01, 0x77, 0xae, 0x96, - 0xef, 0x9e, 0xe9, 0x2a, 0xd0, 0xc3, 0x40, 0xba, 0x0f, 0xd1, - 0x20, 0x3c, 0x02, 0xc6 ) ); - -/** - * Force a "reseed required" state - * - * @v state HMAC_DRBG internal state - */ -static inline void force_reseed_required ( struct hmac_drbg_state *state ) { - state->reseed_counter = ( HMAC_DRBG_RESEED_INTERVAL + 1 ); -} - -/** - * Perform HMAC_DRBG self-test - * - */ -static void hmac_drbg_test_exec ( void ) { - struct hmac_drbg_state state; - - /* - * IMPORTANT NOTE - * - * The NIST test vector set includes several calls to - * HMAC_DRBG_Generate() that are expected to fail with a - * status of "Reseed required". The pattern seems to be that - * when prediction resistance is requested, any call to - * HMAC_DRBG_Generate() is at first expected to fail. After - * an explicit reseeding, the call to HMAC_DRBG_Generate() is - * retried, and on this second time it is expected to succeed. - * - * This pattern does not match the specifications for - * HMAC_DRBG_Generate(): neither HMAC_DRBG_Generate_algorithm - * (defined in ANS X9.82 Part 3-2007 Section 10.2.2.2.5 (NIST - * SP 800-90 Section 10.1.2.5)) nor the higher-level wrapper - * Generate_function defined in ANS X9.82 Part 3-2007 Section - * 9.4 (NIST SP 800-90 Section 9.3)) can possibly exhibit this - * behaviour: - * - * a) HMAC_DRBG_Generate_algorithm can return a "reseed - * required" status only as a result of the test - * - * "1. If reseed_counter > reseed_interval, then return - * an indication that a reseed is required." - * - * Since the reseed interval is independent of any request - * for prediction resistance, and since the reseed interval - * is not specified as part of the NIST test vector set, - * then this cannot be the source of the "Reseed required" - * failure expected by the NIST test vector set. - * - * b) Generate_function cannot return a "reseed required" - * status under any circumstances. If the underlying - * HMAC_DRBG_Generate_algorithm call returns "reseed - * required", then Generate_function will automatically - * reseed and try again. - * - * To produce the behaviour expected by the NIST test vector - * set, we therefore contrive to produce a "reseed required" - * state where necessary by setting the reseed_counter to - * greater than the reseed_interval. - */ - - /* SHA-1 Test 1 */ - instantiate_ok ( &state, &sha1_instantiate_1 ); - generate_ok ( &state, &sha1_generate_1_1 ); - generate_ok ( &state, &sha1_generate_1_2 ); - - /* SHA-1 Test 2 */ - instantiate_ok ( &state, &sha1_instantiate_2 ); - generate_ok ( &state, &sha1_generate_2_1 ); - generate_ok ( &state, &sha1_generate_2_2 ); - - /* SHA-1 Test 3 */ - instantiate_ok ( &state, &sha1_instantiate_3 ); - generate_ok ( &state, &sha1_generate_3_1 ); - generate_ok ( &state, &sha1_generate_3_2 ); - - /* SHA-1 Test 4 */ - instantiate_ok ( &state, &sha1_instantiate_4 ); - generate_ok ( &state, &sha1_generate_4_1 ); - generate_ok ( &state, &sha1_generate_4_2 ); - - /* SHA-1 Test 5 */ - instantiate_ok ( &state, &sha1_instantiate_5 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha1_generate_fail_5_1 ); - reseed_ok ( &state, &sha1_reseed_5_2 ); - generate_ok ( &state, &sha1_generate_5_3 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha1_generate_fail_5_4 ); - reseed_ok ( &state, &sha1_reseed_5_5 ); - generate_ok ( &state, &sha1_generate_5_6 ); - - /* SHA-1 Test 6 */ - instantiate_ok ( &state, &sha1_instantiate_6 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha1_generate_fail_6_1 ); - reseed_ok ( &state, &sha1_reseed_6_2 ); - generate_ok ( &state, &sha1_generate_6_3 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha1_generate_fail_6_4 ); - reseed_ok ( &state, &sha1_reseed_6_5 ); - generate_ok ( &state, &sha1_generate_6_6 ); - - /* SHA-1 Test 7 */ - instantiate_ok ( &state, &sha1_instantiate_7 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha1_generate_fail_7_1 ); - reseed_ok ( &state, &sha1_reseed_7_2 ); - generate_ok ( &state, &sha1_generate_7_3 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha1_generate_fail_7_4 ); - reseed_ok ( &state, &sha1_reseed_7_5 ); - generate_ok ( &state, &sha1_generate_7_6 ); - - /* SHA-1 Test 8 */ - instantiate_ok ( &state, &sha1_instantiate_8 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha1_generate_fail_8_1 ); - reseed_ok ( &state, &sha1_reseed_8_2 ); - generate_ok ( &state, &sha1_generate_8_3 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha1_generate_fail_8_4 ); - reseed_ok ( &state, &sha1_reseed_8_5 ); - generate_ok ( &state, &sha1_generate_8_6 ); - - /* SHA-256 Test 1 */ - instantiate_ok ( &state, &sha256_instantiate_1 ); - generate_ok ( &state, &sha256_generate_1_1 ); - generate_ok ( &state, &sha256_generate_1_2 ); - - /* SHA-256 Test 2 */ - instantiate_ok ( &state, &sha256_instantiate_2 ); - generate_ok ( &state, &sha256_generate_2_1 ); - generate_ok ( &state, &sha256_generate_2_2 ); - - /* SHA-256 Test 3 */ - instantiate_ok ( &state, &sha256_instantiate_3 ); - generate_ok ( &state, &sha256_generate_3_1 ); - generate_ok ( &state, &sha256_generate_3_2 ); - - /* SHA-256 Test 4 */ - instantiate_ok ( &state, &sha256_instantiate_4 ); - generate_ok ( &state, &sha256_generate_4_1 ); - generate_ok ( &state, &sha256_generate_4_2 ); - - /* SHA-256 Test 5 */ - instantiate_ok ( &state, &sha256_instantiate_5 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha256_generate_fail_5_1 ); - reseed_ok ( &state, &sha256_reseed_5_2 ); - generate_ok ( &state, &sha256_generate_5_3 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha256_generate_fail_5_4 ); - reseed_ok ( &state, &sha256_reseed_5_5 ); - generate_ok ( &state, &sha256_generate_5_6 ); - - /* SHA-256 Test 6 */ - instantiate_ok ( &state, &sha256_instantiate_6 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha256_generate_fail_6_1 ); - reseed_ok ( &state, &sha256_reseed_6_2 ); - generate_ok ( &state, &sha256_generate_6_3 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha256_generate_fail_6_4 ); - reseed_ok ( &state, &sha256_reseed_6_5 ); - generate_ok ( &state, &sha256_generate_6_6 ); - - /* SHA-256 Test 7 */ - instantiate_ok ( &state, &sha256_instantiate_7 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha256_generate_fail_7_1 ); - reseed_ok ( &state, &sha256_reseed_7_2 ); - generate_ok ( &state, &sha256_generate_7_3 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha256_generate_fail_7_4 ); - reseed_ok ( &state, &sha256_reseed_7_5 ); - generate_ok ( &state, &sha256_generate_7_6 ); - - /* SHA-256 Test 8 */ - instantiate_ok ( &state, &sha256_instantiate_8 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha256_generate_fail_8_1 ); - reseed_ok ( &state, &sha256_reseed_8_2 ); - generate_ok ( &state, &sha256_generate_8_3 ); - force_reseed_required ( &state ); /* See above comments */ - generate_fail_ok ( &state, &sha256_generate_fail_8_4 ); - reseed_ok ( &state, &sha256_reseed_8_5 ); - generate_ok ( &state, &sha256_generate_8_6 ); -} - -/** HMAC_DRBG self-test */ -struct self_test hmac_drbg_test __self_test = { - .name = "hmac_drbg", - .exec = hmac_drbg_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/ipv4_test.c b/qemu/roms/ipxe/src/tests/ipv4_test.c deleted file mode 100644 index f84a8b81f..000000000 --- a/qemu/roms/ipxe/src/tests/ipv4_test.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 2015 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * IPv4 tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include - -/** Define inline IPv4 address */ -#define IPV4(a,b,c,d) \ - htonl ( ( (a) << 24 ) | ( (b) << 16 ) | ( (c) << 8 ) | (d) ) - -/** - * Report an inet_ntoa() test result - * - * @v addr IPv4 address - * @v text Expected textual representation - * @v file Test code file - * @v line Test code line - */ -static void inet_ntoa_okx ( uint32_t addr, const char *text, const char *file, - unsigned int line ) { - struct in_addr in = { .s_addr = addr }; - char *actual; - - /* Format address */ - actual = inet_ntoa ( in ); - DBG ( "inet_ntoa ( %d.%d.%d.%d ) = %s\n", - ( ( ntohl ( addr ) >> 24 ) & 0xff ), - ( ( ntohl ( addr ) >> 16 ) & 0xff ), - ( ( ntohl ( addr ) >> 8 ) & 0xff ), - ( ( ntohl ( addr ) >> 0 ) & 0xff ), actual ); - okx ( strcmp ( actual, text ) == 0, file, line ); -} -#define inet_ntoa_ok( addr, text ) \ - inet_ntoa_okx ( addr, text, __FILE__, __LINE__ ) - -/** - * Report an inet_aton() test result - * - * @v text Textual representation - * @v addr Expected IPv4 address - * @v file Test code file - * @v line Test code line - */ -static void inet_aton_okx ( const char *text, uint32_t addr, const char *file, - unsigned int line ) { - struct in_addr actual; - - /* Parse address */ - okx ( inet_aton ( text, &actual ) != 0, file, line ); - DBG ( "inet_aton ( \"%s\" ) = %s\n", text, inet_ntoa ( actual ) ); - okx ( actual.s_addr == addr, file, line ); -}; -#define inet_aton_ok( text, addr ) \ - inet_aton_okx ( text, addr, __FILE__, __LINE__ ) - -/** - * Report an inet_aton() failure test result - * - * @v text Textual representation - * @v file Test code file - * @v line Test code line - */ -static void inet_aton_fail_okx ( const char *text, const char *file, - unsigned int line ) { - struct in_addr actual; - - /* Attempt to parse address */ - okx ( inet_aton ( text, &actual ) == 0, file, line ); -} -#define inet_aton_fail_ok( text ) \ - inet_aton_fail_okx ( text, __FILE__, __LINE__ ) - -/** - * Perform IPv4 self-tests - * - */ -static void ipv4_test_exec ( void ) { - - /* Address testing macros */ - ok ( IN_IS_CLASSA ( IPV4 ( 10, 0, 0, 1 ) ) ); - ok ( ! IN_IS_CLASSB ( IPV4 ( 10, 0, 0, 1 ) ) ); - ok ( ! IN_IS_CLASSC ( IPV4 ( 10, 0, 0, 1 ) ) ); - ok ( ! IN_IS_CLASSA ( IPV4 ( 172, 16, 0, 1 ) ) ); - ok ( IN_IS_CLASSB ( IPV4 ( 172, 16, 0, 1 ) ) ); - ok ( ! IN_IS_CLASSC ( IPV4 ( 172, 16, 0, 1 ) ) ); - ok ( ! IN_IS_CLASSA ( IPV4 ( 192, 168, 0, 1 ) ) ); - ok ( ! IN_IS_CLASSB ( IPV4 ( 192, 168, 0, 1 ) ) ); - ok ( IN_IS_CLASSC ( IPV4 ( 192, 168, 0, 1 ) ) ); - ok ( ! IN_IS_MULTICAST ( IPV4 ( 127, 0, 0, 1 ) ) ); - ok ( ! IN_IS_MULTICAST ( IPV4 ( 8, 8, 8, 8 ) ) ); - ok ( ! IN_IS_MULTICAST ( IPV4 ( 0, 0, 0, 0 ) ) ); - ok ( ! IN_IS_MULTICAST ( IPV4 ( 223, 0, 0, 1 ) ) ); - ok ( ! IN_IS_MULTICAST ( IPV4 ( 240, 0, 0, 1 ) ) ); - ok ( IN_IS_MULTICAST ( IPV4 ( 224, 0, 0, 1 ) ) ); - ok ( IN_IS_MULTICAST ( IPV4 ( 231, 89, 0, 2 ) ) ); - ok ( IN_IS_MULTICAST ( IPV4 ( 239, 6, 1, 17 ) ) ); - - /* inet_ntoa() tests */ - inet_ntoa_ok ( IPV4 ( 127, 0, 0, 1 ), "127.0.0.1" ); - inet_ntoa_ok ( IPV4 ( 0, 0, 0, 0 ), "0.0.0.0" ); - inet_ntoa_ok ( IPV4 ( 255, 255, 255, 255 ), "255.255.255.255" ); - inet_ntoa_ok ( IPV4 ( 212, 13, 204, 60 ), "212.13.204.60" ); - - /* inet_aton() tests */ - inet_aton_ok ( "212.13.204.60", IPV4 ( 212, 13, 204, 60 ) ); - inet_aton_ok ( "127.0.0.1", IPV4 ( 127, 0, 0, 1 ) ); - - /* inet_aton() failure tests */ - inet_aton_fail_ok ( "256.0.0.1" ); /* Byte out of range */ - inet_aton_fail_ok ( "212.13.204.60.1" ); /* Too long */ - inet_aton_fail_ok ( "127.0.0" ); /* Too short */ - inet_aton_fail_ok ( "1.2.3.a" ); /* Invalid characters */ - inet_aton_fail_ok ( "127.0..1" ); /* Missing bytes */ -} - -/** IPv4 self-test */ -struct self_test ipv4_test __self_test = { - .name = "ipv4", - .exec = ipv4_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/ipv6_test.c b/qemu/roms/ipxe/src/tests/ipv6_test.c deleted file mode 100644 index 772eb1b82..000000000 --- a/qemu/roms/ipxe/src/tests/ipv6_test.c +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (C) 2013 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * IPv6 tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include - -/** Define inline IPv6 address */ -#define IPV6(...) { __VA_ARGS__ } - -/** The unspecified IPv6 address */ -static const struct in6_addr sample_unspecified = { - .s6_addr = IPV6 ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), -}; - -/** A sample link-local IPv6 address */ -static const struct in6_addr sample_link_local = { - .s6_addr = IPV6 ( 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x69, 0xff, 0xfe, 0x50, 0x58, 0x45 ), -}; - -/** A sample global IPv6 address */ -static const struct in6_addr sample_global = { - .s6_addr = IPV6 ( 0x20, 0x01, 0x0b, 0xa8, 0x00, 0x00, 0x01, 0xd4, - 0x00, 0x00, 0x00, 0x00, 0x69, 0x50, 0x58, 0x45 ), -}; - -/** A sample multicast IPv6 address */ -static const struct in6_addr sample_multicast = { - .s6_addr = IPV6 ( 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 ), -}; - -/** - * Report an inet6_ntoa() test result - * - * @v addr IPv6 address - * @v text Expected textual representation - */ -#define inet6_ntoa_ok( addr, text ) do { \ - static const struct in6_addr in = { \ - .s6_addr = addr, \ - }; \ - static const char expected[] = text; \ - char *actual; \ - \ - actual = inet6_ntoa ( &in ); \ - DBG ( "inet6_ntoa ( %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x ) " \ - "= %s\n", ntohs ( in.s6_addr16[0] ), \ - ntohs ( in.s6_addr16[1] ), ntohs ( in.s6_addr16[2] ), \ - ntohs ( in.s6_addr16[3] ), ntohs ( in.s6_addr16[4] ), \ - ntohs ( in.s6_addr16[5] ), ntohs ( in.s6_addr16[6] ), \ - ntohs ( in.s6_addr16[7] ), actual ); \ - ok ( strcmp ( actual, expected ) == 0 ); \ - } while ( 0 ) - -/** - * Report an inet6_aton() test result - * - * @v text Textual representation - * @v addr Expected IPv6 address - */ -#define inet6_aton_ok( text, addr ) do { \ - static const char string[] = text; \ - static const struct in6_addr expected = { \ - .s6_addr = addr, \ - }; \ - struct in6_addr actual; \ - \ - ok ( inet6_aton ( string, &actual ) == 0 ); \ - DBG ( "inet6_aton ( \"%s\" ) = %s\n", string, \ - inet6_ntoa ( &actual ) ); \ - ok ( memcmp ( &actual, &expected, sizeof ( actual ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report an inet6_aton() failure test result - * - * @v text Textual representation - */ -#define inet6_aton_fail_ok( text ) do { \ - static const char string[] = text; \ - struct in6_addr dummy; \ - \ - ok ( inet6_aton ( string, &dummy ) != 0 ); \ - } while ( 0 ) - -/** - * Perform IPv6 self-tests - * - */ -static void ipv6_test_exec ( void ) { - - /* Address testing macros */ - ok ( IN6_IS_ADDR_UNSPECIFIED ( &sample_unspecified ) ); - ok ( ! IN6_IS_ADDR_UNSPECIFIED ( &sample_link_local ) ); - ok ( ! IN6_IS_ADDR_UNSPECIFIED ( &sample_global ) ); - ok ( ! IN6_IS_ADDR_UNSPECIFIED ( &sample_multicast ) ); - ok ( ! IN6_IS_ADDR_MULTICAST ( &sample_unspecified ) ); - ok ( ! IN6_IS_ADDR_MULTICAST ( &sample_link_local ) ); - ok ( ! IN6_IS_ADDR_MULTICAST ( &sample_global ) ); - ok ( IN6_IS_ADDR_MULTICAST ( &sample_multicast ) ); - ok ( ! IN6_IS_ADDR_LINKLOCAL ( &sample_unspecified ) ); - ok ( IN6_IS_ADDR_LINKLOCAL ( &sample_link_local ) ); - ok ( ! IN6_IS_ADDR_LINKLOCAL ( &sample_global ) ); - ok ( ! IN6_IS_ADDR_LINKLOCAL ( &sample_multicast ) ); - - /* inet6_ntoa() tests */ - inet6_ntoa_ok ( IPV6 ( 0x20, 0x01, 0x0b, 0xa8, 0x00, 0x00, 0x01, 0xd4, - 0x00, 0x00, 0x00, 0x00, 0x69, 0x50, 0x58, 0x45 ), - "2001:ba8:0:1d4::6950:5845" ); - /* No zeros */ - inet6_ntoa_ok ( IPV6 ( 0x20, 0x01, 0x0d, 0xb8, 0x00, 0x01, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01 ), - "2001:db8:1:1:1:1:1:1" ); - /* Run of zeros */ - inet6_ntoa_ok ( IPV6 ( 0x20, 0x01, 0x0d, 0xb8, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 ), - "2001:db8::1" ); - /* No "::" for single zero */ - inet6_ntoa_ok ( IPV6 ( 0x20, 0x01, 0x0d, 0xb8, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01 ), - "2001:db8:0:1:1:1:1:1" ); - /* Use "::" for longest run of zeros */ - inet6_ntoa_ok ( IPV6 ( 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 ), - "2001:0:0:1::1" ); - /* Use "::" for leftmost equal-length run of zeros */ - inet6_ntoa_ok ( IPV6 ( 0x20, 0x01, 0x0d, 0xb8, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 ), - "2001:db8::1:0:0:1" ); - /* Trailing run of zeros */ - inet6_ntoa_ok ( IPV6 ( 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), - "fe80::" ); - /* Leading run of zeros */ - inet6_ntoa_ok ( IPV6 ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 ), - "::1" ); - /* All zeros */ - inet6_ntoa_ok ( IPV6 ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), - "::" ); - /* Maximum length */ - inet6_ntoa_ok ( IPV6 ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff ), - "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" ); - - /* inet6_aton() tests */ - inet6_aton_ok ( "2001:ba8:0:1d4::6950:5845", - IPV6 ( 0x20, 0x01, 0x0b, 0xa8, 0x00, 0x00, 0x01, 0xd4, - 0x00, 0x00, 0x00, 0x00, 0x69, 0x50, 0x58, 0x45)); - /* No zeros */ - inet6_aton_ok ( "2001:db8:1:1:1:1:1:1", - IPV6 ( 0x20, 0x01, 0x0d, 0xb8, 0x00, 0x01, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01)); - /* All intervening zeros */ - inet6_aton_ok ( "fe80::1", - IPV6 ( 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01)); - /* Trailing run of zeros */ - inet6_aton_ok ( "fe80::", - IPV6 ( 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)); - /* Leading run of zeros */ - inet6_aton_ok ( "::1", - IPV6 ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01)); - /* All zeros */ - inet6_aton_ok ( "::", - IPV6 ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)); - - /* inet6_aton() failure tests */ - inet6_aton_fail_ok ( "20012:ba8:0:1d4::6950:5845" ); - inet6_aton_fail_ok ( "200z:ba8:0:1d4::6950:5845" ); - inet6_aton_fail_ok ( "2001.ba8:0:1d4::6950:5845" ); - inet6_aton_fail_ok ( "2001:db8:1:1:1:1:1" ); - inet6_aton_fail_ok ( "2001:db8:1:1:1:1:1:1:2" ); - inet6_aton_fail_ok ( "2001:db8::1::2" ); - inet6_aton_fail_ok ( "2001:ba8:0:1d4:::6950:5845" ); - inet6_aton_fail_ok ( ":::" ); -} - -/** IPv6 self-test */ -struct self_test ipv6_test __self_test = { - .name = "ipv6", - .exec = ipv6_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/linebuf_test.c b/qemu/roms/ipxe/src/tests/linebuf_test.c deleted file mode 100644 index 0dd486e9d..000000000 --- a/qemu/roms/ipxe/src/tests/linebuf_test.c +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Copyright (C) 2015 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Line buffer self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include - -/** Define inline raw data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define inline lines */ -#define LINES(...) { __VA_ARGS__ } - -/** A line buffer test */ -struct linebuf_test { - /** Raw data */ - const void *data; - /** Length of raw data */ - size_t len; - /** Expected sequence of lines */ - const char **lines; - /** Number of expected lines */ - unsigned int count; -}; - -/** Line buffer test expected failure indicator */ -static const char linebuf_failure[1]; - -/** - * Define a line buffer test - * - * @v name Test name - * @v DATA Raw data - * @v LINES Expected sequence of lines - * @ret test Line buffer test - */ -#define LINEBUF_TEST( name, DATA, LINES ) \ - static const char name ## _data[] = DATA; \ - static const char * name ## _lines[] = LINES; \ - static struct linebuf_test name = { \ - .data = name ## _data, \ - .len = ( sizeof ( name ## _data ) - 1 /* NUL */ ), \ - .lines = name ## _lines, \ - .count = ( sizeof ( name ## _lines ) / \ - sizeof ( name ## _lines[0] ) ), \ - } - -/** Simple line buffer test */ -LINEBUF_TEST ( simple, - ( "HTTP/1.1 200 OK\r\n" - "Content-Length: 123\r\n" - "Content-Type: text/plain\r\n" - "\r\n" ), - LINES ( "HTTP/1.1 200 OK", - "Content-Length: 123", - "Content-Type: text/plain", - "" ) ); - -/** Mixed line terminators */ -LINEBUF_TEST ( mixed, - ( "LF only\n" "CRLF\r\n" "\n" "\n" "\r\n" "\r\n" "CR only\r" ), - LINES ( "LF only", "CRLF", "", "", "", "", - NULL /* \r should not be treated as a terminator */ ) ); - -/** Split consumption: part 1 */ -LINEBUF_TEST ( split_1, - ( "This line was" ), - LINES ( NULL ) ); - -/** Split consumption: part 2 */ -LINEBUF_TEST ( split_2, - ( " split across" ), - LINES ( NULL ) ); - -/** Split consumption: part 3 */ -LINEBUF_TEST ( split_3, - ( " multiple calls\r\nand so was this one\r" ), - LINES ( "This line was split across multiple calls", NULL ) ); - -/** Split consumption: part 4 */ -LINEBUF_TEST ( split_4, - ( "\nbut not this one\r\n" ), - LINES ( "and so was this one", "but not this one" ) ); - -/** Split consumption: part 5 */ -LINEBUF_TEST ( split_5, - ( "" ), - LINES ( NULL ) ); - -/** Split consumption: part 6 */ -LINEBUF_TEST ( split_6, - ( "This line came after a zero-length call\r\n" ), - LINES ( "This line came after a zero-length call" ) ); - -/** Embedded NULs */ -LINEBUF_TEST ( embedded_nuls, - ( "This\r\ntest\r\nincludes\r\n\r\nsome\0binary\0data\r\n" ), - LINES ( "This", "test", "includes", "", linebuf_failure ) ); - -/** - * Report line buffer initialisation test result - * - * @v linebuf Line buffer - * @v file Test code file - * @v line Test code line - */ -static void linebuf_init_okx ( struct line_buffer *linebuf, - const char *file, unsigned int line ) { - - /* Initialise line buffer */ - memset ( linebuf, 0, sizeof ( *linebuf ) ); - okx ( buffered_line ( linebuf ) == NULL, file, line ); -} -#define linebuf_init_ok( linebuf ) \ - linebuf_init_okx ( linebuf, __FILE__, __LINE__ ) - -/** - * Report line buffer consumption test result - * - * @v test Line buffer test - * @v linebuf Line buffer - * @v file Test code file - * @v line Test code line - */ -static void linebuf_consume_okx ( struct linebuf_test *test, - struct line_buffer *linebuf, - const char *file, unsigned int line ) { - const char *data = test->data; - size_t remaining = test->len; - int len; - unsigned int i; - const char *expected; - char *actual; - int rc; - - DBGC ( test, "LINEBUF %p:\n", test ); - DBGC_HDA ( test, 0, data, remaining ); - - /* Consume data one line at a time */ - for ( i = 0 ; i < test->count ; i++ ) { - - /* Add data to line buffer */ - len = line_buffer ( linebuf, data, remaining ); - - /* Get buffered line, if any */ - actual = buffered_line ( linebuf ); - if ( len < 0 ) { - rc = len; - DBGC ( test, "LINEBUF %p %s\n", test, strerror ( rc ) ); - } else if ( actual != NULL ) { - DBGC ( test, "LINEBUF %p \"%s\" (consumed %d)\n", - test, actual, len ); - } else { - DBGC ( test, "LINEBUF %p unterminated (consumed %d)\n", - test, len ); - } - - /* Check for success/failure */ - expected = test->lines[i]; - if ( expected == linebuf_failure ) { - rc = len; - okx ( rc < 0, file, line ); - okx ( remaining > 0, file, line ); - return; - } - okx ( len >= 0, file, line ); - okx ( ( ( size_t ) len ) <= remaining, file, line ); - - /* Check expected result */ - if ( expected == NULL ) { - okx ( actual == NULL, file, line ); - } else { - okx ( actual != NULL, file, line ); - okx ( strcmp ( actual, expected ) == 0, file, line ); - } - - /* Consume data */ - data += len; - remaining -= len; - } - - /* Check that all data was consumed */ - okx ( remaining == 0, file, line ); -} -#define linebuf_consume_ok( test, linebuf ) \ - linebuf_consume_okx ( test, linebuf, __FILE__, __LINE__ ) - -/** - * Report line buffer accumulation test result - * - * @v test Line buffer test - * @v linebuf Line buffer - * @v file Test code file - * @v line Test code line - */ -static void linebuf_accumulated_okx ( struct linebuf_test *test, - struct line_buffer *linebuf, - const char *file, unsigned int line ) { - const char *actual; - const char *expected; - unsigned int i; - - /* Check each accumulated line */ - actual = linebuf->data; - for ( i = 0 ; i < test->count ; i++ ) { - - /* Check accumulated line */ - okx ( actual != NULL, file, line ); - okx ( actual >= linebuf->data, file, line ); - expected = test->lines[i]; - if ( ( expected == NULL ) || ( expected == linebuf_failure ) ) - return; - okx ( strcmp ( actual, expected ) == 0, file, line ); - - /* Move to next line */ - actual += ( strlen ( actual ) + 1 /* NUL */ ); - okx ( actual <= ( linebuf->data + linebuf->len ), file, line ); - } -} -#define linebuf_accumulated_ok( test, linebuf ) \ - linebuf_accumulated_okx ( test, linebuf, __FILE__, __LINE__ ) - -/** - * Report line buffer emptying test result - * - * @v linebuf Line buffer - * @v file Test code file - * @v line Test code line - */ -static void linebuf_empty_okx ( struct line_buffer *linebuf, - const char *file, unsigned int line ) { - - /* Empty line buffer */ - empty_line_buffer ( linebuf ); - okx ( buffered_line ( linebuf ) == NULL, file, line ); -} -#define linebuf_empty_ok( linebuf ) \ - linebuf_empty_okx ( linebuf, __FILE__, __LINE__ ) - -/** - * Report line buffer combined test result - * - * @v test Line buffer test - * @v file Test code file - * @v line Test code line - */ -static void linebuf_okx ( struct linebuf_test *test, const char *file, - unsigned int line ) { - struct line_buffer linebuf; - - linebuf_init_okx ( &linebuf, file, line ); - linebuf_consume_okx ( test, &linebuf, file, line ); - linebuf_accumulated_okx ( test, &linebuf, file, line ); - linebuf_empty_okx ( &linebuf, file, line ); -} -#define linebuf_ok( test ) \ - linebuf_okx ( test, __FILE__, __LINE__ ) - -/** - * Perform line buffer self-tests - * - */ -static void linebuf_test_exec ( void ) { - struct line_buffer linebuf; - - /* Basic tests */ - linebuf_ok ( &simple ); - linebuf_ok ( &mixed ); - - /* Split consumption test */ - linebuf_init_ok ( &linebuf ); - linebuf_consume_ok ( &split_1, &linebuf ); - linebuf_consume_ok ( &split_2, &linebuf ); - linebuf_consume_ok ( &split_3, &linebuf ); - linebuf_consume_ok ( &split_4, &linebuf ); - linebuf_consume_ok ( &split_5, &linebuf ); - linebuf_consume_ok ( &split_6, &linebuf ); - linebuf_empty_ok ( &linebuf ); - - /* Embedded NULs */ - linebuf_ok ( &embedded_nuls ); -} - -/** Line buffer self-test */ -struct self_test linebuf_test __self_test = { - .name = "linebuf", - .exec = linebuf_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/list_test.c b/qemu/roms/ipxe/src/tests/list_test.c deleted file mode 100644 index 352c87da0..000000000 --- a/qemu/roms/ipxe/src/tests/list_test.c +++ /dev/null @@ -1,487 +0,0 @@ -/* - * Copyright (C) 2011 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * List function tests - * - */ - -/* Forcibly enable assertions for list_check() */ -#undef NDEBUG - -#include -#include -#include -#include -#include - -/** A list test structure */ -struct list_test { - /** List element */ - struct list_head list; - /** Label */ - char label; -}; - -/** List test elements */ -static struct list_test list_tests[] = { - { .label = '0' }, - { .label = '1' }, - { .label = '2' }, - { .label = '3' }, - { .label = '4' }, - { .label = '5' }, - { .label = '6' }, - { .label = '7' }, - { .label = '8' }, - { .label = '9' }, -}; - -/** Test list */ -static LIST_HEAD ( test_list ); - -/** - * Check list contents are as expected - * - * @v list Test list - * @v expected Expected contents - * @v ok List contents are as expected - */ -static int list_check_contents ( struct list_head *list, - const char *expected ) { - struct list_test *entry; - size_t num_entries = 0; - - /* Determine size of list */ - list_for_each_entry ( entry, list, list ) - num_entries++; - - { - char found[ num_entries + 1 ]; - char found_rev[ num_entries + 1 ]; - char *tmp; - - /* Build up list content string */ - tmp = found; - list_for_each_entry ( entry, list, list ) - *(tmp++) = entry->label; - *tmp = '\0'; - - /* Sanity check reversed list */ - tmp = &found_rev[ sizeof ( found_rev ) - 1 ]; - *tmp = '\0'; - list_for_each_entry_reverse ( entry, list, list ) - *(--tmp) = entry->label; - if ( strcmp ( found, found_rev ) != 0 ) { - printf ( "FAILURE: list reversal mismatch (forward " - "\"%s\", reverse \"%s\")\n", - found, found_rev ); - return 0; - } - - /* Compare against expected content */ - if ( strcmp ( found, expected ) == 0 ) { - return 1; - } else { - printf ( "FAILURE: expected \"%s\", got \"%s\"\n", - expected, found ); - return 0; - } - } -} - -/** - * Report list test result - * - * @v list Test list - * @v expected Expected contents - */ -#define list_contents_ok( list, expected ) do { \ - ok ( list_check_contents ( (list), (expected) ) ); \ - } while ( 0 ) - -/** - * Report list iteration test result - * - * @v macro Iterator macro - * @v expected Expected contents - * @v pos Iterator - * @v ... Arguments to iterator macro - */ -#define list_iterate_ok( macro, expected, pos, ... ) do { \ - const char *check = expected; \ - macro ( pos, __VA_ARGS__ ) { \ - struct list_test *entry = \ - list_entry ( pos, struct list_test, \ - list ); \ - ok ( entry->label == *(check++) ); \ - } \ - ok ( *check == '\0' ); \ - } while ( 0 ) - -/** - * Report list entry iteration test result - * - * @v macro Iterator macro - * @v expected Expected contents - * @v pos Iterator - * @v ... Arguments to iterator macro - */ -#define list_iterate_entry_ok( macro, expected, pos, ... ) do { \ - const char *check = expected; \ - macro ( pos, __VA_ARGS__ ) { \ - ok ( (pos)->label == *(check++) ); \ - } \ - ok ( *check == '\0' ); \ - } while ( 0 ) - -/** - * Perform list self-test - * - */ -static void list_test_exec ( void ) { - struct list_head *list = &test_list; - struct list_head target_list; - struct list_head *target = &target_list; - struct list_head *raw_pos; - struct list_test *pos; - struct list_test *tmp; - - /* Test initialiser and list_empty() */ - ok ( list_empty ( list ) ); - list_contents_ok ( list, "" ); - - /* Test list_add(), list_add_tail() and list_del() */ - INIT_LIST_HEAD ( list ); - list_contents_ok ( list, "" ); - list_add ( &list_tests[4].list, list ); /* prepend */ - list_contents_ok ( list, "4" ); - list_add ( &list_tests[2].list, list ); /* prepend */ - list_contents_ok ( list, "24" ); - list_add_tail ( &list_tests[7].list, list ); /* append */ - list_contents_ok ( list, "247" ); - list_add ( &list_tests[1].list, &list_tests[4].list ); /* after */ - list_contents_ok ( list, "2417" ); - list_add_tail ( &list_tests[8].list, &list_tests[7].list ); /* before */ - list_contents_ok ( list, "24187" ); - list_del ( &list_tests[4].list ); /* delete middle */ - list_contents_ok ( list, "2187" ); - list_del ( &list_tests[2].list ); /* delete first */ - list_contents_ok ( list, "187" ); - list_del ( &list_tests[7].list ); /* delete last */ - list_contents_ok ( list, "18" ); - list_del ( &list_tests[1].list ); /* delete all */ - list_del ( &list_tests[8].list ); /* delete all */ - list_contents_ok ( list, "" ); - ok ( list_empty ( list ) ); - - /* Test list_is_singular() */ - INIT_LIST_HEAD ( list ); - ok ( ! list_is_singular ( list ) ); - list_add ( &list_tests[1].list, list ); - ok ( list_is_singular ( list ) ); - list_add ( &list_tests[3].list, list ); - ok ( ! list_is_singular ( list ) ); - list_del ( &list_tests[1].list ); - ok ( list_is_singular ( list ) ); - - /* Test list_is_last() */ - INIT_LIST_HEAD ( list ); - list_add_tail ( &list_tests[6].list, list ); - ok ( list_is_last ( &list_tests[6].list, list ) ); - list_add_tail ( &list_tests[4].list, list ); - ok ( list_is_last ( &list_tests[4].list, list ) ); - ok ( ! list_is_last ( &list_tests[6].list, list ) ); - - /* Test list_cut_position() - empty list */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_cut_position ( target, list, list ); - list_contents_ok ( list, "" ); - list_contents_ok ( target, "" ); - - /* Test list_cut_position() - singular list, move nothing */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[4].list, list ); - list_cut_position ( target, list, list ); - list_contents_ok ( list, "4" ); - list_contents_ok ( target, "" ); - - /* Test list_cut_position() - singular list, move singular entry */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[9].list, list ); - list_cut_position ( target, list, &list_tests[9].list ); - list_contents_ok ( list, "" ); - list_contents_ok ( target, "9" ); - - /* Test list_cut_position() - multi-entry list, move nothing */ - INIT_LIST_HEAD ( list ); - list_add_tail ( &list_tests[3].list, list ); - list_add_tail ( &list_tests[2].list, list ); - list_add_tail ( &list_tests[7].list, list ); - INIT_LIST_HEAD ( target ); - list_cut_position ( target, list, list ); - list_contents_ok ( list, "327" ); - list_contents_ok ( target, "" ); - - /* Test list_cut_position() - multi-entry list, move some */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[8].list, list ); - list_add_tail ( &list_tests[0].list, list ); - list_add_tail ( &list_tests[9].list, list ); - list_add_tail ( &list_tests[3].list, list ); - list_add_tail ( &list_tests[2].list, list ); - list_cut_position ( target, list, &list_tests[0].list ); - list_contents_ok ( list, "932" ); - list_contents_ok ( target, "80" ); - - /* Test list_cut_position() - multi-entry list, move everything */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[3].list, list ); - list_add_tail ( &list_tests[5].list, list ); - list_add_tail ( &list_tests[4].list, list ); - list_add_tail ( &list_tests[7].list, list ); - list_add_tail ( &list_tests[1].list, list ); - list_cut_position ( target, list, &list_tests[1].list ); - list_contents_ok ( list, "" ); - list_contents_ok ( target, "35471" ); - - /* Test list_splice() - empty list */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_splice ( list, target ); - list_contents_ok ( list, "" ); - list_contents_ok ( target, "" ); - - /* Test list_splice() - both lists empty */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_splice ( list, target ); - list_contents_ok ( target, "" ); - - /* Test list_splice() - source list empty */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[1].list, target ); - list_add_tail ( &list_tests[3].list, target ); - list_splice ( list, &list_tests[1].list ); - list_contents_ok ( target, "13" ); - - /* Test list_splice() - destination list empty */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[6].list, list ); - list_add_tail ( &list_tests[5].list, list ); - list_add_tail ( &list_tests[2].list, list ); - list_splice ( list, target ); - list_contents_ok ( target, "652" ); - - /* Test list_splice() - both lists non-empty */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[8].list, list ); - list_add_tail ( &list_tests[4].list, list ); - list_add_tail ( &list_tests[5].list, list ); - list_add_tail ( &list_tests[1].list, target ); - list_add_tail ( &list_tests[9].list, target ); - list_splice ( list, &list_tests[1].list ); - list_contents_ok ( target, "18459" ); - - /* Test list_splice_tail() - both lists empty */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_splice_tail ( list, target ); - list_contents_ok ( target, "" ); - - /* Test list_splice_tail() - source list empty */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[5].list, target ); - list_splice_tail ( list, &list_tests[5].list ); - list_contents_ok ( target, "5" ); - - /* Test list_splice_tail() - destination list empty */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[2].list, list ); - list_add_tail ( &list_tests[1].list, list ); - list_add_tail ( &list_tests[0].list, list ); - list_splice_tail ( list, target ); - list_contents_ok ( target, "210" ); - - /* Test list_splice_tail() - both lists non-empty */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[9].list, list ); - list_add_tail ( &list_tests[5].list, list ); - list_add_tail ( &list_tests[7].list, list ); - list_add_tail ( &list_tests[2].list, target ); - list_add_tail ( &list_tests[4].list, target ); - list_splice_tail ( list, &list_tests[2].list ); - list_contents_ok ( target, "95724" ); - - /* Test list_splice_init() */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[4].list, list ); - list_add_tail ( &list_tests[1].list, target ); - list_splice_init ( list, target ); - ok ( list_empty ( list ) ); - list_contents_ok ( list, "" ); - list_contents_ok ( target, "41" ); - - /* Test list_splice_tail_init() */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( target ); - list_add_tail ( &list_tests[3].list, list ); - list_add_tail ( &list_tests[2].list, list ); - list_add_tail ( &list_tests[5].list, target ); - list_splice_tail_init ( list, &list_tests[5].list ); - ok ( list_empty ( list ) ); - list_contents_ok ( list, "" ); - list_contents_ok ( target, "325" ); - - /* Test list_entry() */ - INIT_LIST_HEAD ( &list_tests[3].list ); // for list_check() - ok ( list_entry ( &list_tests[3].list, struct list_test, list ) - == &list_tests[3] ); - - /* Test list_first_entry() and list_last_entry() */ - INIT_LIST_HEAD ( list ); - list_add_tail ( &list_tests[9].list, list ); - list_add_tail ( &list_tests[5].list, list ); - list_add_tail ( &list_tests[6].list, list ); - ok ( list_first_entry ( list, struct list_test, list ) - == &list_tests[9] ); - ok ( list_last_entry ( list, struct list_test, list ) - == &list_tests[6] ); - list_del ( &list_tests[9].list ); - ok ( list_first_entry ( list, struct list_test, list ) - == &list_tests[5] ); - ok ( list_last_entry ( list, struct list_test, list ) - == &list_tests[6] ); - list_del ( &list_tests[6].list ); - ok ( list_first_entry ( list, struct list_test, list ) - == &list_tests[5] ); - ok ( list_last_entry ( list, struct list_test, list ) - == &list_tests[5] ); - list_del ( &list_tests[5].list ); - ok ( list_first_entry ( list, struct list_test, list ) == NULL ); - ok ( list_last_entry ( list, struct list_test, list ) == NULL ); - - /* Test list_for_each() */ - INIT_LIST_HEAD ( list ); - list_add_tail ( &list_tests[6].list, list ); - list_add_tail ( &list_tests[7].list, list ); - list_add_tail ( &list_tests[3].list, list ); - list_iterate_ok ( list_for_each, "673", raw_pos, list ); - - /* Test list_for_each_entry() and list_for_each_entry_reverse() */ - INIT_LIST_HEAD ( list ); - list_add_tail ( &list_tests[3].list, list ); - list_add_tail ( &list_tests[2].list, list ); - list_add_tail ( &list_tests[6].list, list ); - list_add_tail ( &list_tests[9].list, list ); - list_iterate_entry_ok ( list_for_each_entry, "3269", - pos, list, list ); - list_iterate_entry_ok ( list_for_each_entry_reverse, "9623", - pos, list, list ); - - /* Test list_for_each_entry_safe() */ - INIT_LIST_HEAD ( list ); - list_add_tail ( &list_tests[2].list, list ); - list_add_tail ( &list_tests[4].list, list ); - list_add_tail ( &list_tests[1].list, list ); - { - char *expected = "241"; - list_for_each_entry_safe ( pos, tmp, list, list ) { - list_contents_ok ( list, expected ); - list_del ( &pos->list ); - expected++; - list_contents_ok ( list, expected ); - } - } - ok ( list_empty ( list ) ); - - /* Test list_for_each_entry_continue() and - * list_for_each_entry_continue_reverse() - */ - INIT_LIST_HEAD ( list ); - list_add_tail ( &list_tests[4].list, list ); - list_add_tail ( &list_tests[7].list, list ); - list_add_tail ( &list_tests[2].list, list ); - list_add_tail ( &list_tests[9].list, list ); - list_add_tail ( &list_tests[3].list, list ); - pos = &list_tests[7]; - list_iterate_entry_ok ( list_for_each_entry_continue, "293", - pos, list, list ); - ok ( pos == list_entry ( list, struct list_test, list ) ); - list_iterate_entry_ok ( list_for_each_entry_continue, "47293", - pos, list, list ); - pos = &list_tests[3]; - list_iterate_entry_ok ( list_for_each_entry_continue, "", - pos, list, list ); - pos = &list_tests[2]; - list_iterate_entry_ok ( list_for_each_entry_continue_reverse, "74", - pos, list, list ); - ok ( pos == list_entry ( list, struct list_test, list ) ); - list_iterate_entry_ok ( list_for_each_entry_continue_reverse, "39274", - pos, list, list ); - pos = &list_tests[4]; - list_iterate_entry_ok ( list_for_each_entry_continue_reverse, "", - pos, list, list ); - - /* Test list_contains() and list_contains_entry() */ - INIT_LIST_HEAD ( list ); - INIT_LIST_HEAD ( &list_tests[3].list ); - list_add ( &list_tests[8].list, list ); - list_add ( &list_tests[5].list, list ); - ok ( list_contains ( &list_tests[8].list, list ) ); - ok ( list_contains_entry ( &list_tests[8], list, list ) ); - ok ( list_contains ( &list_tests[5].list, list ) ); - ok ( list_contains_entry ( &list_tests[5], list, list ) ); - ok ( ! list_contains ( &list_tests[3].list, list ) ); - ok ( ! list_contains_entry ( &list_tests[3], list, list ) ); - - /* Test list_check_contains_entry() */ - INIT_LIST_HEAD ( list ); - list_add ( &list_tests[4].list, list ); - list_add ( &list_tests[0].list, list ); - list_add ( &list_tests[3].list, list ); - list_check_contains_entry ( &list_tests[4], list, list ); - list_check_contains_entry ( &list_tests[0], list, list ); - list_check_contains_entry ( &list_tests[3], list, list ); -} - -/** List self-test */ -struct self_test list_test __self_test = { - .name = "list", - .exec = list_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/math_test.c b/qemu/roms/ipxe/src/tests/math_test.c deleted file mode 100644 index 1a244f1eb..000000000 --- a/qemu/roms/ipxe/src/tests/math_test.c +++ /dev/null @@ -1,404 +0,0 @@ -/* - * Copyright (C) 2014 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Mathematical self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include - -/** - * Force a call to the non-constant implementation of ffsl() - * - * @v value Value - * @ret lsb Least significant bit set in value (LSB=1), or zero - */ -__attribute__ (( noinline )) int ffsl_var ( long value ) { - return ffsl ( value ); -} - -/** - * Force a call to the non-constant implementation of ffsll() - * - * @v value Value - * @ret lsb Least significant bit set in value (LSB=1), or zero - */ -__attribute__ (( noinline )) int ffsll_var ( long long value ) { - return ffsll ( value ); -} - -/** - * Force a call to the non-constant implementation of flsl() - * - * @v value Value - * @ret msb Most significant bit set in value (LSB=1), or zero - */ -__attribute__ (( noinline )) int flsl_var ( long value ) { - return flsl ( value ); -} - -/** - * Force a call to the non-constant implementation of flsll() - * - * @v value Value - * @ret msb Most significant bit set in value (LSB=1), or zero - */ -__attribute__ (( noinline )) int flsll_var ( long long value ) { - return flsll ( value ); -} - -/** - * Check current stack pointer - * - * @ret stack A value at a fixed offset from the current stack pointer - * - * Used by check_divmod() - */ -static __attribute__ (( noinline )) void * stack_check ( void ) { - int a; - void *ret; - - /* Hide the fact that we are returning the address of a local - * variable, to prevent a compiler warning. - */ - __asm__ ( "\n" : "=g" ( ret ) : "0" ( &a ) ); - - return ret; -} - -/** - * Check division/modulus operation - * - * One aspect of the calling convention for the implicit arithmetic - * functions (__udivmoddi4() etc) is whether the caller or the callee - * is expected to pop any stack-based arguments. This distinction can - * be masked if the compiler chooses to uses a frame pointer in the - * caller, since the caller will then reload the stack pointer from - * the frame pointer and so can mask an error in the value of the - * stack pointer. - * - * We run the division operation in a loop, and check that the stack - * pointer does not change value on the second iteration. To prevent - * the compiler from performing various optimisations which might - * invalidate our intended test (such as unrolling the loop, or moving - * the division operation outside the loop), we include some dummy - * inline assembly code. - */ -#define check_divmod( dividend, divisor, OP ) ( { \ - uint64_t result; \ - int count = 2; \ - void *check = NULL; \ - \ - /* Prevent compiler from unrolling the loop */ \ - __asm__ ( "\n" : "=g" ( count ) : "0" ( count ) ); \ - \ - do { \ - /* Check that stack pointer does not change between \ - * loop iterations. \ - */ \ - if ( check ) { \ - assert ( check == stack_check() ); \ - } else { \ - check = stack_check(); \ - } \ - \ - /* Perform division, preventing the compiler from \ - * moving the division out of the loop. \ - */ \ - __asm__ ( "\n" : "=g" ( dividend ), "=g" ( divisor ) \ - : "0" ( dividend ), "1" ( divisor ) ); \ - result = ( dividend OP divisor ); \ - __asm__ ( "\n" : "=g" ( result ) : "0" ( result ) ); \ - \ - } while ( --count ); \ - result; } ) - -/** - * Force a use of runtime 64-bit unsigned integer division - * - * @v dividend Dividend - * @v divisor Divisor - * @ret quotient Quotient - */ -__attribute__ (( noinline )) uint64_t u64div_var ( uint64_t dividend, - uint64_t divisor ) { - - return check_divmod ( dividend, divisor, / ); -} - -/** - * Force a use of runtime 64-bit unsigned integer modulus - * - * @v dividend Dividend - * @v divisor Divisor - * @ret remainder Remainder - */ -__attribute__ (( noinline )) uint64_t u64mod_var ( uint64_t dividend, - uint64_t divisor ) { - - return check_divmod ( dividend, divisor, % ); -} - -/** - * Force a use of runtime 64-bit signed integer division - * - * @v dividend Dividend - * @v divisor Divisor - * @ret quotient Quotient - */ -__attribute__ (( noinline )) int64_t s64div_var ( int64_t dividend, - int64_t divisor ) { - - return check_divmod ( dividend, divisor, / ); -} - -/** - * Force a use of runtime 64-bit unsigned integer modulus - * - * @v dividend Dividend - * @v divisor Divisor - * @ret remainder Remainder - */ -__attribute__ (( noinline )) int64_t s64mod_var ( int64_t dividend, - int64_t divisor ) { - - return check_divmod ( dividend, divisor, % ); -} - -/** - * Report a ffsl() test result - * - * @v value Value - * @v lsb Expected LSB - * @v file Test code file - * @v line Test code line - */ -static inline __attribute__ (( always_inline )) void -ffsl_okx ( long value, int lsb, const char *file, unsigned int line ) { - - /* Verify as a constant (requires to be inlined) */ - okx ( ffsl ( value ) == lsb, file, line ); - - /* Verify as a non-constant */ - okx ( ffsl_var ( value ) == lsb, file, line ); -} -#define ffsl_ok( value, lsb ) ffsl_okx ( value, lsb, __FILE__, __LINE__ ) - -/** - * Report a ffsll() test result - * - * @v value Value - * @v lsb Expected LSB - * @v file Test code file - * @v line Test code line - */ -static inline __attribute__ (( always_inline )) void -ffsll_okx ( long long value, int lsb, const char *file, unsigned int line ) { - - /* Verify as a constant (requires to be inlined) */ - okx ( ffsll ( value ) == lsb, file, line ); - - /* Verify as a non-constant */ - okx ( ffsll_var ( value ) == lsb, file, line ); -} -#define ffsll_ok( value, lsb ) ffsll_okx ( value, lsb, __FILE__, __LINE__ ) - -/** - * Report a flsl() test result - * - * @v value Value - * @v msb Expected MSB - * @v file Test code file - * @v line Test code line - */ -static inline __attribute__ (( always_inline )) void -flsl_okx ( long value, int msb, const char *file, unsigned int line ) { - - /* Verify as a constant (requires to be inlined) */ - okx ( flsl ( value ) == msb, file, line ); - - /* Verify as a non-constant */ - okx ( flsl_var ( value ) == msb, file, line ); -} -#define flsl_ok( value, msb ) flsl_okx ( value, msb, __FILE__, __LINE__ ) - -/** - * Report a flsll() test result - * - * @v value Value - * @v msb Expected MSB - * @v file Test code file - * @v line Test code line - */ -static inline __attribute__ (( always_inline )) void -flsll_okx ( long long value, int msb, const char *file, unsigned int line ) { - - /* Verify as a constant (requires to be inlined) */ - okx ( flsll ( value ) == msb, file, line ); - - /* Verify as a non-constant */ - okx ( flsll_var ( value ) == msb, file, line ); -} -#define flsll_ok( value, msb ) flsll_okx ( value, msb, __FILE__, __LINE__ ) - -/** - * Report a 64-bit unsigned integer division test result - * - * @v dividend Dividend - * @v divisor Divisor - * @v quotient Quotient - * @v remainder Remainder - * @v file Test code file - * @v line Test code line - */ -static void u64divmod_okx ( uint64_t dividend, uint64_t divisor, - uint64_t quotient, uint64_t remainder, - const char *file, unsigned int line ) { - - /* Sanity check */ - okx ( ( ( divisor * quotient ) + remainder ) == dividend, file, line ); - - /* Check division */ - okx ( u64div_var ( dividend, divisor ) == quotient, file, line ); - - /* Check modulus */ - okx ( u64mod_var ( dividend, divisor ) == remainder, file, line ); -} -#define u64divmod_ok( dividend, divisor, quotient, remainder ) \ - u64divmod_okx ( dividend, divisor, quotient, remainder, \ - __FILE__, __LINE__ ) - -/** - * Report a 64-bit signed integer division test result - * - * @v dividend Dividend - * @v divisor Divisor - * @v quotient Quotient - * @v remainder Remainder - * @v file Test code file - * @v line Test code line - */ -static void s64divmod_okx ( int64_t dividend, int64_t divisor, - int64_t quotient, int64_t remainder, - const char *file, unsigned int line ) { - - /* Sanity check */ - okx ( ( ( divisor * quotient ) + remainder ) == dividend, file, line ); - - /* Check division */ - okx ( s64div_var ( dividend, divisor ) == quotient, file, line ); - - /* Check modulus */ - okx ( s64mod_var ( dividend, divisor ) == remainder, file, line ); -} -#define s64divmod_ok( dividend, divisor, quotient, remainder ) \ - s64divmod_okx ( dividend, divisor, quotient, remainder, \ - __FILE__, __LINE__ ) - -/** - * Perform mathematical self-tests - * - */ -static void math_test_exec ( void ) { - - /* Test ffsl() */ - ffsl_ok ( 0, 0 ); - ffsl_ok ( 1, 1 ); - ffsl_ok ( 255, 1 ); - ffsl_ok ( 256, 9 ); - ffsl_ok ( 257, 1 ); - ffsl_ok ( 0x54850596, 2 ); - ffsl_ok ( 0x80000000, 32 ); - - /* Test ffsll() */ - ffsll_ok ( 0, 0 ); - ffsll_ok ( 1, 1 ); - ffsll_ok ( 0x6d63623330ULL, 5 ); - ffsll_ok ( 0x80000000UL, 32 ); - ffsll_ok ( 0x8000000000000000ULL, 64 ); - - /* Test flsl() */ - flsl_ok ( 0, 0 ); - flsl_ok ( 1, 1 ); - flsl_ok ( 255, 8 ); - flsl_ok ( 256, 9 ); - flsl_ok ( 257, 9 ); - flsl_ok ( 0x69505845, 31 ); - flsl_ok ( -1U, ( 8 * sizeof ( int ) ) ); - flsl_ok ( -1UL, ( 8 * sizeof ( long ) ) ); - - /* Test flsll() */ - flsll_ok ( 0, 0 ); - flsll_ok ( 1, 1 ); - flsll_ok ( 0x6d63623330ULL, 39 ); - flsll_ok ( -1U, ( 8 * sizeof ( int ) ) ); - flsll_ok ( -1UL, ( 8 * sizeof ( long ) ) ); - flsll_ok ( -1ULL, ( 8 * sizeof ( long long ) ) ); - - /* Test 64-bit arithmetic - * - * On a 64-bit machine, these tests are fairly meaningless. - * - * On a 32-bit machine, these tests verify the correct - * operation of our libgcc functions __udivmoddi4() - * etc. (including checking that the implicit calling - * convention assumed by gcc matches our expectations). - */ - u64divmod_ok ( 0x2b90ddccf699f765ULL, 0xed9f5e73ULL, - 0x2eef6ab4ULL, 0x0e12f089ULL ); - s64divmod_ok ( 0x2b90ddccf699f765ULL, 0xed9f5e73ULL, - 0x2eef6ab4ULL, 0x0e12f089ULL ); - u64divmod_ok ( 0xc09e00dcb9e34b54ULL, 0x35968185cdc744f3ULL, - 3, 0x1fda7c4b508d7c7bULL ); - s64divmod_ok ( -0x3f61ff23461cb4acLL, 0x35968185cdc744f3ULL, - -1LL, -0x9cb7d9d78556fb9LL ); - u64divmod_ok ( 0, 0x5b2f2737f4ffULL, 0, 0 ); - s64divmod_ok ( 0, 0xbb00ded72766207fULL, 0, 0 ); - - /* Test integer square root */ - ok ( isqrt ( 0 ) == 0 ); - ok ( isqrt ( 1 ) == 1 ); - ok ( isqrt ( 255 ) == 15 ); - ok ( isqrt ( 256 ) == 16 ); - ok ( isqrt ( 257 ) == 16 ); - ok ( isqrt ( 0xa53df2adUL ) == 52652 ); - ok ( isqrt ( 0x123793c6UL ) == 17482 ); - ok ( isqrt ( -1UL ) == ( -1UL >> ( 8 * sizeof ( unsigned long ) / 2 ))); -} - -/** Mathematical self-tests */ -struct self_test math_test __self_test = { - .name = "math", - .exec = math_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/md5_test.c b/qemu/roms/ipxe/src/tests/md5_test.c deleted file mode 100644 index e9ed2716a..000000000 --- a/qemu/roms/ipxe/src/tests/md5_test.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * MD5 tests - * - * Test inputs borrowed from NIST SHA-1 tests, with results calculated - * using md5sum. - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include "digest_test.h" - -/* Empty test vector (digest obtained from "md5sum /dev/null") */ -DIGEST_TEST ( md5_empty, &md5_algorithm, DIGEST_EMPTY, - DIGEST ( 0xd4, 0x1d, 0x8c, 0xd9, 0x8f, 0x00, 0xb2, 0x04, 0xe9, - 0x80, 0x09, 0x98, 0xec, 0xf8, 0x42, 0x7e ) ); - -/* NIST test vector "abc" (digest obtained from "md5sum ") */ -DIGEST_TEST ( md5_nist_abc, &md5_algorithm, DIGEST_NIST_ABC, - DIGEST ( 0x90, 0x01, 0x50, 0x98, 0x3c, 0xd2, 0x4f, 0xb0, 0xd6, - 0x96, 0x3f, 0x7d, 0x28, 0xe1, 0x7f, 0x72 ) ); - -/* NIST test vector "abc...opq" (digest obtained from "md5sum ") */ -DIGEST_TEST ( md5_nist_abc_opq, &md5_algorithm, DIGEST_NIST_ABC_OPQ, - DIGEST ( 0x82, 0x15, 0xef, 0x07, 0x96, 0xa2, 0x0b, 0xca, 0xaa, - 0xe1, 0x16, 0xd3, 0x87, 0x6c, 0x66, 0x4a ) ); - -/** - * Perform MD5 self-test - * - */ -static void md5_test_exec ( void ) { - - /* Correctness tests */ - digest_ok ( &md5_empty ); - digest_ok ( &md5_nist_abc ); - digest_ok ( &md5_nist_abc_opq ); - - /* Speed tests */ - DBG ( "MD5 required %ld cycles per byte\n", - digest_cost ( &md5_algorithm ) ); -} - -/** MD5 self-test */ -struct self_test md5_test __self_test = { - .name = "md5", - .exec = md5_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/memcpy_test.c b/qemu/roms/ipxe/src/tests/memcpy_test.c deleted file mode 100644 index 0247c71d4..000000000 --- a/qemu/roms/ipxe/src/tests/memcpy_test.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * memcpy() self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include - -/** Number of sample iterations for profiling */ -#define PROFILE_COUNT 16 - -/* Provide global functions to allow inspection of generated code */ - -void memcpy_0 ( void *dest, void *src ) { memcpy ( dest, src, 0 ); } -void memcpy_1 ( void *dest, void *src ) { memcpy ( dest, src, 1 ); } -void memcpy_2 ( void *dest, void *src ) { memcpy ( dest, src, 2 ); } -void memcpy_3 ( void *dest, void *src ) { memcpy ( dest, src, 3 ); } -void memcpy_4 ( void *dest, void *src ) { memcpy ( dest, src, 4 ); } -void memcpy_5 ( void *dest, void *src ) { memcpy ( dest, src, 5 ); } -void memcpy_6 ( void *dest, void *src ) { memcpy ( dest, src, 6 ); } -void memcpy_7 ( void *dest, void *src ) { memcpy ( dest, src, 7 ); } -void memcpy_8 ( void *dest, void *src ) { memcpy ( dest, src, 8 ); } -void memcpy_9 ( void *dest, void *src ) { memcpy ( dest, src, 9 ); } -void memcpy_10 ( void *dest, void *src ) { memcpy ( dest, src, 10 ); } -void memcpy_11 ( void *dest, void *src ) { memcpy ( dest, src, 11 ); } -void memcpy_12 ( void *dest, void *src ) { memcpy ( dest, src, 12 ); } -void memcpy_13 ( void *dest, void *src ) { memcpy ( dest, src, 13 ); } -void memcpy_14 ( void *dest, void *src ) { memcpy ( dest, src, 14 ); } -void memcpy_15 ( void *dest, void *src ) { memcpy ( dest, src, 15 ); } -void memcpy_16 ( void *dest, void *src ) { memcpy ( dest, src, 16 ); } -void memcpy_17 ( void *dest, void *src ) { memcpy ( dest, src, 17 ); } -void memcpy_18 ( void *dest, void *src ) { memcpy ( dest, src, 18 ); } -void memcpy_19 ( void *dest, void *src ) { memcpy ( dest, src, 19 ); } -void memcpy_20 ( void *dest, void *src ) { memcpy ( dest, src, 20 ); } -void memcpy_21 ( void *dest, void *src ) { memcpy ( dest, src, 21 ); } -void memcpy_22 ( void *dest, void *src ) { memcpy ( dest, src, 22 ); } -void memcpy_23 ( void *dest, void *src ) { memcpy ( dest, src, 23 ); } -void memcpy_24 ( void *dest, void *src ) { memcpy ( dest, src, 24 ); } -void memcpy_25 ( void *dest, void *src ) { memcpy ( dest, src, 25 ); } -void memcpy_26 ( void *dest, void *src ) { memcpy ( dest, src, 26 ); } -void memcpy_27 ( void *dest, void *src ) { memcpy ( dest, src, 27 ); } -void memcpy_28 ( void *dest, void *src ) { memcpy ( dest, src, 28 ); } -void memcpy_29 ( void *dest, void *src ) { memcpy ( dest, src, 29 ); } -void memcpy_30 ( void *dest, void *src ) { memcpy ( dest, src, 30 ); } -void memcpy_31 ( void *dest, void *src ) { memcpy ( dest, src, 31 ); } - -/** - * Force a call to the variable-length implementation of memcpy() - * - * @v dest Destination address - * @v src Source address - * @v len Length of data - * @ret dest Destination address - */ -__attribute__ (( noinline )) void * memcpy_var ( void *dest, const void *src, - size_t len ) { - return memcpy ( dest, src, len ); -} - -/** - * Perform a constant-length memcpy() test - * - * ... Data to copy - */ -#define MEMCPY_TEST_CONSTANT( ... ) do { \ - static const uint8_t src[] = { __VA_ARGS__ }; \ - uint8_t dest_const[ 1 + sizeof ( src ) + 1 ]; \ - uint8_t dest_var[ 1 + sizeof ( src ) + 1 ]; \ - \ - dest_const[0] = 0x33; \ - dest_const[ sizeof ( dest_const ) - 1 ] = 0x44; \ - memcpy ( ( dest_const + 1 ), src, \ - ( sizeof ( dest_const ) - 2 ) ); \ - ok ( dest_const[0] == 0x33 ); \ - ok ( dest_const[ sizeof ( dest_const ) - 1 ] == 0x44 ); \ - ok ( memcmp ( ( dest_const + 1 ), src, \ - ( sizeof ( dest_const ) - 2 ) ) == 0 ); \ - \ - dest_var[0] = 0x55; \ - dest_var[ sizeof ( dest_var ) - 1 ] = 0x66; \ - memcpy_var ( ( dest_var + 1 ), src, \ - ( sizeof ( dest_var ) - 2 ) ); \ - ok ( dest_var[0] == 0x55 ); \ - ok ( dest_var[ sizeof ( dest_var ) - 1 ] == 0x66 ); \ - ok ( memcmp ( ( dest_var + 1 ), src, \ - ( sizeof ( dest_var ) - 2 ) ) == 0 ); \ - } while ( 0 ) - -/** - * Test memcpy() speed - * - * @v dest_offset Destination alignment offset - * @v src_offset Source alignment offset - * @v len Length of data to copy - */ -static void memcpy_test_speed ( unsigned int dest_offset, - unsigned int src_offset, size_t len ) { - struct profiler profiler; - uint8_t *dest; - uint8_t *src; - unsigned int i; - - /* Allocate blocks */ - dest = malloc ( len + dest_offset ); - assert ( dest != NULL ); - src = malloc ( len + src_offset ); - assert ( src != NULL ); - - /* Generate random source data */ - for ( i = 0 ; i < len ; i++ ) - src[ src_offset + i ] = random(); - - /* Check correctness of copied data */ - memcpy ( ( dest + dest_offset ), ( src + src_offset ), len ); - ok ( memcmp ( ( dest + dest_offset ), ( src + src_offset ), - len ) == 0 ); - - /* Profile memcpy() */ - memset ( &profiler, 0, sizeof ( profiler ) ); - for ( i = 0 ; i < PROFILE_COUNT ; i++ ) { - profile_start ( &profiler ); - memcpy ( ( dest + dest_offset ), ( src + src_offset ), len ); - profile_stop ( &profiler ); - } - - /* Free blocks */ - free ( dest ); - free ( src ); - - DBG ( "MEMCPY copied %zd bytes (+%d => +%d) in %ld +/- %ld ticks\n", - len, src_offset, dest_offset, profile_mean ( &profiler ), - profile_stddev ( &profiler ) ); -} - -/** - * Perform memcpy() self-tests - * - */ -static void memcpy_test_exec ( void ) { - unsigned int dest_offset; - unsigned int src_offset; - - /* Constant-length tests */ - MEMCPY_TEST_CONSTANT ( ); - MEMCPY_TEST_CONSTANT ( 0x86 ); - MEMCPY_TEST_CONSTANT ( 0x8c, 0xd3 ); - MEMCPY_TEST_CONSTANT ( 0x4e, 0x08, 0xed ); - MEMCPY_TEST_CONSTANT ( 0xcc, 0x61, 0x8f, 0x70 ); - MEMCPY_TEST_CONSTANT ( 0x6d, 0x28, 0xe0, 0x9e, 0x6d ); - MEMCPY_TEST_CONSTANT ( 0x7d, 0x13, 0x4f, 0xef, 0x17, 0xb3 ); - MEMCPY_TEST_CONSTANT ( 0x38, 0xa7, 0xd4, 0x8d, 0x44, 0x01, 0xfd ); - MEMCPY_TEST_CONSTANT ( 0x45, 0x9f, 0xf4, 0xf9, 0xf3, 0x0f, 0x99, 0x43 ); - MEMCPY_TEST_CONSTANT ( 0x69, 0x8c, 0xf6, 0x12, 0x79, 0x70, 0xd8, 0x1e, - 0x9d ); - MEMCPY_TEST_CONSTANT ( 0xbe, 0x53, 0xb4, 0xb7, 0xdd, 0xe6, 0x35, 0x10, - 0x3c, 0xe7 ); - MEMCPY_TEST_CONSTANT ( 0xaf, 0x41, 0x8a, 0x88, 0xb1, 0x4e, 0x52, 0xd4, - 0xe6, 0xc3, 0x76 ); - MEMCPY_TEST_CONSTANT ( 0xdf, 0x43, 0xe4, 0x5d, 0xad, 0x17, 0x35, 0x38, - 0x1a, 0x1d, 0x57, 0x58 ); - MEMCPY_TEST_CONSTANT ( 0x20, 0x52, 0x83, 0x92, 0xb9, 0x85, 0xa4, 0x06, - 0x94, 0xe0, 0x3d, 0x57, 0xd4 ); - MEMCPY_TEST_CONSTANT ( 0xf1, 0x67, 0x31, 0x9e, 0x32, 0x98, 0x27, 0xe9, - 0x8e, 0x62, 0xb4, 0x82, 0x7e, 0x02 ); - MEMCPY_TEST_CONSTANT ( 0x93, 0xc1, 0x55, 0xe3, 0x60, 0xce, 0xac, 0x1e, - 0xae, 0x9d, 0xca, 0xec, 0x92, 0xb3, 0x38 ); - MEMCPY_TEST_CONSTANT ( 0xb3, 0xc1, 0xfa, 0xe7, 0x8a, 0x1c, 0xe4, 0xce, - 0x85, 0xe6, 0x3c, 0xab, 0x1c, 0xa2, 0xaf, 0x7a ); - MEMCPY_TEST_CONSTANT ( 0x9b, 0x6e, 0x1c, 0x48, 0x82, 0xd3, 0x6e, 0x58, - 0xa7, 0xb0, 0xe6, 0xea, 0x6d, 0xee, 0xc8, 0xf8, - 0xaf ); - MEMCPY_TEST_CONSTANT ( 0x86, 0x6d, 0xb0, 0xf5, 0xf2, 0xc9, 0xcd, 0xfe, - 0xfb, 0x38, 0x67, 0xbc, 0x51, 0x9d, 0x25, 0xbc, - 0x09, 0x88 ); - MEMCPY_TEST_CONSTANT ( 0x58, 0xa4, 0x96, 0x9e, 0x98, 0x36, 0xdb, 0xae, - 0x8a, 0x08, 0x7c, 0x64, 0xf9, 0xfb, 0x25, 0xb4, - 0x8e, 0xf3, 0xed ); - MEMCPY_TEST_CONSTANT ( 0xc6, 0x3b, 0x84, 0x3c, 0x76, 0x24, 0x8e, 0x42, - 0x11, 0x1f, 0x09, 0x2e, 0x24, 0xbb, 0x67, 0x71, - 0x3a, 0xca, 0x60, 0xdd ); - MEMCPY_TEST_CONSTANT ( 0x8e, 0x2d, 0xa9, 0x58, 0x87, 0xe2, 0xac, 0x4b, - 0xc8, 0xbf, 0xa2, 0x4e, 0xee, 0x3a, 0xa6, 0x71, - 0x76, 0xee, 0x42, 0x05, 0x6e ); - MEMCPY_TEST_CONSTANT ( 0x8a, 0xda, 0xdf, 0x7b, 0x55, 0x41, 0x8c, 0xcd, - 0x42, 0x40, 0x18, 0xe2, 0x60, 0xc4, 0x7d, 0x64, - 0x00, 0xd5, 0xef, 0xa1, 0x7b, 0x31 ); - MEMCPY_TEST_CONSTANT ( 0xd9, 0x25, 0xcb, 0xbb, 0x9c, 0x1d, 0xdd, 0xcd, - 0xde, 0x96, 0xd9, 0x74, 0x13, 0x95, 0xfe, 0x68, - 0x0b, 0x3d, 0x30, 0x8d, 0x0c, 0x1e, 0x6d ); - MEMCPY_TEST_CONSTANT ( 0x2d, 0x0d, 0x02, 0x33, 0xd6, 0xbe, 0x6c, 0xa6, - 0x0a, 0xab, 0xe5, 0xda, 0xe2, 0xab, 0x78, 0x3c, - 0xd3, 0xdd, 0xea, 0xfa, 0x1a, 0xe4, 0xf4, 0xb3 ); - MEMCPY_TEST_CONSTANT ( 0x6a, 0x34, 0x39, 0xea, 0x29, 0x5f, 0xa6, 0x18, - 0xc1, 0x53, 0x39, 0x78, 0xdb, 0x40, 0xf2, 0x98, - 0x78, 0xcf, 0xee, 0xfd, 0xcd, 0xf8, 0x56, 0xf8, - 0x30 ); - MEMCPY_TEST_CONSTANT ( 0xe4, 0xe5, 0x5a, 0x8d, 0xcf, 0x04, 0x29, 0x7c, - 0xa7, 0xd8, 0x43, 0xbf, 0x0b, 0xbf, 0xe7, 0x68, - 0xf7, 0x8c, 0x81, 0xf9, 0x3f, 0xad, 0xa4, 0x40, - 0x38, 0x82 ); - MEMCPY_TEST_CONSTANT ( 0x71, 0xcd, 0x3d, 0x26, 0xde, 0x11, 0x23, 0xd5, - 0x42, 0x6e, 0x63, 0x72, 0x53, 0xfc, 0x28, 0x06, - 0x4b, 0xe0, 0x2c, 0x07, 0x6b, 0xe8, 0xd9, 0x5f, - 0xf8, 0x74, 0xed ); - MEMCPY_TEST_CONSTANT ( 0x05, 0xb2, 0xae, 0x81, 0x91, 0xc9, 0xa2, 0x5f, - 0xa9, 0x1b, 0x25, 0x7f, 0x32, 0x0c, 0x04, 0x00, - 0xf1, 0x46, 0xab, 0x77, 0x1e, 0x12, 0x27, 0xe7, - 0xf6, 0x1e, 0x0c, 0x29 ); - MEMCPY_TEST_CONSTANT ( 0x0e, 0xca, 0xa5, 0x56, 0x3d, 0x99, 0x99, 0xf9, - 0x6e, 0xdd, 0x93, 0x98, 0xec, 0x8b, 0x5c, 0x71, - 0x0c, 0xb0, 0xe6, 0x12, 0xf2, 0x10, 0x1a, 0xbe, - 0x4a, 0xe0, 0xe3, 0x00, 0xf8 ); - MEMCPY_TEST_CONSTANT ( 0x40, 0xa8, 0x28, 0x5b, 0x12, 0x0d, 0x80, 0x8e, - 0x8a, 0xd9, 0x92, 0x7a, 0x6e, 0x48, 0x8d, 0x14, - 0x4b, 0xc6, 0xce, 0x21, 0x2f, 0x0e, 0x47, 0xbd, - 0xf1, 0xca, 0x0e, 0x1f, 0x65, 0xc4 ); - MEMCPY_TEST_CONSTANT ( 0x84, 0x83, 0x44, 0xe8, 0x1c, 0xbf, 0x23, 0x05, - 0xdf, 0xed, 0x3b, 0xb7, 0x0b, 0x4a, 0x05, 0xec, - 0xb7, 0x6f, 0x1c, 0xfe, 0x05, 0x05, 0x4e, 0xd1, - 0x50, 0x88, 0x81, 0x87, 0x68, 0xf6, 0x66 ); - MEMCPY_TEST_CONSTANT ( 0x0d, 0x1d, 0xcf, 0x3e, 0x7c, 0xf8, 0x12, 0x1b, - 0x96, 0x7f, 0xff, 0x27, 0xca, 0xfe, 0xd3, 0x8b, - 0x10, 0xb9, 0x5d, 0x05, 0xad, 0x50, 0xed, 0x35, - 0x32, 0x9c, 0xe6, 0x3b, 0x73, 0xe0, 0x7d ); - - /* Speed tests */ - memcpy_test_speed ( 0, 0, 64 ); - memcpy_test_speed ( 0, 0, 128 ); - memcpy_test_speed ( 0, 0, 256 ); - for ( dest_offset = 0 ; dest_offset < 4 ; dest_offset++ ) { - for ( src_offset = 0 ; src_offset < 4 ; src_offset++ ) { - memcpy_test_speed ( dest_offset, src_offset, 4096 ); - } - } -} - -/** memcpy() self-test */ -struct self_test memcpy_test __self_test = { - .name = "memcpy", - .exec = memcpy_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/memset_test.c b/qemu/roms/ipxe/src/tests/memset_test.c deleted file mode 100644 index d96f83fa6..000000000 --- a/qemu/roms/ipxe/src/tests/memset_test.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (C) 2015 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * memset() self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include - -/* Provide global functions to allow inspection of generated code */ - -void memset_zero_0 ( void *dest ) { memset ( dest, 0, 0 ); } -void memset_zero_1 ( void *dest ) { memset ( dest, 0, 1 ); } -void memset_zero_2 ( void *dest ) { memset ( dest, 0, 2 ); } -void memset_zero_3 ( void *dest ) { memset ( dest, 0, 3 ); } -void memset_zero_4 ( void *dest ) { memset ( dest, 0, 4 ); } -void memset_zero_5 ( void *dest ) { memset ( dest, 0, 5 ); } -void memset_zero_6 ( void *dest ) { memset ( dest, 0, 6 ); } -void memset_zero_7 ( void *dest ) { memset ( dest, 0, 7 ); } -void memset_zero_8 ( void *dest ) { memset ( dest, 0, 8 ); } -void memset_zero_9 ( void *dest ) { memset ( dest, 0, 9 ); } -void memset_zero_10 ( void *dest ) { memset ( dest, 0, 10 ); } -void memset_zero_11 ( void *dest ) { memset ( dest, 0, 11 ); } -void memset_zero_12 ( void *dest ) { memset ( dest, 0, 12 ); } -void memset_zero_13 ( void *dest ) { memset ( dest, 0, 13 ); } -void memset_zero_14 ( void *dest ) { memset ( dest, 0, 14 ); } -void memset_zero_15 ( void *dest ) { memset ( dest, 0, 15 ); } -void memset_zero_16 ( void *dest ) { memset ( dest, 0, 16 ); } -void memset_zero_17 ( void *dest ) { memset ( dest, 0, 17 ); } -void memset_zero_18 ( void *dest ) { memset ( dest, 0, 18 ); } -void memset_zero_19 ( void *dest ) { memset ( dest, 0, 19 ); } -void memset_zero_20 ( void *dest ) { memset ( dest, 0, 20 ); } -void memset_zero_21 ( void *dest ) { memset ( dest, 0, 21 ); } -void memset_zero_22 ( void *dest ) { memset ( dest, 0, 22 ); } -void memset_zero_23 ( void *dest ) { memset ( dest, 0, 23 ); } -void memset_zero_24 ( void *dest ) { memset ( dest, 0, 24 ); } -void memset_zero_25 ( void *dest ) { memset ( dest, 0, 25 ); } -void memset_zero_26 ( void *dest ) { memset ( dest, 0, 26 ); } -void memset_zero_27 ( void *dest ) { memset ( dest, 0, 27 ); } -void memset_zero_28 ( void *dest ) { memset ( dest, 0, 28 ); } -void memset_zero_29 ( void *dest ) { memset ( dest, 0, 29 ); } -void memset_zero_30 ( void *dest ) { memset ( dest, 0, 30 ); } -void memset_zero_31 ( void *dest ) { memset ( dest, 0, 31 ); } - -/** - * Force a call to the variable-length implementation of memset() - * - * @v dest Destination address - * @v fill Fill pattern - * @v len Length of data - * @ret dest Destination address - */ -__attribute__ (( noinline )) void * memset_var ( void *dest, unsigned int fill, - size_t len ) { - return memset ( dest, fill, len ); -} - -/** - * Perform a constant-length memset() test - * - * @v len Length of data - */ -#define MEMSET_TEST_CONSTANT( len ) do { \ - uint8_t dest_const[ 1 + len + 1 ]; \ - uint8_t dest_var[ 1 + len + 1 ]; \ - static uint8_t zero[len]; \ - unsigned int i; \ - \ - for ( i = 0 ; i < sizeof ( dest_const ) ; i++ ) \ - dest_const[i] = 0xaa; \ - memset ( ( dest_const + 1 ), 0, len ); \ - ok ( dest_const[0] == 0xaa ); \ - ok ( dest_const[ sizeof ( dest_const ) - 1 ] == 0xaa ); \ - ok ( memcmp ( ( dest_const + 1 ), zero, len ) == 0 ); \ - \ - for ( i = 0 ; i < sizeof ( dest_var ) ; i++ ) \ - dest_var[i] = 0xbb; \ - memset_var ( ( dest_var + 1 ), 0, len ); \ - ok ( dest_var[0] == 0xbb ); \ - ok ( dest_var[ sizeof ( dest_var ) - 1 ] == 0xbb ); \ - ok ( memcmp ( ( dest_var + 1 ), zero, len ) == 0 ); \ - } while ( 0 ) - -/** - * Perform memset() self-tests - * - */ -static void memset_test_exec ( void ) { - - /* Constant-length tests */ - MEMSET_TEST_CONSTANT ( 0 ); - MEMSET_TEST_CONSTANT ( 1 ); - MEMSET_TEST_CONSTANT ( 2 ); - MEMSET_TEST_CONSTANT ( 3 ); - MEMSET_TEST_CONSTANT ( 4 ); - MEMSET_TEST_CONSTANT ( 5 ); - MEMSET_TEST_CONSTANT ( 6 ); - MEMSET_TEST_CONSTANT ( 7 ); - MEMSET_TEST_CONSTANT ( 8 ); - MEMSET_TEST_CONSTANT ( 9 ); - MEMSET_TEST_CONSTANT ( 10 ); - MEMSET_TEST_CONSTANT ( 11 ); - MEMSET_TEST_CONSTANT ( 12 ); - MEMSET_TEST_CONSTANT ( 13 ); - MEMSET_TEST_CONSTANT ( 14 ); - MEMSET_TEST_CONSTANT ( 15 ); - MEMSET_TEST_CONSTANT ( 16 ); - MEMSET_TEST_CONSTANT ( 17 ); - MEMSET_TEST_CONSTANT ( 18 ); - MEMSET_TEST_CONSTANT ( 19 ); - MEMSET_TEST_CONSTANT ( 20 ); - MEMSET_TEST_CONSTANT ( 21 ); - MEMSET_TEST_CONSTANT ( 22 ); - MEMSET_TEST_CONSTANT ( 23 ); - MEMSET_TEST_CONSTANT ( 24 ); - MEMSET_TEST_CONSTANT ( 25 ); - MEMSET_TEST_CONSTANT ( 26 ); - MEMSET_TEST_CONSTANT ( 27 ); - MEMSET_TEST_CONSTANT ( 28 ); - MEMSET_TEST_CONSTANT ( 29 ); - MEMSET_TEST_CONSTANT ( 30 ); - MEMSET_TEST_CONSTANT ( 31 ); -} - -/** memset() self-test */ -struct self_test memset_test __self_test = { - .name = "memset", - .exec = memset_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/ocsp_test.c b/qemu/roms/ipxe/src/tests/ocsp_test.c deleted file mode 100644 index c6d458596..000000000 --- a/qemu/roms/ipxe/src/tests/ocsp_test.c +++ /dev/null @@ -1,1866 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * OCSP tests - * - * - * Test vectors generated using OpenSSL: - * - * openssl ocsp -no_nonce -issuer issuer.crt -cert cert.crt \ - * -url http://ocsp.server.address \ - * -reqout request.der -respout response.der - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include - -/** An OCSP test certificate */ -struct ocsp_test_certificate { - /** Data */ - const void *data; - /** Length of data */ - size_t len; - /** Parsed certificate */ - struct x509_certificate *cert; -}; - -/** An OCSP test */ -struct ocsp_test { - /** Certificate */ - struct ocsp_test_certificate *cert; - /** Issuing certificate */ - struct ocsp_test_certificate *issuer; - /** Request */ - const void *request; - /** Length of request */ - size_t request_len; - /** Response */ - const void *response; - /** Length of response */ - size_t response_len; - /* OCSP check */ - struct ocsp_check *ocsp; -}; - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define a test certificate */ -#define CERTIFICATE( name, DATA, FINGERPRINT ) \ - static const uint8_t name ## _data[] = DATA; \ - static struct ocsp_test_certificate name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - } - -/** Define an OCSP test */ -#define OCSP( name, CERT, ISSUER, REQUEST, RESPONSE ) \ - static const uint8_t name ## _request[] = REQUEST; \ - static const uint8_t name ## _response[] = RESPONSE; \ - static struct ocsp_test name = { \ - .cert = CERT, \ - .issuer = ISSUER, \ - .request = name ## _request, \ - .request_len = sizeof ( name ## _request ), \ - .response = name ## _response, \ - .response_len = sizeof ( name ## _response ), \ - } - -/** - * Prepare an OCSP test - * - * @v test OCSP test - */ -static void ocsp_prepare_test ( struct ocsp_test *test ) { - struct x509_certificate *cert = test->cert->cert; - struct x509_certificate *issuer = test->issuer->cert; - - /* Invalidate certificate being checked */ - x509_invalidate ( cert ); - - /* Force-validate issuer certificate */ - issuer->valid = 1; - issuer->path_remaining = ( issuer->extensions.basic.path_len + 1 ); -} - -/* - * subject bank.barclays.co.uk - * issuer VeriSign Class 3 International Server CA - G3 - */ -CERTIFICATE ( barclays_crt, - DATA ( 0x30, 0x82, 0x05, 0x7b, 0x30, 0x82, 0x04, 0x63, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x10, 0x49, 0x83, 0xfc, 0x05, 0x76, - 0xdf, 0x36, 0x91, 0x7c, 0x64, 0x2a, 0x27, 0xc1, 0xf1, 0x48, - 0xe3, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0xbc, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x13, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, - 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56, 0x65, - 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x31, 0x3b, 0x30, 0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x32, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, - 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, - 0x30, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x13, 0x2d, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, - 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, - 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, - 0x0d, 0x31, 0x31, 0x31, 0x32, 0x30, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x32, 0x31, 0x32, - 0x30, 0x34, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, - 0x7f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x47, 0x42, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, - 0x55, 0x04, 0x08, 0x13, 0x07, 0x45, 0x6e, 0x67, 0x6c, 0x61, - 0x6e, 0x64, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x14, 0x0a, 0x47, 0x6c, 0x6f, 0x75, 0x63, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, - 0x04, 0x0a, 0x14, 0x11, 0x42, 0x61, 0x72, 0x63, 0x6c, 0x61, - 0x79, 0x73, 0x20, 0x42, 0x61, 0x6e, 0x6b, 0x20, 0x50, 0x6c, - 0x63, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x0b, - 0x14, 0x06, 0x47, 0x4c, 0x4f, 0x2d, 0x4c, 0x32, 0x31, 0x1c, - 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x14, 0x13, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x62, 0x61, 0x72, 0x63, 0x6c, 0x61, - 0x79, 0x73, 0x2e, 0x63, 0x6f, 0x2e, 0x75, 0x6b, 0x30, 0x82, - 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, - 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, - 0x00, 0x99, 0x4c, 0x2e, 0x00, 0xa0, 0xaf, 0xe2, 0xbc, 0x52, - 0x43, 0x83, 0x34, 0x03, 0x58, 0xdf, 0xd3, 0xea, 0x43, 0xa2, - 0xfd, 0x2c, 0x4c, 0x3c, 0x32, 0x9c, 0x60, 0x40, 0xe5, 0xa1, - 0x07, 0x8d, 0x32, 0x21, 0xc1, 0xbd, 0xf1, 0x04, 0x2e, 0x90, - 0xf3, 0x05, 0x30, 0xd4, 0x6f, 0x81, 0x3e, 0x08, 0xb6, 0xc3, - 0xc1, 0xcf, 0xc4, 0x59, 0x7c, 0x56, 0x27, 0xea, 0x74, 0xe7, - 0x8f, 0x50, 0xd1, 0xa9, 0x13, 0x57, 0x3a, 0x05, 0x5a, 0xd7, - 0x7f, 0xfc, 0xc5, 0xc6, 0x66, 0xec, 0xa4, 0x03, 0xec, 0x97, - 0x1a, 0x4b, 0x28, 0xf9, 0xc9, 0xf4, 0xea, 0xc6, 0x89, 0x68, - 0xc1, 0x42, 0xcd, 0x80, 0xfc, 0xeb, 0x86, 0x6d, 0x1c, 0xd6, - 0xa1, 0x05, 0x16, 0xa4, 0xcf, 0x82, 0x1d, 0x07, 0x67, 0x7c, - 0xeb, 0xa1, 0x69, 0xf3, 0xf2, 0x21, 0xa7, 0x79, 0xf5, 0xf2, - 0xdc, 0xb6, 0x0b, 0x6e, 0x19, 0xcc, 0x50, 0x53, 0xf3, 0xbd, - 0xb9, 0x71, 0xdc, 0x2b, 0x15, 0x78, 0x6d, 0xd4, 0xd3, 0x82, - 0xce, 0x37, 0x0c, 0xb5, 0x5e, 0x24, 0x8d, 0x80, 0x40, 0x71, - 0x4e, 0x7b, 0x0a, 0x6e, 0x30, 0x4b, 0xb6, 0x2c, 0x23, 0x9e, - 0xd5, 0x08, 0x7d, 0x8a, 0x72, 0x46, 0xf6, 0x52, 0x98, 0xcb, - 0x03, 0x79, 0x61, 0xfe, 0xc1, 0x97, 0x15, 0x4b, 0x05, 0x36, - 0x0c, 0x11, 0xe9, 0x95, 0x4b, 0xef, 0xf3, 0x2d, 0xf3, 0xef, - 0x33, 0x6c, 0xc6, 0x98, 0xb9, 0x65, 0xe3, 0x3c, 0x26, 0x86, - 0xb5, 0x87, 0x9e, 0x20, 0x92, 0x7b, 0x8f, 0x13, 0x66, 0x5e, - 0x26, 0x09, 0xd6, 0x83, 0xee, 0x56, 0x72, 0x08, 0x6c, 0x2a, - 0x4c, 0xf2, 0x5b, 0xf1, 0x08, 0x4b, 0x91, 0x9e, 0x67, 0x37, - 0x2f, 0xc5, 0xcf, 0x1a, 0xa8, 0xa1, 0x1c, 0xb6, 0x2d, 0xd0, - 0x81, 0xf4, 0xf7, 0x37, 0xb9, 0xa3, 0x37, 0x3f, 0x6b, 0x2f, - 0x62, 0x82, 0xa7, 0x17, 0xc1, 0x8c, 0x69, 0x02, 0x03, 0x01, - 0x00, 0x01, 0xa3, 0x82, 0x01, 0xb3, 0x30, 0x82, 0x01, 0xaf, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, - 0x00, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, - 0x03, 0x02, 0x05, 0xa0, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, - 0x1f, 0x04, 0x3a, 0x30, 0x38, 0x30, 0x36, 0xa0, 0x34, 0xa0, - 0x32, 0x86, 0x30, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x53, 0x56, 0x52, 0x49, 0x6e, 0x74, 0x6c, 0x2d, 0x47, 0x33, - 0x2d, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, - 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x56, - 0x52, 0x49, 0x6e, 0x74, 0x6c, 0x47, 0x33, 0x2e, 0x63, 0x72, - 0x6c, 0x30, 0x44, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3d, - 0x30, 0x3b, 0x30, 0x39, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01, - 0x86, 0xf8, 0x45, 0x01, 0x07, 0x17, 0x03, 0x30, 0x2a, 0x30, - 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, - 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, - 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, - 0x61, 0x30, 0x28, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x21, - 0x30, 0x1f, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, - 0x42, 0x04, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, - 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, - 0x07, 0x03, 0x02, 0x30, 0x72, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x66, 0x30, 0x64, 0x30, - 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, - 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, - 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3c, 0x06, - 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, - 0x30, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x53, 0x56, - 0x52, 0x49, 0x6e, 0x74, 0x6c, 0x2d, 0x47, 0x33, 0x2d, 0x61, - 0x69, 0x61, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, - 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x56, 0x52, 0x49, - 0x6e, 0x74, 0x6c, 0x47, 0x33, 0x2e, 0x63, 0x65, 0x72, 0x30, - 0x6e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, - 0x0c, 0x04, 0x62, 0x30, 0x60, 0xa1, 0x5e, 0xa0, 0x5c, 0x30, - 0x5a, 0x30, 0x58, 0x30, 0x56, 0x16, 0x09, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, - 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, - 0x14, 0x4b, 0x6b, 0xb9, 0x28, 0x96, 0x06, 0x0c, 0xbb, 0xd0, - 0x52, 0x38, 0x9b, 0x29, 0xac, 0x4b, 0x07, 0x8b, 0x21, 0x05, - 0x18, 0x30, 0x26, 0x16, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65, 0x72, - 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x31, 0x2e, 0x67, 0x69, - 0x66, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, - 0x00, 0x49, 0xf3, 0x7c, 0x15, 0xb0, 0x50, 0x97, 0xb7, 0xcd, - 0x87, 0x75, 0x85, 0xcc, 0x55, 0x7c, 0x62, 0x97, 0x97, 0x04, - 0xbd, 0xc2, 0x22, 0xfc, 0xf5, 0x2c, 0x75, 0xdc, 0x25, 0x6d, - 0xed, 0xcd, 0x22, 0x2e, 0xa4, 0xcd, 0x88, 0x95, 0xe8, 0x52, - 0x45, 0x7a, 0xa0, 0x85, 0xcc, 0x6d, 0x1c, 0xcb, 0xd8, 0xc3, - 0x26, 0x2c, 0xee, 0xb5, 0xe1, 0x38, 0x3f, 0xb6, 0x96, 0x10, - 0xa3, 0xb3, 0x1e, 0x2d, 0xdc, 0xe8, 0x07, 0x2f, 0xc2, 0xb7, - 0x50, 0xd5, 0x60, 0x73, 0x0d, 0x43, 0xb1, 0xaf, 0xd9, 0xcb, - 0x39, 0x00, 0xc7, 0x00, 0xb3, 0x1f, 0xa4, 0xaf, 0xf8, 0xed, - 0x9b, 0x6a, 0x7a, 0x10, 0xcc, 0x81, 0x92, 0xc2, 0x58, 0x7e, - 0x42, 0xe4, 0xbf, 0xcf, 0x8c, 0x91, 0x7f, 0xde, 0xe6, 0xac, - 0x37, 0x31, 0x58, 0x90, 0xee, 0x51, 0xf5, 0x0e, 0xe5, 0x84, - 0xd8, 0x51, 0x89, 0x50, 0xfe, 0xfa, 0xad, 0xc9, 0xbb, 0x19, - 0xb3, 0x4a, 0xc8, 0x6b, 0x26, 0x98, 0x4b, 0x63, 0x41, 0x81, - 0xe1, 0x12, 0xab, 0xcc, 0x89, 0xbe, 0xdf, 0xa8, 0x7e, 0xf5, - 0x0e, 0x07, 0xf6, 0x92, 0x89, 0x64, 0x3b, 0xc2, 0x64, 0xa2, - 0x4b, 0xd1, 0x6b, 0x9b, 0x4e, 0x6a, 0xf2, 0x63, 0xf7, 0xc3, - 0xe0, 0x9f, 0xc5, 0x4e, 0xb6, 0x77, 0x0a, 0xad, 0x6d, 0x0f, - 0x30, 0x87, 0x6b, 0xfb, 0x66, 0xb3, 0x90, 0x87, 0xa3, 0x48, - 0xbe, 0xa4, 0x34, 0x9c, 0x5a, 0x93, 0xa3, 0x74, 0x0e, 0x36, - 0x8e, 0xf6, 0x3b, 0x6c, 0xae, 0xa0, 0x6a, 0xa1, 0x1a, 0x12, - 0x78, 0x99, 0x75, 0x50, 0xb1, 0x72, 0xed, 0x22, 0x34, 0x0f, - 0xe1, 0x89, 0xfe, 0x81, 0x0a, 0xcc, 0x2a, 0xd0, 0xf3, 0x25, - 0xe6, 0xd9, 0x19, 0x06, 0x20, 0x2d, 0x29, 0x8b, 0xdd, 0xb5, - 0x60, 0xf4, 0x0d, 0x08, 0x97, 0x7b, 0x81, 0x4a, 0xfb, 0x20, - 0xfb, 0x83, 0xa3, 0xc8, 0x1d, 0x79, 0xb9 ), - FINGERPRINT ( 0x7e, 0x54, 0x41, 0x60, 0x21, 0xca, 0x3e, 0x63, - 0xce, 0x5a, 0x41, 0x6c, 0xbe, 0x52, 0x01, 0x88, - 0xcf, 0x41, 0x36, 0x48, 0xdb, 0xe3, 0xdf, 0x8e, - 0x79, 0x73, 0x5f, 0xcf, 0x8e, 0x8e, 0xac, 0xd8 ) ); - -/* - * subject www.google.com - * issuer Thawte SGC CA - */ -CERTIFICATE ( google_crt, - DATA ( 0x30, 0x82, 0x03, 0x21, 0x30, 0x82, 0x02, 0x8a, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x10, 0x4f, 0x9d, 0x96, 0xd9, 0x66, - 0xb0, 0x99, 0x2b, 0x54, 0xc2, 0x95, 0x7c, 0xb4, 0x15, 0x7d, - 0x4d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4c, 0x31, 0x0b, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x5a, - 0x41, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, - 0x13, 0x1c, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x28, 0x50, 0x74, 0x79, 0x29, 0x20, 0x4c, 0x74, 0x64, 0x2e, - 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, - 0x0d, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x47, - 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x31, - 0x31, 0x30, 0x32, 0x36, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x5a, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x39, 0x33, 0x30, 0x32, - 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x68, 0x31, 0x0b, - 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, - 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, - 0x13, 0x0a, 0x43, 0x61, 0x6c, 0x69, 0x66, 0x6f, 0x72, 0x6e, - 0x69, 0x61, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x14, 0x0d, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x56, 0x69, 0x65, 0x77, 0x31, 0x13, 0x30, 0x11, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x14, 0x0a, 0x47, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x17, 0x30, - 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x14, 0x0e, 0x77, 0x77, - 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, - 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, - 0x00, 0xde, 0xb7, 0x26, 0x43, 0xa6, 0x99, 0x85, 0xcd, 0x38, - 0xa7, 0x15, 0x09, 0xb9, 0xcf, 0x0f, 0xc9, 0xc3, 0x55, 0x8c, - 0x88, 0xee, 0x8c, 0x8d, 0x28, 0x27, 0x24, 0x4b, 0x2a, 0x5e, - 0xa0, 0xd8, 0x16, 0xfa, 0x61, 0x18, 0x4b, 0xcf, 0x6d, 0x60, - 0x80, 0xd3, 0x35, 0x40, 0x32, 0x72, 0xc0, 0x8f, 0x12, 0xd8, - 0xe5, 0x4e, 0x8f, 0xb9, 0xb2, 0xf6, 0xd9, 0x15, 0x5e, 0x5a, - 0x86, 0x31, 0xa3, 0xba, 0x86, 0xaa, 0x6b, 0xc8, 0xd9, 0x71, - 0x8c, 0xcc, 0xcd, 0x27, 0x13, 0x1e, 0x9d, 0x42, 0x5d, 0x38, - 0xf6, 0xa7, 0xac, 0xef, 0xfa, 0x62, 0xf3, 0x18, 0x81, 0xd4, - 0x24, 0x46, 0x7f, 0x01, 0x77, 0x7c, 0xc6, 0x2a, 0x89, 0x14, - 0x99, 0xbb, 0x98, 0x39, 0x1d, 0xa8, 0x19, 0xfb, 0x39, 0x00, - 0x44, 0x7d, 0x1b, 0x94, 0x6a, 0x78, 0x2d, 0x69, 0xad, 0xc0, - 0x7a, 0x2c, 0xfa, 0xd0, 0xda, 0x20, 0x12, 0x98, 0xd3, 0x02, - 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xe7, 0x30, 0x81, 0xe4, - 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, - 0x04, 0x02, 0x30, 0x00, 0x30, 0x36, 0x06, 0x03, 0x55, 0x1d, - 0x1f, 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, - 0x27, 0x86, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x63, 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, - 0x65, 0x53, 0x47, 0x43, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, - 0x30, 0x28, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x21, 0x30, - 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, - 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, - 0x02, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, - 0x04, 0x01, 0x30, 0x72, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, - 0x05, 0x07, 0x01, 0x01, 0x04, 0x66, 0x30, 0x64, 0x30, 0x22, - 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, - 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, - 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3e, 0x06, 0x08, 0x2b, 0x06, - 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x32, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x5f, 0x53, 0x47, - 0x43, 0x5f, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x21, 0xac, 0xd5, - 0xae, 0xca, 0x34, 0x89, 0x5a, 0xc2, 0xab, 0x52, 0xd2, 0xb2, - 0x34, 0x66, 0x9d, 0x7a, 0xab, 0xee, 0xe6, 0x7c, 0xd5, 0x7e, - 0xc2, 0x5c, 0x28, 0xbb, 0x74, 0x00, 0xc9, 0x10, 0x1f, 0x42, - 0x13, 0xfc, 0x69, 0x8a, 0x1e, 0x24, 0xa0, 0x02, 0x00, 0xe9, - 0xba, 0x5b, 0xca, 0x19, 0x04, 0xb2, 0xd3, 0xaf, 0x01, 0xb2, - 0x7e, 0x5f, 0x14, 0xdb, 0xa6, 0xdb, 0x52, 0xb9, 0x9a, 0xf3, - 0x12, 0x7f, 0x7c, 0xa2, 0x9c, 0x3b, 0x6f, 0x99, 0x7d, 0xea, - 0x50, 0x0d, 0x76, 0x23, 0x12, 0xff, 0xf7, 0x66, 0x73, 0x29, - 0xb7, 0x95, 0x0a, 0xad, 0xd8, 0x8b, 0xb2, 0xde, 0x20, 0xe9, - 0x0a, 0x70, 0x64, 0x11, 0x08, 0xc8, 0x5a, 0xf1, 0x7d, 0x9e, - 0xec, 0x69, 0xa5, 0xa5, 0xd5, 0x82, 0xd7, 0x27, 0x1e, 0x9e, - 0x56, 0xcd, 0xd2, 0x76, 0xd5, 0x79, 0x2b, 0xf7, 0x25, 0x43, - 0x1c, 0x69, 0xf0, 0xb8, 0xf9 ), - FINGERPRINT ( 0xec, 0x6a, 0x6b, 0x15, 0x6b, 0x30, 0x62, 0xfa, - 0x99, 0x49, 0x9d, 0x1e, 0x15, 0x15, 0xcf, 0x6c, - 0x50, 0x48, 0xaf, 0x17, 0x94, 0x57, 0x48, 0x39, - 0x6b, 0xd2, 0xec, 0xf1, 0x2b, 0x8d, 0xe2, 0x2c ) ); - -/* - * subject VeriSign Class 3 International Server CA - G3 - * issuer VeriSign Class 3 Public Primary Certification Authority - G5 - */ -CERTIFICATE ( verisign_crt, - DATA ( 0x30, 0x82, 0x06, 0x29, 0x30, 0x82, 0x05, 0x11, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x10, 0x64, 0x1b, 0xe8, 0x20, 0xce, - 0x02, 0x08, 0x13, 0xf3, 0x2d, 0x4d, 0x2d, 0x95, 0xd6, 0x7e, - 0x67, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0xca, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x13, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, - 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56, 0x65, - 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x31, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, - 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, - 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, - 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, - 0x3c, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, - 0x35, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, - 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, - 0x32, 0x30, 0x30, 0x32, 0x30, 0x37, 0x32, 0x33, 0x35, 0x39, - 0x35, 0x39, 0x5a, 0x30, 0x81, 0xbc, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, - 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, - 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, - 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, - 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, - 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30, - 0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, - 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, - 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, - 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, 0x30, 0x31, 0x36, - 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d, 0x56, - 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, - 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, - 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x99, 0xd6, 0x9c, - 0x62, 0xf0, 0x15, 0xf4, 0x81, 0x9a, 0x41, 0x08, 0x59, 0x8f, - 0x13, 0x9d, 0x17, 0xc9, 0x9f, 0x51, 0xdc, 0xda, 0xb1, 0x52, - 0xef, 0xff, 0xe3, 0x41, 0xdd, 0xe0, 0xdf, 0xc4, 0x28, 0xc6, - 0xe3, 0xad, 0x79, 0x1f, 0x27, 0x10, 0x98, 0xb8, 0xbb, 0x20, - 0x97, 0xc1, 0x28, 0x44, 0x41, 0x0f, 0xea, 0xa9, 0xa8, 0x52, - 0xcf, 0x4d, 0x4e, 0x1b, 0x8b, 0xbb, 0xb5, 0xc4, 0x76, 0xd9, - 0xcc, 0x56, 0x06, 0xee, 0xb3, 0x55, 0x20, 0x2a, 0xde, 0x15, - 0x8d, 0x71, 0xcb, 0x54, 0xc8, 0x6f, 0x17, 0xcd, 0x89, 0x00, - 0xe4, 0xdc, 0xff, 0xe1, 0xc0, 0x1f, 0x68, 0x71, 0xe9, 0xc7, - 0x29, 0x2e, 0x7e, 0xbc, 0x3b, 0xfc, 0xe5, 0xbb, 0xab, 0x26, - 0x54, 0x8b, 0x66, 0x90, 0xcd, 0xf6, 0x92, 0xb9, 0x31, 0x24, - 0x80, 0xbc, 0x9e, 0x6c, 0xd5, 0xfc, 0x7e, 0xd2, 0xe1, 0x4b, - 0x8c, 0xdc, 0x42, 0xfa, 0x44, 0x4b, 0x5f, 0xf8, 0x18, 0xb5, - 0x2e, 0x30, 0xf4, 0x3d, 0x12, 0x98, 0xd3, 0x62, 0x05, 0x73, - 0x54, 0xa6, 0x9c, 0xa2, 0x1d, 0xbe, 0x52, 0x83, 0x3a, 0x07, - 0x46, 0xc4, 0x3b, 0x02, 0x56, 0x21, 0xbf, 0xf2, 0x51, 0x4f, - 0xd0, 0xa6, 0x99, 0x39, 0xe9, 0xae, 0xa5, 0x3f, 0x89, 0x9b, - 0x9c, 0x7d, 0xfe, 0x4d, 0x60, 0x07, 0x25, 0x20, 0xf7, 0xbb, - 0xd7, 0x69, 0x83, 0x2b, 0x82, 0x93, 0x43, 0x37, 0xd9, 0x83, - 0x41, 0x1b, 0x6b, 0x0b, 0xab, 0x4a, 0x66, 0x84, 0x4f, 0x4a, - 0x8e, 0xde, 0x7e, 0x34, 0x99, 0x8e, 0x68, 0xd6, 0xca, 0x39, - 0x06, 0x9b, 0x4c, 0xb3, 0x9a, 0x48, 0x4d, 0x13, 0x46, 0xb4, - 0x58, 0x21, 0x04, 0xc4, 0xfb, 0xa0, 0x4d, 0xac, 0x2e, 0x4b, - 0x62, 0x12, 0xe3, 0xfb, 0x4d, 0xf6, 0xc9, 0x51, 0x00, 0x01, - 0x1f, 0xfc, 0x1e, 0x6a, 0x81, 0x2a, 0x38, 0xe0, 0xb9, 0x4f, - 0xd6, 0x2d, 0x45, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, - 0x02, 0x15, 0x30, 0x82, 0x02, 0x11, 0x30, 0x12, 0x06, 0x03, - 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, - 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x70, 0x06, 0x03, - 0x55, 0x1d, 0x20, 0x04, 0x69, 0x30, 0x67, 0x30, 0x65, 0x06, - 0x0b, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, - 0x17, 0x03, 0x30, 0x56, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, - 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, - 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x2a, 0x06, 0x08, - 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1e, - 0x1a, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, - 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, - 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, - 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, - 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, - 0x30, 0x5f, 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, - 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, - 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30, 0x07, 0x06, - 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5, - 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, - 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, - 0x16, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, - 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, - 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x73, 0x6c, - 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x34, 0x06, - 0x03, 0x55, 0x1d, 0x25, 0x04, 0x2d, 0x30, 0x2b, 0x06, 0x08, - 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, - 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x09, - 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, - 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08, - 0x01, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, - 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, - 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, - 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, - 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, - 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x34, 0x06, 0x03, 0x55, - 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27, - 0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, - 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, - 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30, - 0x28, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, - 0xa4, 0x1d, 0x30, 0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, - 0x55, 0x04, 0x03, 0x13, 0x10, 0x56, 0x65, 0x72, 0x69, 0x53, - 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, - 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, - 0x04, 0x14, 0xd7, 0x9b, 0x7c, 0xd8, 0x22, 0xa0, 0x15, 0xf7, - 0xdd, 0xad, 0x5f, 0xce, 0x29, 0x9b, 0x58, 0xc3, 0xbc, 0x46, - 0x00, 0xb5, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, - 0x18, 0x30, 0x16, 0x80, 0x14, 0x7f, 0xd3, 0x65, 0xa7, 0xc2, - 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3, 0x43, 0x39, 0xfa, - 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x03, 0x82, 0x01, 0x01, 0x00, 0x71, 0xb5, 0x7d, 0x73, 0x52, - 0x4a, 0xdd, 0xd7, 0x4d, 0x34, 0x2b, 0x2e, 0xaf, 0x94, 0x46, - 0xa5, 0x49, 0x50, 0x02, 0x4f, 0xf8, 0x2f, 0x17, 0x70, 0xf2, - 0x13, 0xdc, 0x1f, 0x21, 0x86, 0xaa, 0xc2, 0x4f, 0x7c, 0x37, - 0x3c, 0xd4, 0x46, 0x78, 0xae, 0x5d, 0x78, 0x6f, 0xd1, 0xba, - 0x5a, 0xbc, 0x10, 0xab, 0x58, 0x36, 0xc5, 0x8c, 0x62, 0x15, - 0x45, 0x60, 0x17, 0x21, 0xe2, 0xd5, 0x42, 0xa8, 0x77, 0xa1, - 0x55, 0xd8, 0x43, 0x04, 0x51, 0xf6, 0x6e, 0xba, 0x48, 0xe6, - 0x5d, 0x4c, 0xb7, 0x44, 0xd3, 0x3e, 0xa4, 0xd5, 0xd6, 0x33, - 0x9a, 0x9f, 0x0d, 0xe6, 0xd7, 0x4e, 0x96, 0x44, 0x95, 0x5a, - 0x6c, 0xd6, 0xa3, 0x16, 0x53, 0x0e, 0x98, 0x43, 0xce, 0xa4, - 0xb8, 0xc3, 0x66, 0x7a, 0x05, 0x5c, 0x62, 0x10, 0xe8, 0x1b, - 0x12, 0xdb, 0x7d, 0x2e, 0x76, 0x50, 0xff, 0xdf, 0xd7, 0x6b, - 0x1b, 0xcc, 0x8a, 0xcc, 0x71, 0xfa, 0xb3, 0x40, 0x56, 0x7c, - 0x33, 0x7a, 0x77, 0x94, 0x5b, 0xf5, 0x0b, 0x53, 0xfb, 0x0e, - 0x5f, 0xbc, 0x68, 0xfb, 0xaf, 0x2a, 0xee, 0x30, 0x37, 0x79, - 0x16, 0x93, 0x25, 0x7f, 0x4d, 0x10, 0xff, 0x57, 0xfb, 0xbf, - 0x6e, 0x3b, 0x33, 0x21, 0xde, 0x79, 0xdc, 0x86, 0x17, 0x59, - 0x2d, 0x43, 0x64, 0xb7, 0xa6, 0x66, 0x87, 0xea, 0xbc, 0x96, - 0x46, 0x19, 0x1a, 0x86, 0x8b, 0x6f, 0xd7, 0xb7, 0x49, 0x00, - 0x5b, 0xdb, 0xa3, 0xbf, 0x29, 0x9a, 0xee, 0xf7, 0xd3, 0x33, - 0xae, 0xa3, 0xf4, 0x9e, 0x4c, 0xca, 0x5e, 0x69, 0xd4, 0x1b, - 0xad, 0xb7, 0x90, 0x77, 0x6a, 0xd8, 0x59, 0x6f, 0x79, 0xab, - 0x01, 0xfa, 0x55, 0xf0, 0x8a, 0x21, 0x66, 0xe5, 0x65, 0x6e, - 0xfd, 0x7c, 0xd3, 0xdf, 0x1e, 0xeb, 0x7e, 0x3f, 0x06, 0x90, - 0xfb, 0x19, 0x0b, 0xd3, 0x06, 0x02, 0x1b, 0x78, 0x43, 0x99, - 0xa8 ), - FINGERPRINT ( 0x6e, 0x21, 0x87, 0x6c, 0xf1, 0x63, 0x47, 0x20, - 0x1f, 0x63, 0x7a, 0x17, 0x8c, 0xb4, 0x2b, 0x17, - 0x1d, 0x52, 0x37, 0x9a, 0xf7, 0xe5, 0xf5, 0xb6, - 0xf6, 0x75, 0x5b, 0x3e, 0xe9, 0xbb, 0x2e, 0xd4 ) ); - -/* - * subject Thawte SGC CA -issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority - */ -CERTIFICATE ( thawte_crt, - DATA ( 0x30, 0x82, 0x03, 0x23, 0x30, 0x82, 0x02, 0x8c, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x04, 0x30, 0x00, 0x00, 0x02, 0x30, - 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, - 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, - 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, - 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, - 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, - 0x55, 0x04, 0x0b, 0x13, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, - 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x34, 0x30, 0x35, 0x31, - 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, - 0x31, 0x34, 0x30, 0x35, 0x31, 0x32, 0x32, 0x33, 0x35, 0x39, - 0x35, 0x39, 0x5a, 0x30, 0x4c, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x5a, 0x41, 0x31, 0x25, - 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x54, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x50, 0x74, - 0x79, 0x29, 0x20, 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x16, 0x30, - 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0d, 0x54, 0x68, - 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x47, 0x43, 0x20, 0x43, - 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, - 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, - 0xd4, 0xd3, 0x67, 0xd0, 0x8d, 0x15, 0x7f, 0xae, 0xcd, 0x31, - 0xfe, 0x7d, 0x1d, 0x91, 0xa1, 0x3f, 0x0b, 0x71, 0x3c, 0xac, - 0xcc, 0xc8, 0x64, 0xfb, 0x63, 0xfc, 0x32, 0x4b, 0x07, 0x94, - 0xbd, 0x6f, 0x80, 0xba, 0x2f, 0xe1, 0x04, 0x93, 0xc0, 0x33, - 0xfc, 0x09, 0x33, 0x23, 0xe9, 0x0b, 0x74, 0x2b, 0x71, 0xc4, - 0x03, 0xc6, 0xd2, 0xcd, 0xe2, 0x2f, 0xf5, 0x09, 0x63, 0xcd, - 0xff, 0x48, 0xa5, 0x00, 0xbf, 0xe0, 0xe7, 0xf3, 0x88, 0xb7, - 0x2d, 0x32, 0xde, 0x98, 0x36, 0xe6, 0x0a, 0xad, 0x00, 0x7b, - 0xc4, 0x64, 0x4a, 0x3b, 0x84, 0x75, 0x03, 0xf2, 0x70, 0x92, - 0x7d, 0x0e, 0x62, 0xf5, 0x21, 0xab, 0x69, 0x36, 0x84, 0x31, - 0x75, 0x90, 0xf8, 0xbf, 0xc7, 0x6c, 0x88, 0x1b, 0x06, 0x95, - 0x7c, 0xc9, 0xe5, 0xa8, 0xde, 0x75, 0xa1, 0x2c, 0x7a, 0x68, - 0xdf, 0xd5, 0xca, 0x1c, 0x87, 0x58, 0x60, 0x19, 0x02, 0x03, - 0x01, 0x00, 0x01, 0xa3, 0x81, 0xfe, 0x30, 0x81, 0xfb, 0x30, - 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, - 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, - 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, - 0x01, 0x06, 0x30, 0x11, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, - 0x86, 0xf8, 0x42, 0x01, 0x01, 0x04, 0x04, 0x03, 0x02, 0x01, - 0x06, 0x30, 0x28, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, - 0x30, 0x1f, 0xa4, 0x1d, 0x30, 0x1b, 0x31, 0x19, 0x30, 0x17, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10, 0x50, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x33, - 0x2d, 0x31, 0x35, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, - 0x04, 0x2a, 0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, - 0x86, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, - 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, - 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, - 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, - 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x26, 0x30, 0x24, - 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, - 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, - 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x34, 0x06, 0x03, - 0x55, 0x1d, 0x25, 0x04, 0x2d, 0x30, 0x2b, 0x06, 0x08, 0x2b, - 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, - 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x09, 0x60, - 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, - 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x55, - 0xac, 0x63, 0xea, 0xde, 0xa1, 0xdd, 0xd2, 0x90, 0x5f, 0x9f, - 0x0b, 0xce, 0x76, 0xbe, 0x13, 0x51, 0x8f, 0x93, 0xd9, 0x05, - 0x2b, 0xc8, 0x1b, 0x77, 0x4b, 0xad, 0x69, 0x50, 0xa1, 0xee, - 0xde, 0xdc, 0xfd, 0xdb, 0x07, 0xe9, 0xe8, 0x39, 0x94, 0xdc, - 0xab, 0x72, 0x79, 0x2f, 0x06, 0xbf, 0xab, 0x81, 0x70, 0xc4, - 0xa8, 0xed, 0xea, 0x53, 0x34, 0xed, 0xef, 0x1e, 0x53, 0xd9, - 0x06, 0xc7, 0x56, 0x2b, 0xd1, 0x5c, 0xf4, 0xd1, 0x8a, 0x8e, - 0xb4, 0x2b, 0xb1, 0x37, 0x90, 0x48, 0x08, 0x42, 0x25, 0xc5, - 0x3e, 0x8a, 0xcb, 0x7f, 0xeb, 0x6f, 0x04, 0xd1, 0x6d, 0xc5, - 0x74, 0xa2, 0xf7, 0xa2, 0x7c, 0x7b, 0x60, 0x3c, 0x77, 0xcd, - 0x0e, 0xce, 0x48, 0x02, 0x7f, 0x01, 0x2f, 0xb6, 0x9b, 0x37, - 0xe0, 0x2a, 0x2a, 0x36, 0xdc, 0xd5, 0x85, 0xd6, 0xac, 0xe5, - 0x3f, 0x54, 0x6f, 0x96, 0x1e, 0x05, 0xaf ), - FINGERPRINT ( 0x10, 0x85, 0xa6, 0xf4, 0x54, 0xd0, 0xc9, 0x11, - 0x98, 0xfd, 0xda, 0xb1, 0x1a, 0x31, 0xc7, 0x16, - 0xd5, 0xdc, 0xd6, 0x8d, 0xf9, 0x1c, 0x03, 0x9c, - 0xe1, 0x8d, 0xca, 0x9b, 0xeb, 0x3c, 0xde, 0x3d ) ); - -/* - * subject StartCom Class 2 Primary Intermediate Server CA - * issuer StartCom Certification Authority - */ -CERTIFICATE ( startssl_crt, - DATA ( 0x30, 0x82, 0x07, 0xe3, 0x30, 0x82, 0x05, 0xcb, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x01, 0x0b, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, - 0x00, 0x30, 0x7d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64, 0x2e, - 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, - 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x29, 0x30, 0x27, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x13, 0x20, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, - 0x17, 0x0d, 0x30, 0x37, 0x31, 0x30, 0x32, 0x34, 0x32, 0x30, - 0x35, 0x37, 0x30, 0x38, 0x5a, 0x17, 0x0d, 0x31, 0x32, 0x31, - 0x30, 0x32, 0x32, 0x32, 0x30, 0x35, 0x37, 0x30, 0x38, 0x5a, - 0x30, 0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64, 0x2e, - 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, - 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x38, 0x30, 0x36, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x13, 0x2f, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x20, 0x32, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, - 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe2, 0x4f, 0x39, 0x2f, - 0xa1, 0x8c, 0x9a, 0x85, 0xad, 0x08, 0x0e, 0x08, 0x3e, 0x57, - 0xf2, 0x88, 0x01, 0x21, 0x1b, 0x94, 0xa9, 0x6c, 0xe2, 0xb8, - 0xdb, 0xaa, 0x19, 0x18, 0x46, 0x3a, 0x52, 0xa1, 0xf5, 0x0f, - 0xf4, 0x6e, 0x8c, 0xea, 0x96, 0x8c, 0x96, 0x87, 0x79, 0x13, - 0x40, 0x51, 0x2f, 0x22, 0xf2, 0x0c, 0x8b, 0x87, 0x0f, 0x65, - 0xdf, 0x71, 0x74, 0x34, 0x43, 0x55, 0xb1, 0x35, 0x09, 0x9b, - 0xd9, 0xbc, 0x1f, 0xfa, 0xeb, 0x42, 0xd0, 0x97, 0x40, 0x72, - 0xb7, 0x43, 0x96, 0x3d, 0xba, 0x96, 0x9d, 0x5d, 0x50, 0x02, - 0x1c, 0x9b, 0x91, 0x8d, 0x9c, 0xc0, 0xac, 0xd7, 0xbb, 0x2f, - 0x17, 0xd7, 0xcb, 0x3e, 0x82, 0x9d, 0x73, 0xeb, 0x07, 0x42, - 0x92, 0xb2, 0xcd, 0x64, 0xb3, 0x74, 0x55, 0x1b, 0xb4, 0x4b, - 0x86, 0x21, 0x2c, 0xf7, 0x78, 0x87, 0x32, 0xe0, 0x16, 0xe4, - 0xda, 0xbd, 0x4c, 0x95, 0xea, 0xa4, 0x0a, 0x7e, 0xb6, 0x0a, - 0x0d, 0x2e, 0x8a, 0xcf, 0x55, 0xab, 0xc3, 0xe5, 0xdd, 0x41, - 0x8a, 0x4e, 0xe6, 0x6f, 0x65, 0x6c, 0xb2, 0x40, 0xcf, 0x17, - 0x5d, 0xb9, 0xc3, 0x6a, 0x0b, 0x27, 0x11, 0x84, 0x77, 0x61, - 0xf6, 0xc2, 0x7c, 0xed, 0xc0, 0x8d, 0x78, 0x14, 0x18, 0x99, - 0x81, 0x99, 0x75, 0x63, 0xb7, 0xe8, 0x53, 0xd3, 0xba, 0x61, - 0xe9, 0x0e, 0xfa, 0xa2, 0x30, 0xf3, 0x46, 0xa2, 0xb9, 0xc9, - 0x1f, 0x6c, 0x80, 0x5a, 0x40, 0xac, 0x27, 0xed, 0x48, 0x47, - 0x33, 0xb0, 0x54, 0xc6, 0x46, 0x1a, 0xf3, 0x35, 0x61, 0xc1, - 0x02, 0x29, 0x90, 0x54, 0x7e, 0x64, 0x4d, 0xc4, 0x30, 0x52, - 0x02, 0x82, 0xd7, 0xdf, 0xce, 0x21, 0x6e, 0x18, 0x91, 0xd7, - 0xb8, 0xab, 0x8c, 0x27, 0x17, 0xb5, 0xf0, 0xa3, 0x01, 0x2f, - 0x8e, 0xd2, 0x2e, 0x87, 0x3a, 0x3d, 0xb4, 0x29, 0x67, 0x8a, - 0xc4, 0x03, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x03, - 0x5c, 0x30, 0x82, 0x03, 0x58, 0x30, 0x0c, 0x06, 0x03, 0x55, - 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, - 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, - 0x01, 0xa6, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, - 0x16, 0x04, 0x14, 0x11, 0xdb, 0x23, 0x45, 0xfd, 0x54, 0xcc, - 0x6a, 0x71, 0x6f, 0x84, 0x8a, 0x03, 0xd7, 0xbe, 0xf7, 0x01, - 0x2f, 0x26, 0x86, 0x30, 0x81, 0xa8, 0x06, 0x03, 0x55, 0x1d, - 0x23, 0x04, 0x81, 0xa0, 0x30, 0x81, 0x9d, 0x80, 0x14, 0x4e, - 0x0b, 0xef, 0x1a, 0xa4, 0x40, 0x5b, 0xa5, 0x17, 0x69, 0x87, - 0x30, 0xca, 0x34, 0x68, 0x43, 0xd0, 0x41, 0xae, 0xf2, 0xa1, - 0x81, 0x81, 0xa4, 0x7f, 0x30, 0x7d, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, - 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, - 0x74, 0x64, 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x13, 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, - 0x20, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x29, - 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x82, 0x01, 0x01, 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, - 0x12, 0x04, 0x02, 0x30, 0x00, 0x30, 0x3d, 0x06, 0x08, 0x2b, - 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, - 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, - 0x07, 0x30, 0x02, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, - 0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x60, - 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x59, 0x30, 0x57, 0x30, - 0x2c, 0xa0, 0x2a, 0xa0, 0x28, 0x86, 0x26, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x72, - 0x67, 0x2f, 0x73, 0x66, 0x73, 0x63, 0x61, 0x2d, 0x63, 0x72, - 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x27, 0xa0, 0x25, 0xa0, - 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, - 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x73, - 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x82, 0x01, 0x5d, - 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x82, 0x01, 0x54, 0x30, - 0x82, 0x01, 0x50, 0x30, 0x82, 0x01, 0x4c, 0x06, 0x0b, 0x2b, - 0x06, 0x01, 0x04, 0x01, 0x81, 0xb5, 0x37, 0x01, 0x01, 0x04, - 0x30, 0x82, 0x01, 0x3b, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, - 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x23, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x2e, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, - 0x72, 0x67, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x70, 0x64, 0x66, 0x30, 0x35, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x29, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x72, - 0x67, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x64, 0x66, 0x30, 0x81, - 0xd0, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, - 0x02, 0x30, 0x81, 0xc3, 0x30, 0x27, 0x16, 0x20, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, - 0x63, 0x69, 0x61, 0x6c, 0x20, 0x28, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6d, 0x29, 0x20, 0x4c, 0x74, 0x64, 0x2e, - 0x30, 0x03, 0x02, 0x01, 0x01, 0x1a, 0x81, 0x97, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x65, 0x64, 0x20, 0x4c, 0x69, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x2a, 0x4c, 0x65, 0x67, 0x61, 0x6c, - 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2a, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, - 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x20, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x64, 0x66, 0x30, - 0x11, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, - 0x01, 0x01, 0x04, 0x04, 0x03, 0x02, 0x00, 0x07, 0x30, 0x51, - 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x01, - 0x0d, 0x04, 0x44, 0x16, 0x42, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, - 0x32, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, 0x53, 0x53, - 0x4c, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, - 0x00, 0x64, 0x82, 0x4c, 0x59, 0x5c, 0x0c, 0x6c, 0x16, 0xb6, - 0xa2, 0x39, 0x45, 0x11, 0x87, 0x98, 0xdf, 0x10, 0x33, 0xae, - 0x42, 0x9e, 0x25, 0xd1, 0xfd, 0x70, 0x53, 0x45, 0x5e, 0xf4, - 0x35, 0xc0, 0xe4, 0x30, 0x77, 0xe0, 0x9c, 0xf7, 0xef, 0x27, - 0xe5, 0x6e, 0x28, 0xef, 0xac, 0xd7, 0xf3, 0x16, 0xcc, 0xc1, - 0x6c, 0x53, 0x9c, 0x8f, 0x2d, 0x82, 0x6f, 0x94, 0xf7, 0x14, - 0x36, 0x17, 0xae, 0xb2, 0xe5, 0xa2, 0x3f, 0xa2, 0x83, 0x73, - 0xa4, 0xdf, 0xa8, 0xbb, 0xca, 0x01, 0x31, 0x6c, 0x9a, 0x43, - 0x08, 0xdd, 0x1a, 0x5d, 0xad, 0x4b, 0x6d, 0x7f, 0xf4, 0x7e, - 0xf0, 0x12, 0x3a, 0x05, 0xbf, 0xa7, 0x44, 0x10, 0x07, 0x17, - 0x44, 0x93, 0x50, 0xe3, 0x95, 0x29, 0xb3, 0xf4, 0x13, 0xd2, - 0x40, 0xe0, 0x3e, 0xdf, 0x3d, 0x3d, 0x39, 0x5e, 0x81, 0x48, - 0x0f, 0x32, 0xba, 0x48, 0xd5, 0x03, 0x1b, 0xf5, 0xf7, 0x4e, - 0x0a, 0x8e, 0x03, 0x8d, 0xfc, 0xca, 0x87, 0xe6, 0xc9, 0xdf, - 0x26, 0xdf, 0x84, 0x3a, 0x49, 0xb1, 0x99, 0x55, 0x3f, 0xd4, - 0x2c, 0xab, 0x78, 0x0d, 0x62, 0x03, 0x15, 0x9f, 0xb1, 0x45, - 0x4b, 0x23, 0x78, 0x62, 0x2a, 0xee, 0xeb, 0x7b, 0x60, 0x2d, - 0x77, 0x72, 0x1e, 0x61, 0x24, 0x69, 0x62, 0xe8, 0xe1, 0x35, - 0x3c, 0x82, 0x02, 0x40, 0x15, 0x32, 0x4b, 0x57, 0xcd, 0x97, - 0xb9, 0x29, 0x8f, 0xa4, 0xd7, 0x84, 0xdb, 0x09, 0xe5, 0x35, - 0x5b, 0x2f, 0x60, 0x59, 0x49, 0xe9, 0xd6, 0x59, 0xf5, 0xfa, - 0x5d, 0xc8, 0xcd, 0x4d, 0x94, 0x70, 0xc4, 0xe8, 0x3c, 0x35, - 0x01, 0x06, 0x75, 0xe8, 0x71, 0x9b, 0x7f, 0x2b, 0x10, 0xca, - 0x6b, 0x3f, 0xc0, 0xb3, 0x97, 0x72, 0xda, 0xff, 0x74, 0x16, - 0x8e, 0xfb, 0xfb, 0x9b, 0xe4, 0x05, 0xf0, 0x98, 0xe7, 0x15, - 0xac, 0xca, 0x24, 0xa2, 0xe7, 0x8a, 0xb4, 0xcf, 0x72, 0x31, - 0x2b, 0xe3, 0x31, 0x0e, 0x30, 0x5f, 0xd5, 0xcb, 0x94, 0xb3, - 0xee, 0x35, 0x04, 0xd3, 0x45, 0x07, 0x09, 0x14, 0x51, 0x8a, - 0xf5, 0x07, 0x31, 0x5e, 0x13, 0x2f, 0x5d, 0x0c, 0xd9, 0xd7, - 0x36, 0xa8, 0xb0, 0x52, 0x37, 0x94, 0xc2, 0x75, 0x9c, 0x5a, - 0x2e, 0xa8, 0xd1, 0xb0, 0x73, 0x6b, 0x69, 0xda, 0x0c, 0x3a, - 0xd6, 0x11, 0x6b, 0xac, 0x9d, 0xbc, 0x45, 0x32, 0x05, 0xe8, - 0x89, 0x77, 0xd5, 0xb7, 0xbe, 0xc0, 0xed, 0xcd, 0xcd, 0x4e, - 0x6d, 0x28, 0x58, 0x0a, 0xf0, 0xb4, 0x51, 0xc8, 0xcd, 0x86, - 0xd1, 0x89, 0x23, 0xc5, 0x23, 0xed, 0xcf, 0x10, 0xf9, 0x0e, - 0x6e, 0xd8, 0xc1, 0xd7, 0x3f, 0x80, 0xfa, 0xa6, 0x2a, 0x47, - 0xc4, 0xdb, 0x07, 0x16, 0xe7, 0x0b, 0x8b, 0x53, 0x97, 0x11, - 0x2e, 0xa3, 0x61, 0x27, 0xb3, 0xbb, 0x4a, 0xd7, 0x01, 0x6d, - 0xb1, 0x71, 0xa5, 0xe5, 0x23, 0xd6, 0xda, 0xa1, 0xa8, 0x55, - 0x26, 0xaf, 0xb7, 0xba, 0x5e, 0x56, 0x2d, 0x3d, 0x10, 0xa3, - 0x71, 0x4a, 0x93, 0x45, 0x1c, 0x7a, 0x3c, 0x92, 0x2a, 0x69, - 0x3f, 0x4f, 0x1e, 0x96, 0x99, 0x90, 0x09, 0xc8, 0x01, 0xbf, - 0x28, 0x34, 0xb2, 0x7d, 0x11, 0x50, 0x59, 0xd0, 0x9b, 0xe3, - 0x33, 0x56, 0x65, 0xee, 0x98, 0x97, 0x3f, 0x3e, 0x54, 0x69, - 0x2d, 0x26, 0x2e, 0x03, 0x2b, 0xa0, 0xbe, 0xab, 0x6b, 0x80, - 0x20, 0xe1, 0x3a, 0x4b, 0xbb, 0x26, 0xbe, 0xab, 0xab, 0xa5, - 0x39, 0xb1, 0x9a, 0x49, 0xa6, 0xb4, 0x5b, 0x96, 0x66, 0xe2, - 0x49, 0x0b, 0x70, 0x02, 0xaa, 0x49, 0x49, 0x61, 0x0e, 0xfe, - 0xae, 0xf5, 0xa5, 0x96, 0xe7, 0xf6, 0xba, 0x6c, 0x89, 0x9f, - 0x0e, 0x72, 0xec, 0xfb, 0x45, 0x00, 0x87, 0x8f, 0x2c, 0xe7, - 0x7f, 0xb2, 0xc5, 0xa5, 0x52, 0xbe, 0x03, 0xfa, 0x31, 0x2a, - 0x02, 0x6a, 0xf8 ), - FINGERPRINT ( 0x9f, 0xd1, 0x93, 0xd3, 0x8f, 0x95, 0x30, 0xab, - 0x55, 0xa5, 0xc1, 0xb3, 0x51, 0x4a, 0x1d, 0x64, - 0x1c, 0xec, 0xc2, 0x1c, 0xc5, 0xc2, 0xf5, 0x67, - 0x48, 0xa7, 0x11, 0x01, 0x69, 0x83, 0xfd, 0x8e ) ); - -/* - * subject RapidSSL SHA256 CA - G3 - * issuer GeoTrust Global CA - */ -CERTIFICATE ( rapidssl_crt, - DATA ( 0x30, 0x82, 0x04, 0x25, 0x30, 0x82, 0x03, 0x0d, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x03, 0x02, 0x3a, 0x77, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, - 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, - 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, - 0x63, 0x2e, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x13, 0x12, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, - 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x43, - 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x38, 0x32, - 0x39, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32, 0x5a, 0x17, 0x0d, - 0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x39, - 0x33, 0x32, 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, - 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, - 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, - 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, - 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, - 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, - 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, - 0x54, 0x9b, 0xd9, 0x58, 0x5d, 0x1e, 0x2c, 0x56, 0xc6, 0xd5, - 0xe8, 0x7f, 0xf4, 0x7d, 0x16, 0x03, 0xff, 0xd0, 0x8b, 0x5a, - 0xe4, 0x8e, 0xa7, 0xdd, 0x54, 0x2e, 0xd4, 0x04, 0xc0, 0x5d, - 0x98, 0x9c, 0x8d, 0x90, 0x0f, 0xbc, 0x10, 0x65, 0x5f, 0xda, - 0x9a, 0xd6, 0x44, 0x7c, 0xc0, 0x9f, 0xb5, 0xe9, 0x4a, 0x8c, - 0x0b, 0x06, 0x43, 0x04, 0xbb, 0xf4, 0x96, 0xe2, 0x26, 0xf6, - 0x61, 0x01, 0x91, 0x66, 0x31, 0x22, 0xc3, 0x34, 0x34, 0x5f, - 0x3f, 0x3f, 0x91, 0x2f, 0x44, 0x5f, 0xdc, 0xc7, 0x14, 0xb6, - 0x03, 0x9f, 0x86, 0x4b, 0x0e, 0xa3, 0xff, 0xa0, 0x80, 0x02, - 0x83, 0xc3, 0xd3, 0x1f, 0x69, 0x52, 0xd6, 0x9d, 0x64, 0x0f, - 0xc9, 0x83, 0xe7, 0x1b, 0xc4, 0x70, 0xac, 0x94, 0xe7, 0xc3, - 0xa4, 0x6a, 0x2c, 0xbd, 0xb8, 0x9e, 0x69, 0xd8, 0xbe, 0x0a, - 0x8f, 0x16, 0x63, 0x5a, 0x68, 0x71, 0x80, 0x7b, 0x30, 0xde, - 0x15, 0x04, 0xbf, 0xcc, 0xd3, 0xbf, 0x3e, 0x48, 0x05, 0x55, - 0x7a, 0xb3, 0xd7, 0x10, 0x0c, 0x03, 0xfc, 0x9b, 0xfd, 0x08, - 0xa7, 0x8c, 0x8c, 0xdb, 0xa7, 0x8e, 0xf1, 0x1e, 0x63, 0xdc, - 0xb3, 0x01, 0x2f, 0x7f, 0xaf, 0x57, 0xc3, 0x3c, 0x48, 0xa7, - 0x83, 0x68, 0x21, 0xa7, 0x2f, 0xe7, 0xa7, 0x3f, 0xf0, 0xb5, - 0x0c, 0xfc, 0xf5, 0x84, 0xd1, 0x53, 0xbc, 0x0e, 0x72, 0x4f, - 0x60, 0x0c, 0x42, 0xb8, 0x98, 0xad, 0x19, 0x88, 0x57, 0xd7, - 0x04, 0xec, 0x87, 0xbf, 0x7e, 0x87, 0x4e, 0xa3, 0x21, 0xf9, - 0x53, 0xfd, 0x36, 0x98, 0x48, 0x8d, 0xd6, 0xf8, 0xbb, 0x48, - 0xf2, 0x29, 0xc8, 0x64, 0xd1, 0xcc, 0x54, 0x48, 0x53, 0x8b, - 0xaf, 0xb7, 0x65, 0x1e, 0xbf, 0x29, 0x33, 0x29, 0xd9, 0x29, - 0x60, 0x48, 0xf8, 0xff, 0x91, 0xbc, 0x57, 0x58, 0xe5, 0x35, - 0x2e, 0xbb, 0x69, 0xb6, 0x59, 0x02, 0x03, 0x01, 0x00, 0x01, - 0xa3, 0x82, 0x01, 0x1d, 0x30, 0x82, 0x01, 0x19, 0x30, 0x1f, - 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, - 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, - 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, - 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, - 0x04, 0x14, 0xc3, 0x9c, 0xf3, 0xfc, 0xd3, 0x46, 0x08, 0x34, - 0xbb, 0xce, 0x46, 0x7f, 0xa0, 0x7c, 0x5b, 0xf3, 0xe2, 0x08, - 0xcb, 0x59, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, - 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, - 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, - 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x35, - 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, - 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, - 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, - 0x63, 0x72, 0x6c, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20, 0x30, - 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, - 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, - 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, - 0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, - 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, - 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, - 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, - 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, - 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa3, - 0x58, 0x1e, 0xc6, 0x43, 0x32, 0xac, 0xac, 0x2f, 0x93, 0x78, - 0xb7, 0xea, 0xae, 0x54, 0x40, 0x47, 0x2d, 0x7e, 0x78, 0x8d, - 0x50, 0xf6, 0xf8, 0x66, 0xac, 0xd6, 0x4f, 0x73, 0xd6, 0x44, - 0xef, 0xaf, 0x0b, 0xcc, 0x5b, 0xc1, 0xf4, 0x4f, 0x9a, 0x8f, - 0x49, 0x7e, 0x60, 0xaf, 0xc2, 0x27, 0xc7, 0x16, 0xf1, 0xfb, - 0x93, 0x81, 0x90, 0xa9, 0x7c, 0xef, 0x6f, 0x7e, 0x6e, 0x45, - 0x94, 0x16, 0x84, 0xbd, 0xec, 0x49, 0xf1, 0xc4, 0x0e, 0xf4, - 0xaf, 0x04, 0x59, 0x83, 0x87, 0x0f, 0x2c, 0x3b, 0x97, 0xc3, - 0x5a, 0x12, 0x9b, 0x7b, 0x04, 0x35, 0x7b, 0xa3, 0x95, 0x33, - 0x08, 0x7b, 0x93, 0x71, 0x22, 0x42, 0xb3, 0xa9, 0xd9, 0x6f, - 0x4f, 0x81, 0x92, 0xfc, 0x07, 0xb6, 0x79, 0xbc, 0x84, 0x4a, - 0x9d, 0x77, 0x09, 0xf1, 0xc5, 0x89, 0xf2, 0xf0, 0xb4, 0x9c, - 0x54, 0xaa, 0x12, 0x7b, 0x0d, 0xba, 0x4f, 0xef, 0x93, 0x19, - 0xec, 0xef, 0x7d, 0x4e, 0x61, 0xa3, 0x8e, 0x76, 0x9c, 0x59, - 0xcf, 0x8c, 0x94, 0xb1, 0x84, 0x97, 0xf7, 0x1a, 0xb9, 0x07, - 0xb8, 0xb2, 0xc6, 0x4f, 0x13, 0x79, 0xdb, 0xbf, 0x4f, 0x51, - 0x1b, 0x7f, 0x69, 0x0d, 0x51, 0x2a, 0xc1, 0xd6, 0x15, 0xff, - 0x37, 0x51, 0x34, 0x65, 0x51, 0xf4, 0x1e, 0xbe, 0x38, 0x6a, - 0xec, 0x0e, 0xab, 0xbf, 0x3d, 0x7b, 0x39, 0x05, 0x7b, 0xf4, - 0xf3, 0xfb, 0x1a, 0xa1, 0xd0, 0xc8, 0x7e, 0x4e, 0x64, 0x8d, - 0xcd, 0x8c, 0x61, 0x55, 0x90, 0xfe, 0x3a, 0xca, 0x5d, 0x25, - 0x0f, 0xf8, 0x1d, 0xa3, 0x4a, 0x74, 0x56, 0x4f, 0x1a, 0x55, - 0x40, 0x70, 0x75, 0x25, 0xa6, 0x33, 0x2e, 0xba, 0x4b, 0xa5, - 0x5d, 0x53, 0x9a, 0x0d, 0x30, 0xe1, 0x8d, 0x5f, 0x61, 0x2c, - 0xaf, 0xcc, 0xef, 0xb0, 0x99, 0xa1, 0x80, 0xff, 0x0b, 0xf2, - 0x62, 0x4c, 0x70, 0x26, 0x98 ), - FINGERPRINT ( 0xbc, 0x3f, 0x03, 0xa4, 0x36, 0x24, 0x0e, 0xdb, - 0xa5, 0xf8, 0x37, 0x14, 0xf6, 0xf6, 0x77, 0xe3, - 0x4b, 0x37, 0xf9, 0xb1, 0xf0, 0xc0, 0x8c, 0x1e, - 0x55, 0x8d, 0x98, 0x1e, 0x27, 0x9e, 0x82, 0x09 ) ); - -/* - * subject *.vultr.com - * issuer RapidSSL SHA256 CA - G3 - */ -CERTIFICATE ( vultr_crt, - DATA ( 0x30, 0x82, 0x04, 0xa8, 0x30, 0x82, 0x03, 0x90, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x03, 0x00, 0x95, 0x4d, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x0b, 0x05, 0x00, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, - 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, - 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, - 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, - 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, - 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, 0x0d, - 0x31, 0x34, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x33, 0x31, - 0x32, 0x38, 0x5a, 0x17, 0x0d, 0x31, 0x37, 0x31, 0x32, 0x32, - 0x32, 0x31, 0x39, 0x32, 0x39, 0x31, 0x30, 0x5a, 0x30, 0x81, - 0x8f, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, - 0x13, 0x0a, 0x47, 0x54, 0x36, 0x32, 0x30, 0x37, 0x39, 0x37, - 0x32, 0x31, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, - 0x0b, 0x13, 0x28, 0x53, 0x65, 0x65, 0x20, 0x77, 0x77, 0x77, - 0x2e, 0x72, 0x61, 0x70, 0x69, 0x64, 0x73, 0x73, 0x6c, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x20, 0x28, 0x63, - 0x29, 0x31, 0x33, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x13, 0x26, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, - 0x20, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c, 0x28, - 0x52, 0x29, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x0b, 0x2a, 0x2e, 0x76, 0x75, 0x6c, 0x74, 0x72, - 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, - 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x9f, 0xa8, 0x2e, - 0x65, 0x41, 0x05, 0xec, 0xef, 0x69, 0x92, 0xf6, 0xd3, 0x53, - 0x4f, 0xd4, 0x8e, 0xd3, 0x49, 0x8c, 0xc7, 0x85, 0x6d, 0xb0, - 0x71, 0xe0, 0x28, 0x04, 0x80, 0x85, 0x82, 0x3e, 0x3f, 0xdb, - 0x0c, 0xed, 0xcd, 0x2b, 0x04, 0xc8, 0x67, 0x15, 0x8c, 0x25, - 0xd6, 0x7a, 0x54, 0x67, 0x94, 0xbe, 0x33, 0x12, 0x33, 0x88, - 0xfe, 0x5d, 0x1d, 0x36, 0x62, 0x4e, 0xbc, 0x1e, 0x7e, 0xd3, - 0x3e, 0x7c, 0x3c, 0x59, 0x4a, 0x99, 0x0b, 0xca, 0x9b, 0x1e, - 0xc7, 0xf7, 0xe7, 0x6d, 0xdc, 0x57, 0xbe, 0x3a, 0xab, 0xc2, - 0x0b, 0xb1, 0xbe, 0x90, 0xa1, 0x54, 0x07, 0xc5, 0x48, 0x65, - 0xc1, 0x32, 0x99, 0x92, 0x26, 0x97, 0x90, 0x3e, 0x68, 0x6b, - 0xac, 0xbd, 0x4f, 0x0e, 0x88, 0x38, 0xd3, 0xdc, 0x80, 0x9e, - 0xb9, 0x66, 0x5d, 0xeb, 0x19, 0xfd, 0x85, 0xff, 0xba, 0xf0, - 0x89, 0x20, 0x08, 0xea, 0xd8, 0x01, 0x76, 0x29, 0xdc, 0xf0, - 0x1c, 0xfa, 0xbf, 0x6f, 0x7b, 0x67, 0xf4, 0xc4, 0xee, 0xe3, - 0xde, 0x95, 0xa2, 0x76, 0x65, 0x98, 0xc5, 0x21, 0xdc, 0xe9, - 0x95, 0xee, 0x83, 0x97, 0xae, 0xdd, 0xab, 0xdb, 0xc0, 0x47, - 0xc8, 0x68, 0x00, 0xb3, 0xab, 0x11, 0x4f, 0x81, 0xf5, 0x45, - 0x01, 0xd1, 0x64, 0xfd, 0x53, 0xbf, 0x86, 0xef, 0x87, 0xca, - 0x8e, 0x55, 0xa0, 0x27, 0x27, 0xe5, 0x9e, 0xc1, 0x69, 0x28, - 0x2a, 0x9f, 0x2d, 0xe2, 0x2c, 0x25, 0xef, 0x74, 0x1b, 0x52, - 0xe4, 0x81, 0xf4, 0xc2, 0x71, 0x0a, 0x48, 0xff, 0x47, 0xa5, - 0xea, 0x0a, 0xf5, 0xb1, 0x6d, 0xae, 0x09, 0x2b, 0xf9, 0x23, - 0x6a, 0x28, 0x58, 0x3d, 0xbb, 0x9f, 0x80, 0xb2, 0x81, 0x03, - 0xae, 0xe5, 0xea, 0xbe, 0x97, 0xae, 0xec, 0x3c, 0x33, 0xc7, - 0x68, 0xf0, 0x6c, 0x89, 0x9d, 0x01, 0x2a, 0x1e, 0x2b, 0xd7, - 0x93, 0x5a, 0xa9, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, - 0x01, 0x52, 0x30, 0x82, 0x01, 0x4e, 0x30, 0x1f, 0x06, 0x03, - 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc3, - 0x9c, 0xf3, 0xfc, 0xd3, 0x46, 0x08, 0x34, 0xbb, 0xce, 0x46, - 0x7f, 0xa0, 0x7c, 0x5b, 0xf3, 0xe2, 0x08, 0xcb, 0x59, 0x30, - 0x57, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, - 0x01, 0x04, 0x4b, 0x30, 0x49, 0x30, 0x1f, 0x06, 0x08, 0x2b, - 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x76, 0x2e, 0x73, - 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x26, - 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, - 0x86, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, - 0x76, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x67, 0x76, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0e, - 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, - 0x03, 0x02, 0x05, 0xa0, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, - 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x21, 0x06, 0x03, 0x55, - 0x1d, 0x11, 0x04, 0x1a, 0x30, 0x18, 0x82, 0x0b, 0x2a, 0x2e, - 0x76, 0x75, 0x6c, 0x74, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x82, - 0x09, 0x76, 0x75, 0x6c, 0x74, 0x72, 0x2e, 0x63, 0x6f, 0x6d, - 0x30, 0x2b, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x24, 0x30, - 0x22, 0x30, 0x20, 0xa0, 0x1e, 0xa0, 0x1c, 0x86, 0x1a, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x76, 0x2e, 0x73, - 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, - 0x76, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0c, 0x06, 0x03, 0x55, - 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, - 0x45, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3e, 0x30, 0x3c, - 0x30, 0x3a, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, - 0x45, 0x01, 0x07, 0x36, 0x30, 0x2c, 0x30, 0x2a, 0x06, 0x08, - 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1e, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, - 0x77, 0x2e, 0x72, 0x61, 0x70, 0x69, 0x64, 0x73, 0x73, 0x6c, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, - 0x93, 0x63, 0x02, 0x6a, 0xa1, 0x2a, 0xf3, 0xbe, 0x64, 0x2b, - 0x36, 0xaf, 0x66, 0x16, 0x49, 0x29, 0x56, 0x6c, 0xc7, 0x75, - 0x74, 0xf3, 0x69, 0xd8, 0x85, 0xce, 0x50, 0x3b, 0x43, 0x89, - 0xaf, 0x74, 0x99, 0x26, 0x34, 0xa4, 0x27, 0xa8, 0xfa, 0xfe, - 0x45, 0xaf, 0xbe, 0x75, 0x22, 0x3d, 0x15, 0xca, 0xa6, 0x38, - 0xc9, 0x2b, 0x3c, 0xf4, 0x11, 0x9f, 0x96, 0xa7, 0x69, 0x3e, - 0xf8, 0xf0, 0x88, 0xd8, 0xd2, 0x9c, 0x1c, 0x0e, 0x4c, 0xfd, - 0xf3, 0x3b, 0x48, 0x25, 0x68, 0xb3, 0x8d, 0x7e, 0x26, 0x73, - 0x73, 0xcb, 0x3a, 0x41, 0x92, 0x16, 0x55, 0xe1, 0xff, 0x00, - 0x07, 0xa2, 0xfe, 0xfe, 0x25, 0xfc, 0x86, 0x0f, 0x49, 0xff, - 0x96, 0x78, 0x02, 0x65, 0xd7, 0xad, 0xcd, 0x0c, 0x82, 0x35, - 0x56, 0xfe, 0x12, 0x25, 0xa9, 0x8f, 0xc2, 0xa4, 0xe9, 0x43, - 0xbb, 0x85, 0x62, 0x21, 0x62, 0x5d, 0x70, 0x76, 0x79, 0x75, - 0xeb, 0xd6, 0x82, 0x53, 0x0d, 0xde, 0x77, 0x95, 0x56, 0x87, - 0x44, 0x13, 0x82, 0x7d, 0xa9, 0x9a, 0x94, 0x7e, 0x1c, 0x6d, - 0x7f, 0x72, 0xef, 0x04, 0x84, 0xdf, 0x65, 0x98, 0x17, 0xb4, - 0xbe, 0xfe, 0x30, 0x0f, 0xfa, 0x8d, 0x9f, 0x29, 0x1d, 0xbd, - 0x99, 0xa7, 0xe3, 0x09, 0x1d, 0x13, 0x21, 0xfd, 0x9e, 0x03, - 0x17, 0xb9, 0x9e, 0x48, 0x35, 0x66, 0xe5, 0x86, 0x0a, 0x0f, - 0x04, 0xfd, 0xcd, 0x3b, 0x13, 0x59, 0xd6, 0x0c, 0x05, 0x8c, - 0xd2, 0x6b, 0x5c, 0x45, 0x33, 0x43, 0x91, 0xac, 0xb8, 0xdd, - 0xe3, 0xbe, 0xdf, 0x7b, 0x5c, 0x94, 0xa9, 0xfd, 0xc0, 0xf8, - 0xa9, 0xd2, 0x82, 0xcd, 0xbf, 0x60, 0xd7, 0xf8, 0x3d, 0x53, - 0xf7, 0x6a, 0xdc, 0x46, 0xc4, 0x22, 0x84, 0x98, 0x6a, 0x32, - 0xf2, 0xdf, 0x43, 0xd9, 0x5a, 0xdb, 0x97, 0x20, 0x05, 0x0b, - 0x3e, 0x06, 0x38, 0x13, 0x3a, 0x21 ), - FINGERPRINT ( 0x2c, 0x58, 0x63, 0x6e, 0xf1, 0xab, 0x8f, 0xff, - 0x86, 0x5d, 0x4f, 0x8d, 0x3f, 0xa9, 0x4d, 0x63, - 0xe7, 0xe6, 0xc6, 0x03, 0x1e, 0xc9, 0x0e, 0xfb, - 0xe8, 0xaa, 0xa6, 0xf4, 0x6f, 0x21, 0xc7, 0x7b ) ); - -OCSP ( barclays_ocsp, &barclays_crt, &verisign_crt, - DATA ( 0x30, 0x51, 0x30, 0x4f, 0x30, 0x4d, 0x30, 0x4b, 0x30, 0x49, - 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, - 0x00, 0x04, 0x14, 0xd4, 0xb4, 0x3b, 0x8e, 0x3d, 0x02, 0x49, - 0x1a, 0x65, 0x50, 0x6f, 0x96, 0x73, 0x14, 0xdd, 0xe8, 0x59, - 0x44, 0x52, 0xe4, 0x04, 0x14, 0xd7, 0x9b, 0x7c, 0xd8, 0x22, - 0xa0, 0x15, 0xf7, 0xdd, 0xad, 0x5f, 0xce, 0x29, 0x9b, 0x58, - 0xc3, 0xbc, 0x46, 0x00, 0xb5, 0x02, 0x10, 0x49, 0x83, 0xfc, - 0x05, 0x76, 0xdf, 0x36, 0x91, 0x7c, 0x64, 0x2a, 0x27, 0xc1, - 0xf1, 0x48, 0xe3 ), - DATA ( 0x30, 0x82, 0x06, 0x4d, 0x0a, 0x01, 0x00, 0xa0, 0x82, 0x06, - 0x46, 0x30, 0x82, 0x06, 0x42, 0x06, 0x09, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x30, 0x01, 0x01, 0x04, 0x82, 0x06, 0x33, - 0x30, 0x82, 0x06, 0x2f, 0x30, 0x82, 0x01, 0x1f, 0xa0, 0x03, - 0x02, 0x01, 0x00, 0xa1, 0x81, 0x91, 0x30, 0x81, 0x8e, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x13, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, - 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56, 0x65, - 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, - 0x3c, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, - 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x20, 0x4f, 0x43, 0x53, - 0x50, 0x20, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x32, 0x30, 0x35, 0x31, - 0x34, 0x31, 0x34, 0x30, 0x31, 0x34, 0x31, 0x5a, 0x30, 0x73, - 0x30, 0x71, 0x30, 0x49, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, - 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0xd4, 0xb4, 0x3b, - 0x8e, 0x3d, 0x02, 0x49, 0x1a, 0x65, 0x50, 0x6f, 0x96, 0x73, - 0x14, 0xdd, 0xe8, 0x59, 0x44, 0x52, 0xe4, 0x04, 0x14, 0xd7, - 0x9b, 0x7c, 0xd8, 0x22, 0xa0, 0x15, 0xf7, 0xdd, 0xad, 0x5f, - 0xce, 0x29, 0x9b, 0x58, 0xc3, 0xbc, 0x46, 0x00, 0xb5, 0x02, - 0x10, 0x49, 0x83, 0xfc, 0x05, 0x76, 0xdf, 0x36, 0x91, 0x7c, - 0x64, 0x2a, 0x27, 0xc1, 0xf1, 0x48, 0xe3, 0x80, 0x00, 0x18, - 0x0f, 0x32, 0x30, 0x31, 0x32, 0x30, 0x35, 0x31, 0x34, 0x31, - 0x34, 0x30, 0x31, 0x34, 0x31, 0x5a, 0xa0, 0x11, 0x18, 0x0f, - 0x32, 0x30, 0x31, 0x32, 0x30, 0x35, 0x32, 0x31, 0x31, 0x34, - 0x30, 0x31, 0x34, 0x31, 0x5a, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x03, 0x81, 0x81, 0x00, 0x78, 0xa8, 0xe7, 0xdc, 0xaf, 0xf2, - 0x8b, 0xc2, 0x9f, 0x99, 0xf9, 0x44, 0x84, 0xa8, 0x8a, 0x2c, - 0x35, 0xd7, 0x91, 0xd8, 0x44, 0x3e, 0xd6, 0xe0, 0xc6, 0x3f, - 0xbf, 0xe3, 0x71, 0x22, 0x45, 0x5a, 0x73, 0xf4, 0x59, 0x1b, - 0x4c, 0xa5, 0x51, 0x21, 0x5c, 0xfa, 0xbe, 0x10, 0xcb, 0x5f, - 0xb0, 0x2f, 0xef, 0x22, 0x89, 0xf6, 0xc7, 0x0f, 0x7c, 0x6d, - 0x26, 0xbe, 0x83, 0x99, 0xe2, 0x02, 0xf5, 0x95, 0x6e, 0xca, - 0xd9, 0x6d, 0xdd, 0xc2, 0xf0, 0xf2, 0x4f, 0x99, 0x66, 0x93, - 0x6e, 0x2e, 0xcf, 0xc5, 0xab, 0x68, 0x5f, 0xde, 0x52, 0x3d, - 0xf2, 0x23, 0x9d, 0xe8, 0x99, 0xd5, 0xf4, 0x4f, 0x8a, 0xf3, - 0xfd, 0x99, 0xa3, 0xe3, 0x12, 0x56, 0xd1, 0x54, 0xf1, 0xe1, - 0x24, 0xa0, 0xce, 0xeb, 0x80, 0xb6, 0xde, 0x44, 0xa8, 0xef, - 0xb1, 0xfc, 0x9c, 0x76, 0xbb, 0x1f, 0x17, 0x40, 0xbe, 0x2a, - 0xc8, 0x12, 0xa0, 0x82, 0x04, 0x75, 0x30, 0x82, 0x04, 0x71, - 0x30, 0x82, 0x04, 0x6d, 0x30, 0x82, 0x03, 0x55, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x10, 0x68, 0x8e, 0x69, 0x1f, 0x05, - 0x02, 0x11, 0x40, 0x45, 0x8e, 0xf0, 0x39, 0x24, 0x07, 0xcf, - 0xd6, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0xbc, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x13, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, - 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56, 0x65, - 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x31, 0x3b, 0x30, 0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x32, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, - 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, - 0x30, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x13, 0x2d, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, - 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, - 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, - 0x0d, 0x31, 0x32, 0x30, 0x33, 0x31, 0x33, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x36, - 0x31, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, - 0x81, 0x8e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, - 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, - 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65, 0x72, 0x69, - 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, - 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, - 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, - 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, - 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x20, - 0x4f, 0x43, 0x53, 0x50, 0x20, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x64, 0x65, 0x72, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, - 0x81, 0x81, 0x00, 0xa4, 0x3c, 0x3c, 0x43, 0xd3, 0x33, 0x14, - 0x0a, 0xb4, 0x5e, 0x25, 0x03, 0x6d, 0x60, 0x6c, 0x2f, 0xc9, - 0x33, 0x11, 0xe6, 0x79, 0xd9, 0x8c, 0x4a, 0x05, 0x60, 0xad, - 0x16, 0x8b, 0x23, 0x67, 0x8b, 0x1a, 0xaf, 0x84, 0xc3, 0xbb, - 0x6b, 0xcf, 0x9e, 0xf7, 0x65, 0x6d, 0x04, 0x97, 0xca, 0x12, - 0x96, 0x0b, 0x30, 0x7f, 0x0d, 0x6e, 0x7f, 0x81, 0x49, 0x53, - 0xf3, 0xcb, 0x5c, 0x00, 0xd8, 0x6d, 0xf9, 0x03, 0xf4, 0x23, - 0xd6, 0xd2, 0x9e, 0x8c, 0xca, 0x41, 0xfd, 0xa1, 0x02, 0x20, - 0xc8, 0x70, 0xb0, 0xfb, 0xaa, 0x1b, 0x33, 0x1e, 0x64, 0x30, - 0x70, 0x36, 0xed, 0x7b, 0xac, 0xe8, 0x64, 0xd9, 0x79, 0xa8, - 0x48, 0x20, 0x02, 0xdd, 0x8c, 0x02, 0x6f, 0x87, 0x2f, 0xad, - 0x29, 0x99, 0x8e, 0x15, 0x2c, 0xd1, 0xe0, 0x64, 0x82, 0x24, - 0x77, 0x31, 0xee, 0xb8, 0x68, 0xd1, 0x02, 0x32, 0xfb, 0xf0, - 0xcd, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x19, - 0x30, 0x82, 0x01, 0x15, 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, - 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x81, 0xac, 0x06, 0x03, - 0x55, 0x1d, 0x20, 0x04, 0x81, 0xa4, 0x30, 0x81, 0xa1, 0x30, - 0x81, 0x9e, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, - 0x45, 0x01, 0x07, 0x17, 0x03, 0x30, 0x81, 0x8e, 0x30, 0x28, - 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, - 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, - 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, - 0x30, 0x62, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, - 0x02, 0x02, 0x30, 0x56, 0x30, 0x15, 0x16, 0x0e, 0x56, 0x65, - 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, - 0x63, 0x2e, 0x30, 0x03, 0x02, 0x01, 0x01, 0x1a, 0x3d, 0x56, - 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x27, 0x73, 0x20, - 0x43, 0x50, 0x53, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x72, 0x70, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x61, 0x62, 0x2e, - 0x20, 0x6c, 0x74, 0x64, 0x2e, 0x20, 0x28, 0x63, 0x29, 0x39, - 0x37, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, - 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x0c, 0x30, - 0x0a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, - 0x09, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, - 0x03, 0x02, 0x07, 0x80, 0x30, 0x0f, 0x06, 0x09, 0x2b, 0x06, - 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x05, 0x04, 0x02, 0x05, - 0x00, 0x30, 0x26, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x1f, - 0x30, 0x1d, 0xa4, 0x1b, 0x30, 0x19, 0x31, 0x17, 0x30, 0x15, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0e, 0x4f, 0x43, 0x53, - 0x50, 0x38, 0x2d, 0x54, 0x47, 0x56, 0x37, 0x2d, 0x32, 0x38, - 0x35, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, - 0x00, 0x3b, 0xce, 0xd6, 0xa6, 0x61, 0x41, 0x3d, 0xb2, 0xc4, - 0x75, 0x00, 0x45, 0xf9, 0x3c, 0x2f, 0x2e, 0x4a, 0x8b, 0xfb, - 0x9c, 0xff, 0x15, 0xcb, 0x28, 0x65, 0xde, 0xc6, 0x97, 0xd8, - 0x85, 0x32, 0xa2, 0xfe, 0x74, 0x2d, 0xed, 0x34, 0xf8, 0x3c, - 0x15, 0xac, 0xfe, 0x72, 0x7f, 0x8c, 0x0e, 0x24, 0xdd, 0xb2, - 0x80, 0x55, 0xbd, 0x10, 0x0d, 0xa8, 0xb6, 0xf3, 0xe0, 0x98, - 0x8f, 0x24, 0x0b, 0xa0, 0x9d, 0x2c, 0x05, 0x20, 0x13, 0x4d, - 0x0b, 0x15, 0x2d, 0x1a, 0x02, 0x76, 0x0a, 0x5a, 0xb2, 0xb9, - 0xce, 0x6f, 0xb8, 0xc1, 0xec, 0xc4, 0xde, 0x46, 0xe4, 0xec, - 0x32, 0x05, 0x2d, 0xca, 0xb1, 0x4c, 0x59, 0x41, 0x13, 0x47, - 0x44, 0x9a, 0x55, 0x20, 0x26, 0xcc, 0x0d, 0x66, 0xb2, 0xd1, - 0x76, 0x87, 0x74, 0x73, 0xea, 0x5e, 0xe9, 0x49, 0xaf, 0x57, - 0x9c, 0xa6, 0x3d, 0xe5, 0x2c, 0x28, 0x21, 0xe5, 0x0a, 0x80, - 0xae, 0x99, 0x44, 0xe9, 0x83, 0x78, 0x7e, 0x24, 0xb5, 0xfa, - 0x50, 0x9d, 0x32, 0x55, 0x70, 0x73, 0xaf, 0x10, 0x92, 0xd3, - 0x14, 0xd3, 0x69, 0xfa, 0xa6, 0x81, 0x5c, 0xba, 0x9d, 0x18, - 0x25, 0xda, 0x78, 0x47, 0x33, 0x83, 0xd1, 0xc3, 0x96, 0x12, - 0x6f, 0x8b, 0xc9, 0x98, 0x32, 0x79, 0x59, 0x76, 0xcb, 0x56, - 0x7f, 0x5e, 0x6d, 0x1e, 0x78, 0xb2, 0xd0, 0x39, 0x3c, 0x41, - 0xd7, 0xab, 0x77, 0x2a, 0x0e, 0xbb, 0xc8, 0x69, 0xae, 0xfd, - 0x9c, 0x20, 0x11, 0xba, 0x0a, 0x5d, 0x00, 0x58, 0xf8, 0x74, - 0xb0, 0x77, 0x36, 0x9b, 0x8e, 0xd5, 0x4d, 0x85, 0xb1, 0xbb, - 0xcd, 0xcb, 0x1d, 0xee, 0x08, 0xb9, 0x53, 0x9a, 0x5f, 0xe3, - 0x88, 0xb1, 0x1a, 0xc3, 0x41, 0x41, 0x3e, 0x06, 0xf7, 0x70, - 0x58, 0xe8, 0x22, 0x22, 0xd7, 0x0e, 0xbb, 0x88, 0xce, 0x73, - 0x0e, 0xd0, 0x04, 0x81, 0x50, 0xd2, 0x33 ) ); - -OCSP ( google_ocsp, &google_crt, &thawte_crt, - DATA ( 0x30, 0x51, 0x30, 0x4f, 0x30, 0x4d, 0x30, 0x4b, 0x30, 0x49, - 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, - 0x00, 0x04, 0x14, 0x1e, 0x92, 0x09, 0xaa, 0x71, 0x3c, 0x79, - 0x4b, 0xca, 0x1e, 0x93, 0x1a, 0x0a, 0x61, 0xad, 0x3f, 0xd0, - 0xba, 0x60, 0x83, 0x04, 0x14, 0x3b, 0x34, 0x9a, 0x70, 0x91, - 0x73, 0xb2, 0x8a, 0x1b, 0x0c, 0xf4, 0xe9, 0x37, 0xcd, 0xb3, - 0x70, 0x32, 0x9e, 0x18, 0x54, 0x02, 0x10, 0x4f, 0x9d, 0x96, - 0xd9, 0x66, 0xb0, 0x99, 0x2b, 0x54, 0xc2, 0x95, 0x7c, 0xb4, - 0x15, 0x7d, 0x4d ), - DATA ( 0x30, 0x82, 0x04, 0x38, 0x0a, 0x01, 0x00, 0xa0, 0x82, 0x04, - 0x31, 0x30, 0x82, 0x04, 0x2d, 0x06, 0x09, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x30, 0x01, 0x01, 0x04, 0x82, 0x04, 0x1e, - 0x30, 0x82, 0x04, 0x1a, 0x30, 0x81, 0xe7, 0xa0, 0x03, 0x02, - 0x01, 0x00, 0xa1, 0x5a, 0x30, 0x58, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x5a, 0x41, 0x31, - 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, - 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x50, - 0x74, 0x79, 0x29, 0x20, 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x22, - 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x54, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x47, 0x43, 0x20, - 0x4f, 0x43, 0x53, 0x50, 0x20, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x32, - 0x30, 0x35, 0x31, 0x32, 0x31, 0x39, 0x33, 0x31, 0x34, 0x33, - 0x5a, 0x30, 0x73, 0x30, 0x71, 0x30, 0x49, 0x30, 0x09, 0x06, - 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, - 0x1e, 0x92, 0x09, 0xaa, 0x71, 0x3c, 0x79, 0x4b, 0xca, 0x1e, - 0x93, 0x1a, 0x0a, 0x61, 0xad, 0x3f, 0xd0, 0xba, 0x60, 0x83, - 0x04, 0x14, 0x3b, 0x34, 0x9a, 0x70, 0x91, 0x73, 0xb2, 0x8a, - 0x1b, 0x0c, 0xf4, 0xe9, 0x37, 0xcd, 0xb3, 0x70, 0x32, 0x9e, - 0x18, 0x54, 0x02, 0x10, 0x4f, 0x9d, 0x96, 0xd9, 0x66, 0xb0, - 0x99, 0x2b, 0x54, 0xc2, 0x95, 0x7c, 0xb4, 0x15, 0x7d, 0x4d, - 0x80, 0x00, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x32, 0x30, 0x35, - 0x31, 0x32, 0x31, 0x39, 0x33, 0x31, 0x34, 0x33, 0x5a, 0xa0, - 0x11, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x32, 0x30, 0x35, 0x31, - 0x39, 0x31, 0x39, 0x33, 0x31, 0x34, 0x33, 0x5a, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x57, 0xf9, 0xf8, - 0x26, 0x0f, 0xda, 0x0c, 0xc2, 0xf0, 0xe4, 0x80, 0xd0, 0x29, - 0xd6, 0x04, 0x77, 0xab, 0x0c, 0xf6, 0x7e, 0x77, 0xc9, 0xac, - 0x53, 0xa4, 0x4d, 0x6b, 0x75, 0x58, 0xb9, 0xc7, 0x7a, 0x9a, - 0x39, 0x5d, 0x4c, 0xfd, 0x15, 0x1b, 0x47, 0x55, 0x8e, 0x39, - 0x05, 0x2b, 0x06, 0x2f, 0x3e, 0x1d, 0x3a, 0x7c, 0x2c, 0xf4, - 0x4c, 0x70, 0x6a, 0x58, 0x7a, 0x4b, 0x8f, 0x77, 0xaf, 0x9e, - 0xcf, 0xc6, 0xb1, 0x66, 0x8d, 0xed, 0xbf, 0xc1, 0xd9, 0xe1, - 0x78, 0x5a, 0x18, 0x61, 0xca, 0xa8, 0xf5, 0x2b, 0xe3, 0x9b, - 0x50, 0x25, 0x60, 0x7d, 0x8d, 0xd1, 0xe0, 0x76, 0xbb, 0x5c, - 0x7b, 0xc1, 0x5d, 0xe1, 0x27, 0x3f, 0x7f, 0x9b, 0xb3, 0xb0, - 0xb2, 0x79, 0x37, 0xd4, 0x53, 0x29, 0x62, 0x46, 0x8f, 0xe6, - 0x34, 0x9e, 0xe5, 0x6e, 0x63, 0x5d, 0xcc, 0xb3, 0xb2, 0xe2, - 0x73, 0x7e, 0xa6, 0xad, 0xa0, 0xa0, 0x82, 0x02, 0x99, 0x30, - 0x82, 0x02, 0x95, 0x30, 0x82, 0x02, 0x91, 0x30, 0x82, 0x01, - 0xfa, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x67, 0x4d, - 0x9b, 0x61, 0x8f, 0x57, 0xcd, 0x51, 0xfb, 0x58, 0x07, 0x66, - 0x1d, 0x24, 0xf5, 0xa5, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, - 0x4c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x5a, 0x41, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, - 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x54, 0x68, 0x61, 0x77, 0x74, - 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x28, 0x50, 0x74, 0x79, 0x29, 0x20, 0x4c, - 0x74, 0x64, 0x2e, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x13, 0x0d, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, - 0x20, 0x53, 0x47, 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, - 0x0d, 0x31, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x36, - 0x30, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, - 0x58, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x5a, 0x41, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, - 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x54, 0x68, 0x61, 0x77, 0x74, - 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x28, 0x50, 0x74, 0x79, 0x29, 0x20, 0x4c, - 0x74, 0x64, 0x2e, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x13, 0x19, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, - 0x20, 0x53, 0x47, 0x43, 0x20, 0x4f, 0x43, 0x53, 0x50, 0x20, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x30, - 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, - 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xc2, 0x21, - 0x52, 0xe2, 0x10, 0x44, 0xe3, 0xc7, 0xe3, 0x72, 0x19, 0x01, - 0xa8, 0x0c, 0x5a, 0x8b, 0x63, 0x0b, 0x30, 0x4c, 0x4f, 0xa2, - 0xe2, 0xdf, 0x62, 0x2e, 0xdf, 0xe2, 0x77, 0xb9, 0x27, 0x3b, - 0x8d, 0x45, 0xe2, 0xa1, 0x21, 0x95, 0x13, 0x5a, 0xf2, 0x7d, - 0x58, 0x2c, 0x6d, 0x53, 0xb2, 0x42, 0x52, 0x8f, 0x8e, 0xf4, - 0x17, 0xc5, 0xcb, 0xfa, 0x2f, 0x2d, 0x9b, 0x02, 0xd0, 0x1a, - 0xf1, 0x32, 0xc5, 0xb9, 0xd3, 0x5a, 0xc0, 0xd6, 0x20, 0xb8, - 0x3f, 0xa3, 0x93, 0x8b, 0xe5, 0x22, 0x91, 0x1a, 0x7e, 0x7c, - 0x8b, 0x35, 0xeb, 0x94, 0xee, 0xe6, 0xcc, 0x58, 0xe4, 0x3c, - 0xcd, 0x00, 0x86, 0xaa, 0xc3, 0x2e, 0x8b, 0xb4, 0x3c, 0x29, - 0x11, 0x21, 0x5d, 0x71, 0x4a, 0xb6, 0x7a, 0x22, 0xa9, 0xf2, - 0xf8, 0x90, 0xed, 0x5c, 0x73, 0x8c, 0xe0, 0x70, 0x56, 0xde, - 0x70, 0xc5, 0x0d, 0x81, 0xb4, 0x5b, 0x02, 0x03, 0x01, 0x00, - 0x01, 0xa3, 0x68, 0x30, 0x66, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x13, 0x06, 0x03, - 0x55, 0x1d, 0x25, 0x04, 0x0c, 0x30, 0x0a, 0x06, 0x08, 0x2b, - 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x09, 0x30, 0x0b, 0x06, - 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80, - 0x30, 0x0f, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, - 0x30, 0x01, 0x05, 0x04, 0x02, 0x05, 0x00, 0x30, 0x26, 0x06, - 0x03, 0x55, 0x1d, 0x11, 0x04, 0x1f, 0x30, 0x1d, 0xa4, 0x1b, - 0x30, 0x19, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x13, 0x0e, 0x4f, 0x43, 0x53, 0x50, 0x38, 0x2d, 0x54, - 0x47, 0x56, 0x37, 0x2d, 0x32, 0x37, 0x35, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, - 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x98, 0x50, 0x14, 0xbe, - 0x31, 0x44, 0x01, 0x97, 0xee, 0x21, 0xf9, 0xcf, 0xa4, 0x32, - 0xc2, 0x91, 0x6a, 0x4b, 0x02, 0x61, 0x62, 0xa9, 0xe4, 0xad, - 0x8a, 0xac, 0xe4, 0x12, 0x12, 0xbe, 0x9b, 0xba, 0x4c, 0xe2, - 0x92, 0xdb, 0x8b, 0x92, 0x11, 0xe6, 0x9e, 0x25, 0x2e, 0xd5, - 0x4b, 0xe8, 0x5d, 0xc8, 0x63, 0xd2, 0xff, 0xfa, 0x80, 0x89, - 0x83, 0x0f, 0xe4, 0xe2, 0x91, 0xcc, 0x0a, 0x85, 0x74, 0x38, - 0xb7, 0xdf, 0xb9, 0x1c, 0xf6, 0x35, 0xfe, 0x6f, 0xf3, 0x29, - 0xc0, 0xc5, 0x0a, 0x2c, 0x04, 0xd7, 0x69, 0xff, 0x02, 0x45, - 0x1c, 0x29, 0x7a, 0x27, 0xf8, 0xb2, 0xe3, 0x58, 0x09, 0x34, - 0xc4, 0xd7, 0x77, 0x74, 0xbd, 0xe4, 0x7c, 0xda, 0x99, 0x09, - 0x83, 0x03, 0x6c, 0x36, 0x0d, 0xb2, 0x91, 0x71, 0x40, 0xc7, - 0x97, 0x85, 0xfb, 0x2a, 0xa3, 0x92, 0x65, 0x0b, 0x02, 0x58, - 0x14, 0x89, 0x8f, 0x3b ) ); - -OCSP ( unauthorized_ocsp, &barclays_crt, &thawte_crt, - DATA ( 0x30, 0x51, 0x30, 0x4f, 0x30, 0x4d, 0x30, 0x4b, 0x30, 0x49, - 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, - 0x00, 0x04, 0x14, 0xd4, 0xb4, 0x3b, 0x8e, 0x3d, 0x02, 0x49, - 0x1a, 0x65, 0x50, 0x6f, 0x96, 0x73, 0x14, 0xdd, 0xe8, 0x59, - 0x44, 0x52, 0xe4, 0x04, 0x14, 0x3b, 0x34, 0x9a, 0x70, 0x91, - 0x73, 0xb2, 0x8a, 0x1b, 0x0c, 0xf4, 0xe9, 0x37, 0xcd, 0xb3, - 0x70, 0x32, 0x9e, 0x18, 0x54, 0x02, 0x10, 0x49, 0x83, 0xfc, - 0x05, 0x76, 0xdf, 0x36, 0x91, 0x7c, 0x64, 0x2a, 0x27, 0xc1, - 0xf1, 0x48, 0xe3 ), - DATA ( 0x30, 0x03, 0x0a, 0x01, 0x06 ) ); - -OCSP ( unknown_ocsp, &thawte_crt, &startssl_crt, - DATA ( 0x30, 0x45, 0x30, 0x43, 0x30, 0x41, 0x30, 0x3f, 0x30, 0x3d, - 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, - 0x00, 0x04, 0x14, 0x48, 0xb7, 0x64, 0x49, 0xf3, 0xd5, 0xfe, - 0xfa, 0x11, 0x33, 0xaa, 0x80, 0x5e, 0x42, 0x0f, 0x0f, 0xca, - 0x64, 0x36, 0x51, 0x04, 0x14, 0x11, 0xdb, 0x23, 0x45, 0xfd, - 0x54, 0xcc, 0x6a, 0x71, 0x6f, 0x84, 0x8a, 0x03, 0xd7, 0xbe, - 0xf7, 0x01, 0x2f, 0x26, 0x86, 0x02, 0x04, 0x30, 0x00, 0x00, - 0x02 ), - DATA ( 0x30, 0x82, 0x06, 0x46, 0x0a, 0x01, 0x00, 0xa0, 0x82, 0x06, - 0x3f, 0x30, 0x82, 0x06, 0x3b, 0x06, 0x09, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x30, 0x01, 0x01, 0x04, 0x82, 0x06, 0x2c, - 0x30, 0x82, 0x06, 0x28, 0x30, 0x81, 0xec, 0xa1, 0x70, 0x30, - 0x6e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x49, 0x4c, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, - 0x55, 0x04, 0x0a, 0x13, 0x28, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64, 0x2e, 0x20, 0x28, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x20, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x65, 0x64, 0x29, 0x31, 0x2c, 0x30, 0x2a, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x13, 0x23, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x20, 0x32, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, - 0x4f, 0x43, 0x53, 0x50, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x72, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x32, 0x30, 0x35, 0x31, - 0x35, 0x31, 0x31, 0x35, 0x34, 0x30, 0x38, 0x5a, 0x30, 0x67, - 0x30, 0x65, 0x30, 0x3d, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, - 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0x48, 0xb7, 0x64, - 0x49, 0xf3, 0xd5, 0xfe, 0xfa, 0x11, 0x33, 0xaa, 0x80, 0x5e, - 0x42, 0x0f, 0x0f, 0xca, 0x64, 0x36, 0x51, 0x04, 0x14, 0x11, - 0xdb, 0x23, 0x45, 0xfd, 0x54, 0xcc, 0x6a, 0x71, 0x6f, 0x84, - 0x8a, 0x03, 0xd7, 0xbe, 0xf7, 0x01, 0x2f, 0x26, 0x86, 0x02, - 0x04, 0x30, 0x00, 0x00, 0x02, 0x82, 0x00, 0x18, 0x0f, 0x32, - 0x30, 0x31, 0x32, 0x30, 0x35, 0x31, 0x35, 0x31, 0x31, 0x35, - 0x34, 0x30, 0x38, 0x5a, 0xa0, 0x11, 0x18, 0x0f, 0x32, 0x30, - 0x31, 0x32, 0x30, 0x35, 0x31, 0x36, 0x31, 0x31, 0x35, 0x34, - 0x30, 0x38, 0x5a, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, - 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, - 0x01, 0x01, 0x00, 0xbe, 0x1b, 0xa7, 0xa7, 0xba, 0x17, 0xd9, - 0x94, 0x16, 0xdf, 0xd2, 0x86, 0x1e, 0x39, 0x38, 0x2f, 0x0e, - 0x0e, 0xb0, 0x19, 0x74, 0x9d, 0x64, 0x61, 0xfb, 0x34, 0x15, - 0x64, 0xe6, 0x7a, 0x44, 0xfc, 0x24, 0xaf, 0x63, 0xe3, 0xe5, - 0x01, 0x3f, 0xeb, 0x62, 0xc4, 0x2f, 0xd7, 0x56, 0xac, 0x9e, - 0x39, 0x8c, 0x54, 0x20, 0x24, 0x9f, 0xe0, 0x9a, 0x2c, 0x9a, - 0xfb, 0xbe, 0x13, 0x8d, 0x18, 0xf1, 0x95, 0x37, 0xf7, 0x6a, - 0x93, 0x28, 0x2a, 0xf6, 0x10, 0xc0, 0x5e, 0xa0, 0xfc, 0xf7, - 0x66, 0x97, 0xe4, 0x76, 0x04, 0x90, 0xd3, 0x45, 0x59, 0x26, - 0xfd, 0xe9, 0xb4, 0xe5, 0xd6, 0x30, 0x2f, 0xe0, 0xfb, 0xda, - 0xcc, 0x4b, 0xc4, 0x11, 0xbf, 0x20, 0x50, 0x18, 0xd5, 0x18, - 0xfc, 0xe7, 0x86, 0xb8, 0x80, 0x2b, 0x2e, 0x35, 0x50, 0xcd, - 0x73, 0x0d, 0x70, 0xbe, 0x55, 0xa2, 0xef, 0x2c, 0x62, 0x96, - 0xe3, 0x6a, 0xec, 0x69, 0xa6, 0x8f, 0x9d, 0x37, 0xb6, 0xbe, - 0x6b, 0x72, 0x02, 0x99, 0x02, 0xea, 0x0b, 0x18, 0x01, 0x26, - 0x82, 0x3b, 0x7b, 0x44, 0x8a, 0x84, 0xe4, 0x78, 0x6c, 0xb3, - 0x5b, 0x83, 0x87, 0x7c, 0xab, 0x80, 0x17, 0xfd, 0x00, 0xfd, - 0x56, 0x87, 0x85, 0x2b, 0x49, 0x42, 0xa2, 0x63, 0x84, 0x4f, - 0x4a, 0xaa, 0x5e, 0x7d, 0x64, 0x29, 0x09, 0x81, 0xac, 0xea, - 0x53, 0x00, 0x36, 0xbf, 0x19, 0x33, 0x5c, 0x0e, 0xee, 0xa9, - 0x6a, 0x9e, 0x2e, 0x44, 0x9b, 0x3e, 0xc9, 0x27, 0xb7, 0x49, - 0x15, 0x76, 0xa8, 0x42, 0x79, 0x2d, 0x4a, 0x42, 0x1f, 0xf1, - 0x32, 0x35, 0x31, 0x4c, 0xcb, 0xa2, 0xee, 0x50, 0xae, 0x1f, - 0x5e, 0x4d, 0x5d, 0xc1, 0x9e, 0x28, 0x17, 0x59, 0x6d, 0x1d, - 0x2a, 0x0a, 0x3d, 0xeb, 0x88, 0x10, 0xb5, 0xe6, 0x3b, 0xa7, - 0x81, 0x1f, 0xc7, 0xa0, 0xc8, 0x4a, 0xfe, 0x6c, 0x8f, 0xa0, - 0x82, 0x04, 0x21, 0x30, 0x82, 0x04, 0x1d, 0x30, 0x82, 0x04, - 0x19, 0x30, 0x82, 0x03, 0x01, 0xa0, 0x03, 0x02, 0x01, 0x02, - 0x02, 0x03, 0x00, 0xca, 0x67, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x30, 0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, - 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64, 0x2e, - 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, - 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x38, 0x30, 0x36, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x13, 0x2f, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x20, 0x32, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, - 0x34, 0x32, 0x32, 0x30, 0x35, 0x33, 0x30, 0x35, 0x39, 0x5a, - 0x17, 0x0d, 0x31, 0x32, 0x30, 0x36, 0x30, 0x32, 0x30, 0x36, - 0x32, 0x39, 0x32, 0x37, 0x5a, 0x30, 0x6e, 0x31, 0x0b, 0x30, - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, - 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, - 0x28, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, - 0x4c, 0x74, 0x64, 0x2e, 0x20, 0x28, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, - 0x61, 0x6c, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, - 0x29, 0x31, 0x2c, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x13, 0x23, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, - 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x20, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x4f, 0x43, 0x53, 0x50, - 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x30, 0x82, 0x01, - 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, - 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, - 0xd0, 0xd5, 0xf5, 0x70, 0x9a, 0x2b, 0x41, 0x35, 0xf7, 0xf8, - 0xcf, 0xb5, 0x6b, 0xb3, 0xdf, 0xe0, 0xb9, 0x12, 0x0d, 0x3d, - 0xd3, 0x99, 0x9f, 0x32, 0x73, 0x01, 0x1f, 0xbc, 0x7d, 0x4f, - 0x3e, 0x66, 0xf7, 0xfd, 0x60, 0x57, 0x92, 0x30, 0xb4, 0xdb, - 0x9a, 0xf5, 0xd3, 0x49, 0x19, 0xd6, 0xad, 0x37, 0x43, 0x78, - 0x69, 0x8c, 0x0d, 0x23, 0x0e, 0x7a, 0xd1, 0x65, 0x08, 0xeb, - 0x71, 0x8c, 0x37, 0x36, 0xd3, 0x4d, 0xa6, 0xcb, 0x11, 0xb2, - 0xfa, 0xb4, 0x38, 0x3e, 0x2b, 0x70, 0x8c, 0xf7, 0xf1, 0xd9, - 0x64, 0x62, 0x26, 0xf4, 0xa7, 0x2c, 0x24, 0x25, 0x4e, 0x4d, - 0x3e, 0x7a, 0x54, 0x57, 0x0f, 0xc1, 0x89, 0x9e, 0xb6, 0x55, - 0x0b, 0x7c, 0xbe, 0x38, 0xda, 0x8b, 0x62, 0xe9, 0xf1, 0xfa, - 0x8c, 0xd9, 0x32, 0x1f, 0xbe, 0x6d, 0x2e, 0x3d, 0x48, 0xa7, - 0x4f, 0x48, 0xd4, 0xff, 0x6b, 0xf6, 0x17, 0xf8, 0x31, 0xb2, - 0x37, 0xeb, 0x89, 0x71, 0x19, 0x0f, 0xe7, 0x86, 0x06, 0x66, - 0xfb, 0xc5, 0xad, 0x7b, 0x75, 0x0b, 0xcc, 0x2e, 0x3c, 0x4d, - 0x1c, 0x99, 0x40, 0x32, 0x72, 0xd4, 0x5c, 0xc9, 0x06, 0xaa, - 0x98, 0xe9, 0x01, 0x92, 0xdb, 0x25, 0x48, 0x1a, 0xae, 0x3f, - 0x01, 0x4d, 0x8a, 0xb0, 0x78, 0xb1, 0x28, 0xe0, 0x09, 0x9b, - 0x23, 0xe2, 0x28, 0x46, 0x6f, 0x50, 0x52, 0x71, 0x1c, 0xf1, - 0x09, 0xa0, 0x87, 0x3b, 0xdb, 0x84, 0xa3, 0xb1, 0x57, 0x6f, - 0xbf, 0x52, 0xd2, 0x30, 0x83, 0x30, 0x26, 0xc0, 0x27, 0x8e, - 0x6d, 0x03, 0x43, 0x14, 0x42, 0x31, 0x29, 0xf2, 0x7e, 0x52, - 0xcb, 0x84, 0x20, 0x2e, 0x87, 0x19, 0xe5, 0x48, 0xad, 0x06, - 0xce, 0x2e, 0x0f, 0xed, 0x78, 0x2a, 0x3d, 0x79, 0xc4, 0xb0, - 0xdb, 0xfa, 0x4e, 0x95, 0x88, 0x46, 0x75, 0x12, 0xb0, 0x7a, - 0x55, 0x6a, 0x38, 0xae, 0xea, 0x59, 0x02, 0x03, 0x01, 0x00, - 0x01, 0xa3, 0x81, 0xa0, 0x30, 0x81, 0x9d, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x0b, - 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x03, - 0xa8, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x17, - 0x30, 0x15, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, - 0x03, 0x09, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, - 0x30, 0x01, 0x05, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, - 0x04, 0x16, 0x04, 0x14, 0xbd, 0x4c, 0xef, 0x0e, 0xf7, 0x08, - 0xac, 0xc9, 0xbd, 0x39, 0x0f, 0xd9, 0xa0, 0xd3, 0xce, 0xcf, - 0x26, 0x48, 0xb8, 0x19, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, - 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x11, 0xdb, 0x23, - 0x45, 0xfd, 0x54, 0xcc, 0x6a, 0x71, 0x6f, 0x84, 0x8a, 0x03, - 0xd7, 0xbe, 0xf7, 0x01, 0x2f, 0x26, 0x86, 0x30, 0x23, 0x06, - 0x03, 0x55, 0x1d, 0x12, 0x04, 0x1c, 0x30, 0x1a, 0x86, 0x18, - 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, - 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, - 0x82, 0x01, 0x01, 0x00, 0x56, 0x1f, 0xef, 0xa5, 0x1a, 0x07, - 0xbe, 0xb1, 0xd1, 0xd0, 0x17, 0xeb, 0x72, 0x5b, 0x17, 0x11, - 0xe5, 0x96, 0xc3, 0x96, 0xe7, 0x9a, 0xdb, 0xbf, 0x64, 0x1c, - 0x99, 0x11, 0x2f, 0x18, 0x07, 0xb2, 0x45, 0x48, 0xf3, 0x58, - 0xcd, 0x38, 0x69, 0x33, 0xf4, 0x58, 0x5b, 0x16, 0xed, 0xfb, - 0xce, 0xb3, 0xc3, 0x14, 0x27, 0xa6, 0x16, 0xff, 0xd0, 0x70, - 0x9e, 0xe1, 0x9d, 0x4b, 0xd1, 0x26, 0x6c, 0x61, 0x25, 0xf1, - 0x39, 0x9c, 0xbe, 0x69, 0x75, 0x58, 0xcd, 0xbd, 0x8e, 0x36, - 0xfd, 0x46, 0xd1, 0xe3, 0xb9, 0x1a, 0x8a, 0xc1, 0xd7, 0x3e, - 0x6e, 0x82, 0xb8, 0xb0, 0x3f, 0xcf, 0x14, 0x3f, 0xc6, 0xf6, - 0x3a, 0x86, 0xce, 0x03, 0x76, 0x1f, 0xdb, 0x0b, 0x12, 0xac, - 0x99, 0x79, 0x53, 0xf0, 0x3d, 0x70, 0xd3, 0x5a, 0x05, 0xf6, - 0xba, 0x6e, 0x35, 0x31, 0x1e, 0x08, 0x30, 0xc1, 0xa4, 0xd4, - 0x45, 0x43, 0x5a, 0x01, 0xd9, 0x3d, 0xa5, 0xdb, 0xd2, 0xd7, - 0x73, 0x97, 0xe9, 0xab, 0xe4, 0x60, 0xf1, 0xfc, 0xf0, 0x9b, - 0xe2, 0x5a, 0x1e, 0x31, 0xe0, 0x1b, 0x47, 0x3f, 0x5a, 0x78, - 0xf3, 0x6e, 0xf0, 0x94, 0x6c, 0x2c, 0xfb, 0x67, 0x6e, 0xcb, - 0x8c, 0xb6, 0x8d, 0xcc, 0xcf, 0x1e, 0x9f, 0xd2, 0x10, 0x52, - 0xc2, 0xe7, 0xc8, 0x05, 0x2c, 0xa0, 0x18, 0xf5, 0x53, 0x4a, - 0xd2, 0xb0, 0x57, 0x5e, 0x5f, 0x63, 0xd7, 0x7b, 0x8e, 0xfa, - 0x22, 0xa0, 0x69, 0x17, 0xd2, 0xa0, 0xc7, 0x70, 0x01, 0x79, - 0x8b, 0x69, 0x1f, 0x0f, 0xdb, 0xe5, 0xf9, 0x83, 0x2b, 0x26, - 0x05, 0x05, 0x87, 0x80, 0x0d, 0xf9, 0x20, 0x0e, 0x16, 0x39, - 0xc5, 0x9b, 0x14, 0x2e, 0xf2, 0x06, 0x57, 0x46, 0x3d, 0x0b, - 0x8c, 0x3e, 0xb4, 0x66, 0x76, 0x67, 0x34, 0x70, 0x00, 0x63, - 0xcf, 0x9e, 0xc8, 0xc5, 0x5f, 0x48, 0x06, 0x53, 0x26, 0x55 ) ); - -OCSP ( vultr_ocsp, &vultr_crt, &rapidssl_crt, - DATA ( 0x30, 0x44, 0x30, 0x42, 0x30, 0x40, 0x30, 0x3e, 0x30, 0x3c, - 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, - 0x00, 0x04, 0x14, 0x40, 0x0b, 0x46, 0x7a, 0xf1, 0xe6, 0xb2, - 0xd3, 0x09, 0x83, 0xba, 0x0d, 0x60, 0x7e, 0x7e, 0x59, 0x37, - 0x48, 0x24, 0xc4, 0x04, 0x14, 0xc3, 0x9c, 0xf3, 0xfc, 0xd3, - 0x46, 0x08, 0x34, 0xbb, 0xce, 0x46, 0x7f, 0xa0, 0x7c, 0x5b, - 0xf3, 0xe2, 0x08, 0xcb, 0x59, 0x02, 0x03, 0x00, 0x95, 0x4d ), - DATA ( 0x30, 0x82, 0x05, 0x70, 0x0a, 0x01, 0x00, 0xa0, 0x82, 0x05, - 0x69, 0x30, 0x82, 0x05, 0x65, 0x06, 0x09, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x30, 0x01, 0x01, 0x04, 0x82, 0x05, 0x56, - 0x30, 0x82, 0x05, 0x52, 0x30, 0x81, 0x91, 0xa2, 0x16, 0x04, - 0x14, 0xfa, 0x58, 0xdb, 0x09, 0x53, 0xbc, 0x19, 0xc5, 0xe7, - 0xb5, 0x8b, 0xf6, 0x10, 0xf8, 0x1e, 0x84, 0x6d, 0x3a, 0x8f, - 0xd8, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x34, 0x31, 0x31, 0x32, - 0x32, 0x32, 0x33, 0x30, 0x38, 0x35, 0x36, 0x5a, 0x30, 0x66, - 0x30, 0x64, 0x30, 0x3c, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, - 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0x40, 0x0b, 0x46, - 0x7a, 0xf1, 0xe6, 0xb2, 0xd3, 0x09, 0x83, 0xba, 0x0d, 0x60, - 0x7e, 0x7e, 0x59, 0x37, 0x48, 0x24, 0xc4, 0x04, 0x14, 0xc3, - 0x9c, 0xf3, 0xfc, 0xd3, 0x46, 0x08, 0x34, 0xbb, 0xce, 0x46, - 0x7f, 0xa0, 0x7c, 0x5b, 0xf3, 0xe2, 0x08, 0xcb, 0x59, 0x02, - 0x03, 0x00, 0x95, 0x4d, 0x80, 0x00, 0x18, 0x0f, 0x32, 0x30, - 0x31, 0x34, 0x31, 0x31, 0x32, 0x32, 0x32, 0x33, 0x30, 0x38, - 0x35, 0x36, 0x5a, 0xa0, 0x11, 0x18, 0x0f, 0x32, 0x30, 0x31, - 0x34, 0x31, 0x31, 0x32, 0x39, 0x32, 0x33, 0x30, 0x38, 0x35, - 0x36, 0x5a, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, - 0x01, 0x00, 0x6a, 0x71, 0x8f, 0x84, 0x66, 0xb5, 0x75, 0xe6, - 0x97, 0xa4, 0xb9, 0xc6, 0xa0, 0x37, 0x6f, 0x23, 0x76, 0x3c, - 0x59, 0x4c, 0x1c, 0x2d, 0x9f, 0x70, 0xab, 0x83, 0xbf, 0xa9, - 0xbf, 0x79, 0x31, 0x69, 0xdd, 0x78, 0xd5, 0x59, 0x90, 0x68, - 0xbe, 0x25, 0xb7, 0x53, 0x7d, 0x8b, 0xcf, 0x66, 0x3b, 0xcd, - 0xe0, 0xd2, 0x40, 0x1d, 0xc8, 0x29, 0xe4, 0x37, 0xbf, 0x20, - 0x7e, 0x64, 0x8d, 0x0d, 0xc7, 0xed, 0x0d, 0x08, 0x05, 0x36, - 0x27, 0x4f, 0xb8, 0xe3, 0x19, 0xec, 0xf0, 0x96, 0xe8, 0x48, - 0x9b, 0x8b, 0x2c, 0x18, 0xdb, 0x1e, 0x68, 0x11, 0xf3, 0xfb, - 0x9c, 0x68, 0xad, 0xcc, 0x15, 0xe0, 0x25, 0x08, 0x98, 0xd2, - 0xbf, 0xd0, 0x57, 0xe6, 0x4c, 0x73, 0x5a, 0x2c, 0xc8, 0x89, - 0xd6, 0xe4, 0xd0, 0x47, 0x6d, 0x8c, 0xc7, 0x75, 0xb1, 0x4e, - 0x10, 0x34, 0xe5, 0x40, 0xa3, 0xb1, 0x50, 0x07, 0x3d, 0x7d, - 0xad, 0xeb, 0x1d, 0x91, 0x7f, 0x77, 0x2e, 0x0d, 0x9a, 0xa7, - 0xbb, 0x68, 0x89, 0xd2, 0x05, 0x58, 0x16, 0xf1, 0x5e, 0x1d, - 0x05, 0xf6, 0x9e, 0xe9, 0x89, 0x52, 0x35, 0xb7, 0x29, 0x7a, - 0x68, 0x02, 0x6f, 0xc7, 0x20, 0x30, 0xc8, 0xde, 0x97, 0x3f, - 0xb7, 0x28, 0x38, 0x39, 0xd1, 0x4b, 0x4b, 0x90, 0x71, 0xe5, - 0x58, 0xa4, 0xa3, 0xbd, 0x78, 0x95, 0xb5, 0x54, 0xdd, 0xf7, - 0x4f, 0x8e, 0x78, 0x73, 0x86, 0xbf, 0x28, 0xb0, 0xdd, 0xc0, - 0xe9, 0x4a, 0xf5, 0x9f, 0x02, 0x8e, 0x63, 0x8f, 0x59, 0xf1, - 0x93, 0xf0, 0x45, 0x97, 0x30, 0xdb, 0x0a, 0x04, 0x3e, 0x81, - 0x99, 0x20, 0x7a, 0xb2, 0xe6, 0x8c, 0x8f, 0x2a, 0x4c, 0x31, - 0xf1, 0x64, 0xbc, 0xb7, 0xec, 0xb1, 0xf9, 0x69, 0x1f, 0x99, - 0x89, 0x3e, 0x3e, 0xa0, 0xf4, 0xde, 0x79, 0xa7, 0xae, 0xa3, - 0x23, 0xbd, 0x16, 0xbb, 0x6d, 0x0f, 0x15, 0x68, 0xa0, 0x82, - 0x03, 0xa6, 0x30, 0x82, 0x03, 0xa2, 0x30, 0x82, 0x03, 0x9e, - 0x30, 0x82, 0x02, 0x86, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, - 0x01, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x47, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, - 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, - 0x69, 0x64, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, - 0x35, 0x36, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, - 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x38, 0x32, 0x39, - 0x32, 0x33, 0x33, 0x39, 0x33, 0x30, 0x5a, 0x17, 0x0d, 0x31, - 0x35, 0x30, 0x35, 0x32, 0x32, 0x32, 0x33, 0x33, 0x39, 0x33, - 0x30, 0x5a, 0x30, 0x31, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, - 0x55, 0x04, 0x03, 0x13, 0x26, 0x52, 0x61, 0x70, 0x69, 0x64, - 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, - 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x20, 0x4f, - 0x43, 0x53, 0x50, 0x20, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x64, 0x65, 0x72, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, - 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x9b, 0xf2, 0x8e, 0xe9, - 0x57, 0x3e, 0xa8, 0x5c, 0xfd, 0x00, 0x14, 0x21, 0xe7, 0xe4, - 0x57, 0xbb, 0x55, 0xc8, 0xa8, 0x50, 0x93, 0xdc, 0xbf, 0xfc, - 0xde, 0x46, 0x8a, 0x53, 0x9f, 0x12, 0xaa, 0x7c, 0xf1, 0xdd, - 0x89, 0x9e, 0x02, 0x27, 0x9c, 0x1a, 0xa0, 0x94, 0xf5, 0xec, - 0x06, 0xa3, 0xdb, 0xf3, 0x3f, 0x6d, 0xfd, 0x30, 0x6d, 0xab, - 0xcb, 0xc3, 0x72, 0xa9, 0x25, 0x35, 0x69, 0x67, 0x07, 0xaf, - 0x9c, 0x91, 0x3a, 0x24, 0x03, 0x74, 0x59, 0xfd, 0x69, 0xa6, - 0xfe, 0x23, 0xa4, 0x6c, 0x2f, 0xbe, 0x44, 0x56, 0x47, 0xee, - 0xdb, 0x07, 0xc3, 0x72, 0x3f, 0x14, 0xdc, 0x16, 0xb9, 0x66, - 0x48, 0x7c, 0x6e, 0x69, 0x6f, 0xa1, 0x05, 0xc6, 0x36, 0x08, - 0x01, 0xdd, 0x1c, 0xb8, 0x52, 0xf4, 0x86, 0x96, 0x85, 0x39, - 0x89, 0xb0, 0x31, 0x67, 0x62, 0xc5, 0x52, 0x91, 0x72, 0xd7, - 0x96, 0x8c, 0xe1, 0x0a, 0x02, 0x6a, 0xfe, 0x82, 0xca, 0xc0, - 0x34, 0xc9, 0xbc, 0x45, 0xa7, 0xc0, 0x4b, 0xa0, 0x7c, 0x7c, - 0xcc, 0x29, 0xe5, 0x8c, 0xf6, 0x91, 0x65, 0x33, 0xf1, 0x7b, - 0xda, 0x55, 0x69, 0x93, 0x2d, 0x4e, 0xb9, 0xb4, 0x7f, 0x56, - 0xe6, 0x80, 0xbe, 0x23, 0x4a, 0x4a, 0x65, 0xa6, 0xab, 0xa2, - 0x40, 0xb1, 0x75, 0x62, 0x13, 0xc1, 0xfd, 0x52, 0xe1, 0xbb, - 0x7b, 0xb1, 0x7f, 0x8a, 0x0c, 0x27, 0x35, 0xec, 0x27, 0x3b, - 0xa5, 0xe7, 0x75, 0xb8, 0xe3, 0xc4, 0xcf, 0x4d, 0x8a, 0x02, - 0x57, 0x57, 0x16, 0xa2, 0x8e, 0x9d, 0x87, 0x5a, 0x32, 0xb6, - 0xf6, 0x1d, 0xf5, 0xe3, 0xd7, 0xcf, 0x79, 0xc8, 0x77, 0x74, - 0xdc, 0xe5, 0xba, 0xde, 0x5c, 0x22, 0xad, 0xc0, 0xfa, 0x67, - 0xf3, 0x26, 0xbf, 0xcc, 0xd4, 0x88, 0xd5, 0xda, 0x87, 0x4d, - 0x9d, 0x99, 0xc1, 0xce, 0xa4, 0x9a, 0xda, 0x99, 0xa5, 0xa2, - 0xe1, 0xc5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xaa, - 0x30, 0x81, 0xa7, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, - 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc3, 0x9c, 0xf3, 0xfc, - 0xd3, 0x46, 0x08, 0x34, 0xbb, 0xce, 0x46, 0x7f, 0xa0, 0x7c, - 0x5b, 0xf3, 0xe2, 0x08, 0xcb, 0x59, 0x30, 0x0f, 0x06, 0x09, - 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x05, 0x04, - 0x02, 0x05, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, - 0x04, 0x16, 0x04, 0x14, 0xfa, 0x58, 0xdb, 0x09, 0x53, 0xbc, - 0x19, 0xc5, 0xe7, 0xb5, 0x8b, 0xf6, 0x10, 0xf8, 0x1e, 0x84, - 0x6d, 0x3a, 0x8f, 0xd8, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, - 0x25, 0x04, 0x0c, 0x30, 0x0a, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x03, 0x09, 0x30, 0x0c, 0x06, 0x03, 0x55, - 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, - 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, - 0x04, 0x03, 0x02, 0x07, 0x80, 0x30, 0x21, 0x06, 0x03, 0x55, - 0x1d, 0x11, 0x04, 0x1a, 0x30, 0x18, 0xa4, 0x16, 0x30, 0x14, - 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, - 0x09, 0x54, 0x47, 0x56, 0x2d, 0x42, 0x2d, 0x32, 0x31, 0x34, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, - 0x3e, 0x45, 0xce, 0x3d, 0x53, 0x8c, 0x88, 0xcd, 0xde, 0xf1, - 0x38, 0x0c, 0x00, 0x7a, 0x7e, 0x22, 0xe7, 0x1a, 0xa5, 0xbe, - 0xee, 0x1c, 0x17, 0x20, 0xc3, 0x65, 0x68, 0x86, 0x27, 0x83, - 0x62, 0xd7, 0xdc, 0x1d, 0x6c, 0xfa, 0x24, 0x2e, 0x66, 0x50, - 0xe5, 0xe0, 0x42, 0xa5, 0x73, 0x67, 0x2a, 0xea, 0x5a, 0x17, - 0x20, 0x3b, 0x14, 0xd4, 0x74, 0x14, 0xbd, 0x18, 0x60, 0xbe, - 0xa6, 0x46, 0xb1, 0xc2, 0x82, 0xc9, 0xb6, 0x99, 0x67, 0x56, - 0xbe, 0x17, 0xda, 0x78, 0x05, 0x48, 0x65, 0x9d, 0x48, 0xb5, - 0xda, 0x1d, 0x52, 0x59, 0x2a, 0xac, 0x09, 0x2d, 0x29, 0x18, - 0x96, 0xc1, 0x58, 0x79, 0xfc, 0x73, 0x0b, 0x70, 0x4d, 0x31, - 0x61, 0x80, 0xc7, 0x77, 0x02, 0xf1, 0x12, 0xb3, 0x80, 0x6f, - 0xb9, 0x05, 0x69, 0xcf, 0x4f, 0x80, 0x7d, 0xf5, 0x06, 0xe6, - 0x2e, 0xc7, 0x53, 0x99, 0x8b, 0x07, 0xc7, 0x7a, 0xe6, 0xf3, - 0x12, 0x86, 0xd1, 0xbb, 0x8a, 0x8a, 0xfb, 0x9d, 0xd1, 0x0b, - 0xe7, 0x9f, 0x12, 0x06, 0xfb, 0x7d, 0x8e, 0xe7, 0xb7, 0x39, - 0xe0, 0x3c, 0xd0, 0xe8, 0x35, 0x44, 0x28, 0xb7, 0xcb, 0xee, - 0xef, 0xa7, 0x14, 0xfa, 0x0e, 0x34, 0xaf, 0x78, 0x59, 0x1e, - 0x91, 0xd9, 0xe0, 0x9b, 0x3c, 0x9e, 0x3a, 0xbf, 0xf5, 0xf5, - 0x11, 0x5b, 0x04, 0x48, 0xcd, 0x3a, 0x3f, 0xee, 0x46, 0x6d, - 0x69, 0x68, 0x39, 0xc1, 0x4d, 0x54, 0xfd, 0x6c, 0x27, 0x1e, - 0x5b, 0x58, 0x00, 0xbb, 0x4f, 0x1b, 0x12, 0xd3, 0xbb, 0x46, - 0xf4, 0x7c, 0x4a, 0x44, 0xb5, 0xcb, 0x4f, 0xf2, 0x3d, 0xc3, - 0x51, 0xfc, 0x7a, 0x2c, 0x59, 0xd0, 0x82, 0x73, 0xe3, 0x88, - 0xfc, 0x25, 0x4c, 0x35, 0x6f, 0x88, 0x85, 0xff, 0xad, 0x8c, - 0x83, 0xc4, 0x76, 0x58, 0x6b, 0xfa, 0xf2, 0xed, 0x5b, 0x95, - 0xd9, 0x07, 0x55, 0x58, 0xfe, 0x08 ) ); - -/** Time at which OCSP responses are valid */ -static time_t test_time = 1337062083ULL; /* Tue 15 May 2012 06:08:03 */ - -/** Time at which OCSP responses are not valid */ -static time_t test_stale = 1375573111ULL; /* Sat Aug 3 23:38:31 2013 */ - -/** Time at which "vultr" OCSP response (generated more recently) is valid */ -static time_t test_vultr = 1416697736ULL; /* Sat 22 Nov 23:08:56 2014 */ - -/** - * Report certificate parsing test result - * - * @v crt Test certificate - */ -#define ocsp_certificate_ok( crt ) do { \ - ok ( x509_certificate ( (crt)->data, (crt)->len, \ - &(crt)->cert ) == 0 ); \ - } while ( 0 ) - -/** - * Report OCSP check creation test result - * - * @v test OCSP test - */ -#define ocsp_check_ok( test ) do { \ - ocsp_prepare_test ( (test) ); \ - ok ( ocsp_check ( (test)->cert->cert, (test)->issuer->cert, \ - &(test)->ocsp ) == 0 ); \ - } while ( 0 ) - -/** - * Report OCSP request construction test result - * - * @v test OCSP test - */ -#define ocsp_request_ok( test ) do { \ - DBGC ( (test), "OCSPTEST %p expected request:\n", (test) ); \ - DBGC_HDA ( (test), 0, (test)->request, (test)->request_len ); \ - ok ( (test)->ocsp->request.builder.len == (test)->request_len );\ - ok ( memcmp ( (test)->ocsp->request.builder.data, \ - (test)->request, (test)->request_len ) == 0 ); \ - DBGC ( (test), "OCSPTEST %p generated request:\n", (test) ); \ - DBGC_HDA ( (test), 0, (test)->ocsp->request.builder.data, \ - (test)->ocsp->request.builder.len ); \ - } while ( 0 ) - -/** - * Report OCSP response test result - * - * @v test OCSP test - */ -#define ocsp_response_ok( test ) do { \ - ok ( ocsp_response ( (test)->ocsp, (test)->response, \ - (test)->response_len ) == 0 ); \ - } while ( 0 ) - -/** - * Report OCSP response failure test result - * - * @v test OCSP test - */ -#define ocsp_response_fail_ok( test ) do { \ - ok ( ocsp_response ( (test)->ocsp, (test)->response, \ - (test)->response_len ) != 0 ); \ - } while ( 0 ) - -/** - * Report OCSP validation test result - * - * @v test OCSP test - * @v time Test time - */ -#define ocsp_validate_ok( test, time ) do { \ - ocsp_prepare_test ( (test) ); \ - ok ( ocsp_validate ( (test)->ocsp, time ) == 0 ); \ - } while ( 0 ) - -/** - * Report OCSP validation failure test result - * - * @v test OCSP test - * @v time Test time - */ -#define ocsp_validate_fail_ok( test, time ) do { \ - ocsp_prepare_test ( (test) ); \ - ok ( ocsp_validate ( (test)->ocsp, time ) != 0 ); \ - } while ( 0 ) - -/** - * Perform OCSP self-tests - * - */ -static void ocsp_test_exec ( void ) { - - /* Parse certificates */ - ocsp_certificate_ok ( &barclays_crt ); - ocsp_certificate_ok ( &google_crt ); - ocsp_certificate_ok ( &verisign_crt ); - ocsp_certificate_ok ( &thawte_crt ); - ocsp_certificate_ok ( &startssl_crt ); - ocsp_certificate_ok ( &rapidssl_crt ); - ocsp_certificate_ok ( &vultr_crt ); - - /* Parse OCSP checks */ - ocsp_check_ok ( &barclays_ocsp ); - ocsp_check_ok ( &google_ocsp ); - ocsp_check_ok ( &unauthorized_ocsp ); - ocsp_check_ok ( &unknown_ocsp ); - ocsp_check_ok ( &vultr_ocsp ); - - /* "barclays" test */ - ocsp_request_ok ( &barclays_ocsp ); - ocsp_response_ok ( &barclays_ocsp ); - ocsp_validate_ok ( &barclays_ocsp, test_time ); - ocsp_validate_fail_ok ( &barclays_ocsp, test_stale ); - - /* "google" test */ - ocsp_request_ok ( &google_ocsp ); - ocsp_response_ok ( &google_ocsp ); - ocsp_validate_ok ( &google_ocsp, test_time ); - ocsp_validate_fail_ok ( &google_ocsp, test_stale ); - - /* "unauthorized" test */ - ocsp_request_ok ( &unauthorized_ocsp ); - ocsp_response_fail_ok ( &unauthorized_ocsp ); - - /* "unknown" test */ - ocsp_request_ok ( &unknown_ocsp ); - ocsp_response_fail_ok ( &unknown_ocsp ); - - /* "vultr" test */ - ocsp_request_ok ( &vultr_ocsp ); - ocsp_response_ok ( &vultr_ocsp ); - ocsp_validate_ok ( &vultr_ocsp, test_vultr ); - ocsp_validate_fail_ok ( &vultr_ocsp, test_stale ); - - /* Drop OCSP check references */ - ocsp_put ( unknown_ocsp.ocsp ); - ocsp_put ( unauthorized_ocsp.ocsp ); - ocsp_put ( google_ocsp.ocsp ); - ocsp_put ( barclays_ocsp.ocsp ); - ocsp_put ( vultr_ocsp.ocsp ); - - /* Drop certificate references */ - x509_put ( vultr_crt.cert ); - x509_put ( rapidssl_crt.cert ); - x509_put ( startssl_crt.cert ); - x509_put ( thawte_crt.cert ); - x509_put ( verisign_crt.cert ); - x509_put ( google_crt.cert ); - x509_put ( barclays_crt.cert ); -} - -/** OCSP self-test */ -struct self_test ocsp_test __self_test = { - .name = "ocsp", - .exec = ocsp_test_exec, -}; - -/* Drag in algorithms required for tests */ -REQUIRING_SYMBOL ( ocsp_test ); -REQUIRE_OBJECT ( rsa ); -REQUIRE_OBJECT ( sha1 ); diff --git a/qemu/roms/ipxe/src/tests/pccrc_test.c b/qemu/roms/ipxe/src/tests/pccrc_test.c deleted file mode 100644 index f4ab573ac..000000000 --- a/qemu/roms/ipxe/src/tests/pccrc_test.c +++ /dev/null @@ -1,529 +0,0 @@ -/* - * Copyright (C) 2015 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Peer Content Caching and Retrieval: Content Identification [MS-PCCRC] tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/** Define inline raw data */ -#define DATA(...) { __VA_ARGS__ } - -/** - * Define an inline content range - * - * @v START Start offset - * @v END End offset - * @ret range Content range - */ -#define RANGE( START, END ) { .start = START, .end = END } - -/** - * Define an inline trimmed content range - * - * @v START Start offset - * @v END End offset - * @ret trim Trimmed content range - */ -#define TRIM( START, END ) { .start = START, .end = END } - -/** A content information test */ -struct peerdist_info_test { - /** Raw content information */ - const void *data; - /** Length of raw content information */ - size_t len; - /** Expected digest algorithm */ - struct digest_algorithm *expected_digest; - /** Expected digest size */ - size_t expected_digestsize; - /** Expected content range */ - struct peerdist_range expected_range; - /** Expected trimmed content range */ - struct peerdist_range expected_trim; - /** Expected number of segments */ - unsigned int expected_segments; -}; - -/** - * Define a content information test - * - * @v name Test name - * @v DATA Raw content information - * @v DIGEST Expected digest algorithm - * @v DIGESTSIZE Expected digest size - * @v RANGE Expected content range - * @v TRIM Expected trimmer content range - * @v SEGMENTS Expected number of segments - * @ret test Content information test - * - * Raw content information can be obtained from PeerDist-capable web - * servers using wget's "--header" option to inject the relevant - * PeerDist headers. For example: - * - * wget --header "Accept-Encoding: peerdist" \ - * --header "X-P2P-PeerDist: Version=1.0" \ - * http://peerdist.server.address/test.url -O - | xxd -i -c 11 - * - * Version 1 content information can be retrieved using the headers: - * - * Accept-Encoding: peerdist - * X-P2P-PeerDist: Version=1.0 - * - * Version 2 content information can be retrieved (from compatible - * servers) using the headers: - * - * Accept-Encoding: peerdist - * X-P2P-PeerDist: Version=1.1 - * X-P2P-PeerDistEx: MinContentInformation=2.0, MaxContentInformation=2.0 - */ -#define PEERDIST_INFO_TEST( name, DATA, DIGEST, DIGESTSIZE, RANGE, \ - TRIM, SEGMENTS ) \ - static const uint8_t name ## _data[] = DATA; \ - static struct peerdist_info_test name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - .expected_digest = DIGEST, \ - .expected_digestsize = DIGESTSIZE, \ - .expected_range = RANGE, \ - .expected_trim = TRIM, \ - .expected_segments = SEGMENTS, \ - } - -/** A content information segment test */ -struct peerdist_info_segment_test { - /** Segment index */ - unsigned int index; - /** Expected content range */ - struct peerdist_range expected_range; - /** Expected number of blocks */ - unsigned int expected_blocks; - /** Expected block size */ - size_t expected_blksize; - /** Expected segment hash of data */ - uint8_t expected_hash[PEERDIST_DIGEST_MAX_SIZE]; - /** Expected segment secret */ - uint8_t expected_secret[PEERDIST_DIGEST_MAX_SIZE]; - /** Expected segment identifier */ - uint8_t expected_id[PEERDIST_DIGEST_MAX_SIZE]; -}; - -/** - * Define a content information segment test - * - * @v name Test name - * @v INDEX Segment index - * @v RANGE Expected content range - * @v BLOCKS Expected number of blocks - * @v BLKSIZE Expected block size - * @v HASH Expected segment hash of data - * @v SECRET Expected segment secret - * @v ID Expected segment identifier - * @ret test Content information segment test - */ -#define PEERDIST_INFO_SEGMENT_TEST( name, INDEX, RANGE, BLOCKS, \ - BLKSIZE, HASH, SECRET, ID ) \ - static struct peerdist_info_segment_test name = { \ - .index = INDEX, \ - .expected_range = RANGE, \ - .expected_blocks = BLOCKS, \ - .expected_blksize = BLKSIZE, \ - .expected_hash = HASH, \ - .expected_secret = SECRET, \ - .expected_id = ID, \ - } - -/** A content information block test */ -struct peerdist_info_block_test { - /** Block index */ - unsigned int index; - /** Expected content range */ - struct peerdist_range expected_range; - /** Expected trimmed content range */ - struct peerdist_range expected_trim; - /** Expected hash of data */ - uint8_t expected_hash[PEERDIST_DIGEST_MAX_SIZE]; -}; - -/** - * Define a content information block test - * - * @v name Test name - * @v INDEX Block index - * @v RANGE Expected content range - * @v TRIM Expected trimmed content range - * @v HASH Expected hash of data - * @ret test Content information block test - */ -#define PEERDIST_INFO_BLOCK_TEST( name, INDEX, RANGE, TRIM, HASH ) \ - static struct peerdist_info_block_test name = { \ - .index = INDEX, \ - .expected_range = RANGE, \ - .expected_trim = TRIM, \ - .expected_hash = HASH, \ - } - -/** - * Define a server passphrase - * - * @v name Server passphrase name - * @v DATA Raw server passphrase - * - * The server passphrase can be exported from a Windows BranchCache - * server using the command: - * - * netsh branchcache exportkey exported.key somepassword - * - * and this encrypted exported key can be decrypted using the - * oSSL_key_dx or mcrypt_key_dx utilities found in the (prototype) - * Prequel project at https://fedorahosted.org/prequel/ : - * - * oSSL_key_dx exported.key somepassword - * or - * mcrypt_key_dx exported.key somepassword - * - * Either command will display both the server passphrase and the - * "Server Secret". Note that this latter is the version 1 server - * secret (i.e. the SHA-256 of the server passphrase); the - * corresponding version 2 server secret can be obtained by - * calculating the truncated SHA-512 of the server passphrase. - * - * We do not know the server passphrase during normal operation. We - * use it in the self-tests only to check for typos and other errors - * in the test vectors, by checking that the segment secret defined in - * a content information segment test is as expected. - */ -#define SERVER_PASSPHRASE( name, DATA ) \ - static uint8_t name[] = DATA - -/** Server passphrase used for these test vectors */ -SERVER_PASSPHRASE ( passphrase, - DATA ( 0x2a, 0x3d, 0x73, 0xeb, 0x43, 0x5e, 0x9f, 0x2b, 0x8a, 0x34, 0x42, - 0x67, 0xe7, 0x46, 0x7a, 0x3c, 0x73, 0x85, 0xc6, 0xe0, 0x55, 0xe2, - 0xb4, 0xd3, 0x0d, 0xfe, 0xc7, 0xc3, 0x8b, 0x0e, 0xd7, 0x2c ) ); - -/** IIS logo (iis-85.png) content information version 1 */ -PEERDIST_INFO_TEST ( iis_85_png_v1, - DATA ( 0x00, 0x01, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7e, 0x85, 0x01, 0x00, 0x00, 0x00, 0x01, - 0x00, 0xd8, 0xd9, 0x76, 0x35, 0x4a, 0x48, 0x72, 0xe9, 0x25, 0x76, - 0x18, 0x03, 0xf4, 0x58, 0xd9, 0xda, 0xaa, 0x67, 0xf8, 0xe3, 0x1c, - 0x63, 0x0f, 0xb7, 0x4e, 0x6a, 0x31, 0x2e, 0xf8, 0xa2, 0x5a, 0xba, - 0x11, 0xaf, 0xc0, 0xd7, 0x94, 0x92, 0x43, 0xf9, 0x4f, 0x9c, 0x1f, - 0xab, 0x35, 0xd9, 0xfd, 0x1e, 0x33, 0x1f, 0xcf, 0x78, 0x11, 0xa2, - 0xe0, 0x1d, 0x35, 0x87, 0xb3, 0x8d, 0x77, 0x0a, 0x29, 0xe2, 0x02, - 0x00, 0x00, 0x00, 0x73, 0xc1, 0x8a, 0xb8, 0x54, 0x91, 0x10, 0xf8, - 0xe9, 0x0e, 0x71, 0xbb, 0xc3, 0xab, 0x2a, 0xa8, 0xc4, 0x4d, 0x13, - 0xf4, 0x92, 0x94, 0x99, 0x25, 0x5b, 0x66, 0x0f, 0x24, 0xec, 0x77, - 0x80, 0x0b, 0x97, 0x4b, 0xdd, 0x65, 0x56, 0x7f, 0xde, 0xec, 0xcd, - 0xaf, 0xe4, 0x57, 0xa9, 0x50, 0x3b, 0x45, 0x48, 0xf6, 0x6e, 0xd3, - 0xb1, 0x88, 0xdc, 0xfd, 0xa0, 0xac, 0x38, 0x2b, 0x09, 0x71, 0x1a, - 0xcc ), - &sha256_algorithm, 32, RANGE ( 0, 99710 ), TRIM ( 0, 99710 ), 1 ); - -/** IIS logo (iis-85.png) content information version 1 segment 0 */ -PEERDIST_INFO_SEGMENT_TEST ( iis_85_png_v1_s0, 0, - RANGE ( 0, 99710 ), 2, 65536, - DATA ( 0xd8, 0xd9, 0x76, 0x35, 0x4a, 0x48, 0x72, 0xe9, 0x25, 0x76, 0x18, - 0x03, 0xf4, 0x58, 0xd9, 0xda, 0xaa, 0x67, 0xf8, 0xe3, 0x1c, 0x63, - 0x0f, 0xb7, 0x4e, 0x6a, 0x31, 0x2e, 0xf8, 0xa2, 0x5a, 0xba ), - DATA ( 0x11, 0xaf, 0xc0, 0xd7, 0x94, 0x92, 0x43, 0xf9, 0x4f, 0x9c, 0x1f, - 0xab, 0x35, 0xd9, 0xfd, 0x1e, 0x33, 0x1f, 0xcf, 0x78, 0x11, 0xa2, - 0xe0, 0x1d, 0x35, 0x87, 0xb3, 0x8d, 0x77, 0x0a, 0x29, 0xe2 ), - DATA ( 0x49, 0x1b, 0x21, 0x7d, 0xbe, 0xe2, 0xb5, 0xf1, 0x2c, 0xa7, 0x9b, - 0x01, 0x5e, 0x06, 0xf4, 0xbb, 0xe6, 0x4f, 0x97, 0x45, 0xba, 0xd7, - 0x86, 0x7a, 0xef, 0x17, 0xde, 0x59, 0x92, 0x7e, 0xdc, 0xe9 ) ); - -/** IIS logo (iis-85.png) content information version 1 segment 0 block 0 */ -PEERDIST_INFO_BLOCK_TEST ( iis_85_png_v1_s0_b0, 0, - RANGE ( 0, 65536 ), - TRIM ( 0, 65536 ), - DATA ( 0x73, 0xc1, 0x8a, 0xb8, 0x54, 0x91, 0x10, 0xf8, 0xe9, 0x0e, 0x71, - 0xbb, 0xc3, 0xab, 0x2a, 0xa8, 0xc4, 0x4d, 0x13, 0xf4, 0x92, 0x94, - 0x99, 0x25, 0x5b, 0x66, 0x0f, 0x24, 0xec, 0x77, 0x80, 0x0b ) ); - -/** IIS logo (iis-85.png) content information version 1 segment 0 block 1 */ -PEERDIST_INFO_BLOCK_TEST ( iis_85_png_v1_s0_b1, 1, - RANGE ( 65536, 99710 ), - TRIM ( 65536, 99710 ), - DATA ( 0x97, 0x4b, 0xdd, 0x65, 0x56, 0x7f, 0xde, 0xec, 0xcd, 0xaf, 0xe4, - 0x57, 0xa9, 0x50, 0x3b, 0x45, 0x48, 0xf6, 0x6e, 0xd3, 0xb1, 0x88, - 0xdc, 0xfd, 0xa0, 0xac, 0x38, 0x2b, 0x09, 0x71, 0x1a, 0xcc ) ); - -/** IIS logo (iis-85.png) content information version 2 */ -PEERDIST_INFO_TEST ( iis_85_png_v2, - DATA ( 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x88, 0x00, 0x00, 0x99, 0xde, 0xe0, 0xd0, 0xc3, 0x58, - 0xe2, 0x68, 0x4b, 0x62, 0x33, 0x0d, 0x32, 0xb5, 0xf1, 0x97, 0x87, - 0x24, 0xa0, 0xd0, 0xa5, 0x2b, 0xdc, 0x5e, 0x78, 0x1f, 0xae, 0x71, - 0xff, 0x57, 0xa8, 0xbe, 0x3d, 0xd4, 0x58, 0x03, 0x7e, 0xd4, 0x04, - 0x11, 0x6b, 0xb6, 0x16, 0xd9, 0xb1, 0x41, 0x16, 0x08, 0x85, 0x20, - 0xc4, 0x7c, 0xdc, 0x50, 0xab, 0xce, 0xa3, 0xfa, 0xe1, 0x88, 0xa9, - 0x8e, 0xa2, 0x2d, 0xf3, 0xc0, 0x00, 0x00, 0xeb, 0xa0, 0x33, 0x81, - 0xd0, 0xd0, 0xcb, 0x74, 0xf4, 0xb6, 0x13, 0xd8, 0x21, 0x0f, 0x37, - 0xf0, 0x02, 0xa0, 0x6f, 0x39, 0x10, 0x58, 0x60, 0x96, 0xa1, 0x30, - 0xd3, 0x43, 0x98, 0xc0, 0x8e, 0x66, 0xd7, 0xbc, 0xb8, 0xb6, 0xeb, - 0x77, 0x83, 0xe4, 0xf8, 0x07, 0x64, 0x7b, 0x63, 0xf1, 0x46, 0xb5, - 0x2f, 0x4a, 0xc8, 0x9c, 0xcc, 0x7a, 0xbf, 0x5f, 0xa1, 0x1a, 0xca, - 0xfc, 0x2a, 0xcf, 0x50, 0x28, 0x58, 0x6c ), - &sha512_algorithm, 32, RANGE ( 0, 99710 ), TRIM ( 0, 99710 ), 2 ); - -/** IIS logo (iis-85.png) content information version 2 segment 0 */ -PEERDIST_INFO_SEGMENT_TEST ( iis_85_png_v2_s0, 0, - RANGE ( 0, 39390 ), 1, 39390, - DATA ( 0xe0, 0xd0, 0xc3, 0x58, 0xe2, 0x68, 0x4b, 0x62, 0x33, 0x0d, 0x32, - 0xb5, 0xf1, 0x97, 0x87, 0x24, 0xa0, 0xd0, 0xa5, 0x2b, 0xdc, 0x5e, - 0x78, 0x1f, 0xae, 0x71, 0xff, 0x57, 0xa8, 0xbe, 0x3d, 0xd4 ), - DATA ( 0x58, 0x03, 0x7e, 0xd4, 0x04, 0x11, 0x6b, 0xb6, 0x16, 0xd9, 0xb1, - 0x41, 0x16, 0x08, 0x85, 0x20, 0xc4, 0x7c, 0xdc, 0x50, 0xab, 0xce, - 0xa3, 0xfa, 0xe1, 0x88, 0xa9, 0x8e, 0xa2, 0x2d, 0xf3, 0xc0 ), - DATA ( 0x33, 0x71, 0xbb, 0xea, 0xdd, 0xb6, 0x23, 0x53, 0xad, 0xce, 0xf9, - 0x70, 0xa0, 0x6f, 0xdf, 0x65, 0x00, 0x1e, 0x04, 0x21, 0xf4, 0xc7, - 0x10, 0x82, 0x76, 0xb0, 0xc3, 0x7a, 0x9f, 0x9e, 0xc1, 0x0f ) ); - -/** IIS logo (iis-85.png) content information version 2 segment 0 block 0 */ -PEERDIST_INFO_BLOCK_TEST ( iis_85_png_v2_s0_b0, 0, - RANGE ( 0, 39390 ), - TRIM ( 0, 39390 ), - DATA ( 0xe0, 0xd0, 0xc3, 0x58, 0xe2, 0x68, 0x4b, 0x62, 0x33, 0x0d, 0x32, - 0xb5, 0xf1, 0x97, 0x87, 0x24, 0xa0, 0xd0, 0xa5, 0x2b, 0xdc, 0x5e, - 0x78, 0x1f, 0xae, 0x71, 0xff, 0x57, 0xa8, 0xbe, 0x3d, 0xd4 ) ); - -/** IIS logo (iis-85.png) content information version 2 segment 1 */ -PEERDIST_INFO_SEGMENT_TEST ( iis_85_png_v2_s1, 1, - RANGE ( 39390, 99710 ), 1, 60320, - DATA ( 0x33, 0x81, 0xd0, 0xd0, 0xcb, 0x74, 0xf4, 0xb6, 0x13, 0xd8, 0x21, - 0x0f, 0x37, 0xf0, 0x02, 0xa0, 0x6f, 0x39, 0x10, 0x58, 0x60, 0x96, - 0xa1, 0x30, 0xd3, 0x43, 0x98, 0xc0, 0x8e, 0x66, 0xd7, 0xbc ), - DATA ( 0xb8, 0xb6, 0xeb, 0x77, 0x83, 0xe4, 0xf8, 0x07, 0x64, 0x7b, 0x63, - 0xf1, 0x46, 0xb5, 0x2f, 0x4a, 0xc8, 0x9c, 0xcc, 0x7a, 0xbf, 0x5f, - 0xa1, 0x1a, 0xca, 0xfc, 0x2a, 0xcf, 0x50, 0x28, 0x58, 0x6c ), - DATA ( 0xd7, 0xe9, 0x24, 0x42, 0x5e, 0x8f, 0x4f, 0x88, 0xf0, 0x1d, 0xc6, - 0xa9, 0xbb, 0x1b, 0xc3, 0x7b, 0xe1, 0x13, 0xec, 0x79, 0x17, 0xc7, - 0x45, 0xd4, 0x96, 0x5c, 0x2b, 0x55, 0xfa, 0x16, 0x3a, 0x6e ) ); - -/** IIS logo (iis-85.png) content information version 2 segment 1 block 0 */ -PEERDIST_INFO_BLOCK_TEST ( iis_85_png_v2_s1_b0, 0, - RANGE ( 39390, 99710 ), - TRIM ( 39390, 99710 ), - DATA ( 0x33, 0x81, 0xd0, 0xd0, 0xcb, 0x74, 0xf4, 0xb6, 0x13, 0xd8, 0x21, - 0x0f, 0x37, 0xf0, 0x02, 0xa0, 0x6f, 0x39, 0x10, 0x58, 0x60, 0x96, - 0xa1, 0x30, 0xd3, 0x43, 0x98, 0xc0, 0x8e, 0x66, 0xd7, 0xbc ) ); - -/** - * Report content information test result - * - * @v test Content information test - * @v info Content information to fill in - * @v file Test code file - * @v line Test code line - */ -static void peerdist_info_okx ( struct peerdist_info_test *test, - struct peerdist_info *info, - const char *file, unsigned int line ) { - - /* Parse content information */ - okx ( peerdist_info ( virt_to_user ( test->data ), test->len, - info ) == 0, file, line ); - - /* Verify content information */ - okx ( info->raw.data == virt_to_user ( test->data ), file, line ); - okx ( info->raw.len == test->len, file, line ); - okx ( info->digest == test->expected_digest, file, line ); - okx ( info->digestsize == test->expected_digestsize, file, line ); - okx ( info->range.start == test->expected_range.start, file, line ); - okx ( info->range.end == test->expected_range.end, file, line ); - okx ( info->trim.start == test->expected_trim.start, file, line ); - okx ( info->trim.end == test->expected_trim.end, file, line ); - okx ( info->trim.start >= info->range.start, file, line ); - okx ( info->trim.end <= info->range.end, file, line ); - okx ( info->segments == test->expected_segments, file, line ); -} -#define peerdist_info_ok( test, info ) \ - peerdist_info_okx ( test, info, __FILE__, __LINE__ ) - -/** - * Report content information segment test result - * - * @v test Content information segment test - * @v info Content information - * @v segment Segment information to fill in - * @v file Test code file - * @v line Test code line - */ -static void peerdist_info_segment_okx ( struct peerdist_info_segment_test *test, - const struct peerdist_info *info, - struct peerdist_info_segment *segment, - const char *file, unsigned int line ) { - size_t digestsize = info->digestsize; - - /* Parse content information segment */ - okx ( peerdist_info_segment ( info, segment, test->index ) == 0, - file, line ); - - /* Verify content information segment */ - okx ( segment->info == info, file, line ); - okx ( segment->index == test->index, file, line ); - okx ( segment->range.start == test->expected_range.start, file, line ); - okx ( segment->range.end == test->expected_range.end, file, line ); - okx ( segment->blocks == test->expected_blocks, file, line ); - okx ( segment->blksize == test->expected_blksize, file, line ); - okx ( memcmp ( segment->hash, test->expected_hash, - digestsize ) == 0, file, line ); - okx ( memcmp ( segment->secret, test->expected_secret, - digestsize ) == 0, file, line ); - okx ( memcmp ( segment->id, test->expected_id, - digestsize ) == 0, file, line ); -} -#define peerdist_info_segment_ok( test, info, segment ) \ - peerdist_info_segment_okx ( test, info, segment, __FILE__, __LINE__ ) - -/** - * Report content information block test result - * - * @v test Content information block test - * @v segment Segment information - * @v block Block information to fill in - * @v file Test code file - * @v line Test code line - */ -static void -peerdist_info_block_okx ( struct peerdist_info_block_test *test, - const struct peerdist_info_segment *segment, - struct peerdist_info_block *block, - const char *file, unsigned int line ) { - const struct peerdist_info *info = segment->info; - size_t digestsize = info->digestsize; - - /* Parse content information block */ - okx ( peerdist_info_block ( segment, block, test->index ) == 0, - file, line ); - - /* Verify content information block */ - okx ( block->segment == segment, file, line ); - okx ( block->index == test->index, file, line ); - okx ( block->range.start == test->expected_range.start, file, line ); - okx ( block->range.end == test->expected_range.end, file, line ); - okx ( block->trim.start == test->expected_trim.start, file, line ); - okx ( block->trim.end == test->expected_trim.end, file, line ); - okx ( memcmp ( block->hash, test->expected_hash, - digestsize ) == 0, file, line ); -} -#define peerdist_info_block_ok( test, segment, block ) \ - peerdist_info_block_okx ( test, segment, block, __FILE__, __LINE__ ) - -/** - * Report server passphrase test result - * - * @v test Content information segment test - * @v info Content information - * @v pass Server passphrase - * @v pass_len Length of server passphrase - * @v file Test code file - * @v line Test code line - */ -static void -peerdist_info_passphrase_okx ( struct peerdist_info_segment_test *test, - const struct peerdist_info *info, - uint8_t *pass, size_t pass_len, - const char *file, unsigned int line ) { - struct digest_algorithm *digest = info->digest; - uint8_t ctx[digest->ctxsize]; - uint8_t secret[digest->digestsize]; - uint8_t expected[digest->digestsize]; - size_t digestsize = info->digestsize; - size_t secretsize = digestsize; - - /* Calculate server secret */ - digest_init ( digest, ctx ); - digest_update ( digest, ctx, pass, pass_len ); - digest_final ( digest, ctx, secret ); - - /* Calculate expected segment secret */ - hmac_init ( digest, ctx, secret, &secretsize ); - assert ( secretsize == digestsize ); - hmac_update ( digest, ctx, test->expected_hash, digestsize ); - hmac_final ( digest, ctx, secret, &secretsize, expected ); - assert ( secretsize == digestsize ); - - /* Verify segment secret */ - okx ( memcmp ( test->expected_secret, expected, digestsize ) == 0, - file, line ); -} -#define peerdist_info_passphrase_ok( test, info, pass, pass_len ) \ - peerdist_info_passphrase_okx ( test, info, pass, pass_len, \ - __FILE__, __LINE__ ) - -/** - * Perform content information self-tests - * - */ -static void peerdist_info_test_exec ( void ) { - struct peerdist_info info; - struct peerdist_info_segment segment; - struct peerdist_info_block block; - - /* IIS logo (iis-85.png) content information version 1 */ - peerdist_info_ok ( &iis_85_png_v1, &info ); - peerdist_info_passphrase_ok ( &iis_85_png_v1_s0, &info, - passphrase, sizeof ( passphrase ) ); - peerdist_info_segment_ok ( &iis_85_png_v1_s0, &info, &segment ); - peerdist_info_block_ok ( &iis_85_png_v1_s0_b0, &segment, &block ); - peerdist_info_block_ok ( &iis_85_png_v1_s0_b1, &segment, &block ); - - /* IIS logo (iis-85.png) content information version 2 */ - peerdist_info_ok ( &iis_85_png_v2, &info ); - peerdist_info_passphrase_ok ( &iis_85_png_v2_s0, &info, - passphrase, sizeof ( passphrase ) ); - peerdist_info_segment_ok ( &iis_85_png_v2_s0, &info, &segment ); - peerdist_info_block_ok ( &iis_85_png_v2_s0_b0, &segment, &block ); - peerdist_info_passphrase_ok ( &iis_85_png_v2_s1, &info, - passphrase, sizeof ( passphrase ) ); - peerdist_info_segment_ok ( &iis_85_png_v2_s1, &info, &segment ); - peerdist_info_block_ok ( &iis_85_png_v2_s1_b0, &segment, &block ); -} - -/** Content information self-test */ -struct self_test peerdist_info_test __self_test = { - .name = "pccrc", - .exec = peerdist_info_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/pixbuf_test.c b/qemu/roms/ipxe/src/tests/pixbuf_test.c deleted file mode 100644 index aaa516bb2..000000000 --- a/qemu/roms/ipxe/src/tests/pixbuf_test.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2013 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Pixel buffer self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include "pixbuf_test.h" - -/** - * Report pixel buffer test result - * - * @v test Pixel buffer test - * @v file Test code file - * @v line Test code line - */ -void pixbuf_okx ( struct pixel_buffer_test *test, const char *file, - unsigned int line ) { - struct pixel_buffer *pixbuf; - int rc; - - /* Sanity check */ - assert ( ( test->width * test->height * sizeof ( test->data[0] ) ) - == test->len ); - - /* Correct image data pointer */ - test->image->data = virt_to_user ( ( void * ) test->image->data ); - - /* Check that image is detected as correct type */ - okx ( register_image ( test->image ) == 0, file, line ); - okx ( test->image->type == test->type, file, line ); - - /* Check that a pixel buffer can be created from the image */ - okx ( ( rc = image_pixbuf ( test->image, &pixbuf ) ) == 0, file, line ); - if ( rc == 0 ) { - - /* Check pixel buffer dimensions */ - okx ( pixbuf->width == test->width, file, line ); - okx ( pixbuf->height == test->height, file, line ); - - /* Check pixel buffer data */ - okx ( pixbuf->len == test->len, file, line ); - okx ( memcmp_user ( pixbuf->data, 0, - virt_to_user ( test->data ), 0, - test->len ) == 0, file, line ); - - pixbuf_put ( pixbuf ); - } - - /* Unregister image */ - unregister_image ( test->image ); -} diff --git a/qemu/roms/ipxe/src/tests/pixbuf_test.h b/qemu/roms/ipxe/src/tests/pixbuf_test.h deleted file mode 100644 index d12829d89..000000000 --- a/qemu/roms/ipxe/src/tests/pixbuf_test.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef _PIXBUF_TEST_H -#define _PIXBUF_TEST_H - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include -#include -#include -#include - -/** A pixel buffer test */ -struct pixel_buffer_test { - /** Image type */ - struct image_type *type; - /** Source image */ - struct image *image; - /** Pixel data */ - const uint32_t *data; - /** Length of pixel data */ - size_t len; - /** Width */ - unsigned int width; - /** Height */ - unsigned int height; -}; - -/** - * Define a pixel buffer test - * - * @v _name Test name - * @v _type Test image file type - * @v _file Test image file data - * @v _width Expected pixel buffer width - * @v _height Expected pixel buffer height - * @v _data Expected pixel buffer data - * @ret test Pixel buffer test - */ -#define PIX( _name, _type, _file, _width, _height, _data ) \ - static const char _name ## __file[] = _file; \ - static const uint32_t _name ## __data[] = _data; \ - static struct image _name ## __image = { \ - .refcnt = REF_INIT ( ref_no_free ), \ - .name = #_name, \ - .data = ( userptr_t ) ( _name ## __file ), \ - .len = sizeof ( _name ## __file ), \ - }; \ - static struct pixel_buffer_test _name = { \ - .type = _type, \ - .image = & _name ## __image, \ - .data = _name ## __data, \ - .len = sizeof ( _name ## __data ), \ - .width = _width, \ - .height = _height, \ - }; - -extern void pixbuf_okx ( struct pixel_buffer_test *test, const char *file, - unsigned int line ); - -/** - * Report pixel buffer test result - * - * @v test Pixel buffer test - */ -#define pixbuf_ok( test ) pixbuf_okx ( test, __FILE__, __LINE__ ) - -#endif /* _PIXBUF_TEST_H */ diff --git a/qemu/roms/ipxe/src/tests/png_test.c b/qemu/roms/ipxe/src/tests/png_test.c deleted file mode 100644 index e921aa2a6..000000000 --- a/qemu/roms/ipxe/src/tests/png_test.c +++ /dev/null @@ -1,1997 +0,0 @@ -/* - * Copyright (C) 2014 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * PNG self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include "pixbuf_test.h" - -/** Define inline pixel data */ -#define DATA(...) { __VA_ARGS__ } - -/* Non-opaque alpha channel */ -PIX ( alpha, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x06, 0x00, 0x00, 0x00, 0xf3, 0x1b, 0xaf, 0xbc, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x06, - 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, - 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, - 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, - 0x9c, 0x18, 0x00, 0x00, 0x01, 0x25, 0x49, 0x44, 0x41, 0x54, 0x18, - 0xd3, 0x05, 0xc1, 0xcb, 0x2e, 0x03, 0x51, 0x00, 0x80, 0xe1, 0x7f, - 0x6e, 0xa9, 0xe9, 0x65, 0x32, 0x53, 0x6d, 0xa5, 0x42, 0xd3, 0x34, - 0x12, 0x0b, 0x0b, 0x1b, 0x04, 0x3b, 0x3b, 0x3b, 0x8f, 0xe1, 0x35, - 0xbc, 0x81, 0x67, 0xf1, 0x10, 0x22, 0x11, 0x0b, 0x42, 0x68, 0x17, - 0x5a, 0x42, 0x94, 0xd0, 0x9e, 0xe9, 0xf4, 0x4c, 0x67, 0x3a, 0x39, - 0x33, 0xc7, 0xf7, 0x19, 0x97, 0xd7, 0xc5, 0x45, 0x7b, 0x3c, 0xc0, - 0xd2, 0x8a, 0xa8, 0xea, 0xa3, 0x6d, 0x87, 0xc2, 0x6f, 0xe2, 0xa9, - 0x39, 0x58, 0x0e, 0x69, 0x6e, 0xa0, 0x55, 0x42, 0xb8, 0xb0, 0x70, - 0xa5, 0x60, 0xa5, 0xa4, 0x31, 0xea, 0x75, 0xec, 0x2c, 0xd7, 0x28, - 0x95, 0x51, 0xff, 0x19, 0xd2, 0x7b, 0xba, 0x25, 0x2b, 0xb9, 0x8c, - 0x8e, 0xcf, 0xf0, 0xc2, 0x2f, 0x6a, 0x71, 0x88, 0xca, 0x73, 0x22, - 0xbf, 0xc9, 0x9a, 0x08, 0xf1, 0x3e, 0x5f, 0x49, 0x82, 0x26, 0x62, - 0x77, 0x1f, 0x33, 0x13, 0x92, 0xd5, 0xc1, 0x3d, 0xe6, 0xf4, 0x8f, - 0x49, 0x63, 0x93, 0xd8, 0xa9, 0xa0, 0xbf, 0xc7, 0xf4, 0xbb, 0x07, - 0xd4, 0x06, 0x0f, 0x68, 0x39, 0xa7, 0xdf, 0xdd, 0xc3, 0x1b, 0x8f, - 0x58, 0x3a, 0x65, 0x26, 0xc1, 0x06, 0x1f, 0xc1, 0x16, 0x26, 0xe1, - 0x0c, 0x33, 0x92, 0x58, 0x51, 0x4c, 0x25, 0x9a, 0x32, 0xa9, 0xae, - 0xf3, 0xdc, 0x39, 0x22, 0xff, 0x15, 0x68, 0x29, 0x11, 0x6e, 0x83, - 0x74, 0xa9, 0x58, 0xa6, 0x19, 0x9f, 0xe5, 0x16, 0x33, 0xa3, 0x44, - 0x94, 0x80, 0x1d, 0xfc, 0xbd, 0x93, 0x2a, 0x13, 0x65, 0x3a, 0xdc, - 0x9c, 0x9c, 0x23, 0xdc, 0x06, 0x85, 0x08, 0xd9, 0xb9, 0xb9, 0xe2, - 0x76, 0xfb, 0x94, 0xe6, 0xd7, 0x90, 0xb6, 0x75, 0x87, 0x23, 0xe7, - 0xa4, 0x75, 0x93, 0xb0, 0x1c, 0x10, 0xe3, 0x60, 0x0b, 0xd7, 0x27, - 0xe9, 0xee, 0xa1, 0x0d, 0x93, 0xa9, 0xe3, 0x43, 0x01, 0x5e, 0x26, - 0x19, 0x74, 0xf6, 0x79, 0xe9, 0x1d, 0xd2, 0x7a, 0x7b, 0xc4, 0x4d, - 0x26, 0x58, 0x9d, 0x1d, 0x72, 0x39, 0x63, 0x11, 0x67, 0x14, 0x96, - 0xcd, 0x3f, 0x0a, 0xd4, 0x8b, 0x0b, 0x4d, 0xd7, 0xb9, 0xb6, 0x00, - 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, - 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, - 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, - 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, - 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, - 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, - 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, - 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, - 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x48637f, 0x54566c, 0x56566a, 0x4f5c72, 0x4e5e74, 0x4d667f, - 0x546478, 0x54657b, 0x50647b, 0x506277, 0x485d78, 0x4c5770, - 0x505a6f, 0x516378, 0x45617f, 0x525469, 0x5d4958, 0x67333d, - 0x643641, 0x535369, 0x5b4b5c, 0x624654, 0x604452, 0x594c5d, - 0x5b4455, 0x623643, 0x5e3e4e, 0x555668, 0x425979, 0x5c4151, - 0x5e404e, 0x5d3d4b, 0x5e3947, 0x53475c, 0x475b77, 0x68323c, - 0x5f3e4c, 0x455c77, 0x623744, 0x5f3848, 0x54475c, 0x475e7a, - 0x425171, 0x5d3a4b, 0x603948, 0x633642, 0x553f54, 0x3e5679, - 0x46516e, 0x682c36, 0x574356, 0x415975, 0x5f3341, 0x513d53, - 0x4d475f, 0x405a7a, 0x4a4762, 0x59384c, 0x5b394b, 0x435676, - 0x3b5b80, 0x3a5278, 0x5b3447, 0x4d405a, 0x573649, 0x4d445b, - 0x612d3b, 0x4d3c54, 0x454c68, 0x3a5a7d, 0x424b6a, 0x464866, - 0x454867, 0x3a597e, 0x3a5a80, 0x414f72, 0x484361, 0x33547d, - 0x3e4467, 0x43405d, 0x4f3c50, 0x4b364d, 0x404765, 0x395b7f ) ); - -/* Colour type 0, bit depth 1 */ -PIX ( ctype_0_1, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x60, 0x92, 0x11, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x01, 0x86, - 0xa0, 0x31, 0xe8, 0x96, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x62, 0x4b, - 0x47, 0x44, 0x00, 0x01, 0xdd, 0x8a, 0x13, 0xa4, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x0e, - 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, 0xf8, 0xff, 0x87, 0x01, - 0x15, 0x01, 0x00, 0x6b, 0x0d, 0x0b, 0xe3, 0xeb, 0x45, 0x62, 0x80, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, - 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, - 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, - 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff ) ); - -/* Colour type 0, bit depth 16 */ -PIX ( ctype_0_16, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x10, 0x00, 0x00, 0x00, 0x00, 0x86, 0xe0, 0x2c, 0x23, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x01, 0x86, - 0xa0, 0x31, 0xe8, 0x96, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x62, 0x4b, - 0x47, 0x44, 0xff, 0xff, 0x14, 0xab, 0x31, 0xcd, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x85, - 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x1d, 0x8e, 0xc9, 0x0a, 0xc2, - 0x50, 0x0c, 0x45, 0xdf, 0x5f, 0xb9, 0x52, 0xea, 0xac, 0x88, 0xad, - 0x58, 0x41, 0x70, 0x5e, 0x89, 0xb3, 0x82, 0x82, 0xa0, 0x9b, 0xb3, - 0xe9, 0x42, 0x44, 0xc4, 0x3f, 0xf6, 0xb4, 0x84, 0x0c, 0x37, 0xb9, - 0x37, 0x49, 0xc8, 0x38, 0x6b, 0x77, 0x9e, 0x7c, 0xf9, 0xf0, 0xe3, - 0x4d, 0x26, 0x3a, 0x70, 0xe3, 0x45, 0x80, 0x2d, 0x33, 0xda, 0x74, - 0xcc, 0x4b, 0xa6, 0x8c, 0x8d, 0xa9, 0xb8, 0xcf, 0x89, 0x70, 0x24, - 0xd1, 0x7a, 0xc2, 0x94, 0xab, 0x94, 0xb8, 0x88, 0x39, 0x7a, 0x10, - 0xe6, 0x85, 0x2a, 0xf7, 0x35, 0x0b, 0x6a, 0x12, 0x77, 0x54, 0xa9, - 0x33, 0xc8, 0x95, 0xb1, 0x8d, 0x06, 0x1b, 0x2e, 0x8e, 0x22, 0x9a, - 0x54, 0xdc, 0x52, 0xb6, 0x1a, 0x79, 0x37, 0x0c, 0x5d, 0x94, 0xb0, - 0x97, 0x37, 0x51, 0xbd, 0xa2, 0xe5, 0x20, 0xa2, 0x44, 0xd7, 0x37, - 0xff, 0x4c, 0xf2, 0x48, 0x0d, 0x2c, 0x7a, 0x80, 0xe2, 0x00, 0x00, - 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, - 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, - 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, - 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, - 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, - 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, - 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, - 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, - 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x858585, 0x6f6f6f, 0x6f6f6f, 0x777777, 0x7b7b7b, 0x8f8f8f, - 0x8d8d8d, 0x919191, 0x8b8b8b, 0x858585, 0x777777, 0x6c6c6c, - 0x747474, 0x898989, 0x808080, 0x696969, 0x5c5c5c, 0x474747, - 0x484848, 0x696969, 0x5f5f5f, 0x5b5b5b, 0x575757, 0x5f5f5f, - 0x535353, 0x474747, 0x4d4d4d, 0x6e6e6e, 0x6d6d6d, 0x4f4f4f, - 0x4f4f4f, 0x4b4b4b, 0x474747, 0x535353, 0x737373, 0x484848, - 0x4e4e4e, 0x737373, 0x484848, 0x474747, 0x535353, 0x7a7a7a, - 0x5d5d5d, 0x474747, 0x484848, 0x474747, 0x484848, 0x666666, - 0x5e5e5e, 0x424242, 0x4f4f4f, 0x6a6a6a, 0x414141, 0x434343, - 0x505050, 0x6e6e6e, 0x4e4e4e, 0x424242, 0x444444, 0x686868, - 0x707070, 0x5e5e5e, 0x404040, 0x454545, 0x3e3e3e, 0x4b4b4b, - 0x3d3d3d, 0x404040, 0x545454, 0x6c6c6c, 0x525252, 0x4e4e4e, - 0x4f4f4f, 0x6b6b6b, 0x6e6e6e, 0x5a5a5a, 0x484848, 0x606060, - 0x464646, 0x404040, 0x404040, 0x373737, 0x494949, 0x6f6f6f ) ); - -/* Colour type 0, bit depth 2 */ -PIX ( ctype_0_2, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xc0, 0xe8, 0xc1, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x01, 0x86, - 0xa0, 0x31, 0xe8, 0x96, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x62, 0x4b, - 0x47, 0x44, 0x00, 0x03, 0x33, 0x84, 0x72, 0x88, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x24, - 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, 0x08, 0x0d, 0x0d, 0x0d, - 0x60, 0x08, 0x11, 0x0d, 0x11, 0x60, 0x08, 0x10, 0x11, 0x08, 0x60, - 0x70, 0x10, 0x09, 0x08, 0x60, 0x70, 0x0c, 0x00, 0xb2, 0x42, 0x43, - 0x1d, 0x02, 0x00, 0x59, 0xc5, 0x06, 0x00, 0x68, 0xee, 0x01, 0x07, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, - 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, - 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, - 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x555555, 0x555555, 0x555555, 0x555555, 0x555555, 0x555555, - 0x555555, 0x555555, 0x555555, 0x555555, 0x555555, 0x555555, - 0x555555, 0x555555, 0x555555, 0x555555, 0x555555, 0x000000, - 0x000000, 0x555555, 0x555555, 0x555555, 0x555555, 0x555555, - 0x555555, 0x000000, 0x000000, 0x555555, 0x555555, 0x555555, - 0x000000, 0x000000, 0x000000, 0x555555, 0x555555, 0x000000, - 0x000000, 0x555555, 0x000000, 0x000000, 0x555555, 0x555555, - 0x555555, 0x000000, 0x000000, 0x000000, 0x000000, 0x555555, - 0x555555, 0x000000, 0x555555, 0x555555, 0x000000, 0x000000, - 0x555555, 0x555555, 0x555555, 0x000000, 0x000000, 0x555555, - 0x555555, 0x555555, 0x000000, 0x000000, 0x000000, 0x555555, - 0x000000, 0x000000, 0x555555, 0x555555, 0x555555, 0x555555, - 0x555555, 0x555555, 0x555555, 0x555555, 0x555555, 0x555555, - 0x555555, 0x000000, 0x000000, 0x000000, 0x555555, 0x555555 ) ); - -/* Colour type 0, bit depth 4 */ -PIX ( ctype_0_4, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x13, 0x80, 0x1d, 0x61, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x01, 0x86, - 0xa0, 0x31, 0xe8, 0x96, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x62, 0x4b, - 0x47, 0x44, 0x00, 0x0f, 0x3a, 0x32, 0x3e, 0xa3, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x37, - 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, 0x68, 0x4f, 0xaf, 0x9c, - 0xd9, 0x5e, 0x56, 0xc1, 0x50, 0x96, 0xe2, 0x96, 0x1a, 0x1a, 0xe2, - 0xc6, 0x90, 0xea, 0xe2, 0x5a, 0xe2, 0xee, 0x12, 0xce, 0x10, 0xe2, - 0xe2, 0x16, 0xec, 0xe6, 0xe2, 0xce, 0xe0, 0xe2, 0x56, 0xe6, 0x62, - 0x62, 0x02, 0xe4, 0xbb, 0x95, 0xba, 0x39, 0x1b, 0xbb, 0x03, 0x00, - 0x7a, 0x4c, 0x0e, 0x45, 0x5a, 0x3c, 0xd1, 0xca, 0x00, 0x00, 0x00, - 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, - 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, - 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, - 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, - 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, - 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, - 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, - 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, - 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x888888, 0x777777, 0x666666, 0x777777, 0x777777, 0x999999, - 0x999999, 0x999999, 0x888888, 0x777777, 0x777777, 0x666666, - 0x777777, 0x888888, 0x777777, 0x666666, 0x666666, 0x444444, - 0x444444, 0x666666, 0x666666, 0x555555, 0x555555, 0x555555, - 0x555555, 0x444444, 0x444444, 0x666666, 0x666666, 0x555555, - 0x444444, 0x444444, 0x444444, 0x555555, 0x777777, 0x444444, - 0x444444, 0x777777, 0x444444, 0x444444, 0x555555, 0x777777, - 0x555555, 0x444444, 0x444444, 0x444444, 0x444444, 0x666666, - 0x555555, 0x333333, 0x444444, 0x666666, 0x444444, 0x444444, - 0x444444, 0x777777, 0x444444, 0x444444, 0x444444, 0x666666, - 0x777777, 0x666666, 0x444444, 0x444444, 0x333333, 0x444444, - 0x333333, 0x444444, 0x555555, 0x777777, 0x555555, 0x444444, - 0x444444, 0x666666, 0x777777, 0x555555, 0x444444, 0x666666, - 0x444444, 0x333333, 0x333333, 0x333333, 0x444444, 0x777777 ) ); - -/* Colour type 0, bit depth 8 */ -PIX ( ctype_0_8, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x00, 0x00, 0x00, 0x00, 0xd6, 0x70, 0xf0, 0x60, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x01, 0x86, - 0xa0, 0x31, 0xe8, 0x96, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x62, 0x4b, - 0x47, 0x44, 0x00, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x62, - 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, 0x68, 0xcd, 0xcf, 0x2f, - 0xaf, 0xee, 0xef, 0x9d, 0xd8, 0xdd, 0x5a, 0x9e, 0x53, 0xd2, 0xc9, - 0xd0, 0x90, 0x19, 0xe3, 0xe1, 0x91, 0x19, 0x1f, 0x1d, 0x1e, 0x1f, - 0xec, 0xee, 0x97, 0xc7, 0x90, 0xeb, 0x1f, 0xe0, 0xed, 0x1e, 0x5c, - 0xec, 0xe9, 0x57, 0xec, 0xe9, 0x1e, 0x52, 0xc5, 0x10, 0xeb, 0xee, - 0xe9, 0xee, 0x91, 0x16, 0xe7, 0xec, 0x9f, 0xe5, 0xe8, 0x1c, 0x90, - 0xc7, 0xe0, 0xe7, 0xe4, 0x9a, 0x51, 0x10, 0xe7, 0xe0, 0x6a, 0xef, - 0x6d, 0xe7, 0x10, 0x92, 0xc3, 0x10, 0xe4, 0xe7, 0x9f, 0x9d, 0x17, - 0xe5, 0x91, 0xe8, 0xe6, 0xe0, 0x60, 0xee, 0x99, 0x0f, 0x00, 0xb8, - 0xaa, 0x1e, 0x19, 0xe8, 0x28, 0x25, 0xa0, 0x00, 0x00, 0x00, 0x25, - 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, - 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, - 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, - 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, - 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, - 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, - 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, - 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, - 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x858585, 0x6f6f6f, 0x6f6f6f, 0x777777, 0x7b7b7b, 0x8f8f8f, - 0x8d8d8d, 0x919191, 0x8b8b8b, 0x858585, 0x777777, 0x6c6c6c, - 0x747474, 0x898989, 0x808080, 0x696969, 0x5c5c5c, 0x484848, - 0x484848, 0x696969, 0x5f5f5f, 0x5b5b5b, 0x575757, 0x5f5f5f, - 0x535353, 0x474747, 0x4e4e4e, 0x6e6e6e, 0x6d6d6d, 0x4f4f4f, - 0x505050, 0x4b4b4b, 0x474747, 0x535353, 0x737373, 0x494949, - 0x4e4e4e, 0x737373, 0x494949, 0x474747, 0x545454, 0x7a7a7a, - 0x5d5d5d, 0x474747, 0x494949, 0x474747, 0x484848, 0x666666, - 0x5e5e5e, 0x434343, 0x4f4f4f, 0x6a6a6a, 0x414141, 0x434343, - 0x505050, 0x6e6e6e, 0x4e4e4e, 0x424242, 0x454545, 0x686868, - 0x707070, 0x5e5e5e, 0x404040, 0x454545, 0x3f3f3f, 0x4b4b4b, - 0x3e3e3e, 0x404040, 0x545454, 0x6c6c6c, 0x525252, 0x4e4e4e, - 0x4f4f4f, 0x6b6b6b, 0x6e6e6e, 0x5a5a5a, 0x484848, 0x616161, - 0x464646, 0x404040, 0x404040, 0x373737, 0x494949, 0x6f6f6f ) ); - -/* Colour type 2, bit depth 16 */ -PIX ( ctype_2_16, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x10, 0x02, 0x00, 0x00, 0x00, 0x2c, 0xe9, 0xe4, 0xa8, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x06, - 0x62, 0x4b, 0x47, 0x44, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x09, - 0x58, 0xf7, 0xdc, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, - 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, - 0x9c, 0x18, 0x00, 0x00, 0x01, 0x45, 0x49, 0x44, 0x41, 0x54, 0x18, - 0xd3, 0x2d, 0xcb, 0xc1, 0x6e, 0xd2, 0x00, 0x00, 0x00, 0xd0, 0x47, - 0x4b, 0x83, 0xb0, 0x8d, 0x00, 0x8e, 0x99, 0x19, 0x25, 0x64, 0x31, - 0xf1, 0xb0, 0x83, 0x97, 0xcd, 0xa8, 0x37, 0x6f, 0xde, 0xfc, 0x0c, - 0x7f, 0x83, 0x3f, 0xf0, 0x5b, 0xfc, 0x08, 0xb3, 0x64, 0xf1, 0xa0, - 0xd1, 0xe8, 0x38, 0xb8, 0x69, 0x5c, 0x86, 0xc6, 0x41, 0x4b, 0x29, - 0x83, 0x35, 0x2d, 0xf5, 0xe2, 0xbb, 0xbf, 0xda, 0xdb, 0xd1, 0xfb, - 0xd1, 0x66, 0xb4, 0x6f, 0x62, 0x2c, 0x54, 0x29, 0xa4, 0xb6, 0x75, - 0x54, 0xea, 0x22, 0x1b, 0x1d, 0x7d, 0x6d, 0x85, 0x05, 0x42, 0x91, - 0xb5, 0x52, 0x4d, 0xa5, 0xb0, 0x92, 0xb8, 0x11, 0x6a, 0xca, 0xc4, - 0xee, 0x68, 0xa8, 0xd4, 0xf4, 0xf4, 0xd4, 0x73, 0xa5, 0x4a, 0xa1, - 0x90, 0xeb, 0xf9, 0xe3, 0xdc, 0x81, 0x2f, 0x4e, 0xe5, 0x1a, 0x9a, - 0x2e, 0xbc, 0xf0, 0x5a, 0x5b, 0xe2, 0xca, 0x8e, 0xa5, 0x44, 0xa1, - 0x54, 0x4a, 0x75, 0xf4, 0xdd, 0x13, 0x4b, 0xb4, 0x5d, 0xfa, 0x6e, - 0xa5, 0xab, 0x2f, 0xf6, 0xc4, 0xb1, 0x20, 0x17, 0xcb, 0xdc, 0x35, - 0xf6, 0x51, 0x60, 0xe6, 0xda, 0xd4, 0xae, 0x87, 0x96, 0x22, 0x5b, - 0x2a, 0xbf, 0x4d, 0x9c, 0x19, 0x7a, 0x6a, 0xc7, 0xd8, 0x27, 0x95, - 0xcc, 0xc2, 0x99, 0xa1, 0x23, 0x6d, 0x13, 0x17, 0x6e, 0x45, 0x5a, - 0xa6, 0xba, 0x1e, 0xf8, 0xa5, 0xeb, 0x91, 0x80, 0xc4, 0x5c, 0x20, - 0x95, 0x09, 0xa5, 0x96, 0xb6, 0xa4, 0x66, 0xa6, 0xb6, 0xdd, 0xf7, - 0xd5, 0xc0, 0x73, 0xa5, 0xbf, 0x62, 0x95, 0x4c, 0x26, 0xd6, 0xb4, - 0x6b, 0xed, 0x56, 0xe1, 0xd6, 0x5a, 0xee, 0x52, 0xcb, 0x9e, 0xb9, - 0x9a, 0x86, 0xd4, 0x0a, 0xf5, 0xae, 0x6b, 0x3f, 0xad, 0x15, 0x02, - 0x85, 0x40, 0xe4, 0xc4, 0x4b, 0x6f, 0xfe, 0xe7, 0x8d, 0x58, 0xe2, - 0xd0, 0x89, 0x77, 0x4e, 0x3d, 0xf6, 0x4a, 0xdf, 0x95, 0x73, 0xfb, - 0x42, 0x1f, 0x44, 0x32, 0x0b, 0x6b, 0x3d, 0x81, 0x44, 0x4b, 0xd7, - 0x12, 0x91, 0x7a, 0xac, 0xa9, 0x63, 0x65, 0xe8, 0x48, 0xa5, 0x26, - 0x30, 0x13, 0xe9, 0x60, 0x83, 0xb6, 0x5c, 0x66, 0x6c, 0xe0, 0xd8, - 0x37, 0x07, 0x9e, 0xd9, 0xf3, 0xc3, 0x67, 0x4d, 0x2b, 0x53, 0xa1, - 0x81, 0x43, 0xa5, 0xcc, 0xdc, 0x8d, 0xa5, 0xdc, 0x46, 0xa8, 0xee, - 0x1f, 0x17, 0x48, 0x8c, 0x0b, 0x6d, 0x83, 0xc4, 0x70, 0x00, 0x00, - 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, - 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, - 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, - 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, - 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, - 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, - 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, - 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, - 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Colour type 2, bit depth 8 */ -PIX ( ctype_2_8, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x02, 0x00, 0x00, 0x00, 0x7c, 0x79, 0x38, 0xeb, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x06, - 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, - 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, - 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, - 0x9c, 0x18, 0x00, 0x00, 0x01, 0x04, 0x49, 0x44, 0x41, 0x54, 0x18, - 0xd3, 0x05, 0xc1, 0xc1, 0x4e, 0x83, 0x30, 0x00, 0x00, 0x50, 0x68, - 0x69, 0xb0, 0x6c, 0x23, 0x80, 0x30, 0x33, 0xa3, 0x84, 0x2c, 0x26, - 0x1e, 0x76, 0xf0, 0xb2, 0x19, 0xf5, 0xe6, 0xcd, 0x9b, 0x9f, 0xe1, - 0xe7, 0xf8, 0x2d, 0x7e, 0x84, 0x59, 0xb2, 0x78, 0xd0, 0x68, 0x74, - 0x1c, 0xdc, 0x34, 0x2e, 0x63, 0xc6, 0x41, 0x0b, 0x94, 0x01, 0x4d, - 0xa1, 0xbe, 0xa7, 0xde, 0x3f, 0xb6, 0x83, 0x28, 0x84, 0x52, 0x64, - 0x5d, 0x4b, 0x6a, 0xa8, 0xb5, 0x3c, 0x53, 0xe4, 0x0a, 0x44, 0x55, - 0xa3, 0x4a, 0x51, 0xd2, 0x1d, 0xc4, 0x8c, 0xec, 0xe9, 0x52, 0x75, - 0x1c, 0x8d, 0x37, 0x52, 0x08, 0xee, 0xfc, 0x2e, 0x86, 0x6f, 0x33, - 0xae, 0xe3, 0xe5, 0xd5, 0xad, 0x49, 0xd7, 0xbd, 0x82, 0x8a, 0xa6, - 0xc9, 0x2c, 0xef, 0x80, 0x50, 0x73, 0xf5, 0x59, 0xda, 0x1e, 0x39, - 0x9b, 0x00, 0x4e, 0xd8, 0x7e, 0xf8, 0x0c, 0x92, 0x6d, 0xec, 0x1e, - 0x17, 0xa8, 0x23, 0x37, 0xd1, 0x3c, 0x38, 0xef, 0x85, 0x2f, 0x92, - 0xe5, 0xf3, 0x60, 0x6c, 0x46, 0xcb, 0x1a, 0x19, 0xb1, 0x7d, 0xf4, - 0x63, 0x9f, 0x00, 0x85, 0xa6, 0x20, 0x63, 0x30, 0x2b, 0x3a, 0x59, - 0x12, 0x77, 0x0f, 0xdf, 0xfd, 0xcb, 0xe6, 0x8f, 0x48, 0xc6, 0x08, - 0x76, 0xab, 0x5a, 0xd4, 0x15, 0x5f, 0x19, 0xfd, 0x54, 0xd5, 0xb3, - 0x52, 0xd1, 0xec, 0xed, 0x77, 0x25, 0x80, 0x00, 0x68, 0x7a, 0x7d, - 0x47, 0xb0, 0xdb, 0x12, 0x3a, 0x9a, 0x3e, 0xcc, 0x4e, 0x6f, 0xbc, - 0xf5, 0x62, 0x00, 0x9f, 0x10, 0xcb, 0x2b, 0x07, 0x50, 0xc3, 0x2e, - 0x14, 0xa4, 0x11, 0x6c, 0x95, 0xc1, 0x58, 0xaa, 0x20, 0x41, 0x96, - 0xd2, 0x2a, 0x26, 0x67, 0xa1, 0x3f, 0xf9, 0x18, 0x5e, 0xf4, 0xbf, - 0x5e, 0x71, 0x19, 0x43, 0x7f, 0xd4, 0xb0, 0x74, 0x57, 0xf0, 0x16, - 0x6a, 0xff, 0xc1, 0x85, 0x8a, 0x8b, 0x87, 0xa4, 0x8a, 0x0e, 0x00, - 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, - 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, - 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, - 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, - 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, - 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, - 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, - 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, - 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Colour type 3, bit depth 1 */ -PIX ( ctype_3_1, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x02, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x75, 0x47, 0x2f, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x0c, - 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, - 0x00, 0xff, 0x00, 0xff, 0xff, 0x35, 0x24, 0xb1, 0xc4, 0x00, 0x00, - 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x00, 0x88, 0x05, 0x1d, 0x48, - 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, - 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, - 0x00, 0x00, 0x24, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, 0x60, - 0x00, 0x01, 0xc6, 0x06, 0xa6, 0x06, 0x06, 0xae, 0xc6, 0x2e, 0x06, - 0x06, 0xad, 0x8d, 0x5c, 0x06, 0x0c, 0x1a, 0xbf, 0xda, 0x0c, 0x18, - 0x98, 0x0f, 0xbf, 0xfa, 0x00, 0x00, 0x4a, 0x48, 0x07, 0xa6, 0x66, - 0x5c, 0x57, 0x79, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, - 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, - 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, - 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, - 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, - 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, - 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, - 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, - 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xff0000, - 0xff00ff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xff00ff, 0xff00ff, 0xffffff, 0xffffff, 0xffffff, - 0xff00ff, 0xff00ff, 0xff00ff, 0xffffff, 0xffffff, 0xff0000, - 0xff00ff, 0xffffff, 0xff00ff, 0xff00ff, 0xffffff, 0xffffff, - 0xffffff, 0xff00ff, 0xff00ff, 0xff00ff, 0xff00ff, 0x00ffff, - 0xffffff, 0xff0000, 0xffffff, 0xffffff, 0xff00ff, 0xff00ff, - 0xffffff, 0x00ffff, 0xffffff, 0xff00ff, 0xff00ff, 0xffffff, - 0x00ffff, 0x00ffff, 0xff00ff, 0xff00ff, 0xff00ff, 0xffffff, - 0xff0000, 0xff00ff, 0xffffff, 0x00ffff, 0xffffff, 0xffffff, - 0xffffff, 0x00ffff, 0x00ffff, 0xffffff, 0xffffff, 0x00ffff, - 0x00ffff, 0xff00ff, 0xff00ff, 0xff00ff, 0x00ffff, 0x00ffff ) ); - -/* Colour type 3, bit depth 2 */ -PIX ( ctype_3_2, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x35, 0xb2, 0x8f, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x15, - 0x50, 0x4c, 0x54, 0x45, 0xaa, 0xaa, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, - 0x55, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0xff, 0x55, 0xaa, 0xaa, - 0xff, 0xff, 0xff, 0xef, 0x1e, 0x2f, 0x5e, 0x00, 0x00, 0x00, 0x01, - 0x62, 0x4b, 0x47, 0x44, 0x06, 0x61, 0x66, 0xb8, 0x7d, 0x00, 0x00, - 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, - 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, - 0x34, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, 0x60, 0x10, 0x60, - 0x00, 0x03, 0x46, 0x21, 0x43, 0x41, 0x41, 0x61, 0x43, 0x06, 0x46, - 0x63, 0x43, 0x26, 0x03, 0x63, 0x01, 0x06, 0x66, 0x63, 0x13, 0x26, - 0x01, 0x63, 0x11, 0x06, 0x61, 0x03, 0x17, 0x63, 0x43, 0x65, 0x11, - 0x06, 0x41, 0x11, 0x07, 0x91, 0x60, 0xe3, 0x10, 0x00, 0x53, 0x53, - 0x04, 0xcd, 0x45, 0xaa, 0x11, 0x71, 0x00, 0x00, 0x00, 0x25, 0x74, - 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, - 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, - 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, - 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0xaaaaff, 0xaaaaff, 0xaaaaaa, 0xaaaaff, 0xaaaaff, 0xaaaaff, - 0xaaaaff, 0xaaaaff, 0xaaaaff, 0xaaaaff, 0xaaaaff, 0xaaaaff, - 0xaaaaff, 0xaaaaff, 0xaaaaff, 0xaaaaaa, 0xaaaaaa, 0xaa5555, - 0xaa55aa, 0xaaaaaa, 0xaaaaaa, 0xaaaaaa, 0xaaaaaa, 0xaaaaaa, - 0xaaaaaa, 0xaa55aa, 0xaa55aa, 0xaaaaaa, 0xaaaaff, 0xaaaaaa, - 0xaa55aa, 0xaa55aa, 0xaa55aa, 0xaaaaaa, 0xaaaaff, 0xaa5555, - 0xaa55aa, 0xaaaaff, 0xaa55aa, 0xaa55aa, 0xaaaaaa, 0xaaaaff, - 0xaaaaff, 0xaa55aa, 0xaa55aa, 0xaa55aa, 0xaa55aa, 0x55aaff, - 0xaaaaff, 0xaa5555, 0xaaaaaa, 0xaaaaff, 0xaa55aa, 0xaa55aa, - 0xaaaaaa, 0x55aaff, 0xaaaaaa, 0xaa55aa, 0xaa55aa, 0xaaaaff, - 0x55aaff, 0x55aaff, 0xaa55aa, 0xaa55aa, 0xaa55aa, 0xaaaaaa, - 0xaa5555, 0xaa55aa, 0xaaaaaa, 0x55aaff, 0xaaaaaa, 0xaaaaaa, - 0xaaaaaa, 0x55aaff, 0x55aaff, 0xaaaaff, 0xaaaaaa, 0x55aaff, - 0x55aaaa, 0xaa55aa, 0xaa55aa, 0xaa55aa, 0x55aaaa, 0x55aaff ) ); - -/* Colour type 3, bit depth 4 */ -PIX ( ctype_3_4, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0x5f, 0x8e, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x8a, - 0x50, 0x4c, 0x54, 0x45, 0x88, 0xcc, 0xff, 0xaa, 0xaa, 0xdd, 0xaa, - 0xaa, 0xcc, 0x99, 0xbb, 0xdd, 0x99, 0xbb, 0xee, 0x99, 0xcc, 0xff, - 0xaa, 0xcc, 0xee, 0x99, 0xcc, 0xee, 0x88, 0xbb, 0xee, 0x99, 0xaa, - 0xdd, 0x88, 0xbb, 0xff, 0xbb, 0x99, 0xaa, 0xcc, 0x66, 0x77, 0xcc, - 0x66, 0x88, 0xbb, 0x99, 0xbb, 0xbb, 0x88, 0xaa, 0xaa, 0x99, 0xbb, - 0xbb, 0x77, 0x99, 0x88, 0xaa, 0xee, 0xbb, 0x88, 0x99, 0xbb, 0x77, - 0x88, 0xaa, 0x88, 0xbb, 0x88, 0x99, 0xdd, 0xaa, 0x77, 0xaa, 0x77, - 0xaa, 0xee, 0xcc, 0x55, 0x66, 0xaa, 0x88, 0xaa, 0xbb, 0x66, 0x88, - 0x99, 0x77, 0xaa, 0x99, 0x88, 0xbb, 0x77, 0xbb, 0xee, 0xaa, 0x77, - 0x99, 0x77, 0xbb, 0xff, 0x99, 0x77, 0xbb, 0xaa, 0x66, 0x99, 0xbb, - 0x55, 0x77, 0x88, 0x99, 0xcc, 0x88, 0x88, 0xcc, 0x77, 0xaa, 0xff, - 0x88, 0x88, 0xbb, 0x66, 0xaa, 0xff, 0x77, 0x88, 0xcc, 0x88, 0x77, - 0xbb, 0x99, 0x77, 0x99, 0x99, 0x66, 0x99, 0xff, 0xff, 0xff, 0xac, - 0x68, 0xae, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, - 0x2d, 0xcd, 0xda, 0x41, 0x3d, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, - 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, - 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x59, 0x49, 0x44, 0x41, - 0x54, 0x08, 0xd7, 0x0d, 0xc5, 0xd9, 0x02, 0x40, 0x20, 0x10, 0x00, - 0xc0, 0x95, 0x2b, 0x47, 0xb2, 0x49, 0xce, 0x08, 0xe5, 0xfe, 0xff, - 0xef, 0x63, 0x5e, 0x06, 0xc0, 0x23, 0x7e, 0x10, 0x46, 0x51, 0x1c, - 0xd0, 0xc4, 0x8f, 0x21, 0x25, 0x59, 0xce, 0x48, 0xc1, 0x79, 0xc9, - 0x19, 0x12, 0x10, 0x15, 0xa2, 0xac, 0x69, 0x8e, 0x94, 0xfd, 0x81, - 0x42, 0xc9, 0x9a, 0x56, 0x75, 0xbd, 0x18, 0x46, 0x3d, 0x81, 0x9e, - 0x51, 0x98, 0x76, 0x58, 0x56, 0xbd, 0x8d, 0xd6, 0x80, 0x75, 0x6e, - 0x37, 0xea, 0x38, 0xaf, 0xfb, 0x79, 0x2f, 0xf3, 0x01, 0xcb, 0xd6, - 0x06, 0x9f, 0x93, 0x26, 0xe0, 0xd0, 0x00, 0x00, 0x00, 0x25, 0x74, - 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, - 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, - 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, - 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x88ccff, 0xaaaadd, 0xaaaacc, 0x99bbdd, 0x99bbee, 0x99ccff, - 0xaaccee, 0xaaccee, 0x99ccee, 0x99bbee, 0x88bbee, 0x99aadd, - 0x99bbdd, 0x99ccee, 0x88bbff, 0xaaaacc, 0xbb99aa, 0xcc6677, - 0xcc6688, 0xaaaacc, 0xbb99bb, 0xbb88aa, 0xbb88aa, 0xaa99bb, - 0xbb88aa, 0xcc6688, 0xbb7799, 0xaaaacc, 0x88aaee, 0xbb8899, - 0xbb7799, 0xbb7799, 0xbb7788, 0xaa88bb, 0x88bbee, 0xcc6677, - 0xbb7799, 0x88bbee, 0xcc6688, 0xbb7788, 0xaa88bb, 0x88bbee, - 0x8899dd, 0xbb7799, 0xbb7788, 0xcc6688, 0xaa77aa, 0x77aaee, - 0x8899dd, 0xcc5566, 0xaa88aa, 0x88aaee, 0xbb6688, 0x9977aa, - 0x9988bb, 0x77bbee, 0x9988bb, 0xaa7799, 0xbb7799, 0x88aaee, - 0x77bbff, 0x77aaee, 0xbb6688, 0x9977bb, 0xaa6699, 0x9988bb, - 0xbb5577, 0x9977aa, 0x8899cc, 0x77bbff, 0x8899cc, 0x8888cc, - 0x8888cc, 0x77aaff, 0x77bbff, 0x8899dd, 0x8888bb, 0x66aaff, - 0x7788cc, 0x8877bb, 0x997799, 0x996699, 0x7788cc, 0x77bbff ) ); - -/* Colour type 3, bit depth 8 */ -PIX ( ctype_3_8, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0x5f, 0x8e, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0xff, - 0x50, 0x4c, 0x54, 0x45, 0x8f, 0xc5, 0xfe, 0xa8, 0xac, 0xd7, 0xab, - 0xab, 0xd3, 0x9d, 0xb7, 0xe3, 0x9c, 0xbb, 0xe8, 0x9a, 0xcb, 0xfd, - 0xa8, 0xc7, 0xf0, 0xa8, 0xca, 0xf5, 0xa0, 0xc7, 0xf6, 0x9f, 0xc3, - 0xed, 0x8f, 0xb9, 0xf0, 0x98, 0xad, 0xdf, 0xa0, 0xb4, 0xde, 0xa1, - 0xc6, 0xf0, 0x89, 0xc2, 0xfd, 0xa4, 0xa8, 0xd1, 0xba, 0x91, 0xaf, - 0xcd, 0x65, 0x79, 0xc7, 0x6c, 0x82, 0xa6, 0xa6, 0xd1, 0xb6, 0x96, - 0xb7, 0xc3, 0x8b, 0xa7, 0xbf, 0x88, 0xa4, 0xb1, 0x98, 0xb9, 0xb6, - 0x87, 0xa9, 0xc4, 0x6b, 0x86, 0xbb, 0x7c, 0x9b, 0xaa, 0xab, 0xd0, - 0x83, 0xb1, 0xf1, 0xb7, 0x81, 0xa1, 0xbc, 0x7f, 0x9b, 0xba, 0x79, - 0x96, 0xbc, 0x71, 0x8d, 0xa5, 0x8e, 0xb8, 0x8e, 0xb6, 0xed, 0xd0, - 0x64, 0x78, 0xbe, 0x7c, 0x97, 0x89, 0xb8, 0xed, 0xc4, 0x6e, 0x88, - 0xbd, 0x70, 0x90, 0xa8, 0x8d, 0xb7, 0x8d, 0xbc, 0xf4, 0x83, 0xa1, - 0xe2, 0xb9, 0x73, 0x95, 0xbf, 0x71, 0x90, 0xc5, 0x6b, 0x84, 0xa9, - 0x7d, 0xa7, 0x7b, 0xac, 0xf1, 0x8b, 0xa1, 0xdc, 0xcf, 0x58, 0x6c, - 0xad, 0x85, 0xab, 0x81, 0xb1, 0xe9, 0xbd, 0x66, 0x82, 0xa1, 0x7a, - 0xa6, 0x99, 0x8e, 0xbe, 0x7f, 0xb3, 0xf4, 0x94, 0x8d, 0xc3, 0xb1, - 0x6f, 0x97, 0xb5, 0x71, 0x95, 0x86, 0xac, 0xeb, 0x75, 0xb5, 0xff, - 0x73, 0xa4, 0xef, 0xb6, 0x68, 0x8d, 0x99, 0x7f, 0xb4, 0xae, 0x6b, - 0x92, 0x9a, 0x88, 0xb5, 0xc2, 0x5a, 0x75, 0x99, 0x78, 0xa8, 0x89, - 0x98, 0xcf, 0x74, 0xb3, 0xf9, 0x83, 0x96, 0xd3, 0x8b, 0x8f, 0xcb, - 0x8a, 0x90, 0xcd, 0x74, 0xb1, 0xfb, 0x74, 0xb3, 0xff, 0x81, 0x9e, - 0xe3, 0x8f, 0x86, 0xc2, 0x66, 0xa8, 0xfa, 0x7c, 0x88, 0xcd, 0x85, - 0x7f, 0xba, 0x9d, 0x78, 0xa0, 0x96, 0x6c, 0x99, 0x7f, 0x8d, 0xc9, - 0x72, 0xb6, 0xfd, 0xff, 0xff, 0xff, 0xdb, 0x2a, 0x9f, 0xad, 0x00, - 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x54, 0xe4, 0x03, 0x88, - 0xa5, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x62, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, - 0x60, 0x60, 0x64, 0x62, 0x66, 0x61, 0x65, 0x63, 0xe7, 0xe0, 0xe4, - 0xe2, 0xe6, 0xe1, 0x65, 0xe0, 0xe3, 0x17, 0x10, 0x14, 0x12, 0x16, - 0x11, 0x15, 0x13, 0x97, 0x90, 0x94, 0x92, 0x66, 0x90, 0x91, 0x95, - 0x93, 0x57, 0x50, 0x54, 0x52, 0x56, 0x51, 0x55, 0x53, 0xd7, 0xd0, - 0x64, 0xd0, 0xd2, 0xd6, 0xd1, 0xd5, 0xd3, 0x37, 0x30, 0x34, 0x32, - 0x36, 0x31, 0x35, 0x33, 0x67, 0xb0, 0xb0, 0xb4, 0xb2, 0xb6, 0xb1, - 0xb5, 0xb3, 0x77, 0x70, 0x74, 0x72, 0x76, 0x71, 0x65, 0x70, 0x73, - 0xf7, 0xf0, 0xf4, 0xf2, 0xf6, 0xf1, 0xf5, 0xf3, 0x0f, 0x08, 0x0c, - 0x0a, 0x06, 0x00, 0x96, 0xe0, 0x0d, 0x9f, 0x37, 0x73, 0x30, 0xa4, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, - 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, - 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, - 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Colour type 4, bit depth 16 */ -PIX ( ctype_4_16, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x10, 0x04, 0x00, 0x00, 0x00, 0x09, 0x82, 0xbb, 0x74, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x01, 0x86, - 0xa0, 0x31, 0xe8, 0x96, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x62, 0x4b, - 0x47, 0x44, 0xff, 0xff, 0x14, 0xab, 0x31, 0xcd, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x93, - 0x49, 0x44, 0x41, 0x54, 0x18, 0xd3, 0x4d, 0xcf, 0xc1, 0x4e, 0xc2, - 0x60, 0x10, 0x04, 0xe0, 0x8f, 0xf2, 0x0b, 0x24, 0x72, 0x13, 0x4f, - 0x9e, 0x48, 0x78, 0xd0, 0x5e, 0x78, 0x51, 0x0f, 0x1e, 0x4a, 0xaa, - 0x80, 0x96, 0x22, 0x68, 0xeb, 0xc1, 0x39, 0x74, 0x93, 0xc9, 0x4e, - 0x76, 0x76, 0x33, 0xb3, 0xb3, 0x7d, 0x3d, 0xd6, 0x8d, 0xff, 0x5a, - 0xa1, 0x60, 0x83, 0x21, 0xfc, 0x16, 0x9c, 0xd1, 0x65, 0xe7, 0x19, - 0xe5, 0x1e, 0xe1, 0x13, 0x07, 0xcc, 0xb0, 0xc5, 0x05, 0x3f, 0xc1, - 0x0a, 0x5f, 0xc1, 0x22, 0xfb, 0x55, 0x8b, 0xb7, 0x1c, 0x16, 0x8c, - 0x68, 0xe2, 0xda, 0xa2, 0x0f, 0xef, 0x92, 0x6a, 0x81, 0x35, 0xca, - 0x11, 0xd7, 0x38, 0x8d, 0xe9, 0x4f, 0x71, 0xbf, 0x61, 0x99, 0xe3, - 0x6f, 0x54, 0xf8, 0x8d, 0x73, 0x39, 0xe1, 0x9e, 0xe1, 0x2e, 0xb1, - 0xde, 0xf1, 0x8a, 0x07, 0x7c, 0x4c, 0x22, 0xcf, 0x93, 0x6a, 0x40, - 0x55, 0x62, 0xfd, 0x18, 0x61, 0x98, 0xfc, 0xf5, 0x92, 0xde, 0x45, - 0xeb, 0x27, 0xfc, 0x0f, 0x08, 0x4c, 0x30, 0x03, 0xe4, 0x95, 0x23, - 0xfb, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, - 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, - 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, - 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, - 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, - 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, - 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, - 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, - 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, - 0x82 ), - 14, 6, - DATA ( 0x858585, 0x6f6f6f, 0x6f6f6f, 0x777777, 0x7b7b7b, 0x8f8f8f, - 0x8d8d8d, 0x919191, 0x8b8b8b, 0x858585, 0x777777, 0x6c6c6c, - 0x747474, 0x898989, 0x808080, 0x696969, 0x5c5c5c, 0x474747, - 0x484848, 0x696969, 0x5f5f5f, 0x5b5b5b, 0x575757, 0x5f5f5f, - 0x535353, 0x474747, 0x4d4d4d, 0x6e6e6e, 0x6d6d6d, 0x4f4f4f, - 0x4f4f4f, 0x4b4b4b, 0x474747, 0x535353, 0x737373, 0x484848, - 0x4e4e4e, 0x737373, 0x484848, 0x474747, 0x535353, 0x7a7a7a, - 0x5d5d5d, 0x474747, 0x484848, 0x474747, 0x484848, 0x666666, - 0x5e5e5e, 0x424242, 0x4f4f4f, 0x6a6a6a, 0x414141, 0x434343, - 0x505050, 0x6e6e6e, 0x4e4e4e, 0x424242, 0x444444, 0x686868, - 0x707070, 0x5e5e5e, 0x404040, 0x454545, 0x3e3e3e, 0x4b4b4b, - 0x3d3d3d, 0x404040, 0x545454, 0x6c6c6c, 0x525252, 0x4e4e4e, - 0x4f4f4f, 0x6b6b6b, 0x6e6e6e, 0x5a5a5a, 0x484848, 0x606060, - 0x464646, 0x404040, 0x404040, 0x373737, 0x494949, 0x6f6f6f ) ); - -/* Colour type 4, bit depth 8 */ -PIX ( ctype_4_8, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x04, 0x00, 0x00, 0x00, 0x59, 0x12, 0x67, 0x37, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x01, 0x86, - 0xa0, 0x31, 0xe8, 0x96, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x62, 0x4b, - 0x47, 0x44, 0x00, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x72, - 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x05, 0xc1, 0xbb, 0x0e, 0x82, - 0x30, 0x00, 0x00, 0xc0, 0xa3, 0x54, 0x6d, 0x0c, 0x9b, 0xb8, 0xb9, - 0x18, 0xbf, 0xd5, 0x1f, 0x75, 0x70, 0xf0, 0x15, 0x1f, 0x20, 0xa6, - 0x56, 0xf0, 0xae, 0xda, 0x4f, 0x27, 0x24, 0x51, 0x6b, 0x14, 0x65, - 0xd9, 0x53, 0x2f, 0x59, 0x8b, 0x5f, 0xd9, 0xcb, 0x05, 0x5b, 0x6f, - 0x45, 0x91, 0x74, 0x3a, 0x0b, 0x59, 0xb8, 0x3a, 0xea, 0xd4, 0x26, - 0x27, 0xad, 0x9b, 0x41, 0xeb, 0x8d, 0xb9, 0x46, 0xbc, 0xfb, 0x08, - 0x46, 0x95, 0x95, 0xb3, 0x6c, 0x6e, 0xf0, 0x11, 0x14, 0x9d, 0xf8, - 0xf0, 0x55, 0xdb, 0x49, 0x6e, 0x0e, 0x66, 0xee, 0x8a, 0x9f, 0x49, - 0x34, 0x0a, 0x51, 0x63, 0xa9, 0x36, 0x2a, 0x92, 0x8d, 0x85, 0x5e, - 0x30, 0xe8, 0xd5, 0xfe, 0x3c, 0xbb, 0x2f, 0xff, 0xe5, 0xd1, 0x65, - 0x25, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, - 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, - 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, - 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, - 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, - 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, - 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, - 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, - 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, - 0x82 ), - 14, 6, - DATA ( 0x858585, 0x6f6f6f, 0x6f6f6f, 0x777777, 0x7b7b7b, 0x8f8f8f, - 0x8d8d8d, 0x919191, 0x8b8b8b, 0x858585, 0x777777, 0x6c6c6c, - 0x747474, 0x898989, 0x808080, 0x696969, 0x5c5c5c, 0x484848, - 0x484848, 0x696969, 0x5f5f5f, 0x5b5b5b, 0x575757, 0x5f5f5f, - 0x535353, 0x474747, 0x4e4e4e, 0x6e6e6e, 0x6d6d6d, 0x4f4f4f, - 0x505050, 0x4b4b4b, 0x474747, 0x535353, 0x737373, 0x494949, - 0x4e4e4e, 0x737373, 0x494949, 0x474747, 0x545454, 0x7a7a7a, - 0x5d5d5d, 0x474747, 0x494949, 0x474747, 0x484848, 0x666666, - 0x5e5e5e, 0x434343, 0x4f4f4f, 0x6a6a6a, 0x414141, 0x434343, - 0x505050, 0x6e6e6e, 0x4e4e4e, 0x424242, 0x454545, 0x686868, - 0x707070, 0x5e5e5e, 0x404040, 0x454545, 0x3f3f3f, 0x4b4b4b, - 0x3e3e3e, 0x404040, 0x545454, 0x6c6c6c, 0x525252, 0x4e4e4e, - 0x4f4f4f, 0x6b6b6b, 0x6e6e6e, 0x5a5a5a, 0x484848, 0x616161, - 0x464646, 0x404040, 0x404040, 0x373737, 0x494949, 0x6f6f6f ) ); - -/* Colour type 6, bit depth 16 */ -PIX ( ctype_6_16, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x10, 0x06, 0x00, 0x00, 0x00, 0xa3, 0x8b, 0x73, 0xff, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x06, - 0x62, 0x4b, 0x47, 0x44, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x09, - 0x58, 0xf7, 0xdc, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, - 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, - 0x9c, 0x18, 0x00, 0x00, 0x01, 0x5f, 0x49, 0x44, 0x41, 0x54, 0x28, - 0xcf, 0x4d, 0xd0, 0x31, 0x6e, 0xd3, 0x00, 0x00, 0x85, 0xe1, 0x2f, - 0x76, 0xac, 0x90, 0xb4, 0x8d, 0x92, 0xd0, 0x14, 0x15, 0x41, 0x84, - 0x2a, 0x24, 0x86, 0x0e, 0x2c, 0x14, 0x01, 0x1b, 0x1b, 0x1b, 0xc7, - 0xe0, 0x1a, 0xb9, 0x01, 0x67, 0xe1, 0x10, 0xa8, 0x52, 0xc5, 0x00, - 0x02, 0x01, 0x19, 0x68, 0x41, 0xad, 0x1a, 0x10, 0x4d, 0xec, 0xb8, - 0x4e, 0x93, 0x58, 0x4e, 0xcc, 0xe2, 0x81, 0xf5, 0x0d, 0xef, 0xfd, - 0xef, 0xaf, 0xbd, 0x1d, 0xbe, 0x1f, 0x6e, 0x86, 0xe5, 0x70, 0xdf, - 0xd8, 0x08, 0xa1, 0x52, 0x81, 0xd4, 0xb6, 0x0e, 0x4a, 0x75, 0x11, - 0x36, 0x3a, 0xfa, 0x68, 0x2b, 0x5c, 0x83, 0x50, 0x84, 0xa5, 0xb5, - 0x1a, 0x4a, 0x85, 0x05, 0x12, 0x37, 0x42, 0x34, 0x65, 0x62, 0xdc, - 0xd2, 0x50, 0xa2, 0xa6, 0xa7, 0x87, 0x7a, 0x6e, 0xad, 0x44, 0xa1, - 0x90, 0xa3, 0xe7, 0x8f, 0x53, 0x1c, 0xf8, 0xe2, 0x04, 0xb9, 0x86, - 0x26, 0xce, 0xbc, 0xf0, 0x1a, 0x6d, 0x89, 0x4b, 0xec, 0x98, 0x4b, - 0x50, 0x58, 0x5b, 0x23, 0xad, 0x80, 0xee, 0x88, 0x25, 0x68, 0xbb, - 0xf0, 0x03, 0x0b, 0x5d, 0x7d, 0xc4, 0x1e, 0x3b, 0x42, 0x90, 0x8b, - 0x65, 0xb8, 0x6d, 0xe4, 0x23, 0x02, 0x53, 0x57, 0x98, 0xd8, 0x75, - 0x1f, 0x73, 0x91, 0x2d, 0x94, 0x7e, 0x1b, 0xe3, 0xbb, 0x07, 0x9e, - 0x62, 0xc7, 0xc8, 0x27, 0x94, 0x32, 0xd7, 0x55, 0xfe, 0x04, 0x6d, - 0x63, 0x67, 0x58, 0x89, 0xb4, 0x30, 0xd1, 0x75, 0x0f, 0xe7, 0xba, - 0x1e, 0x22, 0x20, 0x31, 0x43, 0x20, 0x95, 0x21, 0x94, 0x9a, 0x63, - 0x4b, 0x6a, 0x8a, 0x89, 0x6d, 0x77, 0xf1, 0xd5, 0xc0, 0x73, 0xac, - 0xfd, 0x15, 0x57, 0x43, 0x19, 0x62, 0x4d, 0xbb, 0x58, 0x5a, 0x29, - 0xb0, 0xb2, 0x94, 0xe3, 0x42, 0xcb, 0x1e, 0x66, 0x6a, 0x1a, 0x48, - 0x2d, 0x40, 0xbd, 0xeb, 0xca, 0x2f, 0x2c, 0x15, 0x02, 0x14, 0x02, - 0x11, 0x8e, 0xbd, 0xf4, 0xe6, 0xbf, 0xc2, 0x4d, 0xa5, 0xea, 0xd0, - 0xb1, 0x77, 0x38, 0xf1, 0xc8, 0x2b, 0xf4, 0x5d, 0x3a, 0xc5, 0xbe, - 0xd0, 0x07, 0x44, 0xd5, 0xe3, 0xa5, 0x9e, 0x00, 0x89, 0x96, 0x2e, - 0xe6, 0x88, 0x50, 0x8f, 0x35, 0x75, 0xb0, 0xa8, 0x94, 0x94, 0x6a, - 0x02, 0x4c, 0x45, 0x3a, 0x60, 0x03, 0xda, 0x72, 0x19, 0x46, 0x06, - 0x8e, 0xf0, 0xcd, 0x81, 0x67, 0xd8, 0xf3, 0xd3, 0x67, 0x34, 0x2d, - 0x4c, 0x10, 0x1a, 0x38, 0xc4, 0x5a, 0x66, 0x86, 0x1b, 0x73, 0x39, - 0x36, 0x42, 0x75, 0xfc, 0x03, 0x3f, 0x65, 0x8d, 0x8a, 0xc6, 0x64, - 0x55, 0xda, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, - 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, - 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, - 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, - 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, - 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, - 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, - 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, - 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, - 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Colour type 6, bit depth 8 */ -PIX ( ctype_6_8, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x06, 0x00, 0x00, 0x00, 0xf3, 0x1b, 0xaf, 0xbc, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x06, - 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, - 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, - 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, - 0x9c, 0x18, 0x00, 0x00, 0x01, 0x23, 0x49, 0x44, 0x41, 0x54, 0x18, - 0xd3, 0x05, 0xc1, 0x4d, 0x4e, 0xc2, 0x40, 0x00, 0x80, 0xd1, 0xaf, - 0x7f, 0xc1, 0x22, 0x36, 0x2d, 0x02, 0x06, 0xa3, 0x84, 0x10, 0x13, - 0x17, 0x2e, 0xdc, 0x80, 0x51, 0x77, 0xee, 0xdc, 0x79, 0x0c, 0x8f, - 0xe3, 0x59, 0x3c, 0x84, 0x31, 0x21, 0x2e, 0x34, 0x1a, 0x95, 0x85, - 0xa8, 0x91, 0x88, 0x46, 0x60, 0x4a, 0x99, 0xd2, 0xd2, 0x4c, 0x3b, - 0xbe, 0x67, 0x5c, 0xdd, 0x14, 0xba, 0x39, 0x1e, 0x60, 0x69, 0x45, - 0x54, 0xf1, 0xd1, 0xb6, 0x43, 0xe1, 0xd7, 0xf1, 0xd4, 0x02, 0x2c, - 0x87, 0x34, 0x37, 0xd0, 0x2a, 0x21, 0x5c, 0x5a, 0xb8, 0x52, 0xb0, - 0x56, 0xd2, 0x18, 0xd5, 0x2a, 0x76, 0x96, 0x6b, 0x94, 0xca, 0xa8, - 0xfe, 0x0e, 0xe9, 0x3c, 0xf5, 0xc9, 0x4a, 0x2e, 0xef, 0xa7, 0x17, - 0x78, 0xe1, 0x37, 0x1b, 0x71, 0x88, 0xca, 0x73, 0x22, 0xbf, 0xce, - 0x96, 0x08, 0xf1, 0x46, 0x6f, 0x24, 0x41, 0x1d, 0x71, 0xd8, 0xc3, - 0xcc, 0x84, 0x64, 0x73, 0x70, 0x8f, 0x39, 0x9b, 0x30, 0xad, 0xed, - 0x12, 0x3b, 0xeb, 0xe8, 0x9f, 0x31, 0xaf, 0xed, 0x23, 0x36, 0x06, - 0x0f, 0x68, 0xb9, 0xe0, 0xb5, 0xdd, 0xc5, 0x1b, 0xbf, 0xb3, 0x72, - 0xca, 0x4c, 0x83, 0x1d, 0xbe, 0x82, 0x3d, 0x4c, 0xc2, 0x39, 0x66, - 0x24, 0xb1, 0xa2, 0x98, 0xf5, 0x68, 0xc6, 0xb4, 0xb2, 0xcd, 0x73, - 0xeb, 0x84, 0xfc, 0x4f, 0xa0, 0xa5, 0x44, 0xb8, 0x35, 0xd2, 0x95, - 0x62, 0x95, 0x66, 0x8c, 0xca, 0x0d, 0xe6, 0x46, 0x89, 0x28, 0x01, - 0x3b, 0x98, 0x7c, 0x92, 0x2a, 0x13, 0x65, 0x3a, 0xdc, 0x9e, 0x5d, - 0x22, 0xdc, 0x1a, 0x85, 0x08, 0x39, 0xb8, 0xbd, 0xa6, 0xbf, 0x7f, - 0x4e, 0xfd, 0x7b, 0x48, 0xd3, 0xba, 0xc3, 0x91, 0x0b, 0xd2, 0xaa, - 0x49, 0x58, 0x0e, 0x88, 0x71, 0xb0, 0x85, 0xeb, 0x93, 0xb4, 0xbb, - 0x68, 0xc3, 0x64, 0xe6, 0xf8, 0x50, 0x80, 0x97, 0x49, 0x06, 0xad, - 0x1e, 0x2f, 0x9d, 0x63, 0x1a, 0x1f, 0x8f, 0xb8, 0xc9, 0x14, 0xab, - 0x75, 0x40, 0x2e, 0xe7, 0x2c, 0xe3, 0x8c, 0xc2, 0xb2, 0xf9, 0x07, - 0xb2, 0x82, 0x8b, 0x8a, 0x51, 0x8a, 0xfe, 0x2f, 0x00, 0x00, 0x00, - 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, - 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, - 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, - 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, - 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, - 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, - 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, - 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, - 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Filter method 0 */ -PIX ( filter_0, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0x5f, 0x8e, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0xff, - 0x50, 0x4c, 0x54, 0x45, 0x8f, 0xc5, 0xfe, 0xa8, 0xac, 0xd7, 0xab, - 0xab, 0xd3, 0x9d, 0xb7, 0xe3, 0x9c, 0xbb, 0xe8, 0x9a, 0xcb, 0xfd, - 0xa8, 0xc7, 0xf0, 0xa8, 0xca, 0xf5, 0xa0, 0xc7, 0xf6, 0x9f, 0xc3, - 0xed, 0x8f, 0xb9, 0xf0, 0x98, 0xad, 0xdf, 0xa0, 0xb4, 0xde, 0xa1, - 0xc6, 0xf0, 0x89, 0xc2, 0xfd, 0xa4, 0xa8, 0xd1, 0xba, 0x91, 0xaf, - 0xcd, 0x65, 0x79, 0xc7, 0x6c, 0x82, 0xa6, 0xa6, 0xd1, 0xb6, 0x96, - 0xb7, 0xc3, 0x8b, 0xa7, 0xbf, 0x88, 0xa4, 0xb1, 0x98, 0xb9, 0xb6, - 0x87, 0xa9, 0xc4, 0x6b, 0x86, 0xbb, 0x7c, 0x9b, 0xaa, 0xab, 0xd0, - 0x83, 0xb1, 0xf1, 0xb7, 0x81, 0xa1, 0xbc, 0x7f, 0x9b, 0xba, 0x79, - 0x96, 0xbc, 0x71, 0x8d, 0xa5, 0x8e, 0xb8, 0x8e, 0xb6, 0xed, 0xd0, - 0x64, 0x78, 0xbe, 0x7c, 0x97, 0x89, 0xb8, 0xed, 0xc4, 0x6e, 0x88, - 0xbd, 0x70, 0x90, 0xa8, 0x8d, 0xb7, 0x8d, 0xbc, 0xf4, 0x83, 0xa1, - 0xe2, 0xb9, 0x73, 0x95, 0xbf, 0x71, 0x90, 0xc5, 0x6b, 0x84, 0xa9, - 0x7d, 0xa7, 0x7b, 0xac, 0xf1, 0x8b, 0xa1, 0xdc, 0xcf, 0x58, 0x6c, - 0xad, 0x85, 0xab, 0x81, 0xb1, 0xe9, 0xbd, 0x66, 0x82, 0xa1, 0x7a, - 0xa6, 0x99, 0x8e, 0xbe, 0x7f, 0xb3, 0xf4, 0x94, 0x8d, 0xc3, 0xb1, - 0x6f, 0x97, 0xb5, 0x71, 0x95, 0x86, 0xac, 0xeb, 0x75, 0xb5, 0xff, - 0x73, 0xa4, 0xef, 0xb6, 0x68, 0x8d, 0x99, 0x7f, 0xb4, 0xae, 0x6b, - 0x92, 0x9a, 0x88, 0xb5, 0xc2, 0x5a, 0x75, 0x99, 0x78, 0xa8, 0x89, - 0x98, 0xcf, 0x74, 0xb3, 0xf9, 0x83, 0x96, 0xd3, 0x8b, 0x8f, 0xcb, - 0x8a, 0x90, 0xcd, 0x74, 0xb1, 0xfb, 0x74, 0xb3, 0xff, 0x81, 0x9e, - 0xe3, 0x8f, 0x86, 0xc2, 0x66, 0xa8, 0xfa, 0x7c, 0x88, 0xcd, 0x85, - 0x7f, 0xba, 0x9d, 0x78, 0xa0, 0x96, 0x6c, 0x99, 0x7f, 0x8d, 0xc9, - 0x72, 0xb6, 0xfd, 0xff, 0xff, 0xff, 0xdb, 0x2a, 0x9f, 0xad, 0x00, - 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x54, 0xe4, 0x03, 0x88, - 0xa5, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x62, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, - 0x60, 0x60, 0x64, 0x62, 0x66, 0x61, 0x65, 0x63, 0xe7, 0xe0, 0xe4, - 0xe2, 0xe6, 0xe1, 0x65, 0xe0, 0xe3, 0x17, 0x10, 0x14, 0x12, 0x16, - 0x11, 0x15, 0x13, 0x97, 0x90, 0x94, 0x92, 0x66, 0x90, 0x91, 0x95, - 0x93, 0x57, 0x50, 0x54, 0x52, 0x56, 0x51, 0x55, 0x53, 0xd7, 0xd0, - 0x64, 0xd0, 0xd2, 0xd6, 0xd1, 0xd5, 0xd3, 0x37, 0x30, 0x34, 0x32, - 0x36, 0x31, 0x35, 0x33, 0x67, 0xb0, 0xb0, 0xb4, 0xb2, 0xb6, 0xb1, - 0xb5, 0xb3, 0x77, 0x70, 0x74, 0x72, 0x76, 0x71, 0x65, 0x70, 0x73, - 0xf7, 0xf0, 0xf4, 0xf2, 0xf6, 0xf1, 0xf5, 0xf3, 0x0f, 0x08, 0x0c, - 0x0a, 0x06, 0x00, 0x96, 0xe0, 0x0d, 0x9f, 0x37, 0x73, 0x30, 0xa4, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, - 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, - 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, - 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Filter method 1 */ -PIX ( filter_1, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0x5f, 0x8e, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0xff, - 0x50, 0x4c, 0x54, 0x45, 0x8f, 0xc5, 0xfe, 0xa8, 0xac, 0xd7, 0xab, - 0xab, 0xd3, 0x9d, 0xb7, 0xe3, 0x9c, 0xbb, 0xe8, 0x9a, 0xcb, 0xfd, - 0xa8, 0xc7, 0xf0, 0xa8, 0xca, 0xf5, 0xa0, 0xc7, 0xf6, 0x9f, 0xc3, - 0xed, 0x8f, 0xb9, 0xf0, 0x98, 0xad, 0xdf, 0xa0, 0xb4, 0xde, 0xa1, - 0xc6, 0xf0, 0x89, 0xc2, 0xfd, 0xa4, 0xa8, 0xd1, 0xba, 0x91, 0xaf, - 0xcd, 0x65, 0x79, 0xc7, 0x6c, 0x82, 0xa6, 0xa6, 0xd1, 0xb6, 0x96, - 0xb7, 0xc3, 0x8b, 0xa7, 0xbf, 0x88, 0xa4, 0xb1, 0x98, 0xb9, 0xb6, - 0x87, 0xa9, 0xc4, 0x6b, 0x86, 0xbb, 0x7c, 0x9b, 0xaa, 0xab, 0xd0, - 0x83, 0xb1, 0xf1, 0xb7, 0x81, 0xa1, 0xbc, 0x7f, 0x9b, 0xba, 0x79, - 0x96, 0xbc, 0x71, 0x8d, 0xa5, 0x8e, 0xb8, 0x8e, 0xb6, 0xed, 0xd0, - 0x64, 0x78, 0xbe, 0x7c, 0x97, 0x89, 0xb8, 0xed, 0xc4, 0x6e, 0x88, - 0xbd, 0x70, 0x90, 0xa8, 0x8d, 0xb7, 0x8d, 0xbc, 0xf4, 0x83, 0xa1, - 0xe2, 0xb9, 0x73, 0x95, 0xbf, 0x71, 0x90, 0xc5, 0x6b, 0x84, 0xa9, - 0x7d, 0xa7, 0x7b, 0xac, 0xf1, 0x8b, 0xa1, 0xdc, 0xcf, 0x58, 0x6c, - 0xad, 0x85, 0xab, 0x81, 0xb1, 0xe9, 0xbd, 0x66, 0x82, 0xa1, 0x7a, - 0xa6, 0x99, 0x8e, 0xbe, 0x7f, 0xb3, 0xf4, 0x94, 0x8d, 0xc3, 0xb1, - 0x6f, 0x97, 0xb5, 0x71, 0x95, 0x86, 0xac, 0xeb, 0x75, 0xb5, 0xff, - 0x73, 0xa4, 0xef, 0xb6, 0x68, 0x8d, 0x99, 0x7f, 0xb4, 0xae, 0x6b, - 0x92, 0x9a, 0x88, 0xb5, 0xc2, 0x5a, 0x75, 0x99, 0x78, 0xa8, 0x89, - 0x98, 0xcf, 0x74, 0xb3, 0xf9, 0x83, 0x96, 0xd3, 0x8b, 0x8f, 0xcb, - 0x8a, 0x90, 0xcd, 0x74, 0xb1, 0xfb, 0x74, 0xb3, 0xff, 0x81, 0x9e, - 0xe3, 0x8f, 0x86, 0xc2, 0x66, 0xa8, 0xfa, 0x7c, 0x88, 0xcd, 0x85, - 0x7f, 0xba, 0x9d, 0x78, 0xa0, 0x96, 0x6c, 0x99, 0x7f, 0x8d, 0xc9, - 0x72, 0xb6, 0xfd, 0xff, 0xff, 0xff, 0xdb, 0x2a, 0x9f, 0xad, 0x00, - 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x54, 0xe4, 0x03, 0x88, - 0xa5, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x1b, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, - 0x64, 0x60, 0x44, 0x01, 0x7c, 0xa8, 0x5c, 0x19, 0x54, 0xae, 0x16, - 0x2a, 0xd7, 0x02, 0x95, 0xeb, 0x86, 0xc2, 0x03, 0x00, 0x2b, 0x08, - 0x01, 0x27, 0x21, 0x1c, 0x62, 0x0d, 0x00, 0x00, 0x00, 0x25, 0x74, - 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, - 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, - 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, - 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Filter method 2 */ -PIX ( filter_2, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0x5f, 0x8e, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0xff, - 0x50, 0x4c, 0x54, 0x45, 0x8f, 0xc5, 0xfe, 0xa8, 0xac, 0xd7, 0xab, - 0xab, 0xd3, 0x9d, 0xb7, 0xe3, 0x9c, 0xbb, 0xe8, 0x9a, 0xcb, 0xfd, - 0xa8, 0xc7, 0xf0, 0xa8, 0xca, 0xf5, 0xa0, 0xc7, 0xf6, 0x9f, 0xc3, - 0xed, 0x8f, 0xb9, 0xf0, 0x98, 0xad, 0xdf, 0xa0, 0xb4, 0xde, 0xa1, - 0xc6, 0xf0, 0x89, 0xc2, 0xfd, 0xa4, 0xa8, 0xd1, 0xba, 0x91, 0xaf, - 0xcd, 0x65, 0x79, 0xc7, 0x6c, 0x82, 0xa6, 0xa6, 0xd1, 0xb6, 0x96, - 0xb7, 0xc3, 0x8b, 0xa7, 0xbf, 0x88, 0xa4, 0xb1, 0x98, 0xb9, 0xb6, - 0x87, 0xa9, 0xc4, 0x6b, 0x86, 0xbb, 0x7c, 0x9b, 0xaa, 0xab, 0xd0, - 0x83, 0xb1, 0xf1, 0xb7, 0x81, 0xa1, 0xbc, 0x7f, 0x9b, 0xba, 0x79, - 0x96, 0xbc, 0x71, 0x8d, 0xa5, 0x8e, 0xb8, 0x8e, 0xb6, 0xed, 0xd0, - 0x64, 0x78, 0xbe, 0x7c, 0x97, 0x89, 0xb8, 0xed, 0xc4, 0x6e, 0x88, - 0xbd, 0x70, 0x90, 0xa8, 0x8d, 0xb7, 0x8d, 0xbc, 0xf4, 0x83, 0xa1, - 0xe2, 0xb9, 0x73, 0x95, 0xbf, 0x71, 0x90, 0xc5, 0x6b, 0x84, 0xa9, - 0x7d, 0xa7, 0x7b, 0xac, 0xf1, 0x8b, 0xa1, 0xdc, 0xcf, 0x58, 0x6c, - 0xad, 0x85, 0xab, 0x81, 0xb1, 0xe9, 0xbd, 0x66, 0x82, 0xa1, 0x7a, - 0xa6, 0x99, 0x8e, 0xbe, 0x7f, 0xb3, 0xf4, 0x94, 0x8d, 0xc3, 0xb1, - 0x6f, 0x97, 0xb5, 0x71, 0x95, 0x86, 0xac, 0xeb, 0x75, 0xb5, 0xff, - 0x73, 0xa4, 0xef, 0xb6, 0x68, 0x8d, 0x99, 0x7f, 0xb4, 0xae, 0x6b, - 0x92, 0x9a, 0x88, 0xb5, 0xc2, 0x5a, 0x75, 0x99, 0x78, 0xa8, 0x89, - 0x98, 0xcf, 0x74, 0xb3, 0xf9, 0x83, 0x96, 0xd3, 0x8b, 0x8f, 0xcb, - 0x8a, 0x90, 0xcd, 0x74, 0xb1, 0xfb, 0x74, 0xb3, 0xff, 0x81, 0x9e, - 0xe3, 0x8f, 0x86, 0xc2, 0x66, 0xa8, 0xfa, 0x7c, 0x88, 0xcd, 0x85, - 0x7f, 0xba, 0x9d, 0x78, 0xa0, 0x96, 0x6c, 0x99, 0x7f, 0x8d, 0xc9, - 0x72, 0xb6, 0xfd, 0xff, 0xff, 0xff, 0xdb, 0x2a, 0x9f, 0xad, 0x00, - 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x54, 0xe4, 0x03, 0x88, - 0xa5, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x1c, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, - 0x62, 0x60, 0x64, 0x62, 0x66, 0x61, 0x65, 0x63, 0xe7, 0xe0, 0xe4, - 0xe2, 0xe6, 0xe1, 0x65, 0xe2, 0x43, 0x01, 0x94, 0x70, 0x01, 0xae, - 0xce, 0x04, 0x3c, 0x32, 0x9e, 0x82, 0x4f, 0x00, 0x00, 0x00, 0x25, - 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, - 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, - 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, - 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, - 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, - 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, - 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, - 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, - 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Filter method 3 */ -PIX ( filter_3, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0x5f, 0x8e, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0xff, - 0x50, 0x4c, 0x54, 0x45, 0x8f, 0xc5, 0xfe, 0xa8, 0xac, 0xd7, 0xab, - 0xab, 0xd3, 0x9d, 0xb7, 0xe3, 0x9c, 0xbb, 0xe8, 0x9a, 0xcb, 0xfd, - 0xa8, 0xc7, 0xf0, 0xa8, 0xca, 0xf5, 0xa0, 0xc7, 0xf6, 0x9f, 0xc3, - 0xed, 0x8f, 0xb9, 0xf0, 0x98, 0xad, 0xdf, 0xa0, 0xb4, 0xde, 0xa1, - 0xc6, 0xf0, 0x89, 0xc2, 0xfd, 0xa4, 0xa8, 0xd1, 0xba, 0x91, 0xaf, - 0xcd, 0x65, 0x79, 0xc7, 0x6c, 0x82, 0xa6, 0xa6, 0xd1, 0xb6, 0x96, - 0xb7, 0xc3, 0x8b, 0xa7, 0xbf, 0x88, 0xa4, 0xb1, 0x98, 0xb9, 0xb6, - 0x87, 0xa9, 0xc4, 0x6b, 0x86, 0xbb, 0x7c, 0x9b, 0xaa, 0xab, 0xd0, - 0x83, 0xb1, 0xf1, 0xb7, 0x81, 0xa1, 0xbc, 0x7f, 0x9b, 0xba, 0x79, - 0x96, 0xbc, 0x71, 0x8d, 0xa5, 0x8e, 0xb8, 0x8e, 0xb6, 0xed, 0xd0, - 0x64, 0x78, 0xbe, 0x7c, 0x97, 0x89, 0xb8, 0xed, 0xc4, 0x6e, 0x88, - 0xbd, 0x70, 0x90, 0xa8, 0x8d, 0xb7, 0x8d, 0xbc, 0xf4, 0x83, 0xa1, - 0xe2, 0xb9, 0x73, 0x95, 0xbf, 0x71, 0x90, 0xc5, 0x6b, 0x84, 0xa9, - 0x7d, 0xa7, 0x7b, 0xac, 0xf1, 0x8b, 0xa1, 0xdc, 0xcf, 0x58, 0x6c, - 0xad, 0x85, 0xab, 0x81, 0xb1, 0xe9, 0xbd, 0x66, 0x82, 0xa1, 0x7a, - 0xa6, 0x99, 0x8e, 0xbe, 0x7f, 0xb3, 0xf4, 0x94, 0x8d, 0xc3, 0xb1, - 0x6f, 0x97, 0xb5, 0x71, 0x95, 0x86, 0xac, 0xeb, 0x75, 0xb5, 0xff, - 0x73, 0xa4, 0xef, 0xb6, 0x68, 0x8d, 0x99, 0x7f, 0xb4, 0xae, 0x6b, - 0x92, 0x9a, 0x88, 0xb5, 0xc2, 0x5a, 0x75, 0x99, 0x78, 0xa8, 0x89, - 0x98, 0xcf, 0x74, 0xb3, 0xf9, 0x83, 0x96, 0xd3, 0x8b, 0x8f, 0xcb, - 0x8a, 0x90, 0xcd, 0x74, 0xb1, 0xfb, 0x74, 0xb3, 0xff, 0x81, 0x9e, - 0xe3, 0x8f, 0x86, 0xc2, 0x66, 0xa8, 0xfa, 0x7c, 0x88, 0xcd, 0x85, - 0x7f, 0xba, 0x9d, 0x78, 0xa0, 0x96, 0x6c, 0x99, 0x7f, 0x8d, 0xc9, - 0x72, 0xb6, 0xfd, 0xff, 0xff, 0xff, 0xdb, 0x2a, 0x9f, 0xad, 0x00, - 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x54, 0xe4, 0x03, 0x88, - 0xa5, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x28, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, - 0x66, 0x60, 0x64, 0x62, 0x62, 0x66, 0x66, 0x61, 0x61, 0x65, 0x65, - 0x63, 0x63, 0x67, 0x67, 0xe6, 0xe3, 0x40, 0x06, 0xcc, 0xa2, 0xa8, - 0x5c, 0x19, 0x54, 0xae, 0x32, 0x2a, 0x57, 0x0b, 0x85, 0x0b, 0x00, - 0x74, 0x6c, 0x02, 0xde, 0x3a, 0xf5, 0xbf, 0x99, 0x00, 0x00, 0x00, - 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, - 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, - 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, - 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, - 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, - 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, - 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, - 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, - 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Filter method 4 */ -PIX ( filter_4, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0x5f, 0x8e, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0xff, - 0x50, 0x4c, 0x54, 0x45, 0x8f, 0xc5, 0xfe, 0xa8, 0xac, 0xd7, 0xab, - 0xab, 0xd3, 0x9d, 0xb7, 0xe3, 0x9c, 0xbb, 0xe8, 0x9a, 0xcb, 0xfd, - 0xa8, 0xc7, 0xf0, 0xa8, 0xca, 0xf5, 0xa0, 0xc7, 0xf6, 0x9f, 0xc3, - 0xed, 0x8f, 0xb9, 0xf0, 0x98, 0xad, 0xdf, 0xa0, 0xb4, 0xde, 0xa1, - 0xc6, 0xf0, 0x89, 0xc2, 0xfd, 0xa4, 0xa8, 0xd1, 0xba, 0x91, 0xaf, - 0xcd, 0x65, 0x79, 0xc7, 0x6c, 0x82, 0xa6, 0xa6, 0xd1, 0xb6, 0x96, - 0xb7, 0xc3, 0x8b, 0xa7, 0xbf, 0x88, 0xa4, 0xb1, 0x98, 0xb9, 0xb6, - 0x87, 0xa9, 0xc4, 0x6b, 0x86, 0xbb, 0x7c, 0x9b, 0xaa, 0xab, 0xd0, - 0x83, 0xb1, 0xf1, 0xb7, 0x81, 0xa1, 0xbc, 0x7f, 0x9b, 0xba, 0x79, - 0x96, 0xbc, 0x71, 0x8d, 0xa5, 0x8e, 0xb8, 0x8e, 0xb6, 0xed, 0xd0, - 0x64, 0x78, 0xbe, 0x7c, 0x97, 0x89, 0xb8, 0xed, 0xc4, 0x6e, 0x88, - 0xbd, 0x70, 0x90, 0xa8, 0x8d, 0xb7, 0x8d, 0xbc, 0xf4, 0x83, 0xa1, - 0xe2, 0xb9, 0x73, 0x95, 0xbf, 0x71, 0x90, 0xc5, 0x6b, 0x84, 0xa9, - 0x7d, 0xa7, 0x7b, 0xac, 0xf1, 0x8b, 0xa1, 0xdc, 0xcf, 0x58, 0x6c, - 0xad, 0x85, 0xab, 0x81, 0xb1, 0xe9, 0xbd, 0x66, 0x82, 0xa1, 0x7a, - 0xa6, 0x99, 0x8e, 0xbe, 0x7f, 0xb3, 0xf4, 0x94, 0x8d, 0xc3, 0xb1, - 0x6f, 0x97, 0xb5, 0x71, 0x95, 0x86, 0xac, 0xeb, 0x75, 0xb5, 0xff, - 0x73, 0xa4, 0xef, 0xb6, 0x68, 0x8d, 0x99, 0x7f, 0xb4, 0xae, 0x6b, - 0x92, 0x9a, 0x88, 0xb5, 0xc2, 0x5a, 0x75, 0x99, 0x78, 0xa8, 0x89, - 0x98, 0xcf, 0x74, 0xb3, 0xf9, 0x83, 0x96, 0xd3, 0x8b, 0x8f, 0xcb, - 0x8a, 0x90, 0xcd, 0x74, 0xb1, 0xfb, 0x74, 0xb3, 0xff, 0x81, 0x9e, - 0xe3, 0x8f, 0x86, 0xc2, 0x66, 0xa8, 0xfa, 0x7c, 0x88, 0xcd, 0x85, - 0x7f, 0xba, 0x9d, 0x78, 0xa0, 0x96, 0x6c, 0x99, 0x7f, 0x8d, 0xc9, - 0x72, 0xb6, 0xfd, 0xff, 0xff, 0xff, 0xdb, 0x2a, 0x9f, 0xad, 0x00, - 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x54, 0xe4, 0x03, 0x88, - 0xa5, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x11, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, - 0x61, 0x60, 0x44, 0x06, 0x2c, 0x7c, 0x54, 0xe3, 0x02, 0x00, 0x1e, - 0xdd, 0x00, 0xad, 0x19, 0xa1, 0xfb, 0x47, 0x00, 0x00, 0x00, 0x25, - 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, - 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, - 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, - 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, - 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, - 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, - 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, - 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, - 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Interlaced */ -PIX ( interlaced, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x01, 0xb3, 0xc2, 0x6f, 0x18, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0xff, - 0x50, 0x4c, 0x54, 0x45, 0x8f, 0xc5, 0xfe, 0xa8, 0xac, 0xd7, 0xab, - 0xab, 0xd3, 0x9d, 0xb7, 0xe3, 0x9c, 0xbb, 0xe8, 0x9a, 0xcb, 0xfd, - 0xa8, 0xc7, 0xf0, 0xa8, 0xca, 0xf5, 0xa0, 0xc7, 0xf6, 0x9f, 0xc3, - 0xed, 0x8f, 0xb9, 0xf0, 0x98, 0xad, 0xdf, 0xa0, 0xb4, 0xde, 0xa1, - 0xc6, 0xf0, 0x89, 0xc2, 0xfd, 0xa4, 0xa8, 0xd1, 0xba, 0x91, 0xaf, - 0xcd, 0x65, 0x79, 0xc7, 0x6c, 0x82, 0xa6, 0xa6, 0xd1, 0xb6, 0x96, - 0xb7, 0xc3, 0x8b, 0xa7, 0xbf, 0x88, 0xa4, 0xb1, 0x98, 0xb9, 0xb6, - 0x87, 0xa9, 0xc4, 0x6b, 0x86, 0xbb, 0x7c, 0x9b, 0xaa, 0xab, 0xd0, - 0x83, 0xb1, 0xf1, 0xb7, 0x81, 0xa1, 0xbc, 0x7f, 0x9b, 0xba, 0x79, - 0x96, 0xbc, 0x71, 0x8d, 0xa5, 0x8e, 0xb8, 0x8e, 0xb6, 0xed, 0xd0, - 0x64, 0x78, 0xbe, 0x7c, 0x97, 0x89, 0xb8, 0xed, 0xc4, 0x6e, 0x88, - 0xbd, 0x70, 0x90, 0xa8, 0x8d, 0xb7, 0x8d, 0xbc, 0xf4, 0x83, 0xa1, - 0xe2, 0xb9, 0x73, 0x95, 0xbf, 0x71, 0x90, 0xc5, 0x6b, 0x84, 0xa9, - 0x7d, 0xa7, 0x7b, 0xac, 0xf1, 0x8b, 0xa1, 0xdc, 0xcf, 0x58, 0x6c, - 0xad, 0x85, 0xab, 0x81, 0xb1, 0xe9, 0xbd, 0x66, 0x82, 0xa1, 0x7a, - 0xa6, 0x99, 0x8e, 0xbe, 0x7f, 0xb3, 0xf4, 0x94, 0x8d, 0xc3, 0xb1, - 0x6f, 0x97, 0xb5, 0x71, 0x95, 0x86, 0xac, 0xeb, 0x75, 0xb5, 0xff, - 0x73, 0xa4, 0xef, 0xb6, 0x68, 0x8d, 0x99, 0x7f, 0xb4, 0xae, 0x6b, - 0x92, 0x9a, 0x88, 0xb5, 0xc2, 0x5a, 0x75, 0x99, 0x78, 0xa8, 0x89, - 0x98, 0xcf, 0x74, 0xb3, 0xf9, 0x83, 0x96, 0xd3, 0x8b, 0x8f, 0xcb, - 0x8a, 0x90, 0xcd, 0x74, 0xb1, 0xfb, 0x74, 0xb3, 0xff, 0x81, 0x9e, - 0xe3, 0x8f, 0x86, 0xc2, 0x66, 0xa8, 0xfa, 0x7c, 0x88, 0xcd, 0x85, - 0x7f, 0xba, 0x9d, 0x78, 0xa0, 0x96, 0x6c, 0x99, 0x7f, 0x8d, 0xc9, - 0x72, 0xb6, 0xfd, 0xff, 0xff, 0xff, 0xdb, 0x2a, 0x9f, 0xad, 0x00, - 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x54, 0xe4, 0x03, 0x88, - 0xa5, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x68, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, - 0x60, 0xe0, 0x60, 0x60, 0xe1, 0x61, 0xb0, 0xb0, 0x71, 0x70, 0x61, - 0x60, 0x62, 0xe3, 0x62, 0xb0, 0xb2, 0x73, 0x62, 0x90, 0x91, 0x53, - 0x50, 0x52, 0x51, 0xd3, 0x60, 0x60, 0x64, 0x66, 0x65, 0xe7, 0xe4, - 0xe6, 0x65, 0x90, 0x95, 0x57, 0x54, 0x56, 0x55, 0xd7, 0x64, 0xb0, - 0xb4, 0xb6, 0xb5, 0x77, 0x74, 0x76, 0x65, 0xe0, 0xe3, 0x17, 0x10, - 0x14, 0x12, 0x16, 0x11, 0x15, 0x13, 0x97, 0x90, 0x94, 0x92, 0x66, - 0xd0, 0xd2, 0xd6, 0xd1, 0xd5, 0xd3, 0x37, 0x30, 0x34, 0x32, 0x36, - 0x31, 0x35, 0x33, 0x67, 0x70, 0x73, 0xf7, 0xf0, 0xf4, 0xf2, 0xf6, - 0xf1, 0xf5, 0xf3, 0x0f, 0x08, 0x0c, 0x0a, 0x06, 0x00, 0xf9, 0xc2, - 0x0d, 0x9f, 0x36, 0xdc, 0x4b, 0x87, 0x00, 0x00, 0x00, 0x25, 0x74, - 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, - 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, - 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, - 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Interlaced (height 1) */ -PIX ( interlaced_h1, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x01, 0x04, 0x03, 0x00, 0x00, 0x01, 0x66, 0x29, 0xc2, 0xe6, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x1b, - 0x50, 0x4c, 0x54, 0x45, 0x9a, 0x9a, 0xcd, 0xae, 0x88, 0xae, 0x9f, - 0x94, 0xc3, 0x9a, 0x9d, 0xcf, 0xab, 0x8a, 0xb3, 0xa2, 0x91, 0xbb, - 0xa9, 0x7f, 0xa6, 0x93, 0xa4, 0xd7, 0xff, 0xff, 0xff, 0x01, 0x68, - 0x32, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x08, - 0x86, 0xde, 0x95, 0x7a, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, - 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, - 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x11, 0x49, 0x44, 0x41, 0x54, - 0x08, 0xd7, 0x63, 0x60, 0x60, 0x70, 0x60, 0x50, 0x63, 0x10, 0x0e, - 0x07, 0x00, 0x02, 0x9e, 0x00, 0xd1, 0x1a, 0x21, 0xdf, 0x5d, 0x00, - 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, - 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, - 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, - 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, - 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, - 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, - 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, - 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, - 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 8, 1, - DATA ( 0x9a9acd, 0xae88ae, 0x9f94c3, 0x9a9dcf, 0xab8ab3, 0xa291bb, - 0xa97fa6, 0x93a4d7, ) ); - -/* Interlaced (height 2) */ -PIX ( interlaced_h2, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x02, 0x08, 0x03, 0x00, 0x00, 0x01, 0x25, 0x4d, 0x5d, 0x49, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x33, - 0x50, 0x4c, 0x54, 0x45, 0x9b, 0xa9, 0xda, 0xb7, 0x8b, 0xab, 0xb1, - 0x8b, 0xae, 0xa4, 0xa6, 0xd2, 0xb7, 0x94, 0xb5, 0xa7, 0x9e, 0xc5, - 0xb0, 0x86, 0xab, 0xa2, 0xa5, 0xd0, 0x99, 0x8b, 0xbe, 0xa7, 0x82, - 0xae, 0x8e, 0x9b, 0xd5, 0x90, 0x92, 0xcb, 0xa0, 0x7e, 0xad, 0x9e, - 0x82, 0xae, 0xa4, 0x76, 0x9f, 0x85, 0xa2, 0xde, 0xff, 0xff, 0xff, - 0xf3, 0x35, 0x13, 0x79, 0x00, 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, - 0x44, 0x10, 0x95, 0xb2, 0x0d, 0x2c, 0x00, 0x00, 0x00, 0x09, 0x70, - 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, - 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x1d, 0x49, 0x44, - 0x41, 0x54, 0x08, 0xd7, 0x63, 0x60, 0x60, 0x60, 0x61, 0x60, 0x62, - 0x63, 0x60, 0x64, 0x66, 0x65, 0x67, 0xe0, 0xe0, 0xe4, 0xe2, 0xe6, - 0xe1, 0xe5, 0xe3, 0x07, 0x00, 0x02, 0xf9, 0x00, 0x79, 0x11, 0xe8, - 0xb8, 0x97, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, - 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, - 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, - 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, - 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, - 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, - 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, - 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, - 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, - 0x60, 0x82 ), - 8, 2, - DATA ( 0x9ba9da, 0xb78bab, 0xb18bae, 0xa4a6d2, 0xb794b5, 0xa79ec5, - 0xb086ab, 0xa2a5d0, 0x998bbe, 0xa782ae, 0x8e9bd5, 0x9092cb, - 0xa07ead, 0x9e82ae, 0xa4769f, 0x85a2de, ) ); - -/* Interlaced (height 3) */ -PIX ( interlaced_h3, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x03, 0x08, 0x03, 0x00, 0x00, 0x01, 0xee, 0x11, 0x8e, 0xec, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x4b, - 0x50, 0x4c, 0x54, 0x45, 0x99, 0xb4, 0xe6, 0xb3, 0x97, 0xb9, 0xb1, - 0x95, 0xb7, 0xa9, 0xaf, 0xd7, 0xb4, 0xa4, 0xc7, 0xa8, 0xa6, 0xce, - 0xad, 0x90, 0xb7, 0xa8, 0xa8, 0xcf, 0x9d, 0x94, 0xc5, 0xbc, 0x78, - 0x97, 0xac, 0x81, 0xa8, 0x9a, 0x98, 0xca, 0xb9, 0x79, 0x99, 0xa5, - 0x8f, 0xb6, 0xb1, 0x76, 0x9a, 0x94, 0xa1, 0xd4, 0x96, 0x87, 0xbc, - 0x9a, 0x8a, 0xbe, 0x7d, 0xaa, 0xef, 0x8c, 0x8f, 0xcc, 0x91, 0x83, - 0xbc, 0x9b, 0x7c, 0xaa, 0x9c, 0x76, 0xa2, 0x7d, 0xa3, 0xe2, 0xff, - 0xff, 0xff, 0x53, 0xa1, 0xdb, 0xb9, 0x00, 0x00, 0x00, 0x01, 0x62, - 0x4b, 0x47, 0x44, 0x18, 0x9b, 0x69, 0x85, 0x1e, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x26, - 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x05, 0xc1, 0x85, 0x01, 0x00, - 0x20, 0x00, 0xc0, 0xa0, 0xd9, 0xdd, 0xf5, 0xff, 0xa7, 0x02, 0xa0, - 0x91, 0x96, 0x3e, 0xf7, 0x45, 0x28, 0xe3, 0x18, 0xeb, 0x3c, 0x7c, - 0x88, 0x29, 0x97, 0xda, 0x3e, 0x0d, 0xb1, 0x01, 0x15, 0x29, 0x54, - 0xbc, 0x10, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, - 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, - 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, - 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, - 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, 0x25, - 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, - 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, - 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, 0xde, - 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, - 0x60, 0x82 ), - 8, 3, - DATA ( 0x99b4e6, 0xb397b9, 0xb195b7, 0xa9afd7, 0xb4a4c7, 0xa8a6ce, - 0xad90b7, 0xa8a8cf, 0x9d94c5, 0xbc7897, 0xac81a8, 0x9a98ca, - 0xb97999, 0xa58fb6, 0xb1769a, 0x94a1d4, 0x9687bc, 0x9a8abe, - 0x7daaef, 0x8c8fcc, 0x9183bc, 0x9b7caa, 0x9c76a2, 0x7da3e2 ) ); - -/* Interlaced (height 4) */ -PIX ( interlaced_h4, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x04, 0x08, 0x03, 0x00, 0x00, 0x01, 0xf3, 0x14, 0xbe, 0x54, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x63, - 0x50, 0x4c, 0x54, 0x45, 0x99, 0xb8, 0xea, 0xaf, 0xa0, 0xc4, 0xab, - 0xa1, 0xc7, 0xa8, 0xb7, 0xe0, 0xaf, 0xb1, 0xd7, 0xa5, 0xae, 0xd7, - 0xa6, 0x9b, 0xc5, 0xa8, 0xad, 0xd3, 0x9a, 0xa3, 0xd4, 0xbd, 0x7e, - 0x9b, 0xbb, 0x77, 0x94, 0xa4, 0x9b, 0xc6, 0xbe, 0x80, 0x9d, 0xaa, - 0x93, 0xb9, 0xba, 0x76, 0x96, 0xa2, 0x9e, 0xca, 0x9f, 0x87, 0xb7, - 0xb7, 0x76, 0x99, 0x99, 0x91, 0xc5, 0x91, 0x94, 0xcc, 0xb1, 0x76, - 0x9a, 0xa2, 0x88, 0xb1, 0xa7, 0x77, 0x9f, 0x87, 0xa3, 0xde, 0x92, - 0x8a, 0xc1, 0x91, 0x91, 0xca, 0x77, 0xb0, 0xf8, 0x8a, 0x8f, 0xce, - 0x87, 0x89, 0xc8, 0x97, 0x7a, 0xaa, 0x99, 0x76, 0xa3, 0x7b, 0xa2, - 0xe3, 0xff, 0xff, 0xff, 0xfa, 0x09, 0xb4, 0x8e, 0x00, 0x00, 0x00, - 0x01, 0x62, 0x4b, 0x47, 0x44, 0x20, 0xb3, 0x6b, 0x3d, 0x80, 0x00, - 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, - 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, - 0x00, 0x30, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, 0x60, 0x60, - 0x60, 0x61, 0x60, 0x62, 0x63, 0x10, 0x10, 0x12, 0x11, 0x63, 0x60, - 0x64, 0x66, 0x65, 0x67, 0x10, 0x14, 0x16, 0x15, 0x67, 0xe0, 0xe0, - 0xe4, 0xe2, 0xe6, 0xe1, 0xe5, 0xe3, 0x67, 0x90, 0x90, 0x94, 0x92, - 0x96, 0x91, 0x95, 0x93, 0x07, 0x00, 0x1b, 0x22, 0x01, 0xf1, 0x69, - 0x98, 0xfa, 0x95, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, - 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, - 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, - 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, 0x00, - 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, - 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, - 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, 0xe9, - 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, - 0x42, 0x60, 0x82 ), - 8, 4, - DATA ( 0x99b8ea, 0xafa0c4, 0xaba1c7, 0xa8b7e0, 0xafb1d7, 0xa5aed7, - 0xa69bc5, 0xa8add3, 0x9aa3d4, 0xbd7e9b, 0xbb7794, 0xa49bc6, - 0xbe809d, 0xaa93b9, 0xba7696, 0xa29eca, 0x9f87b7, 0xb77699, - 0x9991c5, 0x9194cc, 0xb1769a, 0xa288b1, 0xa7779f, 0x87a3de, - 0x928ac1, 0x9191ca, 0x77b0f8, 0x8a8fce, 0x8789c8, 0x977aaa, - 0x9976a3, 0x7ba2e3, ) ); - -/* Interlaced (width 1) */ -PIX ( interlaced_w1, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x08, 0x04, 0x03, 0x00, 0x00, 0x01, 0xbd, 0x33, 0xb8, 0xe4, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x1b, - 0x50, 0x4c, 0x54, 0x45, 0x9f, 0xbd, 0xeb, 0xae, 0xa0, 0xc5, 0xb4, - 0x8a, 0xac, 0xac, 0x8a, 0xb0, 0xa5, 0x87, 0xb2, 0x9d, 0x86, 0xb6, - 0x90, 0x8c, 0xc3, 0x82, 0x93, 0xd3, 0xff, 0xff, 0xff, 0xac, 0xaf, - 0x93, 0xf1, 0x00, 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x08, - 0x86, 0xde, 0x95, 0x7a, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, - 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, - 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x18, 0x49, 0x44, 0x41, 0x54, - 0x08, 0xd7, 0x63, 0x60, 0x60, 0x70, 0x60, 0x50, 0x60, 0x48, 0x60, - 0x10, 0x60, 0x30, 0x60, 0x08, 0x60, 0x28, 0x00, 0x00, 0x0a, 0xd0, - 0x01, 0xc1, 0x05, 0xa2, 0x99, 0xc6, 0x00, 0x00, 0x00, 0x25, 0x74, - 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, - 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, - 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, - 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, - 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, - 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, - 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, - 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, - 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 1, 8, - DATA ( 0x9fbdeb, 0xaea0c5, 0xb48aac, 0xac8ab0, 0xa587b2, 0x9d86b6, - 0x908cc3, 0x8293d3, ) ); - -/* Interlaced (width 2) */ -PIX ( interlaced_w2, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x08, 0x08, 0x03, 0x00, 0x00, 0x01, 0x93, 0xf4, 0xee, 0xe6, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x33, - 0x50, 0x4c, 0x54, 0x45, 0xa0, 0xbc, 0xe9, 0x9e, 0xbe, 0xec, 0xad, - 0xa1, 0xc7, 0xaf, 0x9e, 0xc2, 0xb4, 0x8b, 0xad, 0xb6, 0x88, 0xa9, - 0xae, 0x87, 0xac, 0xac, 0x8b, 0xb1, 0xa9, 0x83, 0xad, 0xa1, 0x8a, - 0xb6, 0x9e, 0x87, 0xb8, 0x9d, 0x84, 0xb3, 0x8e, 0x92, 0xcc, 0x92, - 0x85, 0xba, 0x80, 0x9b, 0xde, 0x84, 0x8b, 0xc7, 0xff, 0xff, 0xff, - 0xa3, 0x2a, 0xf5, 0x35, 0x00, 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, - 0x44, 0x10, 0x95, 0xb2, 0x0d, 0x2c, 0x00, 0x00, 0x00, 0x09, 0x70, - 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, - 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x20, 0x49, 0x44, - 0x41, 0x54, 0x08, 0xd7, 0x05, 0xc1, 0x05, 0x01, 0x00, 0x20, 0x00, - 0x00, 0x20, 0xec, 0xd6, 0xff, 0x6f, 0x05, 0x74, 0xd9, 0x16, 0x14, - 0xc3, 0x11, 0x93, 0xda, 0xcc, 0xe5, 0xbe, 0x0f, 0x04, 0xf2, 0x00, - 0x79, 0x83, 0x54, 0x1a, 0x1e, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, - 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, - 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, - 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, - 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, - 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, - 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, - 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, - 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, - 0x44, 0xae, 0x42, 0x60, 0x82 ), - 2, 8, - DATA ( 0xa0bce9, 0x9ebeec, 0xada1c7, 0xaf9ec2, 0xb48bad, 0xb688a9, - 0xae87ac, 0xac8bb1, 0xa983ad, 0xa18ab6, 0x9e87b8, 0x9d84b3, - 0x8e92cc, 0x9285ba, 0x809bde, 0x848bc7, ) ); - -/* Interlaced (width 3) */ -PIX ( interlaced_w3, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x08, 0x08, 0x03, 0x00, 0x00, 0x01, 0x7c, 0x36, 0x85, 0xd8, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x4b, - 0x50, 0x4c, 0x54, 0x45, 0xa0, 0xb7, 0xe4, 0xa1, 0xc4, 0xf1, 0x9c, - 0xba, 0xe9, 0xab, 0xa0, 0xc7, 0xb1, 0xa1, 0xc5, 0xae, 0x9b, 0xc0, - 0xb1, 0x8d, 0xb0, 0xb8, 0x88, 0xa8, 0xb5, 0x87, 0xa9, 0xae, 0x86, - 0xab, 0xae, 0x88, 0xad, 0xaa, 0x8c, 0xb4, 0xac, 0x80, 0xa9, 0xa5, - 0x88, 0xb2, 0x9f, 0x8b, 0xb7, 0xa0, 0x88, 0xb8, 0x9e, 0x84, 0xb5, - 0x9c, 0x85, 0xb4, 0x8f, 0x94, 0xce, 0x8f, 0x8a, 0xc4, 0x93, 0x84, - 0xb6, 0x81, 0x9d, 0xdf, 0x7e, 0x95, 0xd8, 0x88, 0x86, 0xbe, 0xff, - 0xff, 0xff, 0xef, 0xfb, 0x85, 0x9c, 0x00, 0x00, 0x00, 0x01, 0x62, - 0x4b, 0x47, 0x44, 0x18, 0x9b, 0x69, 0x85, 0x1e, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, - 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x28, - 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x05, 0xc1, 0x85, 0x01, 0x00, - 0x20, 0x00, 0xc0, 0xa0, 0xd9, 0xdd, 0xf5, 0xff, 0xa7, 0x02, 0x90, - 0x91, 0x54, 0xac, 0x67, 0x6e, 0x04, 0x8e, 0xc2, 0x42, 0x69, 0x43, - 0x88, 0x89, 0xd6, 0x07, 0xe7, 0xbe, 0x0f, 0x0f, 0x68, 0x01, 0x15, - 0x06, 0x65, 0x37, 0x5a, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, - 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, - 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, - 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, 0x28, 0x00, 0x00, - 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x34, - 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, - 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xd3, - 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, - 0xae, 0x42, 0x60, 0x82 ), - 3, 8, - DATA ( 0xa0b7e4, 0xa1c4f1, 0x9cbae9, 0xaba0c7, 0xb1a1c5, 0xae9bc0, - 0xb18db0, 0xb888a8, 0xb587a9, 0xae86ab, 0xae88ad, 0xaa8cb4, - 0xac80a9, 0xa588b2, 0x9f8bb7, 0xa088b8, 0x9e84b5, 0x9c85b4, - 0x8f94ce, 0x8f8ac4, 0x9384b6, 0x819ddf, 0x7e95d8, 0x8886be ) ); - -/* Interlaced (width 4) */ -PIX ( interlaced_w4, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x08, 0x08, 0x03, 0x00, 0x00, 0x01, 0x9e, 0xea, 0x9e, 0xa1, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0x63, - 0x50, 0x4c, 0x54, 0x45, 0xa0, 0xb4, 0xe1, 0xa1, 0xc1, 0xee, 0x9f, - 0xc3, 0xf1, 0x9b, 0xb8, 0xe6, 0xa8, 0xa3, 0xcc, 0xb2, 0x9d, 0xc1, - 0xb0, 0xa2, 0xc6, 0xad, 0x99, 0xbe, 0xae, 0x92, 0xb7, 0xb9, 0x84, - 0xa4, 0xb8, 0x89, 0xa9, 0xb4, 0x87, 0xa9, 0xae, 0x87, 0xac, 0xae, - 0x86, 0xab, 0xaf, 0x88, 0xac, 0xa8, 0x8d, 0xb7, 0xaf, 0x7e, 0xa5, - 0xa4, 0x88, 0xb5, 0xa8, 0x85, 0xad, 0x9c, 0x8d, 0xbc, 0xa6, 0x81, - 0xae, 0x94, 0x90, 0xc7, 0xa8, 0x79, 0xa2, 0x96, 0x8b, 0xbd, 0x94, - 0x8e, 0xc4, 0x85, 0x9b, 0xdb, 0x99, 0x7b, 0xac, 0x8f, 0x89, 0xbe, - 0x84, 0x99, 0xd9, 0x7c, 0xa1, 0xe8, 0x83, 0x87, 0xc5, 0x88, 0x89, - 0xbf, 0xff, 0xff, 0xff, 0xec, 0xf4, 0xb8, 0xe8, 0x00, 0x00, 0x00, - 0x01, 0x62, 0x4b, 0x47, 0x44, 0x20, 0xb3, 0x6b, 0x3d, 0x80, 0x00, - 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, - 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, - 0x00, 0x34, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x05, 0xc1, 0x09, - 0x02, 0x80, 0x10, 0x00, 0x00, 0xc1, 0x4d, 0x85, 0x0e, 0x8a, 0xa2, - 0xc3, 0xf5, 0xff, 0x5f, 0x9a, 0x01, 0x4e, 0x04, 0x1e, 0xbd, 0xf2, - 0xfe, 0x0c, 0x23, 0xcb, 0x86, 0xbb, 0xf8, 0x12, 0xd3, 0x2c, 0x15, - 0xbb, 0xb1, 0x07, 0x77, 0x88, 0x0f, 0xb9, 0xd4, 0xd6, 0x01, 0x21, - 0x30, 0x01, 0xf1, 0x50, 0x46, 0x7a, 0xbf, 0x00, 0x00, 0x00, 0x25, - 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x31, 0x34, 0x2d, 0x30, - 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, 0x32, 0x3a, 0x34, 0x33, 0x3a, - 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0xa2, 0xb4, 0x66, - 0x28, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, - 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, - 0x30, 0x31, 0x34, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x32, 0x54, 0x32, - 0x32, 0x3a, 0x34, 0x33, 0x3a, 0x30, 0x33, 0x2b, 0x30, 0x31, 0x3a, - 0x30, 0x30, 0xd3, 0xe9, 0xde, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, - 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 4, 8, - DATA ( 0xa0b4e1, 0xa1c1ee, 0x9fc3f1, 0x9bb8e6, 0xa8a3cc, 0xb29dc1, - 0xb0a2c6, 0xad99be, 0xae92b7, 0xb984a4, 0xb889a9, 0xb487a9, - 0xae87ac, 0xae86ab, 0xaf88ac, 0xa88db7, 0xaf7ea5, 0xa488b5, - 0xa885ad, 0x9c8dbc, 0xa681ae, 0x9490c7, 0xa879a2, 0x968bbd, - 0x948ec4, 0x859bdb, 0x997bac, 0x8f89be, 0x8499d9, 0x7ca1e8, - 0x8387c5, 0x8889bf, ) ); - -/* Multiple IDAT sections */ -PIX ( multi_idat, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x06, 0x08, 0x03, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0x5f, 0x8e, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x20, - 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x26, 0x00, 0x00, 0x80, - 0x84, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x00, 0x00, - 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, - 0x00, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x00, 0x00, 0x00, 0xff, - 0x50, 0x4c, 0x54, 0x45, 0x8f, 0xc5, 0xfe, 0xa8, 0xac, 0xd7, 0xab, - 0xab, 0xd3, 0x9d, 0xb7, 0xe3, 0x9c, 0xbb, 0xe8, 0x9a, 0xcb, 0xfd, - 0xa8, 0xc7, 0xf0, 0xa8, 0xca, 0xf5, 0xa0, 0xc7, 0xf6, 0x9f, 0xc3, - 0xed, 0x8f, 0xb9, 0xf0, 0x98, 0xad, 0xdf, 0xa0, 0xb4, 0xde, 0xa1, - 0xc6, 0xf0, 0x89, 0xc2, 0xfd, 0xa4, 0xa8, 0xd1, 0xba, 0x91, 0xaf, - 0xcd, 0x65, 0x79, 0xc7, 0x6c, 0x82, 0xa6, 0xa6, 0xd1, 0xb6, 0x96, - 0xb7, 0xc3, 0x8b, 0xa7, 0xbf, 0x88, 0xa4, 0xb1, 0x98, 0xb9, 0xb6, - 0x87, 0xa9, 0xc4, 0x6b, 0x86, 0xbb, 0x7c, 0x9b, 0xaa, 0xab, 0xd0, - 0x83, 0xb1, 0xf1, 0xb7, 0x81, 0xa1, 0xbc, 0x7f, 0x9b, 0xba, 0x79, - 0x96, 0xbc, 0x71, 0x8d, 0xa5, 0x8e, 0xb8, 0x8e, 0xb6, 0xed, 0xd0, - 0x64, 0x78, 0xbe, 0x7c, 0x97, 0x89, 0xb8, 0xed, 0xc4, 0x6e, 0x88, - 0xbd, 0x70, 0x90, 0xa8, 0x8d, 0xb7, 0x8d, 0xbc, 0xf4, 0x83, 0xa1, - 0xe2, 0xb9, 0x73, 0x95, 0xbf, 0x71, 0x90, 0xc5, 0x6b, 0x84, 0xa9, - 0x7d, 0xa7, 0x7b, 0xac, 0xf1, 0x8b, 0xa1, 0xdc, 0xcf, 0x58, 0x6c, - 0xad, 0x85, 0xab, 0x81, 0xb1, 0xe9, 0xbd, 0x66, 0x82, 0xa1, 0x7a, - 0xa6, 0x99, 0x8e, 0xbe, 0x7f, 0xb3, 0xf4, 0x94, 0x8d, 0xc3, 0xb1, - 0x6f, 0x97, 0xb5, 0x71, 0x95, 0x86, 0xac, 0xeb, 0x75, 0xb5, 0xff, - 0x73, 0xa4, 0xef, 0xb6, 0x68, 0x8d, 0x99, 0x7f, 0xb4, 0xae, 0x6b, - 0x92, 0x9a, 0x88, 0xb5, 0xc2, 0x5a, 0x75, 0x99, 0x78, 0xa8, 0x89, - 0x98, 0xcf, 0x74, 0xb3, 0xf9, 0x83, 0x96, 0xd3, 0x8b, 0x8f, 0xcb, - 0x8a, 0x90, 0xcd, 0x74, 0xb1, 0xfb, 0x74, 0xb3, 0xff, 0x81, 0x9e, - 0xe3, 0x8f, 0x86, 0xc2, 0x66, 0xa8, 0xfa, 0x7c, 0x88, 0xcd, 0x85, - 0x7f, 0xba, 0x9d, 0x78, 0xa0, 0x96, 0x6c, 0x99, 0x7f, 0x8d, 0xc9, - 0x72, 0xb6, 0xfd, 0xff, 0xff, 0xff, 0xdb, 0x2a, 0x9f, 0xad, 0x00, - 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x54, 0xe4, 0x03, 0x88, - 0xa5, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x07, 0x49, 0x44, 0x41, 0x54, 0x08, 0x5b, 0x63, - 0x64, 0x60, 0x44, 0x01, 0xdd, 0xe3, 0x71, 0x09, 0x00, 0x00, 0x00, - 0x07, 0x49, 0x44, 0x41, 0x54, 0x7c, 0x28, 0x3c, 0x16, 0x0a, 0xb8, - 0x00, 0xb9, 0x49, 0x1a, 0x82, 0x00, 0x00, 0x00, 0x04, 0x49, 0x44, - 0x41, 0x54, 0x1c, 0xee, 0x00, 0xa7, 0x1b, 0x22, 0xc4, 0xc1, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ), - 14, 6, - DATA ( 0x8fc5fe, 0xa8acd7, 0xababd3, 0x9db7e3, 0x9cbbe8, 0x9acbfd, - 0xa8c7f0, 0xa8caf5, 0xa0c7f6, 0x9fc3ed, 0x8fb9f0, 0x98addf, - 0xa0b4de, 0xa1c6f0, 0x89c2fd, 0xa4a8d1, 0xba91af, 0xcd6579, - 0xc76c82, 0xa6a6d1, 0xb696b7, 0xc38ba7, 0xbf88a4, 0xb198b9, - 0xb687a9, 0xc46b86, 0xbb7c9b, 0xaaabd0, 0x83b1f1, 0xb781a1, - 0xbc7f9b, 0xba7996, 0xbc718d, 0xa58eb8, 0x8eb6ed, 0xd06478, - 0xbe7c97, 0x89b8ed, 0xc46e88, 0xbd7090, 0xa88db7, 0x8dbcf4, - 0x83a1e2, 0xb97395, 0xbf7190, 0xc56b84, 0xa97da7, 0x7bacf1, - 0x8ba1dc, 0xcf586c, 0xad85ab, 0x81b1e9, 0xbd6682, 0xa17aa6, - 0x998ebe, 0x7fb3f4, 0x948dc3, 0xb16f97, 0xb57195, 0x86aceb, - 0x75b5ff, 0x73a4ef, 0xb6688d, 0x997fb4, 0xae6b92, 0x9a88b5, - 0xc25a75, 0x9978a8, 0x8998cf, 0x74b3f9, 0x8396d3, 0x8b8fcb, - 0x8a90cd, 0x74b1fb, 0x74b3ff, 0x819ee3, 0x8f86c2, 0x66a8fa, - 0x7c88cd, 0x857fba, 0x9d78a0, 0x966c99, 0x7f8dc9, 0x72b6fd ) ); - -/* Original large image */ -PIX ( original, &png_image_type, - DATA ( 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, - 0x00, 0x0c, 0x08, 0x06, 0x00, 0x00, 0x00, 0x71, 0xdb, 0xdd, 0x0f, - 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, - 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, - 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, - 0x49, 0x4d, 0x45, 0x07, 0xde, 0x01, 0x06, 0x10, 0x37, 0x03, 0xe9, - 0xc3, 0xf3, 0x6d, 0x00, 0x00, 0x00, 0x1d, 0x69, 0x54, 0x58, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x64, 0x2e, 0x65, 0x07, - 0x00, 0x00, 0x04, 0x14, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0x35, - 0xcd, 0x5d, 0x4c, 0x56, 0x65, 0x00, 0xc0, 0xf1, 0xff, 0xf3, 0x9c, - 0x6f, 0x10, 0x04, 0x14, 0x14, 0x03, 0x11, 0xc9, 0x8f, 0x54, 0x96, - 0x42, 0x5a, 0x2d, 0x5d, 0x19, 0xa6, 0x76, 0xd1, 0xec, 0xc6, 0x34, - 0x6b, 0xf3, 0xa3, 0x39, 0xb3, 0x69, 0x6b, 0x6b, 0xb3, 0xac, 0x95, - 0x5b, 0x8b, 0x5a, 0xb9, 0xd2, 0x0b, 0xaf, 0x32, 0xbd, 0xc0, 0xa5, - 0xd5, 0x85, 0xce, 0x69, 0xf8, 0xb1, 0x35, 0x96, 0x92, 0x3a, 0x33, - 0xdd, 0x50, 0xd4, 0xa5, 0x94, 0x86, 0x06, 0xa8, 0x7c, 0xc8, 0xfb, - 0xf2, 0xbe, 0xe7, 0x9c, 0xe7, 0x9c, 0xe7, 0xe9, 0xa2, 0x75, 0xf5, - 0xbb, 0xfc, 0x89, 0x9d, 0xed, 0xda, 0x08, 0x93, 0xe2, 0x49, 0x70, - 0x03, 0x9b, 0x54, 0x43, 0x12, 0x2b, 0x54, 0xa2, 0x71, 0x3d, 0x17, - 0x23, 0x04, 0x49, 0xa2, 0x29, 0xf0, 0x25, 0xd2, 0x80, 0x30, 0x9a, - 0x02, 0x5f, 0x20, 0xb5, 0x60, 0x24, 0x34, 0x24, 0x06, 0x6c, 0x0f, - 0x84, 0x05, 0xc3, 0x23, 0x8a, 0x5c, 0x5e, 0xa3, 0x8d, 0x8b, 0x6b, - 0x49, 0xd2, 0x44, 0x61, 0xd9, 0x8a, 0xb2, 0xb2, 0x00, 0x93, 0x6a, - 0xa2, 0x48, 0x62, 0x1b, 0x21, 0xd0, 0xa9, 0x26, 0xb2, 0x2c, 0xe6, - 0xef, 0xfe, 0x08, 0x30, 0xb4, 0xbf, 0xf1, 0x29, 0x39, 0x17, 0x42, - 0x09, 0xb6, 0x0b, 0x26, 0x94, 0x48, 0xa5, 0x09, 0x3c, 0x89, 0x52, - 0x20, 0x02, 0x81, 0x0f, 0x10, 0x19, 0x4c, 0xaa, 0xc9, 0x69, 0x0b, - 0xab, 0x48, 0x60, 0xa5, 0x2e, 0x22, 0x1f, 0x93, 0xb3, 0x24, 0x89, - 0x07, 0x56, 0xe0, 0x90, 0x0d, 0x1d, 0x1c, 0x0b, 0x02, 0xdf, 0x42, - 0x2a, 0x83, 0x1d, 0x27, 0x06, 0xd7, 0x76, 0xd0, 0x02, 0x12, 0xad, - 0xb1, 0x2c, 0x0b, 0x27, 0x97, 0xe5, 0xbd, 0x55, 0x93, 0xd1, 0x5e, - 0x80, 0xb2, 0x5c, 0x6e, 0x3d, 0xf1, 0x02, 0x27, 0xd7, 0x7c, 0x46, - 0x54, 0x5a, 0x42, 0xd1, 0x40, 0x1f, 0xcb, 0xd6, 0x2d, 0xa6, 0x67, - 0xde, 0x62, 0xce, 0x6e, 0xfa, 0x8a, 0x54, 0x6b, 0x1a, 0x5a, 0x3e, - 0x67, 0x76, 0xeb, 0x5e, 0x8e, 0x6e, 0x3b, 0x40, 0xb6, 0x6a, 0x0e, - 0x1b, 0xb7, 0x2d, 0xa5, 0xe2, 0xee, 0x75, 0xd0, 0x1a, 0x21, 0x04, - 0x26, 0xd5, 0x74, 0x37, 0x2c, 0xe4, 0xc4, 0xb6, 0x16, 0xec, 0x30, - 0x52, 0xb8, 0xae, 0x83, 0x46, 0x70, 0xf4, 0xcd, 0x66, 0xc6, 0x4a, - 0xa8, 0x6b, 0x3b, 0xc4, 0x50, 0x65, 0x1d, 0x47, 0x56, 0x37, 0xe3, - 0xa1, 0x59, 0xb2, 0xef, 0x63, 0x9e, 0xfc, 0x71, 0x3b, 0xa7, 0xd6, - 0x35, 0x23, 0xca, 0x2b, 0xe9, 0x7c, 0x7e, 0x15, 0xd3, 0xcf, 0x1d, - 0xc1, 0x7e, 0x38, 0xc0, 0x84, 0xae, 0x2b, 0xcc, 0x3e, 0xb6, 0x97, - 0xd6, 0xcd, 0x3b, 0xe8, 0x9d, 0x3e, 0x97, 0xc2, 0xbe, 0x07, 0xb8, - 0xe1, 0x08, 0x3f, 0x2f, 0xdb, 0xca, 0xed, 0x99, 0xcf, 0x62, 0x5b, - 0x9a, 0x34, 0xce, 0x23, 0xc6, 0x8f, 0xc5, 0x06, 0x64, 0x2e, 0x4c, - 0xc8, 0x8c, 0xc0, 0xb4, 0x4b, 0xc7, 0xd8, 0xb2, 0xa2, 0x8e, 0xfe, - 0x14, 0x26, 0x74, 0xb4, 0x33, 0x52, 0x36, 0x8e, 0xee, 0xba, 0x46, - 0x3a, 0xa6, 0xcc, 0x67, 0xa0, 0xbc, 0x86, 0xd1, 0xfd, 0x77, 0xc8, - 0x86, 0x29, 0x99, 0x1c, 0x9c, 0x5e, 0xbe, 0x15, 0x19, 0x87, 0x4c, - 0x39, 0xde, 0xc2, 0xc2, 0x1d, 0x6f, 0xd1, 0xfe, 0xda, 0x07, 0x5c, - 0x9d, 0xbb, 0x94, 0xa1, 0x4c, 0x44, 0x41, 0x38, 0xc8, 0xa8, 0xe1, - 0xfb, 0x9c, 0x99, 0xb7, 0x92, 0x9e, 0xda, 0xe9, 0xdc, 0xad, 0x99, - 0x41, 0xf7, 0xc4, 0xc7, 0xe9, 0x0d, 0xca, 0xc9, 0x47, 0x06, 0xdb, - 0x71, 0x7d, 0x32, 0x89, 0xa0, 0xec, 0xf2, 0x05, 0x6e, 0x34, 0x2e, - 0xc5, 0x0c, 0x19, 0x4a, 0xfe, 0xbe, 0x41, 0xcf, 0xd4, 0x46, 0xa2, - 0xb2, 0xd1, 0x54, 0x5d, 0x3c, 0xc7, 0x98, 0x9e, 0x2e, 0xce, 0x2f, - 0x5a, 0x4b, 0xa4, 0xc0, 0xa8, 0x98, 0xa2, 0xd1, 0x2e, 0xc7, 0x57, - 0x7f, 0xc1, 0x4b, 0xdf, 0xbc, 0xcd, 0xd5, 0x05, 0xcb, 0xb9, 0xd4, - 0xb4, 0x86, 0x28, 0x93, 0x25, 0x36, 0x1e, 0xc5, 0x37, 0xaf, 0xa0, - 0x2d, 0x8b, 0x95, 0x2d, 0x9b, 0xb1, 0x45, 0x8a, 0x30, 0x86, 0x7b, - 0x15, 0xb5, 0xb4, 0xbe, 0xde, 0x4c, 0x41, 0x62, 0xb0, 0xb5, 0x11, - 0x64, 0x14, 0x54, 0x5f, 0x3b, 0x4b, 0xe7, 0xc2, 0x95, 0xf8, 0x0f, - 0x07, 0x71, 0xf2, 0x19, 0xea, 0xdb, 0xf6, 0x33, 0xe7, 0xc4, 0x1e, - 0xa2, 0x82, 0x62, 0xfe, 0xaa, 0xaa, 0xa7, 0x6d, 0xc9, 0x46, 0x44, - 0xa8, 0xc9, 0xc5, 0x20, 0x0b, 0xc0, 0xef, 0xef, 0x45, 0x0a, 0xe8, - 0x2f, 0x7d, 0x84, 0x10, 0x09, 0x32, 0x20, 0x13, 0x0b, 0x2a, 0x2f, - 0xb4, 0x31, 0x5c, 0x52, 0x09, 0x46, 0x13, 0xa7, 0x06, 0xcf, 0x86, - 0xfe, 0xa2, 0x0a, 0x54, 0xac, 0xc9, 0x03, 0x76, 0x9c, 0x08, 0xac, - 0x38, 0xa5, 0xb2, 0xf7, 0x0f, 0x5a, 0xab, 0xe7, 0x50, 0x38, 0xf2, - 0x80, 0x92, 0xfe, 0x6e, 0x5a, 0xb6, 0x1c, 0x02, 0xd7, 0x62, 0xd8, - 0x04, 0xfc, 0x69, 0x8f, 0xc5, 0x1e, 0xd6, 0xf8, 0xae, 0x44, 0x49, - 0x97, 0xaa, 0xd3, 0x27, 0x59, 0x74, 0x78, 0x3b, 0x17, 0x67, 0xbd, - 0x48, 0x43, 0xdb, 0x3e, 0xce, 0xcc, 0x5d, 0x8e, 0xa8, 0x28, 0xc5, - 0xb8, 0x82, 0xfa, 0x6b, 0x6d, 0x1c, 0x58, 0xbb, 0x93, 0x8b, 0x33, - 0x9a, 0x78, 0xf8, 0x20, 0xa6, 0xba, 0xca, 0x25, 0x8d, 0xc0, 0x89, - 0x14, 0xd9, 0x44, 0x21, 0x35, 0x30, 0xb5, 0xaf, 0x83, 0x9c, 0x5f, - 0x4c, 0x0f, 0xe5, 0x4c, 0xe8, 0xfa, 0x9d, 0xc1, 0xb2, 0x89, 0xdc, - 0x9c, 0x54, 0xcf, 0x3f, 0xe3, 0x1f, 0x63, 0xb0, 0xa2, 0x16, 0xdb, - 0x2f, 0x24, 0x0c, 0x15, 0xd9, 0x9c, 0xa6, 0x78, 0xb0, 0x8f, 0x97, - 0x0f, 0x7f, 0xc2, 0x8d, 0xba, 0xa7, 0xd8, 0xb3, 0xe2, 0x6b, 0xac, - 0x24, 0x66, 0xda, 0xaf, 0x07, 0x19, 0x88, 0x04, 0x95, 0x77, 0x6e, - 0x63, 0xe9, 0x94, 0x2b, 0xfe, 0x14, 0xa2, 0x08, 0x62, 0x63, 0xb8, - 0xdb, 0x17, 0xe2, 0xf9, 0x90, 0x1a, 0x8b, 0x30, 0x9f, 0x60, 0x47, - 0x06, 0x26, 0x75, 0x9d, 0x27, 0x5b, 0x58, 0x46, 0x7f, 0x30, 0x86, - 0x49, 0x1d, 0xbf, 0x70, 0x7d, 0xc6, 0x73, 0xc4, 0x31, 0x48, 0x23, - 0x40, 0x18, 0x3c, 0x4b, 0xa2, 0x8c, 0x21, 0x8b, 0x64, 0xd3, 0x81, - 0x77, 0xc0, 0x18, 0xbe, 0x7d, 0x65, 0x17, 0x8e, 0x80, 0xef, 0x9a, - 0x3e, 0x64, 0xfd, 0x4f, 0xef, 0xd3, 0xd6, 0xb0, 0x82, 0xc9, 0xd7, - 0x4f, 0xa1, 0x2d, 0x9b, 0x0d, 0x07, 0xdf, 0xc5, 0x38, 0x1e, 0xda, - 0x68, 0x4c, 0x9a, 0x72, 0x74, 0xc3, 0x97, 0x0c, 0x16, 0x56, 0xa3, - 0x22, 0x89, 0x0c, 0x55, 0x8c, 0x9f, 0x19, 0xe0, 0x56, 0x6d, 0x23, - 0x19, 0xcf, 0xc1, 0xc9, 0x0c, 0x71, 0x69, 0xe6, 0x12, 0x12, 0x05, - 0xa1, 0x02, 0xa5, 0x04, 0xc2, 0x18, 0x1c, 0xd7, 0xa5, 0xe9, 0xb7, - 0xef, 0xb1, 0x13, 0xc5, 0xae, 0x57, 0x77, 0x13, 0x5a, 0x2e, 0x69, - 0x62, 0xb8, 0xfc, 0xe8, 0x02, 0x3a, 0x6a, 0x9e, 0xe6, 0x99, 0xd3, - 0x2d, 0x04, 0xf7, 0xfb, 0xe8, 0xae, 0x99, 0x85, 0xb2, 0x1d, 0x42, - 0xa5, 0x10, 0x52, 0x10, 0xd9, 0x3e, 0xf7, 0x43, 0x17, 0x3b, 0x90, - 0xd8, 0x9e, 0x8f, 0x58, 0xff, 0x43, 0xc6, 0x38, 0xc1, 0x28, 0x3c, - 0x0f, 0xa2, 0x61, 0x43, 0x2e, 0x85, 0xc2, 0x40, 0xe0, 0x59, 0x06, - 0xc1, 0x7f, 0xd9, 0xff, 0x46, 0x5a, 0x90, 0x4f, 0xc1, 0x28, 0x83, - 0x11, 0x60, 0x10, 0x24, 0x1a, 0x06, 0x43, 0x43, 0x3e, 0x9f, 0xa3, - 0xa0, 0xb4, 0x90, 0x31, 0xe3, 0x20, 0x1f, 0x43, 0x67, 0xe7, 0x3d, - 0x6a, 0x6b, 0x2b, 0x50, 0x0a, 0xc8, 0x85, 0xd4, 0x57, 0xf9, 0x88, - 0xc4, 0xf0, 0x2f, 0xb4, 0x16, 0xf4, 0xd5, 0x82, 0x00, 0xa9, 0x50, - 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, - 0x82 ), - 28, 12, - DATA ( 0x90c4fe, 0x91c3fb, 0x98c5fb, 0x9eceff, 0x9bccff, 0x97c6fa, - 0x92c2f8, 0x98c9fe, 0x97caff, 0x93c6fd, 0x9dceff, 0x9fcdff, - 0xa0ccfd, 0xaad4fe, 0xacd2ff, 0xa1cafe, 0x9dc9fe, 0xa1d0fe, - 0xa2d3fe, 0x94c8f9, 0x8abff7, 0x88befd, 0x8ec1ff, 0x8bbdfa, - 0x8ec1f5, 0xa0d3fe, 0x9fd0fc, 0x98c9fe, 0x8fc5ff, 0x8ec1f9, - 0x91c6fc, 0xd4697c, 0xd4697b, 0x98ccff, 0x88ccff, 0x8aceff, - 0x8ed4ff, 0x8dccff, 0x95c9fd, 0x9ed0ff, 0x9acbfd, 0xa1ddff, - 0xa9ddff, 0xa1cbfd, 0x9cc7fb, 0x97cefe, 0x9addff, 0x97d0ff, - 0x8bbff9, 0x7ec1ff, 0x84c8ff, 0x87caff, 0x7fc2ff, 0x93d6ff, - 0x9cdbff, 0x9acbfe, 0x89c1fe, 0x8fc5fe, 0x8fc7fe, 0xd0677a, - 0xd36a7d, 0x9dc2f3, 0xff1c15, 0xfd231e, 0xf82624, 0xd85a69, - 0x92baef, 0x97cbff, 0xa4b9e6, 0xf32d2c, 0xda6372, 0xa1cfff, - 0x99c9fb, 0xc97085, 0xf92623, 0xada5ca, 0x8bc1fb, 0xe74047, - 0xfd251f, 0xfd231d, 0xfe241e, 0xfd211c, 0xe0535d, 0x99d2ff, - 0x81baf9, 0x8fc7fe, 0x8dc7ff, 0x84cfff, 0x98d1ff, 0xbb90ae, - 0xef3538, 0xa294bd, 0xa994bb, 0xf03739, 0xc9647a, 0x8bc6ff, - 0x98ceff, 0xc86f86, 0xf03739, 0xa5c0ed, 0xb39dc1, 0xf92723, - 0xaf93b2, 0x95cdff, 0x96b6eb, 0xed383c, 0xba7498, 0x9b9fd7, - 0x9fa2d5, 0x9c9ccc, 0x9db4e0, 0x9dd2ff, 0x77b2f5, 0x82bcfe, - 0xb496b6, 0xfa2622, 0x85ceff, 0xd56272, 0xe4474f, 0x85b7f0, - 0x7bb9f7, 0xde4c58, 0xd8515e, 0x7fbefc, 0x8bc4ff, 0x8bc4ff, - 0xf23131, 0xca788f, 0xf42c2b, 0xbd829d, 0x85c8fa, 0x85c0f8, - 0xa0aeda, 0xf92a27, 0x80aaf0, 0x82c0ff, 0x84c1ff, 0x7fbafb, - 0x85bdf5, 0x94cbfe, 0x7cb8fd, 0x75b8ff, 0xc66982, 0xd5596a, - 0x84befe, 0xe5444d, 0xcc6a80, 0x7ec9ff, 0x9797c7, 0xf13335, - 0xbb7796, 0x78b9fc, 0x7eb9f9, 0x8bc8ff, 0xaa90ba, 0xf72a28, - 0xcd677d, 0x8cc5fd, 0x7ebbf1, 0x78baf8, 0xae8aae, 0xf72d2a, - 0xd84c5d, 0xdc4d5a, 0xdd4c59, 0xc7627a, 0x7dbeff, 0x8fc7fe, - 0x7ab7fe, 0x68b2ff, 0xe34049, 0xb881a1, 0x8cafed, 0xea3b40, - 0xf92926, 0xfd231d, 0xf62d2b, 0xd54958, 0x7abeff, 0x79b6fd, - 0x74b0f9, 0x80c3ff, 0xb27da2, 0xf92b28, 0xba7898, 0x84c5ff, - 0x7ebdfa, 0x6bb7fb, 0xc7566d, 0xe93d43, 0xd84b5b, 0xd64959, - 0xdd4d59, 0xb46f90, 0x78b8fd, 0x86befd, 0x74b3ff, 0x6bacfc, - 0xfc2823, 0x999ed2, 0x97a4d9, 0xfa2823, 0x9c9ed2, 0x9ca4d5, - 0x8ea3de, 0x6ca7f2, 0x70b0fd, 0x78b6ff, 0x6fb2ff, 0x9c86b9, - 0xf62e2d, 0xc75771, 0xec373b, 0x80aded, 0x7fc3fe, 0x6ac3ff, - 0xf42d2c, 0x9b8ebc, 0x69b8ff, 0x5aa4f9, 0x77c0ff, 0x74b9ff, - 0x79b2fa, 0x7ab4f5, 0x72b3ff, 0x9195ce, 0xf23031, 0x809ee7, - 0xb181a6, 0xe93a41, 0x78beff, 0x82bcfe, 0x7db9ff, 0x70affd, - 0x68a8f8, 0x6cacfd, 0x7da1e8, 0xec373b, 0xd15165, 0x64aeff, - 0xef3335, 0xa7729b, 0x6dbcff, 0x83a7e0, 0xf72b29, 0x6f96e1, - 0x62b1ff, 0x54a3f8, 0x5ca9f7, 0x7bc1ff, 0x76b1fd, 0x72abf1, - 0x6bb2ff, 0xb17298, 0xe63b43, 0x6da7fa, 0xd15367, 0xc16481, - 0x72b8ff, 0x7ab7ff, 0x7ab8fe, 0x77b2ff, 0x6ba7f7, 0x60acff, - 0xd84858, 0xec363a, 0x6da7f9, 0x69afff, 0x9476b0, 0xf92b28, - 0x66a4f2, 0xa57ca2, 0xf52e2d, 0xd64454, 0xd5495b, 0xd34859, - 0xd24556, 0x86ace0, 0x75b7fd, 0x6daaf3, 0x63adf9, 0xb96586, - 0xc65c76, 0x60aeff, 0xd64657, 0x908fc8, 0x6eb3ff, 0x72b2ff, - 0x75b3ff, 0x78b1fe, 0x70adfd, 0xa377a7, 0xdc4453, 0x808fd5, - 0x65aaff, 0x66abfe, 0x679aed, 0xcb4a61, 0xa16794, 0xae678b, - 0xd84d59, 0xd14859, 0xcd4456, 0xd44a5a, 0xcb495e, 0x71a4e6, - 0x79c0ff, 0x71b1fb, 0x65a9f3, 0x6ab2ff, 0x71b9ff, 0x6aabfe, - 0x60a8fe, 0x6bb1ff, 0x72b4fe, 0x73b4ff, 0x74b3fe, 0x75b3ff, - 0x76b2fe, 0x6fb0ff, 0x66adff, 0x65a8fe, 0x64a9fe, 0x63a9ff, - 0x5fa7ff, 0x4e9ffe, 0x4596f4, 0x4fa7ff, 0x62beff, 0x59b8ff, - 0x2e8de9, 0x4faeff, 0x4aa9ff, 0x4a9ff7, 0x77bbff, 0x78b7fe ) ); - -/** - * Perform PNG self-test - * - */ -static void png_test_exec ( void ) { - - /* Original image */ - pixbuf_ok ( &original ); - - /* All allowed colour type and bit depth combinations */ - pixbuf_ok ( &ctype_0_1 ); - pixbuf_ok ( &ctype_0_2 ); - pixbuf_ok ( &ctype_0_4 ); - pixbuf_ok ( &ctype_0_8 ); - pixbuf_ok ( &ctype_0_16 ); - pixbuf_ok ( &ctype_2_8 ); - pixbuf_ok ( &ctype_2_16 ); - pixbuf_ok ( &ctype_3_1 ); - pixbuf_ok ( &ctype_3_2 ); - pixbuf_ok ( &ctype_3_4 ); - pixbuf_ok ( &ctype_3_8 ); - pixbuf_ok ( &ctype_4_8 ); - pixbuf_ok ( &ctype_4_16 ); - pixbuf_ok ( &ctype_6_8 ); - pixbuf_ok ( &ctype_6_16 ); - - /* All basic filter types */ - pixbuf_ok ( &filter_0 ); - pixbuf_ok ( &filter_1 ); - pixbuf_ok ( &filter_2 ); - pixbuf_ok ( &filter_3 ); - pixbuf_ok ( &filter_4 ); - - /* Multiple IDAT sections */ - pixbuf_ok ( &multi_idat ); - - /* Interlaced */ - pixbuf_ok ( &interlaced ); - pixbuf_ok ( &interlaced_w1 ); - pixbuf_ok ( &interlaced_w2 ); - pixbuf_ok ( &interlaced_w3 ); - pixbuf_ok ( &interlaced_w4 ); - pixbuf_ok ( &interlaced_h1 ); - pixbuf_ok ( &interlaced_h2 ); - pixbuf_ok ( &interlaced_h3 ); - pixbuf_ok ( &interlaced_h4 ); - - /* Alpha channel */ - pixbuf_ok ( &alpha ); -} - -/** PNG self-test */ -struct self_test png_test __self_test = { - .name = "png", - .exec = png_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/pnm_test.c b/qemu/roms/ipxe/src/tests/pnm_test.c deleted file mode 100644 index d57fdaaef..000000000 --- a/qemu/roms/ipxe/src/tests/pnm_test.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (C) 2013 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * PNM self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include "pixbuf_test.h" - -/** Define inline pixel data */ -#define DATA(...) { __VA_ARGS__ } - -/** PBM ASCII example (from Wikipedia) */ -PIX ( pbm_ascii, &pnm_image_type, - "P1\n" - "# This is an example bitmap of the letter \"J\"\n" - "6 10\n" - "0 0 0 0 1 0\n" - "0 0 0 0 1 0\n" - "0 0 0 0 1 0\n" - "0 0 0 0 1 0\n" - "0 0 0 0 1 0\n" - "0 0 0 0 1 0\n" - "1 0 0 0 1 0\n" - "0 1 1 1 0 0\n" - "0 0 0 0 0 0\n" - "0 0 0 0 0 0\n", - 6, 10, - DATA ( 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0x000000, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff ) ); - -/** PGM ASCII example (from Wikipedia) */ -PIX ( pgm_ascii, &pnm_image_type, - "P2\n" - "# Shows the word \"FEEP\" (example from Netpbm man page on PGM)\n" - "24 7\n" - "15\n" - "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - "0 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0\n" - "0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0\n" - "0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0\n" - "0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0\n" - "0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 0\n" - "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - , 24, 7, - DATA ( 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x333333, 0x333333, 0x333333, 0x333333, 0x000000, - 0x000000, 0x777777, 0x777777, 0x777777, 0x777777, 0x000000, - 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000, - 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, - 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x777777, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0xbbbbbb, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0xffffff, 0x000000, 0x000000, 0xffffff, 0x000000, - 0x000000, 0x333333, 0x333333, 0x333333, 0x000000, 0x000000, - 0x000000, 0x777777, 0x777777, 0x777777, 0x000000, 0x000000, - 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000, 0x000000, - 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, - 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x777777, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0xbbbbbb, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x777777, 0x777777, 0x777777, 0x777777, 0x000000, - 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000, - 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000 ) ); - -/** PPM ASCII example (from Wikipedia) */ -PIX ( ppm_ascii, &pnm_image_type, - "P3\n" - "# The P3 means colors are in ASCII, then 3 columns and 2 rows,\n" - "# then 255 for max color, then RGB triplets\n" - "3 2\n" - "255\n" - "255 0 0 0 255 0 0 0 255\n" - "255 255 0 255 255 255 0 0 0\n", - 3, 2, - DATA ( 0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xffffff, 0x000000 ) ); - -/** PBM ASCII with no space between pixel values */ -PIX ( pbm_ascii_no_space, &pnm_image_type, - "P1\n" - "3 3\n" - "001\n" - "010\n" - "111\n", - 3, 3, - DATA ( 0xffffff, 0xffffff, 0x000000, 0xffffff, 0x000000, 0xffffff, - 0x000000, 0x000000, 0x000000 ) ); - -/** PBM binary example (converted from Wikipedia) */ -PIX ( pbm_binary, &pnm_image_type, - DATA ( 0x50, 0x34, 0x0a, 0x23, 0x20, 0x43, 0x52, 0x45, 0x41, 0x54, 0x4f, - 0x52, 0x3a, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x20, 0x50, 0x4e, 0x4d, - 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x31, 0x0a, 0x36, 0x20, - 0x31, 0x30, 0x0a, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x88, 0x70, - 0x00, 0x00 ), - 6, 10, - DATA ( 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0x000000, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, - 0xffffff, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, - 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff ) ); - -/** PGM binary example (converted from Wikipedia) */ -PIX ( pgm_binary, &pnm_image_type, - DATA ( 0x50, 0x35, 0x0a, 0x32, 0x34, 0x20, 0x37, 0x0a, 0x31, 0x35, 0x0a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x07, 0x07, - 0x07, 0x07, 0x00, 0x00, 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x0f, - 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, - 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x0b, 0x0b, 0x0b, - 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x00, - 0x00, 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00 ), - 24, 7, - DATA ( 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x333333, 0x333333, 0x333333, 0x333333, 0x000000, - 0x000000, 0x777777, 0x777777, 0x777777, 0x777777, 0x000000, - 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000, - 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, - 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x777777, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0xbbbbbb, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0xffffff, 0x000000, 0x000000, 0xffffff, 0x000000, - 0x000000, 0x333333, 0x333333, 0x333333, 0x000000, 0x000000, - 0x000000, 0x777777, 0x777777, 0x777777, 0x000000, 0x000000, - 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000, 0x000000, - 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, - 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x777777, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0xbbbbbb, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x333333, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x777777, 0x777777, 0x777777, 0x777777, 0x000000, - 0x000000, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0xbbbbbb, 0x000000, - 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000 ) ); - -/** PPM binary example (converted from Wikipedia) */ -PIX ( ppm_binary, &pnm_image_type, - DATA ( 0x50, 0x36, 0x0a, 0x33, 0x20, 0x32, 0x0a, 0x32, 0x35, 0x35, 0x0a, - 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 ), - 3, 2, - DATA ( 0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xffffff, 0x000000 ) ); - -/** - * Perform PNM self-test - * - */ -static void pnm_test_exec ( void ) { - - pixbuf_ok ( &pbm_ascii ); - pixbuf_ok ( &pgm_ascii ); - pixbuf_ok ( &ppm_ascii ); - pixbuf_ok ( &pbm_ascii_no_space ); - pixbuf_ok ( &pbm_binary ); - pixbuf_ok ( &pgm_binary ); - pixbuf_ok ( &ppm_binary ); -} - -/** PNM self-test */ -struct self_test pnm_test __self_test = { - .name = "pnm", - .exec = pnm_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/profile_test.c b/qemu/roms/ipxe/src/tests/profile_test.c deleted file mode 100644 index d2f8df211..000000000 --- a/qemu/roms/ipxe/src/tests/profile_test.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (C) 2014 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Profiling self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include - -/** A profiling test */ -struct profile_test { - /** Sample values */ - const unsigned long *samples; - /** Number of samples */ - unsigned int count; - /** Expected mean sample value */ - unsigned long mean; - /** Expected standard deviation */ - unsigned long stddev; -}; - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define a profiling test */ -#define PROFILE_TEST( name, MEAN, STDDEV, SAMPLES ) \ - static const unsigned long name ## _samples[] = SAMPLES; \ - static struct profile_test name = { \ - .samples = name ## _samples, \ - .count = ( sizeof ( name ## _samples ) / \ - sizeof ( name ## _samples [0] ) ), \ - .mean = MEAN, \ - .stddev = STDDEV, \ - } - -/** Empty data set */ -PROFILE_TEST ( empty, 0, 0, DATA() ); - -/** Single-element data set (zero) */ -PROFILE_TEST ( zero, 0, 0, DATA ( 0 ) ); - -/** Single-element data set (non-zero) */ -PROFILE_TEST ( single, 42, 0, DATA ( 42 ) ); - -/** Multiple identical element data set */ -PROFILE_TEST ( identical, 69, 0, DATA ( 69, 69, 69, 69, 69, 69, 69 ) ); - -/** Small element data set */ -PROFILE_TEST ( small, 5, 2, DATA ( 3, 5, 9, 4, 3, 2, 5, 7 ) ); - -/** Random data set */ -PROFILE_TEST ( random, 70198, 394, - DATA ( 69772, 70068, 70769, 69653, 70663, 71078, 70101, 70341, - 70215, 69600, 70020, 70456, 70421, 69972, 70267, 69999, - 69972 ) ); - -/** Large-valued random data set */ -PROFILE_TEST ( large, 93533894UL, 25538UL, - DATA ( 93510333UL, 93561169UL, 93492361UL, 93528647UL, - 93557566UL, 93503465UL, 93540126UL, 93549020UL, - 93502307UL, 93527320UL, 93537152UL, 93540125UL, - 93550773UL, 93586731UL, 93521312UL ) ); - -/** - * Report a profiling test result - * - * @v test Profiling test - * @v file Test code file - * @v line Test code line - */ -static void profile_okx ( struct profile_test *test, const char *file, - unsigned int line ) { - struct profiler profiler; - unsigned long mean; - unsigned long stddev; - unsigned int i; - - /* Initialise profiler */ - memset ( &profiler, 0, sizeof ( profiler ) ); - - /* Record sample values */ - for ( i = 0 ; i < test->count ; i++ ) - profile_update ( &profiler, test->samples[i] ); - - /* Check resulting statistics */ - mean = profile_mean ( &profiler ); - stddev = profile_stddev ( &profiler ); - DBGC ( test, "PROFILE calculated mean %ld stddev %ld\n", mean, stddev ); - okx ( mean == test->mean, file, line ); - okx ( stddev == test->stddev, file, line ); -} -#define profile_ok( test ) profile_okx ( test, __FILE__, __LINE__ ) - -/** - * Perform profiling self-tests - * - */ -static void profile_test_exec ( void ) { - - /* Perform profiling tests */ - profile_ok ( &empty ); - profile_ok ( &zero ); - profile_ok ( &single ); - profile_ok ( &identical ); - profile_ok ( &small ); - profile_ok ( &random ); - profile_ok ( &large ); -} - -/** Profiling self-test */ -struct self_test profile_test __self_test = { - .name = "profile", - .exec = profile_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/pubkey_test.h b/qemu/roms/ipxe/src/tests/pubkey_test.h deleted file mode 100644 index cd65b8703..000000000 --- a/qemu/roms/ipxe/src/tests/pubkey_test.h +++ /dev/null @@ -1,175 +0,0 @@ -#ifndef _PUBKEY_TEST_H -#define _PUBKEY_TEST_H - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include -#include -#include - -/** - * Report public key decryption test result - * - * @v pubkey Public key algorithm - * @v key Key - * @v key_len Key length - * @v ciphertext Ciphertext - * @v ciphertext_len Ciphertext length - * @v expected Expected plaintext - * @v expected_len Expected plaintext length - */ -#define pubkey_decrypt_ok( pubkey, key, key_len, ciphertext, \ - ciphertext_len, expected, expected_len ) do {\ - uint8_t ctx[ (pubkey)->ctxsize ]; \ - \ - ok ( pubkey_init ( (pubkey), ctx, (key), (key_len) ) == 0 ); \ - { \ - size_t max_len = pubkey_max_len ( (pubkey), ctx ); \ - uint8_t decrypted[ max_len ]; \ - int decrypted_len; \ - \ - decrypted_len = pubkey_decrypt ( (pubkey), ctx, \ - (ciphertext), \ - (ciphertext_len), \ - decrypted ); \ - ok ( decrypted_len == ( ( int ) (expected_len) ) ); \ - ok ( memcmp ( decrypted, (expected), \ - (expected_len) ) == 0 ); \ - } \ - pubkey_final ( (pubkey), ctx ); \ - } while ( 0 ) - -/** - * Report public key encryption and decryption test result - * - * @v pubkey Public key algorithm - * @v encrypt_key Encryption key - * @v encrypt_key_len Encryption key length - * @v decrypt_key Decryption key - * @v decrypt_key_len Decryption key length - * @v plaintext Plaintext - * @v plaintext_len Plaintext length - */ -#define pubkey_encrypt_ok( pubkey, encrypt_key, encrypt_key_len, \ - decrypt_key, decrypt_key_len, plaintext, \ - plaintext_len ) do { \ - uint8_t ctx[ (pubkey)->ctxsize ]; \ - \ - ok ( pubkey_init ( (pubkey), ctx, (encrypt_key), \ - (encrypt_key_len) ) == 0 ); \ - { \ - size_t max_len = pubkey_max_len ( (pubkey), ctx ); \ - uint8_t encrypted[ max_len ]; \ - int encrypted_len; \ - \ - encrypted_len = pubkey_encrypt ( (pubkey), ctx, \ - (plaintext), \ - (plaintext_len), \ - encrypted ); \ - ok ( encrypted_len >= 0 ); \ - pubkey_decrypt_ok ( (pubkey), (decrypt_key), \ - (decrypt_key_len), encrypted, \ - encrypted_len, (plaintext), \ - (plaintext_len) ); \ - } \ - pubkey_final ( (pubkey), ctx ); \ - } while ( 0 ) - -/** - * Report public key signature test result - * - * @v pubkey Public key algorithm - * @v key Key - * @v key_len Key length - * @v digest Digest algorithm - * @v plaintext Plaintext - * @v plaintext_len Plaintext length - * @v expected Expected signature - * @v expected_len Expected signature length - */ -#define pubkey_sign_ok( pubkey, key, key_len, digest, plaintext, \ - plaintext_len, expected, expected_len ) do { \ - uint8_t ctx[ (pubkey)->ctxsize ]; \ - uint8_t digestctx[ (digest)->ctxsize ]; \ - uint8_t digestout[ (digest)->digestsize ]; \ - \ - digest_init ( (digest), digestctx ); \ - digest_update ( (digest), digestctx, (plaintext), \ - (plaintext_len) ); \ - digest_final ( (digest), digestctx, digestout ); \ - \ - ok ( pubkey_init ( (pubkey), ctx, (key), (key_len) ) == 0 ); \ - { \ - size_t max_len = pubkey_max_len ( (pubkey), ctx ); \ - uint8_t signature[ max_len ]; \ - int signature_len; \ - \ - signature_len = pubkey_sign ( (pubkey), ctx, (digest), \ - digestout, signature ); \ - ok ( signature_len == ( ( int ) (expected_len) ) ); \ - ok ( memcmp ( signature, (expected), \ - (expected_len) ) == 0 ); \ - } \ - pubkey_final ( (pubkey), ctx ); \ - } while ( 0 ) - -/** - * Report public key verification test result - * - * @v pubkey Public key algorithm - * @v key Key - * @v key_len Key length - * @v digest Digest algorithm - * @v plaintext Plaintext - * @v plaintext_len Plaintext length - * @v signature Signature - * @v signature_len Signature length - */ -#define pubkey_verify_ok( pubkey, key, key_len, digest, plaintext, \ - plaintext_len, signature, signature_len ) do {\ - uint8_t ctx[ (pubkey)->ctxsize ]; \ - uint8_t digestctx[ (digest)->ctxsize ]; \ - uint8_t digestout[ (digest)->digestsize ]; \ - \ - digest_init ( (digest), digestctx ); \ - digest_update ( (digest), digestctx, (plaintext), \ - (plaintext_len) ); \ - digest_final ( (digest), digestctx, digestout ); \ - \ - ok ( pubkey_init ( (pubkey), ctx, (key), (key_len) ) == 0 ); \ - ok ( pubkey_verify ( (pubkey), ctx, (digest), digestout, \ - (signature), (signature_len) ) == 0 ); \ - pubkey_final ( (pubkey), ctx ); \ - } while ( 0 ) - -/** - * Report public key verification test result - * - * @v pubkey Public key algorithm - * @v key Key - * @v key_len Key length - * @v digest Digest algorithm - * @v plaintext Plaintext - * @v plaintext_len Plaintext length - * @v signature Signature - * @v signature_len Signature length - */ -#define pubkey_verify_fail_ok( pubkey, key, key_len, digest, plaintext, \ - plaintext_len, signature, \ - signature_len ) do { \ - uint8_t ctx[ (pubkey)->ctxsize ]; \ - uint8_t digestctx[ (digest)->ctxsize ]; \ - uint8_t digestout[ (digest)->digestsize ]; \ - \ - digest_init ( (digest), digestctx ); \ - digest_update ( (digest), digestctx, (plaintext), \ - (plaintext_len) ); \ - digest_final ( (digest), digestctx, digestout ); \ - \ - ok ( pubkey_init ( (pubkey), ctx, (key), (key_len) ) == 0 ); \ - ok ( pubkey_verify ( (pubkey), ctx, (digest), digestout, \ - (signature), (signature_len) ) != 0 ); \ - pubkey_final ( (pubkey), ctx ); \ - } while ( 0 ) - -#endif /* _PUBKEY_TEST_H */ diff --git a/qemu/roms/ipxe/src/tests/rsa_test.c b/qemu/roms/ipxe/src/tests/rsa_test.c deleted file mode 100644 index c0d05d263..000000000 --- a/qemu/roms/ipxe/src/tests/rsa_test.c +++ /dev/null @@ -1,496 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * RSA self-tests - * - * These test vectors are generated using openssl's genrsa, rsa, - * rsautl, and dgst tools. - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include -#include "pubkey_test.h" - -/** Define inline private key data */ -#define PRIVATE(...) { __VA_ARGS__ } - -/** Define inline public key data */ -#define PUBLIC(...) { __VA_ARGS__ } - -/** Define inline plaintext data */ -#define PLAINTEXT(...) { __VA_ARGS__ } - -/** Define inline ciphertext data */ -#define CIPHERTEXT(...) { __VA_ARGS__ } - -/** Define inline signature data */ -#define SIGNATURE(...) { __VA_ARGS__ } - -/** An RSA encryption and decryption self-test */ -struct rsa_encrypt_decrypt_test { - /** Private key */ - const void *private; - /** Private key length */ - size_t private_len; - /** Public key */ - const void *public; - /** Public key length */ - size_t public_len; - /** Plaintext */ - const void *plaintext; - /** Plaintext length */ - size_t plaintext_len; - /** Ciphertext - * - * Note that the encryption process includes some random - * padding, so a given plaintext will encrypt to multiple - * different ciphertexts. - */ - const void *ciphertext; - /** Ciphertext length */ - size_t ciphertext_len; -}; - -/** - * Define an RSA encryption and decryption test - * - * @v name Test name - * @v PRIVATE Private key - * @v PUBLIC Public key - * @v PLAINTEXT Plaintext - * @v CIPHERTEXT Ciphertext - * @ret test Encryption and decryption test - */ -#define RSA_ENCRYPT_DECRYPT_TEST( name, PRIVATE, PUBLIC, PLAINTEXT, \ - CIPHERTEXT ) \ - static const uint8_t name ## _private[] = PRIVATE; \ - static const uint8_t name ## _public[] = PUBLIC; \ - static const uint8_t name ## _plaintext[] = PLAINTEXT; \ - static const uint8_t name ## _ciphertext[] = CIPHERTEXT; \ - static struct rsa_encrypt_decrypt_test name = { \ - .private = name ## _private, \ - .private_len = sizeof ( name ## _private ), \ - .public = name ## _public, \ - .public_len = sizeof ( name ## _public ), \ - .plaintext = name ## _plaintext, \ - .plaintext_len = sizeof ( name ## _plaintext ), \ - .ciphertext = name ## _ciphertext, \ - .ciphertext_len = sizeof ( name ## _ciphertext ), \ - } - -/** An RSA signature self-test */ -struct rsa_signature_test { - /** Private key */ - const void *private; - /** Private key length */ - size_t private_len; - /** Public key */ - const void *public; - /** Public key length */ - size_t public_len; - /** Plaintext */ - const void *plaintext; - /** Plaintext length */ - size_t plaintext_len; - /** Digest algorithm */ - struct digest_algorithm *digest; - /** Signature */ - const void *signature; - /** Signature length */ - size_t signature_len; -}; - -/** - * Define an RSA signature test - * - * @v name Test name - * @v PRIVATE Private key - * @v PUBLIC Public key - * @v PLAINTEXT Plaintext - * @v DIGEST Digest algorithm - * @v SIGNATURE Signature - * @ret test Signature test - */ -#define RSA_SIGNATURE_TEST( name, PRIVATE, PUBLIC, PLAINTEXT, DIGEST, \ - SIGNATURE ) \ - static const uint8_t name ## _private[] = PRIVATE; \ - static const uint8_t name ## _public[] = PUBLIC; \ - static const uint8_t name ## _plaintext[] = PLAINTEXT; \ - static const uint8_t name ## _signature[] = SIGNATURE; \ - static struct rsa_signature_test name = { \ - .private = name ## _private, \ - .private_len = sizeof ( name ## _private ), \ - .public = name ## _public, \ - .public_len = sizeof ( name ## _public ), \ - .plaintext = name ## _plaintext, \ - .plaintext_len = sizeof ( name ## _plaintext ), \ - .digest = DIGEST, \ - .signature = name ## _signature, \ - .signature_len = sizeof ( name ## _signature ), \ - } - -/** - * Report RSA encryption and decryption test result - * - * @v test RSA encryption and decryption test - */ -#define rsa_encrypt_decrypt_ok( test ) do { \ - pubkey_decrypt_ok ( &rsa_algorithm, (test)->private, \ - (test)->private_len, (test)->ciphertext, \ - (test)->ciphertext_len, (test)->plaintext, \ - (test)->plaintext_len ); \ - pubkey_encrypt_ok ( &rsa_algorithm, (test)->private, \ - (test)->private_len, (test)->public, \ - (test)->public_len, (test)->plaintext, \ - (test)->plaintext_len ); \ - pubkey_encrypt_ok ( &rsa_algorithm, (test)->public, \ - (test)->public_len, (test)->private, \ - (test)->private_len, (test)->plaintext, \ - (test)->plaintext_len ); \ - } while ( 0 ) - - -/** - * Report RSA signature test result - * - * @v test RSA signature test - */ -#define rsa_signature_ok( test ) do { \ - uint8_t bad_signature[ (test)->signature_len ]; \ - pubkey_sign_ok ( &rsa_algorithm, (test)->private, \ - (test)->private_len, (test)->digest, \ - (test)->plaintext, (test)->plaintext_len, \ - (test)->signature, (test)->signature_len ); \ - pubkey_verify_ok ( &rsa_algorithm, (test)->public, \ - (test)->public_len, (test)->digest, \ - (test)->plaintext, (test)->plaintext_len, \ - (test)->signature, (test)->signature_len ); \ - memset ( bad_signature, 0, sizeof ( bad_signature ) ); \ - pubkey_verify_fail_ok ( &rsa_algorithm, (test)->public, \ - (test)->public_len, (test)->digest, \ - (test)->plaintext, \ - (test)->plaintext_len, bad_signature, \ - sizeof ( bad_signature ) ); \ - } while ( 0 ) - -/** "Hello world" encryption and decryption test */ -RSA_ENCRYPT_DECRYPT_TEST ( hw_test, - PRIVATE ( 0x30, 0x82, 0x01, 0x3b, 0x02, 0x01, 0x00, 0x02, 0x41, 0x00, - 0xd2, 0xf1, 0x04, 0x67, 0xf6, 0x2c, 0x96, 0x07, 0xa6, 0xbd, - 0x85, 0xac, 0xc1, 0x17, 0x5d, 0xe8, 0xf0, 0x93, 0x94, 0x0c, - 0x45, 0x67, 0x26, 0x67, 0xde, 0x7e, 0xfb, 0xa8, 0xda, 0xbd, - 0x07, 0xdf, 0xcf, 0x45, 0x04, 0x6d, 0xbd, 0x69, 0x8b, 0xfb, - 0xc1, 0x72, 0xc0, 0xfc, 0x03, 0x04, 0xf2, 0x82, 0xc4, 0x7b, - 0x6a, 0x3e, 0xec, 0x53, 0x7a, 0xe3, 0x4e, 0xa8, 0xc9, 0xf9, - 0x1f, 0x2a, 0x13, 0x0d, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, - 0x40, 0x49, 0xb8, 0x61, 0xc9, 0xd3, 0x87, 0x11, 0x87, 0xeb, - 0x06, 0x21, 0x49, 0x96, 0xd2, 0x0b, 0xc7, 0xf5, 0x0c, 0x1e, - 0x99, 0x8b, 0x47, 0xd9, 0x6c, 0x43, 0x9e, 0x2d, 0x65, 0x7d, - 0xcc, 0xc2, 0x8b, 0x1a, 0x6f, 0x2b, 0x55, 0xbe, 0xb3, 0x9f, - 0xd1, 0xe2, 0x9a, 0xde, 0x1d, 0xac, 0xec, 0x67, 0xec, 0xa5, - 0xbf, 0x9c, 0x30, 0xd6, 0xf9, 0x0a, 0x1a, 0x48, 0xf3, 0xc2, - 0x93, 0x3a, 0x17, 0x27, 0x21, 0x02, 0x21, 0x00, 0xfc, 0x8d, - 0xfb, 0xee, 0x8a, 0xaa, 0x45, 0x19, 0x4b, 0xf0, 0x68, 0xb0, - 0x02, 0x38, 0x3e, 0x03, 0x6b, 0x24, 0x77, 0x20, 0xbd, 0x5e, - 0x6c, 0x76, 0xdb, 0xc9, 0xe1, 0x43, 0xa3, 0x40, 0x62, 0x6f, - 0x02, 0x21, 0x00, 0xd5, 0xd1, 0xb4, 0x4d, 0x03, 0x40, 0x69, - 0x3f, 0x9a, 0xa7, 0x44, 0x15, 0x28, 0x1e, 0xa5, 0x5f, 0xcf, - 0x97, 0x21, 0x12, 0xb3, 0xe6, 0x1c, 0x9a, 0x8d, 0xb7, 0xb4, - 0x80, 0x3a, 0x9c, 0xb0, 0x43, 0x02, 0x20, 0x71, 0xf0, 0xa0, - 0xab, 0x82, 0xf5, 0xc4, 0x8c, 0xe0, 0x1c, 0xcb, 0x2e, 0x35, - 0x22, 0x28, 0xa0, 0x24, 0x33, 0x64, 0x67, 0x69, 0xe7, 0xf2, - 0xa9, 0x41, 0x09, 0x78, 0x4e, 0xaa, 0x95, 0x3e, 0x93, 0x02, - 0x21, 0x00, 0x85, 0xcc, 0x4d, 0xd9, 0x0b, 0x39, 0xd9, 0x22, - 0x75, 0xf2, 0x49, 0x46, 0x3b, 0xee, 0xc1, 0x69, 0x6d, 0x0b, - 0x93, 0x24, 0x92, 0xf2, 0x61, 0xdf, 0xcc, 0xe2, 0xb1, 0xce, - 0xb3, 0xde, 0xac, 0xe5, 0x02, 0x21, 0x00, 0x9c, 0x23, 0x6a, - 0x95, 0xa6, 0xfe, 0x1e, 0xd8, 0x0c, 0x3f, 0x6e, 0xe6, 0x0a, - 0xeb, 0x97, 0xd6, 0x36, 0x1c, 0x80, 0xc1, 0x02, 0x87, 0x0d, - 0x4d, 0xfe, 0x28, 0x02, 0x1e, 0xde, 0xe1, 0xcc, 0x72 ), - PUBLIC ( 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b, 0x00, - 0x30, 0x48, 0x02, 0x41, 0x00, 0xd2, 0xf1, 0x04, 0x67, 0xf6, - 0x2c, 0x96, 0x07, 0xa6, 0xbd, 0x85, 0xac, 0xc1, 0x17, 0x5d, - 0xe8, 0xf0, 0x93, 0x94, 0x0c, 0x45, 0x67, 0x26, 0x67, 0xde, - 0x7e, 0xfb, 0xa8, 0xda, 0xbd, 0x07, 0xdf, 0xcf, 0x45, 0x04, - 0x6d, 0xbd, 0x69, 0x8b, 0xfb, 0xc1, 0x72, 0xc0, 0xfc, 0x03, - 0x04, 0xf2, 0x82, 0xc4, 0x7b, 0x6a, 0x3e, 0xec, 0x53, 0x7a, - 0xe3, 0x4e, 0xa8, 0xc9, 0xf9, 0x1f, 0x2a, 0x13, 0x0d, 0x02, - 0x03, 0x01, 0x00, 0x01 ), - PLAINTEXT ( 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x0a ), - CIPHERTEXT ( 0x39, 0xff, 0x5c, 0x54, 0x65, 0x3e, 0x6a, 0xab, 0xc0, 0x62, - 0x91, 0xb2, 0xbf, 0x1d, 0x73, 0x5b, 0xd5, 0x4c, 0xbd, 0x16, - 0x0f, 0x24, 0xc9, 0xf5, 0xa7, 0xdd, 0x94, 0xd6, 0xf8, 0xae, - 0xd3, 0xa0, 0x9f, 0x4d, 0xff, 0x8d, 0x81, 0x34, 0x47, 0xff, - 0x2a, 0x87, 0x96, 0xd3, 0x17, 0x5d, 0x93, 0x4d, 0x7b, 0x27, - 0x88, 0x4f, 0xec, 0x43, 0x9c, 0xed, 0xb3, 0xf2, 0x19, 0x89, - 0x38, 0x43, 0xf9, 0x41 ) ); - -/** Random message MD5 signature test */ -RSA_SIGNATURE_TEST ( md5_test, - PRIVATE ( 0x30, 0x82, 0x01, 0x3b, 0x02, 0x01, 0x00, 0x02, 0x41, 0x00, - 0xf9, 0x3f, 0x78, 0x44, 0xe2, 0x0e, 0x25, 0xf1, 0x0e, 0x94, - 0xcd, 0xca, 0x6f, 0x9e, 0xea, 0x6d, 0xdf, 0xcd, 0xa0, 0x7c, - 0xe2, 0x21, 0xeb, 0xde, 0xa6, 0x01, 0x4b, 0xb0, 0x76, 0x4b, - 0xd8, 0x8b, 0x19, 0x83, 0xb4, 0xbe, 0x45, 0xde, 0x3d, 0x46, - 0x61, 0x0f, 0x11, 0xe2, 0x2c, 0xf5, 0xb0, 0x63, 0xa0, 0x84, - 0xc0, 0xaf, 0x4e, 0xbe, 0x6a, 0xd3, 0x84, 0x3f, 0xec, 0x42, - 0x17, 0xe9, 0x25, 0xe1, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, - 0x40, 0x62, 0x7d, 0x93, 0x1f, 0xdd, 0x17, 0xec, 0x24, 0x42, - 0x37, 0xc8, 0xce, 0x0a, 0xa7, 0x88, 0x49, 0x5c, 0x9b, 0x9b, - 0xa4, 0x5d, 0x93, 0x3b, 0xea, 0x62, 0x3c, 0xb6, 0xd5, 0x07, - 0x19, 0xd7, 0x79, 0xf0, 0x3b, 0xab, 0xa3, 0xa5, 0x43, 0x35, - 0x8d, 0x58, 0x40, 0xa0, 0x95, 0xc5, 0x63, 0x28, 0x28, 0xda, - 0x13, 0x28, 0xdf, 0xc9, 0x05, 0xdc, 0x69, 0x46, 0xff, 0x2a, - 0xfb, 0xe4, 0xd1, 0x23, 0xa5, 0x02, 0x21, 0x00, 0xfc, 0xef, - 0x3b, 0x9d, 0x9d, 0x69, 0xf3, 0x66, 0x0a, 0x2b, 0x52, 0xd6, - 0x61, 0x14, 0x90, 0x6e, 0x7d, 0x3c, 0x08, 0x4b, 0x98, 0x44, - 0x00, 0xf2, 0xa4, 0x16, 0x2d, 0xd1, 0xf9, 0xa0, 0x1e, 0x37, - 0x02, 0x21, 0x00, 0xfc, 0x44, 0xcc, 0x7c, 0xc0, 0x26, 0x9a, - 0x0a, 0x6e, 0xda, 0x17, 0x05, 0x7d, 0x66, 0x8d, 0x29, 0x1a, - 0x44, 0xbf, 0x33, 0x76, 0xae, 0x8d, 0xe8, 0xb5, 0xed, 0xb8, - 0x6f, 0xdc, 0xfe, 0x10, 0xa7, 0x02, 0x20, 0x76, 0x48, 0x8a, - 0x60, 0x93, 0x14, 0xd1, 0x36, 0x8e, 0xda, 0xe3, 0xca, 0x4d, - 0x6c, 0x08, 0x7f, 0x23, 0x21, 0xc7, 0xdf, 0x52, 0x3d, 0xbb, - 0x13, 0xbd, 0x98, 0x81, 0xa5, 0x08, 0x4f, 0xd0, 0xd1, 0x02, - 0x21, 0x00, 0xd9, 0xa3, 0x11, 0x37, 0xdf, 0x1e, 0x6e, 0x6e, - 0xe9, 0xcb, 0xc5, 0x68, 0xbb, 0x13, 0x2a, 0x5d, 0x77, 0x88, - 0x2f, 0xdc, 0x5a, 0x5b, 0xa5, 0x9a, 0x4a, 0xba, 0x58, 0x10, - 0x49, 0xfb, 0xf6, 0xa9, 0x02, 0x21, 0x00, 0x89, 0xe8, 0x47, - 0x5b, 0x20, 0x04, 0x3b, 0x0f, 0xb9, 0xe0, 0x1d, 0xab, 0xcf, - 0xe8, 0x72, 0xfd, 0x7d, 0x17, 0x85, 0xc8, 0xd8, 0xbd, 0x1a, - 0x92, 0xe0, 0xbc, 0x7a, 0xc7, 0x31, 0xbe, 0xef, 0xf4 ), - PUBLIC ( 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b, 0x00, - 0x30, 0x48, 0x02, 0x41, 0x00, 0xf9, 0x3f, 0x78, 0x44, 0xe2, - 0x0e, 0x25, 0xf1, 0x0e, 0x94, 0xcd, 0xca, 0x6f, 0x9e, 0xea, - 0x6d, 0xdf, 0xcd, 0xa0, 0x7c, 0xe2, 0x21, 0xeb, 0xde, 0xa6, - 0x01, 0x4b, 0xb0, 0x76, 0x4b, 0xd8, 0x8b, 0x19, 0x83, 0xb4, - 0xbe, 0x45, 0xde, 0x3d, 0x46, 0x61, 0x0f, 0x11, 0xe2, 0x2c, - 0xf5, 0xb0, 0x63, 0xa0, 0x84, 0xc0, 0xaf, 0x4e, 0xbe, 0x6a, - 0xd3, 0x84, 0x3f, 0xec, 0x42, 0x17, 0xe9, 0x25, 0xe1, 0x02, - 0x03, 0x01, 0x00, 0x01 ), - PLAINTEXT ( 0x9d, 0x5b, 0x46, 0x42, 0x27, 0xc0, 0xf1, 0x4b, 0xe5, 0x9e, - 0xd3, 0x10, 0xa1, 0xeb, 0x16, 0xc3, 0xc6, 0x8f, 0x1a, 0x18, - 0x86, 0xc3, 0x92, 0x15, 0x2d, 0x65, 0xa0, 0x40, 0xe1, 0x3e, - 0x29, 0x79, 0x7c, 0xd4, 0x08, 0xef, 0x53, 0xeb, 0x08, 0x07, - 0x39, 0x21, 0xb3, 0x40, 0xff, 0x4b, 0xc7, 0x76, 0xb9, 0x12, - 0x32, 0x41, 0xcc, 0x5a, 0x86, 0x5c, 0x2e, 0x0b, 0x05, 0xd8, - 0x56, 0xd4, 0xdf, 0x6f, 0x2c, 0xf0, 0xbf, 0x4b, 0x6f, 0x68, - 0xde, 0x39, 0x4a, 0x3e, 0xae, 0x44, 0xb9, 0xc6, 0x24, 0xb3, - 0x83, 0x2e, 0x9f, 0xf5, 0x6d, 0x61, 0xc3, 0x8e, 0xe8, 0x8f, - 0xa6, 0x87, 0x58, 0x3f, 0x36, 0x13, 0xf4, 0x7e, 0xf0, 0x20, - 0x47, 0x87, 0x3f, 0x21, 0x6e, 0x51, 0x3c, 0xf1, 0xef, 0xca, - 0x9f, 0x77, 0x9c, 0x91, 0x4f, 0xd4, 0x56, 0xc0, 0x39, 0x11, - 0xab, 0x15, 0x2c, 0x5e, 0xad, 0x40, 0x09, 0xe6, 0xde, 0xe5, - 0x77, 0x60, 0x19, 0xd4, 0x0d, 0x77, 0x76, 0x24, 0x8b, 0xe6, - 0xdd, 0xa5, 0x8d, 0x4a, 0x55, 0x3a, 0xdf, 0xf8, 0x29, 0xfb, - 0x47, 0x8a, 0xfe, 0x98, 0x34, 0xf6, 0x30, 0x7f, 0x09, 0x03, - 0x26, 0x05, 0xd5, 0x46, 0x18, 0x96, 0xca, 0x96, 0x5b, 0x66, - 0xf2, 0x8d, 0xfc, 0xfc, 0x37, 0xf7, 0xc7, 0x6d, 0x6c, 0xd8, - 0x24, 0x0c, 0x6a, 0xec, 0x82, 0x5c, 0x72, 0xf1, 0xfc, 0x05, - 0xed, 0x8e, 0xe8, 0xd9, 0x8b, 0x8b, 0x67, 0x02, 0x95 ), - &md5_algorithm, - SIGNATURE ( 0xdb, 0x56, 0x3d, 0xea, 0xae, 0x81, 0x4b, 0x3b, 0x2e, 0x8e, - 0xb8, 0xee, 0x13, 0x61, 0xc6, 0xe7, 0xd7, 0x50, 0xcd, 0x0d, - 0x34, 0x3a, 0xfe, 0x9a, 0x8d, 0xf8, 0xfb, 0xd6, 0x7e, 0xbd, - 0xdd, 0xb3, 0xf9, 0xfb, 0xe0, 0xf8, 0xe7, 0x71, 0x03, 0xe6, - 0x55, 0xd5, 0xf4, 0x02, 0x3c, 0xb5, 0xbc, 0x95, 0x2b, 0x66, - 0x56, 0xec, 0x2f, 0x8e, 0xa7, 0xae, 0xd9, 0x80, 0xb3, 0xaa, - 0xac, 0x45, 0x00, 0xa8 ) ); - -/** Random message SHA-1 signature test */ -RSA_SIGNATURE_TEST ( sha1_test, - PRIVATE ( 0x30, 0x82, 0x01, 0x3b, 0x02, 0x01, 0x00, 0x02, 0x41, 0x00, - 0xe0, 0x3a, 0x8d, 0x35, 0xe1, 0x92, 0x2f, 0xea, 0x0d, 0x82, - 0x60, 0x2e, 0xb6, 0x0b, 0x02, 0xd3, 0xf4, 0x39, 0xfb, 0x06, - 0x43, 0x8e, 0xa1, 0x7c, 0xc5, 0xae, 0x0d, 0xc7, 0xee, 0x83, - 0xb3, 0x63, 0x20, 0x92, 0x34, 0xe2, 0x94, 0x3d, 0xdd, 0xbb, - 0x6c, 0x64, 0x69, 0x68, 0x25, 0x24, 0x81, 0x4b, 0x4d, 0x48, - 0x5a, 0xd2, 0x29, 0x14, 0xeb, 0x38, 0xdd, 0x3e, 0xb5, 0x57, - 0x45, 0x9b, 0xed, 0x33, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, - 0x40, 0x3d, 0xa9, 0x1c, 0x47, 0xe2, 0xdd, 0xf6, 0x7b, 0x20, - 0x77, 0xe7, 0xc7, 0x30, 0x9c, 0x5a, 0x8c, 0xba, 0xae, 0x6f, - 0x0f, 0x4b, 0xe8, 0x9f, 0x13, 0xd6, 0xb0, 0x84, 0x6d, 0xa4, - 0x73, 0x67, 0x12, 0xa9, 0x7c, 0x75, 0xaf, 0x62, 0x92, 0x7b, - 0x80, 0xaf, 0x39, 0x7d, 0x01, 0xb3, 0x43, 0xc8, 0x0d, 0x17, - 0x7f, 0x82, 0x59, 0x46, 0xb8, 0xe5, 0x4e, 0xba, 0x5e, 0x71, - 0x5c, 0xba, 0x62, 0x06, 0x91, 0x02, 0x21, 0x00, 0xf7, 0xaa, - 0xb6, 0x9c, 0xc8, 0xad, 0x68, 0xa8, 0xd7, 0x25, 0xb1, 0xb5, - 0x91, 0xd4, 0xc7, 0xd6, 0x69, 0x51, 0x5d, 0x04, 0xed, 0xd8, - 0xc6, 0xea, 0x69, 0xd2, 0x24, 0xbe, 0x5e, 0x7c, 0x89, 0xa5, - 0x02, 0x21, 0x00, 0xe7, 0xc5, 0xf4, 0x01, 0x35, 0xe0, 0x16, - 0xb5, 0x13, 0x86, 0x14, 0x5a, 0x6a, 0x8d, 0x03, 0x90, 0xae, - 0x7d, 0x3a, 0xc1, 0xfe, 0x8c, 0xa0, 0x4a, 0xb4, 0x94, 0x50, - 0x58, 0xa4, 0xc6, 0x73, 0xf7, 0x02, 0x21, 0x00, 0xe2, 0xda, - 0x16, 0x6c, 0x63, 0x90, 0x1a, 0xc6, 0x54, 0x53, 0x2d, 0x84, - 0x8f, 0x70, 0x24, 0x1f, 0x6b, 0xd6, 0x5f, 0xea, 0x8c, 0xe5, - 0xbb, 0xc5, 0xa9, 0x6a, 0x17, 0xc7, 0xdb, 0x8a, 0x1d, 0x15, - 0x02, 0x21, 0x00, 0xe4, 0x2a, 0x7e, 0xe4, 0x76, 0x2a, 0x2d, - 0x90, 0x83, 0x30, 0xda, 0x76, 0x8c, 0x30, 0x58, 0x13, 0x25, - 0x83, 0x88, 0xc5, 0x93, 0x96, 0xd2, 0xf1, 0xd8, 0x45, 0xad, - 0xb7, 0x26, 0x37, 0x6b, 0xcf, 0x02, 0x20, 0x73, 0x58, 0x1f, - 0x0a, 0xcd, 0x0c, 0x83, 0x27, 0xcc, 0x15, 0xa2, 0x1e, 0x07, - 0x32, 0x1b, 0xa3, 0xc6, 0xa6, 0xb8, 0x83, 0x97, 0x48, 0x45, - 0x50, 0x6c, 0x37, 0x45, 0xa5, 0x54, 0x2a, 0x59, 0x3c ), - PUBLIC ( 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b, 0x00, - 0x30, 0x48, 0x02, 0x41, 0x00, 0xe0, 0x3a, 0x8d, 0x35, 0xe1, - 0x92, 0x2f, 0xea, 0x0d, 0x82, 0x60, 0x2e, 0xb6, 0x0b, 0x02, - 0xd3, 0xf4, 0x39, 0xfb, 0x06, 0x43, 0x8e, 0xa1, 0x7c, 0xc5, - 0xae, 0x0d, 0xc7, 0xee, 0x83, 0xb3, 0x63, 0x20, 0x92, 0x34, - 0xe2, 0x94, 0x3d, 0xdd, 0xbb, 0x6c, 0x64, 0x69, 0x68, 0x25, - 0x24, 0x81, 0x4b, 0x4d, 0x48, 0x5a, 0xd2, 0x29, 0x14, 0xeb, - 0x38, 0xdd, 0x3e, 0xb5, 0x57, 0x45, 0x9b, 0xed, 0x33, 0x02, - 0x03, 0x01, 0x00, 0x01 ), - PLAINTEXT ( 0xf7, 0x42, 0x01, 0x57, 0x6b, 0x70, 0xcc, 0x4a, 0xdc, 0xed, - 0x12, 0x83, 0x3f, 0xef, 0x27, 0xc1, 0x3c, 0x85, 0xdd, 0x5e, - 0x0a, 0x34, 0x98, 0xf9, 0x21, 0xd3, 0x24, 0x2a, 0x5a, 0xb2, - 0xdf, 0x60, 0x21, 0x28, 0x7c, 0x5b, 0x7a, 0xbe, 0xcb, 0xea, - 0xbc, 0xd6, 0x0e, 0xae, 0x94, 0x64, 0x21, 0xda, 0x28, 0x66, - 0x2f, 0x71, 0x48, 0xe5, 0xea, 0x59, 0x38, 0x28, 0x3e, 0xed, - 0x3b, 0x95, 0x4f, 0x3d, 0x72, 0x2a, 0x00, 0xf3, 0x95, 0x4d, - 0xf0, 0x02, 0x71, 0x63, 0x5a, 0xbc, 0x84, 0xd1, 0x81, 0x3f, - 0x16, 0xcd, 0x28, 0x3d, 0x47, 0xa2, 0xee, 0xa1, 0x2f, 0x84, - 0x8a, 0x22, 0x02, 0x88, 0xd7, 0x83, 0x06, 0x4a, 0x9f, 0xea, - 0x0f, 0x15, 0x48, 0x43, 0x58, 0x6d, 0x39, 0x78, 0x5a, 0x43, - 0x3f, 0xed, 0x6f, 0x68, 0xde, 0x9c, 0xfe, 0xd3, 0x67, 0x74, - 0x08, 0x46, 0x7d, 0x20, 0x22, 0x60, 0x8c, 0x37, 0x35, 0x46, - 0x56, 0x19, 0x3c, 0xfa, 0xa5, 0x40, 0xac, 0x44, 0x90, 0x8a, - 0xa5, 0x80, 0xb2, 0x32, 0xbc, 0xb4, 0x3f, 0x3e, 0x5e, 0xd4, - 0x51, 0xa9, 0x2e, 0xd9, 0x7f, 0x5e, 0x32, 0xb1, 0x24, 0x35, - 0x88, 0x71, 0x3a, 0x01, 0x86, 0x5c, 0xa2, 0xe2, 0x2d, 0x02, - 0x30, 0x91, 0x1c, 0xaa, 0x6c, 0x24, 0x42, 0x1b, 0x1a, 0xba, - 0x30, 0x40, 0x49, 0x83, 0xd9, 0xd7, 0x66, 0x7e, 0x5c, 0x1a, - 0x4b, 0x7f, 0xa6, 0x8e, 0x8a, 0xd6, 0x0c, 0x65, 0x75 ), - &sha1_algorithm, - SIGNATURE ( 0xa5, 0x5a, 0x8a, 0x67, 0x81, 0x76, 0x7e, 0xad, 0x99, 0x22, - 0xf1, 0x47, 0x64, 0xd2, 0xfb, 0x81, 0x45, 0xeb, 0x85, 0x56, - 0xf8, 0x7d, 0xb8, 0xec, 0x41, 0x17, 0x84, 0xf7, 0x2b, 0xbb, - 0x2b, 0x8f, 0xb6, 0xb8, 0x8f, 0xc6, 0xab, 0x39, 0xbc, 0xa3, - 0x72, 0xb3, 0x63, 0x45, 0x5a, 0xe0, 0xac, 0xf8, 0x1c, 0x83, - 0x48, 0x84, 0x89, 0x8a, 0x6b, 0xdf, 0x93, 0xa0, 0xc3, 0x0b, - 0x0e, 0x3d, 0x80, 0x80 ) ); - -/** Random message SHA-256 signature test */ -RSA_SIGNATURE_TEST ( sha256_test, - PRIVATE ( 0x30, 0x82, 0x01, 0x3a, 0x02, 0x01, 0x00, 0x02, 0x41, 0x00, - 0xa5, 0xe9, 0xdb, 0xa9, 0x1a, 0x6e, 0xd6, 0x4c, 0x25, 0x50, - 0xfe, 0x61, 0x77, 0x08, 0x7a, 0x80, 0x36, 0xcb, 0x88, 0x49, - 0x5c, 0xe8, 0xaa, 0x15, 0xf8, 0xb3, 0xd6, 0x78, 0x51, 0x46, - 0x86, 0x3a, 0x5f, 0xd5, 0x9f, 0xab, 0xfe, 0x74, 0x8c, 0x53, - 0x0d, 0xb5, 0x3c, 0x7d, 0x2c, 0x35, 0x88, 0x3f, 0xde, 0xa2, - 0xce, 0x46, 0x94, 0x30, 0xa9, 0x76, 0xee, 0x25, 0xc5, 0x5d, - 0xa6, 0xa6, 0x3a, 0xa5, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, - 0x40, 0x14, 0x4b, 0xbc, 0x4c, 0x3e, 0x68, 0x8a, 0x9c, 0x7c, - 0x00, 0x21, 0x6e, 0x28, 0xd2, 0x87, 0xb1, 0xc1, 0x82, 0x3a, - 0x64, 0xc7, 0x11, 0xcb, 0x24, 0xae, 0xec, 0xc8, 0xf2, 0xa4, - 0xf6, 0x9c, 0x9a, 0xbb, 0x05, 0x94, 0x80, 0x9b, 0xc1, 0x21, - 0x83, 0x36, 0x23, 0xba, 0x04, 0x20, 0x23, 0x06, 0x48, 0xa7, - 0xa4, 0xe6, 0x31, 0x8e, 0xa1, 0x73, 0xe5, 0x6b, 0x83, 0x4c, - 0x3a, 0xb8, 0xd8, 0x22, 0x61, 0x02, 0x21, 0x00, 0xd4, 0xdf, - 0xcb, 0x21, 0x4a, 0x9a, 0x35, 0x52, 0x02, 0x99, 0xcc, 0x40, - 0x83, 0x65, 0x30, 0x1f, 0x9d, 0x13, 0xd6, 0xd1, 0x79, 0x10, - 0xce, 0x5b, 0xeb, 0x25, 0xa2, 0x39, 0x4e, 0xdf, 0x1c, 0x29, - 0x02, 0x21, 0x00, 0xc7, 0x86, 0x8f, 0xd9, 0x88, 0xe9, 0x98, - 0x4b, 0x5c, 0x50, 0x06, 0x94, 0x05, 0x59, 0x31, 0x25, 0xa7, - 0xa8, 0xe6, 0x95, 0x2b, 0xe3, 0x74, 0x93, 0x51, 0xa8, 0x8e, - 0x3d, 0xe2, 0xe0, 0xfa, 0x1d, 0x02, 0x20, 0x6e, 0xe3, 0x81, - 0x31, 0xff, 0x65, 0xa3, 0x1e, 0xec, 0x61, 0xe7, 0x67, 0x37, - 0xcb, 0x0f, 0x2d, 0x78, 0xaa, 0xab, 0xfd, 0x84, 0x5e, 0x3f, - 0xd0, 0xdc, 0x06, 0x47, 0xa2, 0x28, 0xb6, 0xca, 0x39, 0x02, - 0x20, 0x13, 0x7d, 0x9f, 0x9b, 0xbe, 0x76, 0x23, 0x3c, 0x69, - 0x5e, 0x1f, 0xe6, 0x61, 0xc7, 0x5e, 0xb7, 0xb0, 0xf3, 0x1c, - 0xe3, 0x41, 0x90, 0x4c, 0x98, 0xff, 0x87, 0x19, 0xae, 0x0d, - 0xf5, 0xb0, 0x39, 0x02, 0x21, 0x00, 0xb7, 0xeb, 0xcd, 0x01, - 0x2e, 0x23, 0x42, 0x4f, 0x0c, 0x6f, 0xde, 0xc8, 0x4f, 0xa7, - 0x69, 0x09, 0x12, 0x34, 0xb6, 0x95, 0x4d, 0xb8, 0x7f, 0x16, - 0xd0, 0x48, 0x17, 0x4a, 0x9e, 0x6e, 0x5e, 0xe2 ), - PUBLIC ( 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b, 0x00, - 0x30, 0x48, 0x02, 0x41, 0x00, 0xa5, 0xe9, 0xdb, 0xa9, 0x1a, - 0x6e, 0xd6, 0x4c, 0x25, 0x50, 0xfe, 0x61, 0x77, 0x08, 0x7a, - 0x80, 0x36, 0xcb, 0x88, 0x49, 0x5c, 0xe8, 0xaa, 0x15, 0xf8, - 0xb3, 0xd6, 0x78, 0x51, 0x46, 0x86, 0x3a, 0x5f, 0xd5, 0x9f, - 0xab, 0xfe, 0x74, 0x8c, 0x53, 0x0d, 0xb5, 0x3c, 0x7d, 0x2c, - 0x35, 0x88, 0x3f, 0xde, 0xa2, 0xce, 0x46, 0x94, 0x30, 0xa9, - 0x76, 0xee, 0x25, 0xc5, 0x5d, 0xa6, 0xa6, 0x3a, 0xa5, 0x02, - 0x03, 0x01, 0x00, 0x01 ), - PLAINTEXT ( 0x60, 0xe7, 0xba, 0x9d, 0x5a, 0xe3, 0x2d, 0xfa, 0x5f, 0x47, - 0xdb, 0x93, 0x24, 0x2c, 0xc4, 0xe2, 0x61, 0xf3, 0x89, 0x4d, - 0x67, 0xad, 0xc8, 0xae, 0xf8, 0xe2, 0xfb, 0x52, 0x0f, 0x8d, - 0x18, 0x7e, 0x30, 0xd8, 0x8d, 0x94, 0x07, 0x92, 0x70, 0x91, - 0xaf, 0x3b, 0x92, 0xa6, 0x0f, 0x7a, 0x9b, 0x46, 0x85, 0x8c, - 0x2a, 0x5a, 0x78, 0x5d, 0x1e, 0x13, 0xbf, 0xe6, 0x12, 0xbd, - 0xb1, 0xbb, 0x92, 0x6d, 0x11, 0xed, 0xe1, 0xe4, 0x6e, 0x88, - 0x4d, 0x0b, 0x51, 0xd6, 0xfd, 0x6a, 0xb2, 0x9b, 0xd3, 0xfd, - 0x56, 0xec, 0xd9, 0xd6, 0xb8, 0xc5, 0xfd, 0x0c, 0xf7, 0x55, - 0x5f, 0xc5, 0x6f, 0xbc, 0xbb, 0x78, 0x2f, 0x50, 0x08, 0x65, - 0x0f, 0x12, 0xca, 0x5a, 0xea, 0x52, 0xd0, 0x94, 0x76, 0x17, - 0xe4, 0xba, 0x97, 0xba, 0x11, 0xbf, 0x05, 0x7e, 0xa1, 0xfd, - 0x7d, 0xb5, 0xf1, 0x3a, 0x7e, 0x6f, 0xa1, 0xaa, 0x97, 0x66, - 0x5d, 0x72, 0x76, 0x45, 0x40, 0xb5, 0x22, 0x71, 0x43, 0xe8, - 0x77, 0x76, 0xc8, 0x1b, 0xd2, 0xd1, 0x33, 0x05, 0x64, 0xa9, - 0xc2, 0xa8, 0x40, 0x40, 0x21, 0xdd, 0xcf, 0x07, 0x7e, 0xf2, - 0x4b, 0x80, 0x3d, 0x0f, 0x67, 0xf6, 0xbd, 0xc2, 0xc7, 0xe3, - 0x91, 0x71, 0xd6, 0x2d, 0xa1, 0xae, 0x81, 0x0c, 0xed, 0x54, - 0x48, 0x79, 0x8a, 0x78, 0x05, 0x74, 0x4d, 0x4f, 0xf0, 0xe0, - 0x3c, 0x41, 0x5c, 0x04, 0x0b, 0x68, 0x57, 0xc5, 0xd6 ), - &sha256_algorithm, - SIGNATURE ( 0x02, 0x2e, 0xc5, 0x2a, 0x2b, 0x7f, 0xb4, 0x80, 0xca, 0x9d, - 0x96, 0x5b, 0xaf, 0x1f, 0x72, 0x5b, 0x6e, 0xf1, 0x69, 0x7f, - 0x4d, 0x41, 0xd5, 0x9f, 0x00, 0xdc, 0x47, 0xf4, 0x68, 0x8f, - 0xda, 0xfc, 0xd1, 0x23, 0x96, 0x11, 0x1d, 0xc0, 0x1b, 0x1d, - 0x36, 0x66, 0x2a, 0xf9, 0x21, 0x51, 0xcb, 0xb9, 0x7d, 0x24, - 0x7d, 0x38, 0x37, 0xc4, 0xea, 0xdd, 0x3a, 0x6f, 0xa8, 0x65, - 0x60, 0x73, 0x77, 0x3c ) ); - -/** - * Perform RSA self-tests - * - */ -static void rsa_test_exec ( void ) { - - rsa_encrypt_decrypt_ok ( &hw_test ); - rsa_signature_ok ( &md5_test ); - rsa_signature_ok ( &sha1_test ); - rsa_signature_ok ( &sha256_test ); -} - -/** RSA self-test */ -struct self_test rsa_test __self_test = { - .name = "rsa", - .exec = rsa_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/setjmp_test.c b/qemu/roms/ipxe/src/tests/setjmp_test.c deleted file mode 100644 index 50ad13f3c..000000000 --- a/qemu/roms/ipxe/src/tests/setjmp_test.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (C) 2015 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * setjmp()/longjmp() tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include - -/** A setjmp()/longjmp() test */ -struct setjmp_test { - /** Jump buffer */ - jmp_buf env; - /** Expected value */ - int expected; - /** Test code file */ - const char *file; - /** Test code line */ - unsigned int line; -}; - -/** Expected jump */ -static struct setjmp_test *jumped; - -/** - * Report a setjmp() test result - * - * @v test setjmp()/longjmp() test - * - * This has to be implemented as a macro since if it were a function - * then the context saved by setjmp() would be invalidated when the - * function returned. - */ -#define setjmp_ok( test ) do { \ - int value; \ - /* Sanity check */ \ - assert ( jumped == NULL ); \ - /* Initialise test */ \ - (test)->expected = 0; \ - (test)->file = __FILE__; \ - (test)->line = __LINE__; \ - /* Perform setjmp() */ \ - value = setjmp ( (test)->env ); \ - /* Report setjmp()/longjmp() result */ \ - setjmp_return_ok ( (test), value ); \ - } while ( 0 ) - -/** - * Report a setjmp()/longjmp() test result - * - * @v test setjmp()/longjmp() test - * @v value Value returned from setjmp() - * - * This function ends up reporting results from either setjmp() or - * longjmp() tests (since calls to longjmp() will return via the - * corresponding setjmp()). It therefore uses the test code file and - * line stored in the test structure, which will represent the line - * from which either setjmp() or longjmp() was called. - */ -static void setjmp_return_ok ( struct setjmp_test *test, int value ) { - - /* Determine whether this was reached via setjmp() or longjmp() */ - if ( value == 0 ) { - /* This is the initial call to setjmp() */ - okx ( test->expected == 0, test->file, test->line ); - okx ( jumped == NULL, test->file, test->line ); - } else { - /* This is reached via a call to longjmp() */ - okx ( value == test->expected, test->file, test->line ); - okx ( jumped == test, test->file, test->line ); - } - - /* Clear expected jump */ - jumped = NULL; -} - -/** - * Report a longjmp() test result - * - * @v test setjmp()/longjmp() test - * @v file Test code file - * @v line Test code line - */ -static void longjmp_okx ( struct setjmp_test *test, int value, - const char *file, unsigned int line ) { - - /* Record expected value. A zero passed to longjmp() should - * result in setjmp() returning a value of one. - */ - test->expected = ( value ? value : 1 ); - - /* Record test code file and line */ - test->file = file; - test->line = line; - - /* Record expected jump */ - jumped = test; - - /* Perform longjmp(). Should return via setjmp_okx() */ - longjmp ( test->env, value ); - - /* longjmp() should never return */ - assert ( 0 ); -} -#define longjmp_ok( test, value ) \ - longjmp_okx ( test, value, __FILE__, __LINE__ ) - -/** - * Perform setjmp()/longjmp() self-tests - * - */ -static void setjmp_test_exec ( void ) { - static struct setjmp_test alpha; - static struct setjmp_test beta; - static int iteration; - - /* This is one of the very few situations in which the - * "for-case" pattern is justified. - */ - for ( iteration = 0 ; iteration < 10 ; iteration++ ) { - DBGC ( jumped, "SETJMP test iteration %d\n", iteration ); - switch ( iteration ) { - case 0: setjmp_ok ( &alpha ); break; - case 1: setjmp_ok ( &beta ); break; - case 2: longjmp_ok ( &alpha, 0 ); - case 3: longjmp_ok ( &alpha, 1 ); - case 4: longjmp_ok ( &alpha, 2 ); - case 5: longjmp_ok ( &beta, 17 ); - case 6: longjmp_ok ( &beta, 29 ); - case 7: longjmp_ok ( &alpha, -1 ); - case 8: longjmp_ok ( &beta, 0 ); - case 9: longjmp_ok ( &beta, 42 ); - } - } -} - -/** setjmp()/longjmp() self-test */ -struct self_test setjmp_test __self_test = { - .name = "setjmp", - .exec = setjmp_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/settings_test.c b/qemu/roms/ipxe/src/tests/settings_test.c deleted file mode 100644 index f7fb35d0d..000000000 --- a/qemu/roms/ipxe/src/tests/settings_test.c +++ /dev/null @@ -1,424 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Settings self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include - -/** Define inline raw data */ -#define RAW(...) { __VA_ARGS__ } - -/** - * Report a formatted-store test result - * - * @v _settings Settings block - * @v _setting Setting - * @v _formatted Formatted value - * @v _raw_array Expected raw value - */ -#define storef_ok( _settings, _setting, _formatted, _raw_array ) do { \ - const uint8_t expected[] = _raw_array; \ - uint8_t actual[ sizeof ( expected ) ]; \ - int len; \ - \ - ok ( storef_setting ( _settings, _setting, _formatted ) == 0 ); \ - len = fetch_setting ( _settings, _setting, NULL, NULL, actual, \ - sizeof ( actual ) ); \ - if ( len >= 0 ) { \ - DBGC ( _settings, "Stored %s \"%s\", got:\n", \ - (_setting)->type->name, _formatted ); \ - DBGC_HDA ( _settings, 0, actual, len ); \ - } else { \ - DBGC ( _settings, "Stored %s \"%s\", got error %s\n", \ - (_setting)->type->name, _formatted, \ - strerror ( len ) ); \ - } \ - ok ( len == ( int ) sizeof ( actual ) ); \ - ok ( memcmp ( actual, expected, sizeof ( actual ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report a formatted-fetch test result - * - * @v _settings Settings block - * @v _setting Setting - * @v _raw_array Raw value - * @v _formatted Expected formatted value - */ -#define fetchf_ok( _settings, _setting, _raw_array, _formatted ) do { \ - const uint8_t raw[] = _raw_array; \ - char actual[ strlen ( _formatted ) + 1 ]; \ - int len; \ - \ - ok ( store_setting ( _settings, _setting, raw, \ - sizeof ( raw ) ) == 0 ); \ - len = fetchf_setting ( _settings, _setting, NULL, NULL, actual, \ - sizeof ( actual ) ); \ - DBGC ( _settings, "Fetched %s \"%s\" from:\n", \ - (_setting)->type->name, actual ); \ - DBGC_HDA ( _settings, 0, raw, sizeof ( raw ) ); \ - ok ( len == ( int ) ( sizeof ( actual ) - 1 ) ); \ - ok ( strcmp ( actual, _formatted ) == 0 ); \ - } while ( 0 ) - -/** - * Report a numeric-store test result - * - * @v _settings Settings block - * @v _setting Setting - * @v _numeric Numeric value - * @v _raw_array Expected raw value - */ -#define storen_ok( _settings, _setting, _numeric, _raw_array ) do { \ - const uint8_t expected[] = _raw_array; \ - uint8_t actual[ sizeof ( expected ) ]; \ - int len; \ - \ - ok ( storen_setting ( _settings, _setting, _numeric ) == 0 ); \ - len = fetch_setting ( _settings, _setting, NULL, NULL, actual, \ - sizeof ( actual ) ); \ - if ( len >= 0 ) { \ - DBGC ( _settings, "Stored %s %#lx, got:\n", \ - (_setting)->type->name, \ - ( unsigned long ) _numeric ); \ - DBGC_HDA ( _settings, 0, actual, len ); \ - } else { \ - DBGC ( _settings, "Stored %s %#lx, got error %s\n", \ - (_setting)->type->name, \ - ( unsigned long ) _numeric, strerror ( len ) ); \ - } \ - ok ( len == ( int ) sizeof ( actual ) ); \ - ok ( memcmp ( actual, expected, sizeof ( actual ) ) == 0 ); \ - } while ( 0 ) - -/** - * Report a numeric-fetch test result - * - * @v _settings Settings block - * @v _setting Setting - * @v _raw_array Raw array - * @v _numeric Expected numeric value - */ -#define fetchn_ok( _settings, _setting, _raw_array, _numeric ) do { \ - const uint8_t raw[] = _raw_array; \ - unsigned long actual; \ - \ - ok ( store_setting ( _settings, _setting, raw, \ - sizeof ( raw ) ) == 0 ); \ - ok ( fetchn_setting ( _settings, _setting, NULL, NULL, \ - &actual ) == 0 ); \ - DBGC ( _settings, "Fetched %s %#lx from:\n", \ - (_setting)->type->name, actual ); \ - DBGC_HDA ( _settings, 0, raw, sizeof ( raw ) ); \ - ok ( actual == ( unsigned long ) _numeric ); \ - } while ( 0 ) - -/** Test generic settings block */ -struct generic_settings test_generic_settings = { - .settings = { - .refcnt = NULL, - .siblings = - LIST_HEAD_INIT ( test_generic_settings.settings.siblings ), - .children = - LIST_HEAD_INIT ( test_generic_settings.settings.children ), - .op = &generic_settings_operations, - }, - .list = LIST_HEAD_INIT ( test_generic_settings.list ), -}; - -/** Test settings block */ -#define test_settings test_generic_settings.settings - -/** Test string setting */ -static struct setting test_string_setting = { - .name = "test_string", - .type = &setting_type_string, -}; - -/** Test IPv4 address setting type */ -static struct setting test_ipv4_setting = { - .name = "test_ipv4", - .type = &setting_type_ipv4, -}; - -/** Test IPv6 address setting type */ -static struct setting test_ipv6_setting = { - .name = "test_ipv6", - .type = &setting_type_ipv6, -}; - -/** Test signed 8-bit integer setting type */ -static struct setting test_int8_setting = { - .name = "test_int8", - .type = &setting_type_int8, -}; - -/** Test signed 16-bit integer setting type */ -static struct setting test_int16_setting = { - .name = "test_int16", - .type = &setting_type_int16, -}; - -/** Test signed 32-bit integer setting type */ -static struct setting test_int32_setting = { - .name = "test_int32", - .type = &setting_type_int32, -}; - -/** Test unsigned 8-bit integer setting type */ -static struct setting test_uint8_setting = { - .name = "test_uint8", - .type = &setting_type_uint8, -}; - -/** Test unsigned 16-bit integer setting type */ -static struct setting test_uint16_setting = { - .name = "test_uint16", - .type = &setting_type_uint16, -}; - -/** Test unsigned 32-bit integer setting type */ -static struct setting test_uint32_setting = { - .name = "test_uint32", - .type = &setting_type_uint32, -}; - -/** Test colon-separated hex string setting type */ -static struct setting test_hex_setting = { - .name = "test_hex", - .type = &setting_type_hex, -}; - -/** Test hyphen-separated hex string setting type */ -static struct setting test_hexhyp_setting = { - .name = "test_hexhyp", - .type = &setting_type_hexhyp, -}; - -/** Test raw hex string setting type */ -static struct setting test_hexraw_setting = { - .name = "test_hexraw", - .type = &setting_type_hexraw, -}; - -/** Test Base64 setting type */ -static struct setting test_base64_setting = { - .name = "test_base64", - .type = &setting_type_base64, -}; - -/** Test UUID setting type */ -static struct setting test_uuid_setting = { - .name = "test_uuid", - .type = &setting_type_uuid, -}; - -/** Test PCI bus:dev.fn setting type */ -static struct setting test_busdevfn_setting = { - .name = "test_busdevfn", - .type = &setting_type_busdevfn, -}; - -/** - * Perform settings self-tests - * - */ -static void settings_test_exec ( void ) { - - /* Register test settings block */ - ok ( register_settings ( &test_settings, NULL, "test" ) == 0 ); - - /* "string" setting type */ - storef_ok ( &test_settings, &test_string_setting, "hello", - RAW ( 'h', 'e', 'l', 'l', 'o' ) ); - fetchf_ok ( &test_settings, &test_string_setting, - RAW ( 'w', 'o', 'r', 'l', 'd' ), "world" ); - - /* "ipv4" setting type */ - storef_ok ( &test_settings, &test_ipv4_setting, "192.168.0.1", - RAW ( 192, 168, 0, 1 ) ); - fetchf_ok ( &test_settings, &test_ipv4_setting, - RAW ( 212, 13, 204, 60 ), "212.13.204.60" ); - - /* "ipv6" setting type */ - storef_ok ( &test_settings, &test_ipv6_setting, - "2001:ba8:0:1d4::6950:5845", - RAW ( 0x20, 0x01, 0x0b, 0xa8, 0x00, 0x00, 0x01, 0xd4, - 0x00, 0x00, 0x00, 0x00, 0x69, 0x50, 0x58, 0x45 ) ); - fetchf_ok ( &test_settings, &test_ipv6_setting, - RAW ( 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x0c, 0x29, 0xff, 0xfe, 0xc5, 0x39, 0xa1 ), - "fe80::20c:29ff:fec5:39a1" ); - - /* Integer setting types (as formatted strings) */ - storef_ok ( &test_settings, &test_int8_setting, - "54", RAW ( 54 ) ); - storef_ok ( &test_settings, &test_int8_setting, - "0x7f", RAW ( 0x7f ) ); - storef_ok ( &test_settings, &test_int8_setting, - "0x1234", RAW ( 0x34 ) ); - storef_ok ( &test_settings, &test_int8_setting, - "-32", RAW ( -32 ) ); - fetchf_ok ( &test_settings, &test_int8_setting, - RAW ( -9 ), "-9" ); - fetchf_ok ( &test_settings, &test_int8_setting, - RAW ( 106 ), "106" ); - storef_ok ( &test_settings, &test_uint8_setting, - "129", RAW ( 129 ) ); - storef_ok ( &test_settings, &test_uint8_setting, - "0x3421", RAW ( 0x21 ) ); - fetchf_ok ( &test_settings, &test_uint8_setting, - RAW ( 0x54 ), "0x54" ); - storef_ok ( &test_settings, &test_int16_setting, - "29483", RAW ( 0x73, 0x2b ) ); - fetchf_ok ( &test_settings, &test_int16_setting, - RAW ( 0x82, 0x14 ), "-32236" ); - fetchf_ok ( &test_settings, &test_int16_setting, - RAW ( 0x12, 0x78 ), "4728" ); - storef_ok ( &test_settings, &test_uint16_setting, - "48727", RAW ( 0xbe, 0x57 ) ); - fetchf_ok ( &test_settings, &test_uint16_setting, - RAW ( 0x9a, 0x24 ), "0x9a24" ); - storef_ok ( &test_settings, &test_int32_setting, - "2901274", RAW ( 0x00, 0x2c, 0x45, 0x1a ) ); - fetchf_ok ( &test_settings, &test_int32_setting, - RAW ( 0xff, 0x34, 0x2d, 0xaf ), "-13357649" ); - fetchf_ok ( &test_settings, &test_int32_setting, - RAW ( 0x01, 0x00, 0x34, 0xab ), "16790699" ); - storef_ok ( &test_settings, &test_uint32_setting, - "0xb598d21", RAW ( 0x0b, 0x59, 0x8d, 0x21 ) ); - fetchf_ok ( &test_settings, &test_uint32_setting, - RAW ( 0xf2, 0x37, 0xb2, 0x18 ), "0xf237b218" ); - - /* Integer setting types (as numeric values) */ - storen_ok ( &test_settings, &test_int8_setting, - 72, RAW ( 72 ) ); - storen_ok ( &test_settings, &test_int8_setting, - 0xabcd, RAW ( 0xcd ) ); - fetchn_ok ( &test_settings, &test_int8_setting, - RAW ( 0xfe ), -2 ); - storen_ok ( &test_settings, &test_uint8_setting, - 84, RAW ( 84 ) ); - fetchn_ok ( &test_settings, &test_uint8_setting, - RAW ( 0xfe ), 0xfe ); - storen_ok ( &test_settings, &test_int16_setting, - 0x87bd, RAW ( 0x87, 0xbd ) ); - fetchn_ok ( &test_settings, &test_int16_setting, - RAW ( 0x3d, 0x14 ), 0x3d14 ); - fetchn_ok ( &test_settings, &test_int16_setting, - RAW ( 0x80 ), -128 ); - storen_ok ( &test_settings, &test_uint16_setting, - 1, RAW ( 0x00, 0x01 ) ); - fetchn_ok ( &test_settings, &test_uint16_setting, - RAW ( 0xbd, 0x87 ), 0xbd87 ); - fetchn_ok ( &test_settings, &test_uint16_setting, - RAW ( 0x80 ), 0x0080 ); - storen_ok ( &test_settings, &test_int32_setting, - 0x0812bfd2, RAW ( 0x08, 0x12, 0xbf, 0xd2 ) ); - fetchn_ok ( &test_settings, &test_int32_setting, - RAW ( 0x43, 0x87, 0x91, 0xb4 ), 0x438791b4 ); - fetchn_ok ( &test_settings, &test_int32_setting, - RAW ( 0xff, 0xff, 0xfe ), -2 ); - storen_ok ( &test_settings, &test_uint32_setting, - 0xb5927ab8, RAW ( 0xb5, 0x92, 0x7a, 0xb8 ) ); - fetchn_ok ( &test_settings, &test_uint32_setting, - RAW ( 0x98, 0xab, 0x41, 0x81 ), 0x98ab4181 ); - fetchn_ok ( &test_settings, &test_uint32_setting, - RAW ( 0xff, 0xff, 0xfe ), 0x00fffffe ); - fetchn_ok ( &test_settings, &test_uint32_setting, - RAW ( 0, 0, 0, 0x12, 0x34, 0x56, 0x78 ), 0x12345678 ); - fetchn_ok ( &test_settings, &test_int32_setting, - RAW ( 0, 0, 0, 0x12, 0x34, 0x56, 0x78 ), 0x12345678 ); - fetchn_ok ( &test_settings, &test_int32_setting, - RAW ( 0xff, 0xff, 0x87, 0x65, 0x43, 0x21 ), -0x789abcdf ); - - /* "hex" setting type */ - storef_ok ( &test_settings, &test_hex_setting, - "08:12:f5:22:90:1b:4b:47:a8:30:cb:4d:67:4c:d6:76", - RAW ( 0x08, 0x12, 0xf5, 0x22, 0x90, 0x1b, 0x4b, 0x47, 0xa8, - 0x30, 0xcb, 0x4d, 0x67, 0x4c, 0xd6, 0x76 ) ); - fetchf_ok ( &test_settings, &test_hex_setting, - RAW ( 0x62, 0xd9, 0xd4, 0xc4, 0x7e, 0x3b, 0x41, 0x46, 0x91, - 0xc6, 0xfd, 0x0c, 0xbf ), - "62:d9:d4:c4:7e:3b:41:46:91:c6:fd:0c:bf" ); - - /* "hexhyp" setting type */ - storef_ok ( &test_settings, &test_hexhyp_setting, - "11-33-22", RAW ( 0x11, 0x33, 0x22 ) ); - fetchf_ok ( &test_settings, &test_hexhyp_setting, - RAW ( 0x9f, 0xe5, 0x6d, 0xfb, 0x24, 0x3a, 0x4c, 0xbb, 0xa9, - 0x09, 0x6c, 0x66, 0x13, 0xc1, 0xa8, 0xec, 0x27 ), - "9f-e5-6d-fb-24-3a-4c-bb-a9-09-6c-66-13-c1-a8-ec-27" ); - - /* "hexraw" setting type */ - storef_ok ( &test_settings, &test_hexraw_setting, - "012345abcdef", RAW ( 0x01, 0x23, 0x45, 0xab, 0xcd, 0xef )); - fetchf_ok ( &test_settings, &test_hexraw_setting, - RAW ( 0x9e, 0x4b, 0x6e, 0xef, 0x36, 0xb6, 0x46, 0xfe, 0x8f, - 0x17, 0x06, 0x39, 0x6b, 0xf4, 0x48, 0x4e ), - "9e4b6eef36b646fe8f1706396bf4484e" ); - - /* "base64" setting type */ - storef_ok ( &test_settings, &test_base64_setting, - "cGFzc6\nNwaHJhc2U= ", - RAW ( 0x70, 0x61, 0x73, 0x73, 0xa3, 0x70, 0x68, 0x72, 0x61, - 0x73, 0x65 ) ); - fetchf_ok ( &test_settings, &test_base64_setting, - RAW ( 0x80, 0x81, 0x82, 0x83, 0x84, 0x00, 0xff ), - "gIGCg4QA/w==" ); - - /* "uuid" setting type (no store capability) */ - fetchf_ok ( &test_settings, &test_uuid_setting, - RAW ( 0x1a, 0x6a, 0x74, 0x9d, 0x0e, 0xda, 0x46, 0x1a,0xa8, - 0x7a, 0x7c, 0xfe, 0x4f, 0xca, 0x4a, 0x57 ), - "1a6a749d-0eda-461a-a87a-7cfe4fca4a57" ); - - /* "busdevfn" setting type (no store capability) */ - fetchf_ok ( &test_settings, &test_busdevfn_setting, - RAW ( 0x03, 0x45 ), "03:08.5" ); - - /* Clear and unregister test settings block */ - clear_settings ( &test_settings ); - unregister_settings ( &test_settings ); -} - -/** Settings self-test */ -struct self_test settings_test __self_test = { - .name = "settings", - .exec = settings_test_exec, -}; - -/* Include real IPv6 setting type */ -REQUIRING_SYMBOL ( settings_test ); -REQUIRE_OBJECT ( ipv6 ); diff --git a/qemu/roms/ipxe/src/tests/sha1_test.c b/qemu/roms/ipxe/src/tests/sha1_test.c deleted file mode 100644 index 9f1d75686..000000000 --- a/qemu/roms/ipxe/src/tests/sha1_test.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * SHA-1 tests - * - * NIST test vectors are taken from - * - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA1.pdf - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include "digest_test.h" - -/* Empty test vector (digest obtained from "sha1sum /dev/null") */ -DIGEST_TEST ( sha1_empty, &sha1_algorithm, DIGEST_EMPTY, - DIGEST ( 0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, - 0x55, 0xbf, 0xef, 0x95, 0x60, 0x18, 0x90, 0xaf, 0xd8, - 0x07, 0x09 ) ); - -/* NIST test vector "abc" */ -DIGEST_TEST ( sha1_nist_abc, &sha1_algorithm, DIGEST_NIST_ABC, - DIGEST ( 0xa9, 0x99, 0x3e, 0x36, 0x47, 0x06, 0x81, 0x6a, 0xba, - 0x3e, 0x25, 0x71, 0x78, 0x50, 0xc2, 0x6c, 0x9c, 0xd0, - 0xd8, 0x9d ) ); - -/* NIST test vector "abc...opq" */ -DIGEST_TEST ( sha1_nist_abc_opq, &sha1_algorithm, DIGEST_NIST_ABC_OPQ, - DIGEST ( 0x84, 0x98, 0x3e, 0x44, 0x1c, 0x3b, 0xd2, 0x6e, 0xba, - 0xae, 0x4a, 0xa1, 0xf9, 0x51, 0x29, 0xe5, 0xe5, 0x46, - 0x70, 0xf1 ) ); - -/** - * Perform SHA-1 self-test - * - */ -static void sha1_test_exec ( void ) { - - /* Correctness tests */ - digest_ok ( &sha1_empty ); - digest_ok ( &sha1_nist_abc ); - digest_ok ( &sha1_nist_abc_opq ); - - /* Speed tests */ - DBG ( "SHA1 required %ld cycles per byte\n", - digest_cost ( &sha1_algorithm ) ); -} - -/** SHA-1 self-test */ -struct self_test sha1_test __self_test = { - .name = "sha1", - .exec = sha1_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/sha256_test.c b/qemu/roms/ipxe/src/tests/sha256_test.c deleted file mode 100644 index 3b4c423fd..000000000 --- a/qemu/roms/ipxe/src/tests/sha256_test.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * SHA-256 family tests - * - * NIST test vectors are taken from - * - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA256.pdf - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA224.pdf - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include "digest_test.h" - -/* Empty test vector (digest obtained from "sha256sum /dev/null") */ -DIGEST_TEST ( sha256_empty, &sha256_algorithm, DIGEST_EMPTY, - DIGEST ( 0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, - 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, - 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, - 0x1b, 0x78, 0x52, 0xb8, 0x55 ) ); - -/* NIST test vector "abc" */ -DIGEST_TEST ( sha256_nist_abc, &sha256_algorithm, DIGEST_NIST_ABC, - DIGEST ( 0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea, 0x41, - 0x41, 0x40, 0xde, 0x5d, 0xae, 0x22, 0x23, 0xb0, 0x03, - 0x61, 0xa3, 0x96, 0x17, 0x7a, 0x9c, 0xb4, 0x10, 0xff, - 0x61, 0xf2, 0x00, 0x15, 0xad ) ); - -/* NIST test vector "abc...opq" */ -DIGEST_TEST ( sha256_nist_abc_opq, &sha256_algorithm, DIGEST_NIST_ABC_OPQ, - DIGEST ( 0x24, 0x8d, 0x6a, 0x61, 0xd2, 0x06, 0x38, 0xb8, 0xe5, - 0xc0, 0x26, 0x93, 0x0c, 0x3e, 0x60, 0x39, 0xa3, 0x3c, - 0xe4, 0x59, 0x64, 0xff, 0x21, 0x67, 0xf6, 0xec, 0xed, - 0xd4, 0x19, 0xdb, 0x06, 0xc1 ) ); - -/* Empty test vector (digest obtained from "sha224sum /dev/null") */ -DIGEST_TEST ( sha224_empty, &sha224_algorithm, DIGEST_EMPTY, - DIGEST ( 0xd1, 0x4a, 0x02, 0x8c, 0x2a, 0x3a, 0x2b, 0xc9, 0x47, - 0x61, 0x02, 0xbb, 0x28, 0x82, 0x34, 0xc4, 0x15, 0xa2, - 0xb0, 0x1f, 0x82, 0x8e, 0xa6, 0x2a, 0xc5, 0xb3, 0xe4, - 0x2f ) ); - -/* NIST test vector "abc" */ -DIGEST_TEST ( sha224_nist_abc, &sha224_algorithm, DIGEST_NIST_ABC, - DIGEST ( 0x23, 0x09, 0x7d, 0x22, 0x34, 0x05, 0xd8, 0x22, 0x86, - 0x42, 0xa4, 0x77, 0xbd, 0xa2, 0x55, 0xb3, 0x2a, 0xad, - 0xbc, 0xe4, 0xbd, 0xa0, 0xb3, 0xf7, 0xe3, 0x6c, 0x9d, - 0xa7 ) ); - -/* NIST test vector "abc...opq" */ -DIGEST_TEST ( sha224_nist_abc_opq, &sha224_algorithm, DIGEST_NIST_ABC_OPQ, - DIGEST ( 0x75, 0x38, 0x8b, 0x16, 0x51, 0x27, 0x76, 0xcc, 0x5d, - 0xba, 0x5d, 0xa1, 0xfd, 0x89, 0x01, 0x50, 0xb0, 0xc6, - 0x45, 0x5c, 0xb4, 0xf5, 0x8b, 0x19, 0x52, 0x52, 0x25, - 0x25 ) ); - -/** - * Perform SHA-256 family self-test - * - */ -static void sha256_test_exec ( void ) { - - /* Correctness tests */ - digest_ok ( &sha256_empty ); - digest_ok ( &sha256_nist_abc ); - digest_ok ( &sha256_nist_abc_opq ); - digest_ok ( &sha224_empty ); - digest_ok ( &sha224_nist_abc ); - digest_ok ( &sha224_nist_abc_opq ); - - /* Speed tests */ - DBG ( "SHA256 required %ld cycles per byte\n", - digest_cost ( &sha256_algorithm ) ); - DBG ( "SHA224 required %ld cycles per byte\n", - digest_cost ( &sha224_algorithm ) ); -} - -/** SHA-256 family self-test */ -struct self_test sha256_test __self_test = { - .name = "sha256", - .exec = sha256_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/sha512_test.c b/qemu/roms/ipxe/src/tests/sha512_test.c deleted file mode 100644 index be530ebad..000000000 --- a/qemu/roms/ipxe/src/tests/sha512_test.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (C) 2015 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * SHA-512 family tests - * - * NIST test vectors are taken from - * - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA512.pdf - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA384.pdf - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA512_256.pdf - * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA512_224.pdf - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include "digest_test.h" - -/* Empty test vector (digest obtained from "sha512sum /dev/null") */ -DIGEST_TEST ( sha512_empty, &sha512_algorithm, DIGEST_EMPTY, - DIGEST ( 0xcf, 0x83, 0xe1, 0x35, 0x7e, 0xef, 0xb8, 0xbd, 0xf1, - 0x54, 0x28, 0x50, 0xd6, 0x6d, 0x80, 0x07, 0xd6, 0x20, - 0xe4, 0x05, 0x0b, 0x57, 0x15, 0xdc, 0x83, 0xf4, 0xa9, - 0x21, 0xd3, 0x6c, 0xe9, 0xce, 0x47, 0xd0, 0xd1, 0x3c, - 0x5d, 0x85, 0xf2, 0xb0, 0xff, 0x83, 0x18, 0xd2, 0x87, - 0x7e, 0xec, 0x2f, 0x63, 0xb9, 0x31, 0xbd, 0x47, 0x41, - 0x7a, 0x81, 0xa5, 0x38, 0x32, 0x7a, 0xf9, 0x27, 0xda, - 0x3e ) ); - -/* NIST test vector "abc" */ -DIGEST_TEST ( sha512_nist_abc, &sha512_algorithm, DIGEST_NIST_ABC, - DIGEST ( 0xdd, 0xaf, 0x35, 0xa1, 0x93, 0x61, 0x7a, 0xba, 0xcc, - 0x41, 0x73, 0x49, 0xae, 0x20, 0x41, 0x31, 0x12, 0xe6, - 0xfa, 0x4e, 0x89, 0xa9, 0x7e, 0xa2, 0x0a, 0x9e, 0xee, - 0xe6, 0x4b, 0x55, 0xd3, 0x9a, 0x21, 0x92, 0x99, 0x2a, - 0x27, 0x4f, 0xc1, 0xa8, 0x36, 0xba, 0x3c, 0x23, 0xa3, - 0xfe, 0xeb, 0xbd, 0x45, 0x4d, 0x44, 0x23, 0x64, 0x3c, - 0xe8, 0x0e, 0x2a, 0x9a, 0xc9, 0x4f, 0xa5, 0x4c, 0xa4, - 0x9f ) ); - -/* NIST test vector "abc...stu" */ -DIGEST_TEST ( sha512_nist_abc_stu, &sha512_algorithm, DIGEST_NIST_ABC_STU, - DIGEST ( 0x8e, 0x95, 0x9b, 0x75, 0xda, 0xe3, 0x13, 0xda, 0x8c, - 0xf4, 0xf7, 0x28, 0x14, 0xfc, 0x14, 0x3f, 0x8f, 0x77, - 0x79, 0xc6, 0xeb, 0x9f, 0x7f, 0xa1, 0x72, 0x99, 0xae, - 0xad, 0xb6, 0x88, 0x90, 0x18, 0x50, 0x1d, 0x28, 0x9e, - 0x49, 0x00, 0xf7, 0xe4, 0x33, 0x1b, 0x99, 0xde, 0xc4, - 0xb5, 0x43, 0x3a, 0xc7, 0xd3, 0x29, 0xee, 0xb6, 0xdd, - 0x26, 0x54, 0x5e, 0x96, 0xe5, 0x5b, 0x87, 0x4b, 0xe9, - 0x09 ) ); - -/* Empty test vector (digest obtained from "sha384sum /dev/null") */ -DIGEST_TEST ( sha384_empty, &sha384_algorithm, DIGEST_EMPTY, - DIGEST ( 0x38, 0xb0, 0x60, 0xa7, 0x51, 0xac, 0x96, 0x38, 0x4c, - 0xd9, 0x32, 0x7e, 0xb1, 0xb1, 0xe3, 0x6a, 0x21, 0xfd, - 0xb7, 0x11, 0x14, 0xbe, 0x07, 0x43, 0x4c, 0x0c, 0xc7, - 0xbf, 0x63, 0xf6, 0xe1, 0xda, 0x27, 0x4e, 0xde, 0xbf, - 0xe7, 0x6f, 0x65, 0xfb, 0xd5, 0x1a, 0xd2, 0xf1, 0x48, - 0x98, 0xb9, 0x5b ) ); - -/* NIST test vector "abc" */ -DIGEST_TEST ( sha384_nist_abc, &sha384_algorithm, DIGEST_NIST_ABC, - DIGEST ( 0xcb, 0x00, 0x75, 0x3f, 0x45, 0xa3, 0x5e, 0x8b, 0xb5, - 0xa0, 0x3d, 0x69, 0x9a, 0xc6, 0x50, 0x07, 0x27, 0x2c, - 0x32, 0xab, 0x0e, 0xde, 0xd1, 0x63, 0x1a, 0x8b, 0x60, - 0x5a, 0x43, 0xff, 0x5b, 0xed, 0x80, 0x86, 0x07, 0x2b, - 0xa1, 0xe7, 0xcc, 0x23, 0x58, 0xba, 0xec, 0xa1, 0x34, - 0xc8, 0x25, 0xa7 ) ); - -/* NIST test vector "abc...stu" */ -DIGEST_TEST ( sha384_nist_abc_stu, &sha384_algorithm, DIGEST_NIST_ABC_STU, - DIGEST ( 0x09, 0x33, 0x0c, 0x33, 0xf7, 0x11, 0x47, 0xe8, 0x3d, - 0x19, 0x2f, 0xc7, 0x82, 0xcd, 0x1b, 0x47, 0x53, 0x11, - 0x1b, 0x17, 0x3b, 0x3b, 0x05, 0xd2, 0x2f, 0xa0, 0x80, - 0x86, 0xe3, 0xb0, 0xf7, 0x12, 0xfc, 0xc7, 0xc7, 0x1a, - 0x55, 0x7e, 0x2d, 0xb9, 0x66, 0xc3, 0xe9, 0xfa, 0x91, - 0x74, 0x60, 0x39 ) ); - -/* Empty test vector (digest obtained from "shasum -a 512256 /dev/null") */ -DIGEST_TEST ( sha512_256_empty, &sha512_256_algorithm, DIGEST_EMPTY, - DIGEST ( 0xc6, 0x72, 0xb8, 0xd1, 0xef, 0x56, 0xed, 0x28, 0xab, - 0x87, 0xc3, 0x62, 0x2c, 0x51, 0x14, 0x06, 0x9b, 0xdd, - 0x3a, 0xd7, 0xb8, 0xf9, 0x73, 0x74, 0x98, 0xd0, 0xc0, - 0x1e, 0xce, 0xf0, 0x96, 0x7a ) ); - -/* NIST test vector "abc" */ -DIGEST_TEST ( sha512_256_nist_abc, &sha512_256_algorithm, DIGEST_NIST_ABC, - DIGEST ( 0x53, 0x04, 0x8e, 0x26, 0x81, 0x94, 0x1e, 0xf9, 0x9b, - 0x2e, 0x29, 0xb7, 0x6b, 0x4c, 0x7d, 0xab, 0xe4, 0xc2, - 0xd0, 0xc6, 0x34, 0xfc, 0x6d, 0x46, 0xe0, 0xe2, 0xf1, - 0x31, 0x07, 0xe7, 0xaf, 0x23 ) ); - -/* NIST test vector "abc...stu" */ -DIGEST_TEST ( sha512_256_nist_abc_stu, &sha512_256_algorithm, - DIGEST_NIST_ABC_STU, - DIGEST ( 0x39, 0x28, 0xe1, 0x84, 0xfb, 0x86, 0x90, 0xf8, 0x40, - 0xda, 0x39, 0x88, 0x12, 0x1d, 0x31, 0xbe, 0x65, 0xcb, - 0x9d, 0x3e, 0xf8, 0x3e, 0xe6, 0x14, 0x6f, 0xea, 0xc8, - 0x61, 0xe1, 0x9b, 0x56, 0x3a ) ); - -/* Empty test vector (digest obtained from "shasum -a 512224 /dev/null") */ -DIGEST_TEST ( sha512_224_empty, &sha512_224_algorithm, DIGEST_EMPTY, - DIGEST ( 0x6e, 0xd0, 0xdd, 0x02, 0x80, 0x6f, 0xa8, 0x9e, 0x25, - 0xde, 0x06, 0x0c, 0x19, 0xd3, 0xac, 0x86, 0xca, 0xbb, - 0x87, 0xd6, 0xa0, 0xdd, 0xd0, 0x5c, 0x33, 0x3b, 0x84, - 0xf4 ) ); - -/* NIST test vector "abc" */ -DIGEST_TEST ( sha512_224_nist_abc, &sha512_224_algorithm, DIGEST_NIST_ABC, - DIGEST ( 0x46, 0x34, 0x27, 0x0f, 0x70, 0x7b, 0x6a, 0x54, 0xda, - 0xae, 0x75, 0x30, 0x46, 0x08, 0x42, 0xe2, 0x0e, 0x37, - 0xed, 0x26, 0x5c, 0xee, 0xe9, 0xa4, 0x3e, 0x89, 0x24, - 0xaa ) ); - -/* NIST test vector "abc...stu" */ -DIGEST_TEST ( sha512_224_nist_abc_stu, &sha512_224_algorithm, - DIGEST_NIST_ABC_STU, - DIGEST ( 0x23, 0xfe, 0xc5, 0xbb, 0x94, 0xd6, 0x0b, 0x23, 0x30, - 0x81, 0x92, 0x64, 0x0b, 0x0c, 0x45, 0x33, 0x35, 0xd6, - 0x64, 0x73, 0x4f, 0xe4, 0x0e, 0x72, 0x68, 0x67, 0x4a, - 0xf9 ) ); - -/** - * Perform SHA-512 family self-test - * - */ -static void sha512_test_exec ( void ) { - - /* Correctness tests */ - digest_ok ( &sha512_empty ); - digest_ok ( &sha512_nist_abc ); - digest_ok ( &sha512_nist_abc_stu ); - digest_ok ( &sha384_empty ); - digest_ok ( &sha384_nist_abc ); - digest_ok ( &sha384_nist_abc_stu ); - digest_ok ( &sha512_256_empty ); - digest_ok ( &sha512_256_nist_abc ); - digest_ok ( &sha512_256_nist_abc_stu ); - digest_ok ( &sha512_224_empty ); - digest_ok ( &sha512_224_nist_abc ); - digest_ok ( &sha512_224_nist_abc_stu ); - - /* Speed tests */ - DBG ( "SHA512 required %ld cycles per byte\n", - digest_cost ( &sha512_algorithm ) ); - DBG ( "SHA384 required %ld cycles per byte\n", - digest_cost ( &sha384_algorithm ) ); - DBG ( "SHA512/256 required %ld cycles per byte\n", - digest_cost ( &sha512_256_algorithm ) ); - DBG ( "SHA512/224 required %ld cycles per byte\n", - digest_cost ( &sha512_224_algorithm ) ); -} - -/** SHA-512 family self-test */ -struct self_test sha512_test __self_test = { - .name = "sha512", - .exec = sha512_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/string_test.c b/qemu/roms/ipxe/src/tests/string_test.c deleted file mode 100644 index 4693b5f65..000000000 --- a/qemu/roms/ipxe/src/tests/string_test.c +++ /dev/null @@ -1,303 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * String self-tests - * - * memcpy() tests are handled separately - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include -#include - -/** - * Perform string self-tests - * - */ -static void string_test_exec ( void ) { - - /* Test strlen() */ - ok ( strlen ( "" ) == 0 ); - ok ( strlen ( "Hello" ) == 5 ); - ok ( strlen ( "Hello world!" ) == 12 ); - ok ( strlen ( "Hello\0world!" ) == 5 ); - - /* Test strnlen() */ - ok ( strnlen ( "", 0 ) == 0 ); - ok ( strnlen ( "", 10 ) == 0 ); - ok ( strnlen ( "Hello", 0 ) == 0 ); - ok ( strnlen ( "Hello", 3 ) == 3 ); - ok ( strnlen ( "Hello", 5 ) == 5 ); - ok ( strnlen ( "Hello", 16 ) == 5 ); - ok ( strnlen ( "Hello world!", 5 ) == 5 ); - ok ( strnlen ( "Hello world!", 11 ) == 11 ); - ok ( strnlen ( "Hello world!", 16 ) == 12 ); - - /* Test strchr() */ - ok ( strchr ( "", 'a' ) == NULL ); - ok ( *(strchr ( "Testing", 'e' )) == 'e' ); - ok ( *(strchr ( "Testing", 'g' )) == 'g' ); - ok ( strchr ( "Testing", 'x' ) == NULL ); - - /* Test strrchr() */ - ok ( strrchr ( "", 'a' ) == NULL ); - ok ( *(strrchr ( "Haystack", 'a' )) == 'a' ); - ok ( *(strrchr ( "Haystack", 'k' )) == 'k' ); - ok ( strrchr ( "Haystack", 'x' ) == NULL ); - - /* Test memchr() */ - ok ( memchr ( "", '\0', 0 ) == NULL ); - ok ( *((uint8_t *)memchr ( "post\0null", 'l', 9 )) == 'l' ); - ok ( *((uint8_t *)memchr ( "post\0null", '\0', 9 )) == '\0' ); - ok ( memchr ( "thingy", 'z', 6 ) == NULL ); - - /* Test strcmp() */ - ok ( strcmp ( "", "" ) == 0 ); - ok ( strcmp ( "Hello", "Hello" ) == 0 ); - ok ( strcmp ( "Hello", "hello" ) != 0 ); - ok ( strcmp ( "Hello", "Hello world!" ) != 0 ); - ok ( strcmp ( "Hello world!", "Hello" ) != 0 ); - - /* Test strncmp() */ - ok ( strncmp ( "", "", 0 ) == 0 ); - ok ( strncmp ( "", "", 15 ) == 0 ); - ok ( strncmp ( "Goodbye", "Goodbye", 16 ) == 0 ); - ok ( strncmp ( "Goodbye", "Hello", 16 ) != 0 ); - ok ( strncmp ( "Goodbye", "Goodbye world", 32 ) != 0 ); - ok ( strncmp ( "Goodbye", "Goodbye world", 7 ) == 0 ); - - /* Test strcasecmp() */ - ok ( strcasecmp ( "", "" ) == 0 ); - ok ( strcasecmp ( "Uncle Jack", "Uncle jack" ) == 0 ); - ok ( strcasecmp ( "Uncle Jack", "Uncle" ) != 0 ); - ok ( strcasecmp ( "Uncle", "Uncle Jack" ) != 0 ); - ok ( strcasecmp ( "not", "equal" ) != 0 ); - - /* Test memcmp() */ - ok ( memcmp ( "", "", 0 ) == 0 ); - ok ( memcmp ( "Foo", "Foo", 3 ) == 0 ); - ok ( memcmp ( "Foo", "Bar", 3 ) != 0 ); - - /* Test strstr() */ - { - const char haystack[] = "find me!"; - char *found; - - found = strstr ( haystack, "find" ); - ok ( found == &haystack[0] ); - found = strstr ( haystack, "me" ); - ok ( found == &haystack[5] ); - found = strstr ( haystack, "me." ); - ok ( found == NULL ); - } - - /* Test memset() */ - { - static uint8_t test[7] = { '>', 1, 1, 1, 1, 1, '<' }; - static const uint8_t expected[7] = { '>', 0, 0, 0, 0, 0, '<' }; - memset ( ( test + 1 ), 0, ( sizeof ( test ) - 2 ) ); - ok ( memcmp ( test, expected, sizeof ( test ) ) == 0 ); - } - { - static uint8_t test[4] = { '>', 0, 0, '<' }; - static const uint8_t expected[4] = { '>', 0xeb, 0xeb, '<' }; - memset ( ( test + 1 ), 0xeb, ( sizeof ( test ) - 2 ) ); - ok ( memcmp ( test, expected, sizeof ( test ) ) == 0 ); - } - - /* Test memmove() */ - { - static uint8_t test[11] = - { '>', 1, 2, 3, 4, 5, 6, 7, 8, 9, '<' }; - static const uint8_t expected[11] = - { '>', 3, 4, 5, 6, 7, 8, 7, 8, 9, '<' }; - memmove ( ( test + 1 ), ( test + 3 ), 6 ); - ok ( memcmp ( test, expected, sizeof ( test ) ) == 0 ); - } - { - static uint8_t test[12] = - { '>', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '<' }; - static const uint8_t expected[12] = - { '>', 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, '<' }; - memmove ( ( test + 6 ), ( test + 1 ), 5 ); - ok ( memcmp ( test, expected, sizeof ( test ) ) == 0 ); - } - - /* Test memswap() */ - { - static uint8_t test[8] = - { '>', 1, 2, 3, 7, 8, 9, '<' }; - static const uint8_t expected[8] = - { '>', 7, 8, 9, 1, 2, 3, '<' }; - memswap ( ( test + 1 ), ( test + 4 ), 3 ); - ok ( memcmp ( test, expected, sizeof ( test ) ) == 0 ); - } - - /* Test strdup() */ - { - const char *orig = "testing testing"; - char *dup = strdup ( orig ); - ok ( dup != NULL ); - ok ( dup != orig ); - ok ( strcmp ( dup, orig ) == 0 ); - free ( dup ); - } - - /* Test strndup() */ - { - const char *normal = "testing testing"; - const char unterminated[6] = { 'h', 'e', 'l', 'l', 'o', '!' }; - char *dup; - dup = strndup ( normal, 32 ); - ok ( dup != NULL ); - ok ( dup != normal ); - ok ( strcmp ( dup, normal ) == 0 ); - free ( dup ); - dup = strndup ( normal, 4 ); - ok ( dup != NULL ); - ok ( strcmp ( dup, "test" ) == 0 ); - free ( dup ); - dup = strndup ( unterminated, 5 ); - ok ( dup != NULL ); - ok ( strcmp ( dup, "hello" ) == 0 ); - free ( dup ); - } - - /* Test strcpy() */ - { - const char longer[7] = "copyme"; - const char shorter[3] = "hi"; - char dest[7]; - char *copy; - - copy = strcpy ( dest, longer ); - ok ( copy == dest ); - ok ( memcmp ( dest, longer, 7 ) == 0 ); - copy = strcpy ( dest, shorter ); - ok ( copy == dest ); - ok ( memcmp ( dest, shorter, 3 ) == 0 ); - ok ( memcmp ( ( dest + 3 ), ( longer + 3 ), 4 ) == 0 ); - } - - /* Test strncpy() */ - { - const char src[5] = "copy"; - const char orig[8] = { 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x' }; - const char zero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - char dest[8]; - char *copy; - - memcpy ( dest, orig, sizeof ( dest ) ); - copy = strncpy ( dest, src, 5 ); - ok ( copy == dest ); - ok ( memcmp ( dest, src, 5 ) == 0 ); - ok ( memcmp ( dest + 5, orig + 5, 3 ) == 0 ); - memcpy ( dest, orig, sizeof ( dest ) ); - copy = strncpy ( dest, src, 4 ); - ok ( copy == dest ); - ok ( memcmp ( dest, src, 4 ) == 0 ); - ok ( memcmp ( dest + 4, orig + 4, 4 ) == 0 ); - memcpy ( dest, orig, sizeof ( dest ) ); - copy = strncpy ( dest, src, 8 ); - ok ( copy == dest ); - ok ( memcmp ( dest, src, 5 ) == 0 ); - ok ( memcmp ( dest + 5, zero + 5, 3 ) == 0 ); - memcpy ( dest, orig, sizeof ( dest ) ); - copy = strncpy ( dest, "", 8 ); - ok ( copy == dest ); - ok ( memcmp ( dest, zero, 8 ) == 0 ); - } - - /* Test strcat() */ - { - char buf[16] = "append"; - char *dest; - - dest = strcat ( buf, " this" ); - ok ( dest == buf ); - ok ( strcmp ( buf, "append this" ) == 0 ); - } - - /* Test digit_value() */ - { - unsigned int i; - char buf[2]; - for ( i = 0 ; i < 16 ; i++ ) { - snprintf ( buf, sizeof ( buf ), "%x", i ); - ok ( digit_value ( buf[0] ) == i ); - snprintf ( buf, sizeof ( buf ), "%X", i ); - ok ( digit_value ( buf[0] ) == i ); - } - ok ( digit_value ( 0 ) >= 16 ); - ok ( digit_value ( 9 ) >= 16 ); - ok ( digit_value ( '0' - 1 ) >= 16 ); - ok ( digit_value ( '9' + 1 ) >= 16 ); - ok ( digit_value ( 'A' - 1 ) >= 16 ); - ok ( digit_value ( 'F' + 1 ) >= 16 ); - ok ( digit_value ( 'a' - 1 ) >= 16 ); - ok ( digit_value ( 'f' + 1 ) >= 16 ); - } - - /* Test strtoul() */ - ok ( strtoul ( "12345", NULL, 0 ) == 12345UL ); - ok ( strtoul ( " 741", NULL, 10 ) == 741UL ); - ok ( strtoul ( " 555a", NULL, 0 ) == 555UL ); - ok ( strtoul ( " 555a", NULL, 16 ) == 0x555aUL ); - ok ( strtoul ( "-12", NULL, 0 ) == -12UL ); - ok ( strtoul ( "+3", NULL, 0 ) == 3UL ); - ok ( strtoul ( "721", NULL, 0 ) == 721UL ); - ok ( strtoul ( "721", NULL, 8 ) == 0721UL ); - ok ( strtoul ( "0721", NULL, 0 ) == 0721UL ); - ok ( strtoul ( "", NULL, 0 ) == 0UL ); - ok ( strtoul ( "\t0xcAfe", NULL, 0 ) == 0xcafeUL ); - ok ( strtoul ( "0xffffffff", NULL, 0 ) == 0xffffffffUL ); - { - static const char string[] = "123aHa.world"; - char *endp; - ok ( strtoul ( string, &endp, 0 ) == 123UL ); - ok ( endp == &string[3] ); - ok ( strtoul ( string, &endp, 16 ) == 0x123aUL ); - ok ( endp == &string[4] ); - ok ( strtoul ( string, &endp, 26 ) == - ( ( ( ( ( 1 * 26 + 2 ) * 26 + 3 ) * 26 + 10 ) * 26 - + 17 ) * 26 + 10 ) ); - ok ( endp == &string[6] ); - } -} - -/** String self-test */ -struct self_test string_test __self_test = { - .name = "string", - .exec = string_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/tcpip_test.c b/qemu/roms/ipxe/src/tests/tcpip_test.c deleted file mode 100644 index 759f886bc..000000000 --- a/qemu/roms/ipxe/src/tests/tcpip_test.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * TCP/IP self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include -#include - -/** Number of sample iterations for profiling */ -#define PROFILE_COUNT 16 - -/** A TCP/IP fixed-data test */ -struct tcpip_test { - /** Data */ - const void *data; - /** Length of data */ - size_t len; -}; - -/** A TCP/IP pseudorandom-data test */ -struct tcpip_random_test { - /** Seed */ - unsigned int seed; - /** Length of data */ - size_t len; - /** Alignment offset */ - size_t offset; -}; - -/** Define inline data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define a TCP/IP fixed-data test */ -#define TCPIP_TEST( name, DATA ) \ - static const uint8_t __attribute__ (( aligned ( 16 ) )) \ - name ## _data[] = DATA; \ - static struct tcpip_test name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - } - -/** Define a TCP/IP pseudorandom-data test */ -#define TCPIP_RANDOM_TEST( name, SEED, LEN, OFFSET ) \ - static struct tcpip_random_test name = { \ - .seed = SEED, \ - .len = LEN, \ - .offset = OFFSET, \ - } - -/** Buffer for pseudorandom-data tests */ -static uint8_t __attribute__ (( aligned ( 16 ) )) - tcpip_data[ 4096 + 7 /* offset */ ]; - -/** Empty data */ -TCPIP_TEST ( empty, DATA() ); - -/** Single byte */ -TCPIP_TEST ( one_byte, DATA ( 0xeb ) ); - -/** Double byte */ -TCPIP_TEST ( two_bytes, DATA ( 0xba, 0xbe ) ); - -/** Final wrap-around carry (big-endian) */ -TCPIP_TEST ( final_carry_big, - DATA ( 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 ) ); - -/** Final wrap-around carry (little-endian) */ -TCPIP_TEST ( final_carry_little, - DATA ( 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 ) ); - -/** Random data (aligned) */ -TCPIP_RANDOM_TEST ( random_aligned, 0x12345678UL, 4096, 0 ); - -/** Random data (unaligned, +1) */ -TCPIP_RANDOM_TEST ( random_unaligned_1, 0x12345678UL, 4096, 1 ); - -/** Random data (unaligned, +2) */ -TCPIP_RANDOM_TEST ( random_unaligned_2, 0x12345678UL, 4096, 2 ); - -/** Random data (aligned, truncated) */ -TCPIP_RANDOM_TEST ( random_aligned_truncated, 0x12345678UL, 4095, 0 ); - -/** Random data (unaligned start and finish) */ -TCPIP_RANDOM_TEST ( partial, 0xcafebabe, 121, 5 ); - -/** - * Calculate TCP/IP checksum - * - * @v data Data to sum - * @v len Length of data - * @ret cksum Checksum - * - * This is a reference implementation taken from RFC1071 (and modified - * to fix compilation without warnings under gcc). - */ -static uint16_t rfc_tcpip_chksum ( const void *data, size_t len ) { - unsigned long sum = 0; - - while ( len > 1 ) { - sum += *( ( uint16_t * ) data ); - data += 2; - len -= 2; - } - - if ( len > 0 ) - sum += *( ( uint8_t * ) data ); - - while ( sum >> 16 ) - sum = ( ( sum & 0xffff ) + ( sum >> 16 ) ); - - return ~sum; -} - -/** - * Report TCP/IP fixed-data test result - * - * @v test TCP/IP test - * @v file Test code file - * @v line Test code line - */ -static void tcpip_okx ( struct tcpip_test *test, const char *file, - unsigned int line ) { - uint16_t expected; - uint16_t generic_sum; - uint16_t sum; - - /* Verify generic_tcpip_continue_chksum() result */ - expected = rfc_tcpip_chksum ( test->data, test->len ); - generic_sum = generic_tcpip_continue_chksum ( TCPIP_EMPTY_CSUM, - test->data, test->len ); - okx ( generic_sum == expected, file, line ); - - /* Verify optimised tcpip_continue_chksum() result */ - sum = tcpip_continue_chksum ( TCPIP_EMPTY_CSUM, test->data, test->len ); - okx ( sum == expected, file, line ); -} -#define tcpip_ok( test ) tcpip_okx ( test, __FILE__, __LINE__ ) - -/** - * Report TCP/IP pseudorandom-data test result - * - * @v test TCP/IP test - * @v file Test code file - * @v line Test code line - */ -static void tcpip_random_okx ( struct tcpip_random_test *test, - const char *file, unsigned int line ) { - uint8_t *data = ( tcpip_data + test->offset ); - struct profiler profiler; - uint16_t expected; - uint16_t generic_sum; - uint16_t sum; - unsigned int i; - - /* Sanity check */ - assert ( ( test->len + test->offset ) <= sizeof ( tcpip_data ) ); - - /* Generate random data */ - srandom ( test->seed ); - for ( i = 0 ; i < test->len ; i++ ) - data[i] = random(); - - /* Verify generic_tcpip_continue_chksum() result */ - expected = rfc_tcpip_chksum ( data, test->len ); - generic_sum = generic_tcpip_continue_chksum ( TCPIP_EMPTY_CSUM, - data, test->len ); - okx ( generic_sum == expected, file, line ); - - /* Verify optimised tcpip_continue_chksum() result */ - sum = tcpip_continue_chksum ( TCPIP_EMPTY_CSUM, data, test->len ); - okx ( sum == expected, file, line ); - - /* Profile optimised calculation */ - memset ( &profiler, 0, sizeof ( profiler ) ); - for ( i = 0 ; i < PROFILE_COUNT ; i++ ) { - profile_start ( &profiler ); - sum = tcpip_continue_chksum ( TCPIP_EMPTY_CSUM, data, - test->len ); - profile_stop ( &profiler ); - } - DBG ( "TCPIP checksummed %zd bytes (+%zd) in %ld +/- %ld ticks\n", - test->len, test->offset, profile_mean ( &profiler ), - profile_stddev ( &profiler ) ); -} -#define tcpip_random_ok( test ) tcpip_random_okx ( test, __FILE__, __LINE__ ) - -/** - * Perform TCP/IP self-tests - * - */ -static void tcpip_test_exec ( void ) { - - tcpip_ok ( &empty ); - tcpip_ok ( &one_byte ); - tcpip_ok ( &two_bytes ); - tcpip_ok ( &final_carry_big ); - tcpip_ok ( &final_carry_little ); - tcpip_random_ok ( &random_aligned ); - tcpip_random_ok ( &random_unaligned_1 ); - tcpip_random_ok ( &random_unaligned_2 ); - tcpip_random_ok ( &random_aligned_truncated ); - tcpip_random_ok ( &partial ); -} - -/** TCP/IP self-test */ -struct self_test tcpip_test __self_test = { - .name = "tcpip", - .exec = tcpip_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/test.c b/qemu/roms/ipxe/src/tests/test.c deleted file mode 100644 index 67bd4cf89..000000000 --- a/qemu/roms/ipxe/src/tests/test.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (C) 2011 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Self-test infrastructure - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include -#include -#include - -/** Current self-test set */ -static struct self_test *current_tests; - -/** - * Report test result - * - * @v success Test succeeded - * @v file Test code file - * @v line Test code line - * @v test Test code - */ -void test_ok ( int success, const char *file, unsigned int line, - const char *test ) { - - /* Sanity check */ - assert ( current_tests != NULL ); - - /* Increment test counter */ - current_tests->total++; - - /* Report failure if applicable */ - if ( ! success ) { - current_tests->failures++; - printf ( "FAILURE: \"%s\" test failed at %s line %d: ( %s )\n", - current_tests->name, file, line, test ); - } -} - -/** - * Run self-test set - * - */ -static void run_tests ( struct self_test *tests ) { - unsigned int old_assertion_failures = assertion_failures; - - /* Sanity check */ - assert ( current_tests == NULL ); - - /* Record current test set */ - current_tests = tests; - - /* Run tests */ - tests->exec(); - - /* Clear current test set */ - current_tests = NULL; - - /* Record number of assertion failures */ - tests->assertion_failures = - ( assertion_failures - old_assertion_failures ); - - /* Print test set summary */ - if ( tests->failures || tests->assertion_failures ) { - printf ( "FAILURE: \"%s\" %d of %d tests failed", - tests->name, tests->failures, tests->total ); - if ( tests->assertion_failures ) { - printf ( " with %d assertion failures", - tests->assertion_failures ); - } - printf ( "\n" ); - } else { - printf ( "OK: \"%s\" %d tests passed\n", - tests->name, tests->total ); - } -} - -/** - * Run all self-tests - * - * @ret rc Return status code - */ -static int run_all_tests ( void ) { - struct self_test *tests; - unsigned int failures = 0; - unsigned int assertions = 0; - unsigned int total = 0; - - /* Run all compiled-in self-tests */ - printf ( "Starting self-tests\n" ); - for_each_table_entry ( tests, SELF_TESTS ) - run_tests ( tests ); - - /* Print overall summary */ - for_each_table_entry ( tests, SELF_TESTS ) { - total += tests->total; - failures += tests->failures; - assertions += tests->assertion_failures; - } - if ( failures || assertions ) { - printf ( "FAILURE: %d of %d tests failed", - failures, total ); - if ( assertions ) { - printf ( " with %d assertion failures", assertions ); - } - printf ( "\n" ); - return -EINPROGRESS; - } else { - printf ( "OK: all %d tests passed\n", total ); - profstat(); - return 0; - } -} - -static int test_image_probe ( struct image *image __unused ) { - return -ENOTTY; -} - -static int test_image_exec ( struct image *image __unused ) { - return run_all_tests(); -} - -static struct image_type test_image_type = { - .name = "self-tests", - .probe = test_image_probe, - .exec = test_image_exec, -}; - -static struct image test_image = { - .refcnt = REF_INIT ( ref_no_free ), - .name = "", - .type = &test_image_type, -}; - -static void test_init ( void ) { - int rc; - - /* Register self-tests image */ - if ( ( rc = register_image ( &test_image ) ) != 0 ) { - DBG ( "Could not register self-test image: %s\n", - strerror ( rc ) ); - /* No way to report failure */ - return; - } -} - -/** Self-test initialisation function */ -struct init_fn test_init_fn __init_fn ( INIT_EARLY ) = { - .initialise = test_init, -}; diff --git a/qemu/roms/ipxe/src/tests/tests.c b/qemu/roms/ipxe/src/tests/tests.c deleted file mode 100644 index 54ce86677..000000000 --- a/qemu/roms/ipxe/src/tests/tests.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Self-test collection - * - */ - -/* Drag in all applicable self-tests */ -PROVIDE_REQUIRING_SYMBOL(); -REQUIRE_OBJECT ( memset_test ); -REQUIRE_OBJECT ( memcpy_test ); -REQUIRE_OBJECT ( string_test ); -REQUIRE_OBJECT ( math_test ); -REQUIRE_OBJECT ( vsprintf_test ); -REQUIRE_OBJECT ( list_test ); -REQUIRE_OBJECT ( byteswap_test ); -REQUIRE_OBJECT ( base64_test ); -REQUIRE_OBJECT ( base16_test ); -REQUIRE_OBJECT ( settings_test ); -REQUIRE_OBJECT ( time_test ); -REQUIRE_OBJECT ( tcpip_test ); -REQUIRE_OBJECT ( ipv4_test ); -REQUIRE_OBJECT ( ipv6_test ); -REQUIRE_OBJECT ( crc32_test ); -REQUIRE_OBJECT ( md5_test ); -REQUIRE_OBJECT ( sha1_test ); -REQUIRE_OBJECT ( sha256_test ); -REQUIRE_OBJECT ( sha512_test ); -REQUIRE_OBJECT ( aes_test ); -REQUIRE_OBJECT ( hmac_drbg_test ); -REQUIRE_OBJECT ( hash_df_test ); -REQUIRE_OBJECT ( bigint_test ); -REQUIRE_OBJECT ( rsa_test ); -REQUIRE_OBJECT ( x509_test ); -REQUIRE_OBJECT ( ocsp_test ); -REQUIRE_OBJECT ( cms_test ); -REQUIRE_OBJECT ( pnm_test ); -REQUIRE_OBJECT ( deflate_test ); -REQUIRE_OBJECT ( png_test ); -REQUIRE_OBJECT ( dns_test ); -REQUIRE_OBJECT ( uri_test ); -REQUIRE_OBJECT ( profile_test ); -REQUIRE_OBJECT ( setjmp_test ); -REQUIRE_OBJECT ( pccrc_test ); -REQUIRE_OBJECT ( linebuf_test ); diff --git a/qemu/roms/ipxe/src/tests/time_test.c b/qemu/roms/ipxe/src/tests/time_test.c deleted file mode 100644 index 3bf01dd1d..000000000 --- a/qemu/roms/ipxe/src/tests/time_test.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * Date and time self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include - -/** A mktime() test */ -struct mktime_test { - /** Broken-down time */ - struct tm tm; - /** Day of the week */ - int wday; - /** Day of the year */ - int yday; - /** Seconds since the Epoch */ - time_t time; -}; - -/** - * Define a mktime() test - * - * @v name Test name - * @v SEC Seconds [0,60] - * @v MIN Minutes [0,59] - * @v HOUR Hour [0,23] - * @v MDAY Day of month [1,31] - * @v MON Month of year [0,11] - * @v YEAR Years since 1900 - * @v WDAY Day of week [0,6] (Sunday=0) - * @v YDAY Day of year [0,365] - * @v ISDST Daylight savings flag (ignored) - * @v TIME Seconds since the Epoch - * @ret test mktime() test - * - * This macro is designed to make it easy to generate test vectors in - * Perl using - * - * print join ", ", gmtime ( $time ), $time."ULL"; - * - */ -#define MKTIME_TEST( name, SEC, MIN, HOUR, MDAY, MON, YEAR, WDAY, \ - YDAY, ISDST, TIME ) \ - static struct mktime_test name = { \ - .tm = { \ - .tm_sec = SEC, \ - .tm_min = MIN, \ - .tm_hour = HOUR, \ - .tm_mday = MDAY, \ - .tm_mon = MON, \ - .tm_year = YEAR, \ - .tm_isdst = ISDST, \ - }, \ - .wday = WDAY, \ - .yday = YDAY, \ - .time = TIME, \ - } - -/** - * Report mktime() test result - * - * @v test mktime() test - */ -#define mktime_ok( test ) do { \ - time_t time = mktime ( &(test)->tm ); \ - ok ( time == (test)->time ); \ - ok ( (test)->tm.tm_wday == (test)->wday ); \ - ok ( (test)->tm.tm_yday == (test)->yday ); \ - } while ( 0 ) - -/* Start of the Epoch */ -MKTIME_TEST ( mktime_epoch, 00, 00, 00, 01, 00, 70, 4, 0, 0, 0 ); - -/* Birth of iPXE as a new project */ -MKTIME_TEST ( mktime_ipxe, 01, 15, 20, 19, 03, 110, 1, 108, 0, 1271708101ULL ); - -/* Random test vectors generated using Perl's gmtime() */ -MKTIME_TEST ( mktime_0, 4, 17, 20, 1, 0, 150, 6, 0, 0, 2524681024ULL ); -MKTIME_TEST ( mktime_1, 22, 47, 21, 27, 11, 77, 2, 360, 0, 252107242ULL ); -MKTIME_TEST ( mktime_2, 26, 10, 0, 7, 2, 196, 3, 66, 0, 3981917426ULL ); -MKTIME_TEST ( mktime_3, 44, 44, 23, 15, 9, 261, 4, 287, 0, 6052319084ULL ); -MKTIME_TEST ( mktime_4, 3, 22, 18, 8, 9, 296, 6, 281, 0, 7156232523ULL ); -MKTIME_TEST ( mktime_5, 27, 26, 16, 18, 11, 338, 2, 351, 0, 8487649587ULL ); -MKTIME_TEST ( mktime_6, 31, 36, 22, 3, 3, 293, 3, 92, 0, 7045310191ULL ); -MKTIME_TEST ( mktime_7, 2, 0, 6, 25, 5, 289, 4, 175, 0, 6926191202ULL ); -MKTIME_TEST ( mktime_8, 43, 50, 1, 8, 0, 210, 3, 7, 0, 4418589043ULL ); -MKTIME_TEST ( mktime_9, 48, 14, 20, 23, 3, 86, 3, 112, 0, 514671288ULL ); -MKTIME_TEST ( mktime_10, 4, 43, 5, 29, 11, 173, 5, 362, 0, 3281751784ULL ); -MKTIME_TEST ( mktime_11, 47, 26, 21, 12, 7, 177, 4, 223, 0, 3396029207ULL ); -MKTIME_TEST ( mktime_12, 18, 55, 20, 26, 11, 88, 1, 360, 0, 599172918ULL ); -MKTIME_TEST ( mktime_13, 8, 32, 13, 15, 7, 314, 1, 226, 0, 7719456728ULL ); -MKTIME_TEST ( mktime_14, 0, 16, 11, 20, 6, 138, 2, 200, 0, 2163237360ULL ); -MKTIME_TEST ( mktime_15, 48, 0, 9, 31, 2, 202, 5, 89, 0, 4173238848ULL ); -MKTIME_TEST ( mktime_16, 51, 55, 0, 15, 1, 323, 6, 45, 0, 7987769751ULL ); -MKTIME_TEST ( mktime_17, 36, 10, 7, 11, 5, 301, 4, 161, 0, 7303590636ULL ); -MKTIME_TEST ( mktime_18, 22, 39, 11, 21, 9, 233, 3, 293, 0, 5169181162ULL ); -MKTIME_TEST ( mktime_19, 48, 29, 8, 31, 7, 207, 3, 242, 0, 4344222588ULL ); -MKTIME_TEST ( mktime_20, 4, 53, 22, 8, 8, 165, 2, 250, 0, 3019675984ULL ); -MKTIME_TEST ( mktime_21, 14, 16, 8, 10, 5, 298, 0, 160, 0, 7208900174ULL ); -MKTIME_TEST ( mktime_22, 10, 35, 3, 12, 3, 188, 1, 102, 0, 3732579310ULL ); -MKTIME_TEST ( mktime_23, 47, 12, 18, 22, 2, 103, 6, 80, 0, 1048356767ULL ); -MKTIME_TEST ( mktime_24, 23, 29, 17, 23, 10, 201, 3, 326, 0, 4162210163ULL ); -MKTIME_TEST ( mktime_25, 58, 35, 23, 24, 3, 111, 0, 113, 0, 1303688158ULL ); -MKTIME_TEST ( mktime_26, 34, 56, 15, 24, 11, 154, 4, 357, 0, 2681740594ULL ); -MKTIME_TEST ( mktime_27, 7, 11, 22, 28, 1, 243, 4, 58, 0, 5464447867ULL ); -MKTIME_TEST ( mktime_28, 25, 45, 23, 29, 11, 90, 6, 362, 0, 662514325ULL ); -MKTIME_TEST ( mktime_29, 31, 20, 12, 24, 1, 146, 6, 54, 0, 2403087631ULL ); -MKTIME_TEST ( mktime_30, 49, 7, 18, 16, 10, 271, 6, 319, 0, 6370596469ULL ); -MKTIME_TEST ( mktime_31, 31, 55, 2, 25, 5, 141, 2, 175, 0, 2255741731ULL ); - -/** - * Perform date and time self-tests - * - */ -static void time_test_exec ( void ) { - - mktime_ok ( &mktime_epoch ); - mktime_ok ( &mktime_ipxe ); - mktime_ok ( &mktime_0 ); - mktime_ok ( &mktime_1 ); - mktime_ok ( &mktime_2 ); - mktime_ok ( &mktime_3 ); - mktime_ok ( &mktime_4 ); - mktime_ok ( &mktime_5 ); - mktime_ok ( &mktime_6 ); - mktime_ok ( &mktime_7 ); - mktime_ok ( &mktime_8 ); - mktime_ok ( &mktime_9 ); - mktime_ok ( &mktime_10 ); - mktime_ok ( &mktime_11 ); - mktime_ok ( &mktime_12 ); - mktime_ok ( &mktime_13 ); - mktime_ok ( &mktime_14 ); - mktime_ok ( &mktime_15 ); - mktime_ok ( &mktime_16 ); - mktime_ok ( &mktime_17 ); - mktime_ok ( &mktime_18 ); - mktime_ok ( &mktime_19 ); - mktime_ok ( &mktime_20 ); - mktime_ok ( &mktime_21 ); - mktime_ok ( &mktime_22 ); - mktime_ok ( &mktime_23 ); - mktime_ok ( &mktime_24 ); - mktime_ok ( &mktime_25 ); - mktime_ok ( &mktime_26 ); - mktime_ok ( &mktime_27 ); - mktime_ok ( &mktime_28 ); - mktime_ok ( &mktime_29 ); - mktime_ok ( &mktime_30 ); - mktime_ok ( &mktime_31 ); -} - -/** Date and time self-test */ -struct self_test time_test __self_test = { - .name = "time", - .exec = time_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/umalloc_test.c b/qemu/roms/ipxe/src/tests/umalloc_test.c deleted file mode 100644 index 53810833c..000000000 --- a/qemu/roms/ipxe/src/tests/umalloc_test.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include -#include - -void umalloc_test ( void ) { - struct memory_map memmap; - userptr_t bob; - userptr_t fred; - - printf ( "Before allocation:\n" ); - get_memmap ( &memmap ); - - bob = umalloc ( 1234 ); - bob = urealloc ( bob, 12345 ); - fred = umalloc ( 999 ); - - printf ( "After allocation:\n" ); - get_memmap ( &memmap ); - - ufree ( bob ); - ufree ( fred ); - - printf ( "After freeing:\n" ); - get_memmap ( &memmap ); -} diff --git a/qemu/roms/ipxe/src/tests/uri_test.c b/qemu/roms/ipxe/src/tests/uri_test.c deleted file mode 100644 index da7fb8abe..000000000 --- a/qemu/roms/ipxe/src/tests/uri_test.c +++ /dev/null @@ -1,878 +0,0 @@ -/* - * Copyright (C) 2014 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * URI self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include - -/** A URI parsing/formatting test */ -struct uri_test { - /** URI string */ - const char *string; - /** URI */ - struct uri uri; -}; - -/** A URI port number test */ -struct uri_port_test { - /** URI string */ - const char *string; - /** Default port number */ - unsigned int default_port; - /** Expected port number */ - unsigned int port; -}; - -/** A URI or path resolution test */ -struct uri_resolve_test { - /** Base path or URI */ - const char *base; - /** Relative path or URI */ - const char *relative; - /** Expected resolved path or URI */ - const char *resolved; -}; - -/** A TFTP URI test */ -struct uri_tftp_test { - /** Next-server address */ - struct in_addr next_server; - /** Port number */ - unsigned int port; - /** Filename */ - const char *filename; - /** URI */ - struct uri uri; - /** URI string (for display only; cannot be reparsed) */ - const char *string; -}; - -/** A current working URI test */ -struct uri_churi_test { - /** Relative URI */ - const char *relative; - /** Expected new working URI */ - const char *expected; -}; - -/** A form parameter URI test list */ -struct uri_params_test_list { - /** Key */ - const char *key; - /** Value */ - const char *value; -}; - -/** A form parameter URI test */ -struct uri_params_test { - /** URI string */ - const char *string; - /** URI */ - struct uri uri; - /** Parameter list name */ - const char *name; - /** Parameter list */ - struct uri_params_test_list *list; -}; - -/** - * Compare two URI component strings - * - * @v first First string, or NULL - * @v second Second string, or NULL - * @v difference Difference - */ -static int uristrcmp ( const char *first, const char *second ) { - - /* Compare strings, allowing for either to be NULL */ - if ( first == second ) { - return 0; - } else if ( ( first == NULL ) || ( second == NULL ) ) { - return -1; - } else { - return strcmp ( first, second ); - } -} - -/** - * Report URI equality test result - * - * @v uri URI - * @v expected Expected URI - * @v file Test code file - * @v line Test code line - */ -static void uri_okx ( struct uri *uri, struct uri *expected, const char *file, - unsigned int line ) { - - okx ( uristrcmp ( uri->scheme, expected->scheme ) == 0, file, line ); - okx ( uristrcmp ( uri->opaque, expected->opaque ) == 0, file, line ); - okx ( uristrcmp ( uri->user, expected->user ) == 0, file, line ); - okx ( uristrcmp ( uri->password, expected->password ) == 0, file, line); - okx ( uristrcmp ( uri->host, expected->host ) == 0, file, line ); - okx ( uristrcmp ( uri->port, expected->port ) == 0, file, line ); - okx ( uristrcmp ( uri->path, expected->path ) == 0, file, line ); - okx ( uristrcmp ( uri->query, expected->query ) == 0, file, line ); - okx ( uristrcmp ( uri->fragment, expected->fragment ) == 0, file, line); - okx ( uri->params == expected->params, file, line ); -} -#define uri_ok( uri, expected ) uri_okx ( uri, expected, __FILE__, __LINE__ ) - -/** - * Report URI parsing test result - * - * @v test URI test - * @v file Test code file - * @v line Test code line - */ -static void uri_parse_okx ( struct uri_test *test, const char *file, - unsigned int line ) { - struct uri *uri; - - /* Parse URI */ - uri = parse_uri ( test->string ); - okx ( uri != NULL, file, line ); - if ( uri ) - uri_okx ( uri, &test->uri, file, line ); - uri_put ( uri ); -} -#define uri_parse_ok( test ) uri_parse_okx ( test, __FILE__, __LINE__ ) - -/** - * Report URI formatting test result - * - * @v test URI test - * @v file Test code file - * @v line Test code line - */ -static void uri_format_okx ( struct uri_test *test, const char *file, - unsigned int line ) { - char buf[ strlen ( test->string ) + 1 /* NUL */ ]; - char *tmp; - size_t len; - - /* Format into fixed-size buffer */ - len = format_uri ( &test->uri, buf, sizeof ( buf ) ); - okx ( len == ( sizeof ( buf ) - 1 /* NUL */ ), file, line ); - okx ( strcmp ( buf, test->string ) == 0, file, line ); - - /* Format into temporarily allocated buffer */ - tmp = format_uri_alloc ( &test->uri ); - okx ( tmp != NULL, file, line ); - if ( tmp ) - okx ( strcmp ( tmp, test->string ) == 0, file, line ); - free ( tmp ); -} -#define uri_format_ok( test ) uri_format_okx ( test, __FILE__, __LINE__ ) - -/** - * Report URI duplication test result - * - * @v test URI - * @v file Test code file - * @v line Test code line - */ -static void uri_dup_okx ( struct uri *uri, const char *file, - unsigned int line ) { - struct uri *dup; - - dup = uri_dup ( uri ); - okx ( dup != NULL, file, line ); - if ( dup ) - uri_okx ( dup, uri, file, line ); - uri_put ( dup ); -} -#define uri_dup_ok( test ) uri_dup_okx ( test, __FILE__, __LINE__ ) - -/** - * Report URI combined parsing and formatting test result - * - * @v test URI test - * @v file Test code file - * @v line Test code line - */ -static void uri_parse_format_dup_okx ( struct uri_test *test, const char *file, - unsigned int line ) { - - uri_parse_okx ( test, file, line ); - uri_format_okx ( test, file, line ); - uri_dup_okx ( &test->uri, file, line ); -} -#define uri_parse_format_dup_ok( test ) \ - uri_parse_format_dup_okx ( test, __FILE__, __LINE__ ) - -/** - * Report URI port number test result - * - * @v test URI port number test - * @v file Test code file - * @v line Test code line - */ -static void uri_port_okx ( struct uri_port_test *test, const char *file, - unsigned int line ) { - struct uri *uri; - unsigned int port; - - /* Parse URI */ - uri = parse_uri ( test->string ); - okx ( uri != NULL, file, line ); - if ( uri ) { - port = uri_port ( uri, test->default_port ); - okx ( port == test->port, file, line ); - } - uri_put ( uri ); -} -#define uri_port_ok( test ) uri_port_okx ( test, __FILE__, __LINE__ ) - -/** - * Report URI resolution test result - * - * @v test Path resolution test - * @v file Test code file - * @v line Test code line - */ -static void uri_resolve_okx ( struct uri_resolve_test *test, - const char *file, unsigned int line ) { - struct uri *base; - struct uri *relative; - struct uri *resolved = NULL; - char *formatted; - - /* Parse URIs */ - base = parse_uri ( test->base ); - okx ( base != NULL, file, line ); - relative = parse_uri ( test->relative ); - okx ( relative != NULL, file, line ); - - /* Resolve URI */ - if ( base && relative ) { - resolved = resolve_uri ( base, relative ); - okx ( resolved != NULL, file, line ); - } - - /* Format resolved URI */ - formatted = format_uri_alloc ( resolved ); - okx ( formatted != NULL, file, line ); - - /* Check resolved URI */ - if ( formatted ) - okx ( strcmp ( formatted, test->resolved ) == 0, file, line ); - - free ( formatted ); - uri_put ( resolved ); - uri_put ( relative ); - uri_put ( base ); -} -#define uri_resolve_ok( test ) uri_resolve_okx ( test, __FILE__, __LINE__ ) - -/** - * Report path resolution test result - * - * @v test Path resolution test - * @v file Test code file - * @v line Test code line - */ -static void uri_resolve_path_okx ( struct uri_resolve_test *test, - const char *file, unsigned int line ) { - char *resolved; - - /* Resolve paths using resolve_path() directly */ - resolved = resolve_path ( test->base, test->relative ); - okx ( resolved != NULL, file, line ); - if ( resolved ) - okx ( strcmp ( resolved, test->resolved ) == 0, file, line ); - free ( resolved ); - - /* Resolve paths as URIs (since all paths are valid URIs) */ - uri_resolve_okx ( test, file, line ); -} -#define uri_resolve_path_ok( test ) \ - uri_resolve_path_okx ( test, __FILE__, __LINE__ ) - -/** - * Report URI TFTP test result - * - * @v test URI TFTP test - * @v file Test code file - * @v line Test code line - */ -static void uri_tftp_okx ( struct uri_tftp_test *test, const char *file, - unsigned int line ) { - char buf[ strlen ( test->string ) + 1 /* NUL */ ]; - struct uri *uri; - size_t len; - - /* Construct URI */ - uri = tftp_uri ( test->next_server, test->port, test->filename ); - okx ( uri != NULL, file, line ); - if ( uri ) { - uri_okx ( uri, &test->uri, file, line ); - len = format_uri ( uri, buf, sizeof ( buf ) ); - okx ( len == ( sizeof ( buf ) - 1 /* NUL */ ), file, line ); - okx ( strcmp ( buf, test->string ) == 0, file, line ); - } - uri_put ( uri ); -} -#define uri_tftp_ok( test ) uri_tftp_okx ( test, __FILE__, __LINE__ ) - -/** - * Report current working URI test result - * - * @v tests List of current working URI tests - * @v file Test code file - * @v line Test code line - */ -static void uri_churi_okx ( struct uri_churi_test *test, const char *file, - unsigned int line ) { - struct uri *old_cwuri; - struct uri *uri; - char *formatted; - - /* Preserve original current working URI */ - old_cwuri = uri_get ( cwuri ); - - /* Perform sequence of current working URI changes */ - do { - /* Parse relative URI */ - uri = parse_uri ( test->relative ); - okx ( uri != NULL, file, line ); - - /* Move to this URI */ - churi ( uri ); - - /* Format new current working URI */ - formatted = format_uri_alloc ( cwuri ); - okx ( formatted != NULL, file, line ); - if ( formatted ) { - okx ( strcmp ( formatted, test->expected ) == 0, - file, line ); - } - - /* Free temporary storage */ - free ( formatted ); - uri_put ( uri ); - - /* Move to next current working URI test */ - test++; - - } while ( test->relative != NULL ); - - /* Restore original current working URI */ - churi ( old_cwuri ); - uri_put ( old_cwuri ); -} -#define uri_churi_ok( test ) uri_churi_okx ( test, __FILE__, __LINE__ ) - -/** - * Report form parameter URI test list result - * - * @v test Form parameter URI test - * @v uri URI - * @v file Test code file - * @v line Test code line - */ -static void uri_params_list_okx ( struct uri_params_test *test, - struct uri *uri, const char *file, - unsigned int line ) { - struct uri_params_test_list *list; - struct parameter *param; - - /* Check URI */ - uri_okx ( uri, &test->uri, file, line ); - - /* Check URI parameters */ - okx ( uri->params != NULL, file, line ); - if ( uri->params ) { - list = test->list; - for_each_param ( param, uri->params ) { - okx ( strcmp ( param->key, list->key ) == 0, - file, line ); - okx ( strcmp ( param->value, list->value ) == 0, - file, line ); - list++; - } - okx ( list->key == NULL, file, line ); - } -} -#define uri_params_list_ok( test ) \ - uri_params_list_okx ( test, __FILE__, __LINE__ ) - -/** - * Report form parameter URI test result - * - * @v test Form parameter URI test - * @v file Test code file - * @v line Test code line - */ -static void uri_params_okx ( struct uri_params_test *test, const char *file, - unsigned int line ) { - struct uri_params_test_list *list; - struct parameters *params; - struct parameter *param; - struct uri *uri; - struct uri *dup; - - /* Create parameter list */ - params = create_parameters ( test->name ); - okx ( params != NULL, file, line ); - if ( params ) { - for ( list = test->list ; list->key ; list++ ) { - param = add_parameter ( params, list->key, list->value); - okx ( param != NULL, file, line ); - } - } - - /* Record parameter list as part of expected URI */ - test->uri.params = params; - - /* Parse URI */ - uri = parse_uri ( test->string ); - okx ( uri != NULL, file, line ); - if ( uri ) - uri_params_list_okx ( test, uri, file, line ); - - /* Duplicate URI */ - dup = uri_dup ( uri ); - okx ( dup != NULL, file, line ); - if ( dup ) - uri_params_list_okx ( test, dup, file, line ); - - /* Clear parameter list in expected URI */ - test->uri.params = NULL; - - uri_put ( uri ); - uri_put ( dup ); -} -#define uri_params_ok( test ) uri_params_okx ( test, __FILE__, __LINE__ ) - -/** Empty URI */ -static struct uri_test uri_empty = { - .string = "", -}; - -/** Basic HTTP URI */ -static struct uri_test uri_boot_ipxe_org = { - "http://boot.ipxe.org/demo/boot.php", - { .scheme = "http", .host = "boot.ipxe.org", .path = "/demo/boot.php" } -}; - -/** Basic opaque URI */ -static struct uri_test uri_mailto = { - "mailto:ipxe-devel@lists.ipxe.org", - { .scheme = "mailto", .opaque = "ipxe-devel@lists.ipxe.org" } -}; - -/** HTTP URI with all the trimmings */ -static struct uri_test uri_http_all = { - "http://anon:password@example.com:3001/~foo/cgi-bin/foo.pl?a=b&c=d#bit", - { - .scheme = "http", - .user = "anon", - .password = "password", - .host = "example.com", - .port = "3001", - .path = "/~foo/cgi-bin/foo.pl", - .query = "a=b&c=d", - .fragment = "bit", - }, -}; - -/** HTTP URI with escaped characters */ -static struct uri_test uri_http_escaped = { - "https://test.ipxe.org/wtf%3F%0A?kind%23of/uri%20is#this%3F", - { - .scheme = "https", - .host = "test.ipxe.org", - .path = "/wtf?\n", - .query = "kind#of/uri is", - .fragment = "this?", - }, -}; - -/** HTTP URI with improperly escaped characters */ -static struct uri_test uri_http_escaped_improper = { - /* We accept for parsing improperly escaped characters. - * (Formatting the parsed URI would produce the properly - * encoded form, and so would not exactly match the original - * URI string.) - */ - "https://test%2eipxe.org/wt%66%3f\n?kind%23of/uri is#this?", - { - .scheme = "https", - .host = "test.ipxe.org", - .path = "/wtf?\n", - .query = "kind#of/uri is", - .fragment = "this?", - }, -}; - -/** IPv6 URI */ -static struct uri_test uri_ipv6 = { - "http://[2001:ba8:0:1d4::6950:5845]/", - { - .scheme = "http", - .host = "[2001:ba8:0:1d4::6950:5845]", - .path = "/", - }, -}; - -/** IPv6 URI with port */ -static struct uri_test uri_ipv6_port = { - "http://[2001:ba8:0:1d4::6950:5845]:8001/boot", - { - .scheme = "http", - .host = "[2001:ba8:0:1d4::6950:5845]", - .port = "8001", - .path = "/boot", - }, -}; - -/** IPv6 URI with link-local address */ -static struct uri_test uri_ipv6_local = { - "http://[fe80::69ff:fe50:5845%25net0]/ipxe", - { - .scheme = "http", - .host = "[fe80::69ff:fe50:5845%net0]", - .path = "/ipxe", - }, -}; - -/** IPv6 URI with link-local address not conforming to RFC 6874 */ -static struct uri_test uri_ipv6_local_non_conforming = { - /* We accept for parsing a single "%" in "%net0" (rather than - * the properly encoded form "%25net0"). (Formatting the - * parsed URI would produce the properly encoded form, and so - * would not exactly match the original URI string.) - */ - "http://[fe80::69ff:fe50:5845%net0]/ipxe", - { - .scheme = "http", - .host = "[fe80::69ff:fe50:5845%net0]", - .path = "/ipxe", - }, -}; - -/** iSCSI URI */ -static struct uri_test uri_iscsi = { - "iscsi:10.253.253.1::::iqn.2010-04.org.ipxe:rabbit", - { - .scheme = "iscsi", - .opaque = "10.253.253.1::::iqn.2010-04.org.ipxe:rabbit", - }, -}; - -/** URI with port number */ -static struct uri_port_test uri_explicit_port = { - "http://192.168.0.1:8080/boot.php", - 80, - 8080, -}; - -/** URI without port number */ -static struct uri_port_test uri_default_port = { - "http://192.168.0.1/boot.php", - 80, - 80, -}; - -/** Simple path resolution test */ -static struct uri_resolve_test uri_simple_path = { - "/etc/passwd", - "group", - "/etc/group", -}; - -/** Path resolution test with "." and ".." elements */ -static struct uri_resolve_test uri_relative_path = { - "/var/lib/tftpboot/pxe/pxelinux.0", - "./../ipxe/undionly.kpxe", - "/var/lib/tftpboot/ipxe/undionly.kpxe", -}; - -/** Path resolution test terminating with directory */ -static struct uri_resolve_test uri_directory_path = { - "/test/cgi-bin.pl/boot.ipxe", - "..", - "/test/", -}; - -/** Path resolution test with excessive ".." elements */ -static struct uri_resolve_test uri_excessive_path = { - "/var/lib/tftpboot/ipxe.pxe", - "../../../../../../../foo", - "/foo", -}; - -/** Path resolution test with absolute path */ -static struct uri_resolve_test uri_absolute_path = { - "/var/lib/tftpboot", - "/etc/hostname", - "/etc/hostname", -}; - -/** Relative URI resolution test */ -static struct uri_resolve_test uri_relative = { - "http://boot.ipxe.org/demo/boot.php?vendor=10ec&device=8139", - "initrd.img", - "http://boot.ipxe.org/demo/initrd.img", -}; - -/** Absolute URI resolution test */ -static struct uri_resolve_test uri_absolute = { - "http://boot.ipxe.org/demo/boot.php", - "ftp://192.168.0.1/boot.ipxe", - "ftp://192.168.0.1/boot.ipxe", -}; - -/** Absolute path URI resolution test */ -static struct uri_resolve_test uri_absolute_uri_path = { - "http://boot.ipxe.org/demo/boot.php#test", - "/demo/vmlinuz", - "http://boot.ipxe.org/demo/vmlinuz", -}; - -/** Query URI resolution test */ -static struct uri_resolve_test uri_query = { - "http://10.253.253.1/test.pl?mac=02-00-69-50-58-45", - "?mac=00-1f-16-bc-fe-2f", - "http://10.253.253.1/test.pl?mac=00-1f-16-bc-fe-2f", -}; - -/** Fragment URI resolution test */ -static struct uri_resolve_test uri_fragment = { - "http://192.168.0.254/test#foo", - "#bar", - "http://192.168.0.254/test#bar", -}; - -/** TFTP URI with absolute path */ -static struct uri_tftp_test uri_tftp_absolute = { - { .s_addr = htonl ( 0xc0a80002 ) /* 192.168.0.2 */ }, 0, - "/absolute/path", - { - .scheme = "tftp", - .host = "192.168.0.2", - .path = "/absolute/path", - }, - "tftp://192.168.0.2/absolute/path", -}; - -/** TFTP URI with relative path */ -static struct uri_tftp_test uri_tftp_relative = { - { .s_addr = htonl ( 0xc0a80003 ) /* 192.168.0.3 */ }, 0, - "relative/path", - { - .scheme = "tftp", - .host = "192.168.0.3", - .path = "relative/path", - }, - "tftp://192.168.0.3/relative/path", -}; - -/** TFTP URI with path containing special characters */ -static struct uri_tftp_test uri_tftp_icky = { - { .s_addr = htonl ( 0x0a000006 ) /* 10.0.0.6 */ }, 0, - "C:\\tftpboot\\icky#path", - { - .scheme = "tftp", - .host = "10.0.0.6", - .path = "C:\\tftpboot\\icky#path", - }, - "tftp://10.0.0.6/C%3A\\tftpboot\\icky%23path", -}; - -/** TFTP URI with custom port */ -static struct uri_tftp_test uri_tftp_port = { - { .s_addr = htonl ( 0xc0a80001 ) /* 192.168.0.1 */ }, 4069, - "/another/path", - { - .scheme = "tftp", - .host = "192.168.0.1", - .port = "4069", - .path = "/another/path", - }, - "tftp://192.168.0.1:4069/another/path", -}; - -/** Current working URI test */ -static struct uri_churi_test uri_churi[] = { - { - "http://boot.ipxe.org/demo/boot.php", - "http://boot.ipxe.org/demo/boot.php", - }, - { - "?vendor=10ec&device=8139", - "http://boot.ipxe.org/demo/boot.php?vendor=10ec&device=8139", - }, - { - "fedora/fedora.ipxe", - "http://boot.ipxe.org/demo/fedora/fedora.ipxe", - }, - { - "vmlinuz", - "http://boot.ipxe.org/demo/fedora/vmlinuz", - }, - { - "http://local/boot/initrd.img", - "http://local/boot/initrd.img", - }, - { - "modules/8139too.ko", - "http://local/boot/modules/8139too.ko", - }, - { - NULL, - NULL, - } -}; - -/** Form parameter URI test list */ -static struct uri_params_test_list uri_params_list[] = { - { - "vendor", - "10ec", - }, - { - "device", - "8139", - }, - { - "uuid", - "f59fac00-758f-498f-9fe5-87d790045d94", - }, - { - NULL, - NULL, - } -}; - -/** Form parameter URI test */ -static struct uri_params_test uri_params = { - "http://boot.ipxe.org/demo/boot.php##params", - { - .scheme = "http", - .host = "boot.ipxe.org", - .path = "/demo/boot.php", - }, - NULL, - uri_params_list, -}; - -/** Named form parameter URI test list */ -static struct uri_params_test_list uri_named_params_list[] = { - { - "mac", - "00:1e:65:80:d3:b6", - }, - { - "serial", - "LXTQ20Z1139322762F2000", - }, - { - NULL, - NULL, - } -}; - -/** Named form parameter URI test */ -static struct uri_params_test uri_named_params = { - "http://192.168.100.4:3001/register##params=foo", - { - .scheme = "http", - .host = "192.168.100.4", - .port = "3001", - .path = "/register", - }, - "foo", - uri_named_params_list, -}; - -/** - * Perform URI self-test - * - */ -static void uri_test_exec ( void ) { - - /* URI parsing, formatting, and duplication tests */ - uri_parse_format_dup_ok ( &uri_empty ); - uri_parse_format_dup_ok ( &uri_boot_ipxe_org ); - uri_parse_format_dup_ok ( &uri_mailto ); - uri_parse_format_dup_ok ( &uri_http_all ); - uri_parse_format_dup_ok ( &uri_http_escaped ); - uri_parse_ok ( &uri_http_escaped_improper ); /* Parse only */ - uri_parse_format_dup_ok ( &uri_ipv6 ); - uri_parse_format_dup_ok ( &uri_ipv6_port ); - uri_parse_format_dup_ok ( &uri_ipv6_local ); - uri_parse_ok ( &uri_ipv6_local_non_conforming ); /* Parse only */ - uri_parse_format_dup_ok ( &uri_iscsi ); - - /** URI port number tests */ - uri_port_ok ( &uri_explicit_port ); - uri_port_ok ( &uri_default_port ); - - /** Path resolution tests */ - uri_resolve_path_ok ( &uri_simple_path ); - uri_resolve_path_ok ( &uri_relative_path ); - uri_resolve_path_ok ( &uri_directory_path ); - uri_resolve_path_ok ( &uri_excessive_path ); - uri_resolve_path_ok ( &uri_absolute_path ); - - /** URI resolution tests */ - uri_resolve_ok ( &uri_relative ); - uri_resolve_ok ( &uri_absolute ); - uri_resolve_ok ( &uri_absolute_uri_path ); - uri_resolve_ok ( &uri_query ); - uri_resolve_ok ( &uri_fragment ); - - /* TFTP URI construction tests */ - uri_tftp_ok ( &uri_tftp_absolute ); - uri_tftp_ok ( &uri_tftp_relative ); - uri_tftp_ok ( &uri_tftp_icky ); - uri_tftp_ok ( &uri_tftp_port ); - - /* Current working URI tests */ - uri_churi_ok ( uri_churi ); - - /* Form parameter URI tests */ - uri_params_ok ( &uri_params ); - uri_params_ok ( &uri_named_params ); -} - -/** URI self-test */ -struct self_test uri_test __self_test = { - .name = "uri", - .exec = uri_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/vsprintf_test.c b/qemu/roms/ipxe/src/tests/vsprintf_test.c deleted file mode 100644 index 0ad4f1c56..000000000 --- a/qemu/roms/ipxe/src/tests/vsprintf_test.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * vsprintf() self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include - -/** - * Report an snprintf() test result - * - */ -#define snprintf_ok( len, result, format, ... ) do { \ - char actual[ (len) ]; \ - const char expected[] = result; \ - size_t actual_len; \ - \ - actual_len = snprintf ( actual, sizeof ( actual ), \ - format, ##__VA_ARGS__ ); \ - ok ( actual_len >= strlen ( result ) ); \ - ok ( strcmp ( actual, expected ) == 0 ); \ - if ( strcmp ( actual, expected ) != 0 ) { \ - DBG ( "SNPRINTF expected \"%s\", got \"%s\"\n", \ - expected, actual ); \ - } \ - } while ( 0 ) - -/** - * Perform vsprintf() self-tests - * - */ -static void vsprintf_test_exec ( void ) { - - /* Constant string */ - snprintf_ok ( 16, "Testing", "Testing" ); - - /* Constant string, truncated to fit */ - snprintf_ok ( 5, "Test", "Testing" ); - - /* Basic format specifiers */ - snprintf_ok ( 16, "%", "%%" ); - snprintf_ok ( 16, "ABC", "%c%c%c", 'A', 'B', 'C' ); - snprintf_ok ( 16, "abc", "%lc%lc%lc", L'a', L'b', L'c' ); - snprintf_ok ( 16, "Hello world", "%s %s", "Hello", "world" ); - snprintf_ok ( 16, "Goodbye world", "%ls %s", L"Goodbye", "world" ); - snprintf_ok ( 16, "0x1234abcd", "%p", ( ( void * ) 0x1234abcd ) ); - snprintf_ok ( 16, "0xa723", "%#x", 0xa723 ); - snprintf_ok ( 16, "a723", "%x", 0xa723 ); - snprintf_ok ( 16, "0x0000a723", "%#08x", 0xa723 ); - snprintf_ok ( 16, "00A723", "%06X", 0xa723 ); - snprintf_ok ( 16, "9876abcd", "%lx", 0x9876abcdUL ); - snprintf_ok ( 16, "1234 5678", "%04llx %04llx", 0x1234ULL, 0x5678ULL ); - snprintf_ok ( 16, "123", "%d", 123 ); - snprintf_ok ( 16, "456", "%i", 456 ); - snprintf_ok ( 16, " 99", "%3d", 99 ); - snprintf_ok ( 16, "099", "%03d", 99 ); - snprintf_ok ( 16, "-72", "%d", -72 ); - snprintf_ok ( 16, " -72", "%4d", -72 ); - snprintf_ok ( 16, "-072", "%04d", -72 ); - snprintf_ok ( 16, "4", "%zd", sizeof ( uint32_t ) ); - snprintf_ok ( 16, "123456789", "%d", 123456789 ); - - /* Realistic combinations */ - snprintf_ok ( 64, "DBG 0x1234 thingy at 0x0003f0c0+0x5c\n", - "DBG %p %s at %#08lx+%#zx\n", ( ( void * ) 0x1234 ), - "thingy", 0x3f0c0UL, ( ( size_t ) 0x5c ) ); - snprintf_ok ( 64, "PCI 00:1f.3", "PCI %02x:%02x.%x", 0x00, 0x1f, 0x03 ); - snprintf_ok ( 64, "Region [1000000,3f000000)", "Region [%llx,%llx)", - 0x1000000ULL, 0x3f000000ULL ); -} - -/** vsprintf() self-test */ -struct self_test vsprintf_test __self_test = { - .name = "vsprintf", - .exec = vsprintf_test_exec, -}; diff --git a/qemu/roms/ipxe/src/tests/x509_test.c b/qemu/roms/ipxe/src/tests/x509_test.c deleted file mode 100644 index 658d5247c..000000000 --- a/qemu/roms/ipxe/src/tests/x509_test.c +++ /dev/null @@ -1,1117 +0,0 @@ -/* - * Copyright (C) 2012 Michael Brown . - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * You can also choose to distribute this program under the terms of - * the Unmodified Binary Distribution Licence (as given in the file - * COPYING.UBDL), provided that you have satisfied its requirements. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** @file - * - * X.509 self-tests - * - */ - -/* Forcibly enable assertions */ -#undef NDEBUG - -#include -#include -#include -#include -#include -#include -#include - -/** Fingerprint algorithm used for X.509 test certificates */ -#define x509_test_algorithm sha256_algorithm - -/** An X.509 test certificate */ -struct x509_test_certificate { - /** Data */ - const void *data; - /** Length of data */ - size_t len; - /** Fingerprint */ - const void *fingerprint; - - /** Parsed certificate */ - struct x509_certificate *cert; -}; - -/** An X.509 test certificate chain */ -struct x509_test_chain { - /** Test certificates */ - struct x509_test_certificate **certs; - /** Number of certificates */ - unsigned int count; - - /** Parsed certificate chain */ - struct x509_chain *chain; -}; - -/** Define inline certificate data */ -#define DATA(...) { __VA_ARGS__ } - -/** Define inline fingerprint data */ -#define FINGERPRINT(...) { __VA_ARGS__ } - -/** Define a test certificate */ -#define CERTIFICATE( name, DATA, FINGERPRINT ) \ - static const uint8_t name ## _data[] = DATA; \ - static const uint8_t name ## _fingerprint[] = FINGERPRINT; \ - static struct x509_test_certificate name = { \ - .data = name ## _data, \ - .len = sizeof ( name ## _data ), \ - .fingerprint = name ## _fingerprint, \ - } - -/** Define a test certificate chain */ -#define CHAIN( name, ... ) \ - static struct x509_test_certificate * name ## _certs[] = \ - { __VA_ARGS__ }; \ - static struct x509_test_chain name = { \ - .certs = name ## _certs, \ - .count = ( sizeof ( name ## _certs ) / \ - sizeof ( name ## _certs[0] ) ), \ - } - -/* - * subject iPXE self-test root CA - * issuer iPXE self-test root CA - */ -CERTIFICATE ( root_crt, - DATA ( 0x30, 0x82, 0x02, 0xb3, 0x30, 0x82, 0x02, 0x1c, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xc6, 0xb8, 0x9c, 0x58, - 0xd2, 0xdc, 0xc9, 0x5d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, - 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, - 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, - 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, - 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, - 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, - 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, - 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, 0x06, - 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, 0x45, - 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, - 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, - 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, - 0x30, 0x31, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, - 0x38, 0x30, 0x38, 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, - 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, - 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, - 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, - 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, - 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, - 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, - 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, - 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, - 0x74, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, - 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, - 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xaa, 0x72, - 0xb5, 0xc1, 0x73, 0xf4, 0x95, 0x76, 0xa4, 0x27, 0xab, 0x5e, - 0xeb, 0x1d, 0x9d, 0xd0, 0x04, 0xb2, 0x93, 0x05, 0xc7, 0xfa, - 0x75, 0x84, 0x66, 0xe6, 0x3a, 0x26, 0x1f, 0xbc, 0x2d, 0xfd, - 0x8f, 0x59, 0x64, 0xac, 0xcf, 0x65, 0x9d, 0x82, 0x23, 0xc3, - 0x72, 0x93, 0xf2, 0x40, 0x68, 0x32, 0xd1, 0xb8, 0xf1, 0x47, - 0x61, 0x50, 0xea, 0xbc, 0xcc, 0x3c, 0x6b, 0x74, 0x7a, 0xec, - 0x2b, 0x75, 0xa6, 0xc2, 0xa2, 0xb8, 0xbf, 0x23, 0x48, 0x97, - 0xd5, 0xaf, 0x77, 0xc1, 0x92, 0x88, 0xd7, 0x38, 0xb7, 0x9e, - 0xda, 0xee, 0x72, 0x04, 0xcb, 0x96, 0xe5, 0xdb, 0xfd, 0x9b, - 0x5d, 0x99, 0x4e, 0x7a, 0x60, 0x23, 0x34, 0xa4, 0x8d, 0xd7, - 0x6c, 0xe7, 0x5d, 0x93, 0x97, 0xe1, 0xab, 0x36, 0x2c, 0x24, - 0x16, 0x92, 0x66, 0xf6, 0x6a, 0x14, 0x23, 0x1d, 0x18, 0xb9, - 0x44, 0x24, 0x61, 0x6b, 0xd3, 0x75, 0x02, 0x03, 0x01, 0x00, - 0x01, 0xa3, 0x23, 0x30, 0x21, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, - 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, - 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x94, 0x9e, 0xea, - 0x17, 0x8d, 0x27, 0xa9, 0x17, 0xe5, 0xa9, 0x19, 0xbe, 0x82, - 0x36, 0xbd, 0xac, 0x74, 0xf3, 0x6e, 0x75, 0x71, 0x30, 0x1c, - 0x05, 0x80, 0x6d, 0x1a, 0x69, 0x37, 0x86, 0x9c, 0x77, 0x75, - 0x29, 0xa1, 0xc6, 0xb7, 0x11, 0x0a, 0x63, 0x27, 0xee, 0xb1, - 0xc8, 0x94, 0xa9, 0x2e, 0x56, 0x8f, 0xca, 0x9d, 0xbe, 0xf4, - 0xdb, 0x63, 0x97, 0x68, 0x3b, 0x13, 0xf8, 0x6a, 0xa5, 0xd1, - 0x3d, 0xed, 0xbb, 0x86, 0x9d, 0x42, 0xfc, 0x15, 0x0a, 0x04, - 0xf8, 0x3c, 0x0e, 0xc4, 0x86, 0x05, 0x57, 0x56, 0x96, 0xf6, - 0xc0, 0x18, 0x53, 0xb0, 0xc5, 0xf0, 0xca, 0x72, 0x77, 0x77, - 0xc9, 0x8e, 0x90, 0xa5, 0x4b, 0xb6, 0x80, 0x4a, 0x4c, 0x34, - 0x6f, 0xc9, 0xe8, 0x6f, 0xc2, 0x28, 0xdf, 0x93, 0xa9, 0xf5, - 0x63, 0x18, 0xc0, 0xec, 0x9e, 0xd5, 0x19, 0x36, 0xc5, 0x94, - 0x10, 0xd4, 0x72, 0xd2, 0xb8 ), - FINGERPRINT ( 0x71, 0x5d, 0x51, 0x37, 0x5e, 0x18, 0xb3, 0xbc, - 0xbb, 0x30, 0x0e, 0x8f, 0x50, 0xc7, 0x55, 0xf5, - 0x96, 0xe7, 0xa8, 0x6d, 0x63, 0x2d, 0x32, 0x38, - 0xaf, 0x00, 0xc4, 0x1a, 0xfc, 0xd8, 0xac, 0xc3 ) ); - -/* - * subject iPXE self-test intermediate CA - * issuer iPXE self-test root CA - */ -CERTIFICATE ( intermediate_crt, - DATA ( 0x30, 0x82, 0x02, 0xb3, 0x30, 0x82, 0x02, 0x1c, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, - 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, - 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, - 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, - 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, - 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, - 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, - 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, - 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x31, - 0x34, 0x31, 0x32, 0x31, 0x37, 0x30, 0x30, 0x30, 0x31, 0x33, - 0x33, 0x5a, 0x30, 0x81, 0x90, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, - 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, - 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, - 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, - 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, - 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, - 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x27, - 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1e, 0x69, - 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, - 0x65, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x20, 0x43, 0x41, 0x30, - 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, - 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xc9, 0x3a, - 0xee, 0xc6, 0x3c, 0xac, 0x4d, 0x81, 0xc6, 0x98, 0x5e, 0xe1, - 0x48, 0x66, 0x1a, 0x1e, 0x60, 0x19, 0x41, 0xae, 0xca, 0x14, - 0x97, 0xc8, 0x3a, 0x50, 0xb6, 0x48, 0xf5, 0x42, 0xac, 0x0f, - 0xe1, 0xe3, 0x47, 0xf0, 0xbf, 0x7c, 0xd0, 0xee, 0x8f, 0xb7, - 0xa6, 0x19, 0xad, 0xbb, 0xc5, 0x1b, 0x34, 0x38, 0xc8, 0xbd, - 0x55, 0x84, 0x93, 0x72, 0xaf, 0x84, 0xfc, 0x9b, 0x97, 0x1d, - 0xb5, 0x54, 0x24, 0xd6, 0x5d, 0xb7, 0x31, 0xf4, 0xbd, 0x3b, - 0x40, 0x97, 0xc0, 0xa9, 0x5a, 0x2a, 0xcb, 0x6b, 0x98, 0x07, - 0xdb, 0xb5, 0x9f, 0xe8, 0x31, 0x3f, 0x01, 0x46, 0x46, 0x70, - 0x05, 0xa2, 0x0f, 0x8c, 0x7a, 0x61, 0xf3, 0xdf, 0xdb, 0xa1, - 0x37, 0x2c, 0x88, 0x6a, 0x81, 0x21, 0x12, 0x4c, 0xf5, 0xcd, - 0xaf, 0xc9, 0xd2, 0x36, 0x3d, 0x82, 0xd1, 0xca, 0x19, 0xaf, - 0x4e, 0xae, 0x50, 0x71, 0x44, 0xbf, 0x02, 0x03, 0x01, 0x00, - 0x01, 0xa3, 0x23, 0x30, 0x21, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, - 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, - 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x5d, 0x3c, 0xb3, - 0x52, 0x19, 0xa6, 0x9e, 0x4a, 0x44, 0x98, 0xbf, 0x51, 0x20, - 0x47, 0x0a, 0xf3, 0x26, 0x1a, 0xcc, 0x35, 0x2f, 0xc9, 0xed, - 0xe0, 0x9d, 0x46, 0xeb, 0xbc, 0x7e, 0xc9, 0xb9, 0x1d, 0x76, - 0xa4, 0x1d, 0xc2, 0xd9, 0x16, 0x29, 0x77, 0x01, 0x40, 0xdd, - 0xe5, 0xcb, 0x28, 0x91, 0x3a, 0x0c, 0x13, 0x01, 0x1b, 0x72, - 0x62, 0x45, 0x27, 0xfd, 0xd7, 0x00, 0x47, 0x36, 0x09, 0x1e, - 0x7b, 0xd2, 0xcb, 0x95, 0x3d, 0x28, 0x82, 0xce, 0x83, 0x59, - 0x32, 0xf9, 0xe6, 0xec, 0x89, 0xac, 0x88, 0x45, 0x22, 0x88, - 0x6f, 0x5e, 0xa2, 0x79, 0x95, 0xba, 0xb9, 0xc9, 0xb6, 0x4c, - 0x7c, 0xb4, 0x29, 0xa1, 0x02, 0xf5, 0xac, 0x5d, 0x8e, 0x52, - 0xeb, 0xe8, 0xb1, 0x56, 0x49, 0xb3, 0x77, 0x62, 0x7d, 0x87, - 0x4d, 0x17, 0xf2, 0x62, 0x83, 0x08, 0x59, 0x21, 0x60, 0x0d, - 0x84, 0x8e, 0x5a, 0x84, 0xf6 ), - FINGERPRINT ( 0x88, 0x70, 0xbf, 0xf0, 0xd6, 0x09, 0x03, 0x3a, - 0xe1, 0x80, 0xa7, 0xa5, 0x5c, 0x3e, 0xe1, 0x05, - 0x38, 0x97, 0xde, 0xe1, 0xe9, 0x74, 0x55, 0xb1, - 0x1e, 0x59, 0x69, 0x44, 0x42, 0x1b, 0xc8, 0xff ) ); - -/* - * subject iPXE self-test leaf CA - * issuer iPXE self-test intermediate CA - */ -CERTIFICATE ( leaf_crt, - DATA ( 0x30, 0x82, 0x02, 0xb6, 0x30, 0x82, 0x02, 0x1f, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, - 0x00, 0x30, 0x81, 0x90, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, - 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, - 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, - 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, - 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x27, 0x30, - 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1e, 0x69, 0x50, - 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x65, 0x20, 0x43, 0x41, 0x30, 0x1e, - 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, - 0x30, 0x31, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x31, 0x34, 0x31, - 0x32, 0x31, 0x37, 0x30, 0x30, 0x30, 0x31, 0x33, 0x33, 0x5a, - 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, - 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, - 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, - 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, - 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, - 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, - 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, 0x1d, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, 0x58, - 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, - 0x74, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x43, 0x41, 0x30, - 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, - 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, - 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xc3, 0x55, - 0xad, 0xdf, 0x7b, 0xd1, 0x48, 0xc3, 0xd3, 0x02, 0x54, 0x6c, - 0x92, 0x45, 0x22, 0x3d, 0x90, 0xd8, 0xc7, 0x13, 0xcd, 0xc1, - 0x59, 0xc6, 0xe0, 0xad, 0x0e, 0xe6, 0xdb, 0x3b, 0xe8, 0x63, - 0xea, 0x4e, 0xb6, 0xea, 0x50, 0xea, 0x6e, 0x33, 0x9d, 0x28, - 0x25, 0x42, 0x49, 0xd0, 0xf0, 0xed, 0xc5, 0x5b, 0x6b, 0x4a, - 0xe7, 0x45, 0xfa, 0xd3, 0x3f, 0xae, 0xde, 0x5a, 0x90, 0xab, - 0xf1, 0x61, 0x2f, 0x40, 0x5e, 0xcf, 0x8b, 0x0b, 0x10, 0x59, - 0xa9, 0xd0, 0x1e, 0x0f, 0x18, 0x6b, 0x92, 0xd8, 0x9f, 0x58, - 0x10, 0x84, 0xb6, 0x15, 0xe8, 0x5b, 0xc4, 0xa0, 0x3e, 0x49, - 0x8b, 0xea, 0xdd, 0xa9, 0x7e, 0x32, 0x26, 0x9a, 0x68, 0x44, - 0xf0, 0x30, 0xca, 0x2a, 0xd6, 0x19, 0x7a, 0x80, 0xfd, 0xd7, - 0xfc, 0xc7, 0x5d, 0xe7, 0x61, 0xd2, 0x3f, 0x1f, 0x2c, 0x40, - 0x70, 0x7b, 0x34, 0xcb, 0x08, 0xa9, 0x02, 0x03, 0x01, 0x00, - 0x01, 0xa3, 0x26, 0x30, 0x24, 0x30, 0x12, 0x06, 0x03, 0x55, - 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, - 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, - 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, - 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, - 0x40, 0xd2, 0x70, 0x02, 0x08, 0x19, 0xa0, 0xb8, 0x8d, 0x9d, - 0x3d, 0x62, 0x41, 0x90, 0x2a, 0x36, 0x4a, 0x8b, 0x21, 0x42, - 0x9a, 0xb4, 0xc5, 0xf8, 0x79, 0x17, 0xd7, 0x64, 0x4d, 0xbf, - 0x8f, 0x6a, 0x04, 0x54, 0x7a, 0x0b, 0xd4, 0xb5, 0x0e, 0xab, - 0xf7, 0xb7, 0x06, 0x2b, 0xf8, 0xde, 0x87, 0xb2, 0x37, 0x3b, - 0x95, 0x01, 0xba, 0x9f, 0x8f, 0xec, 0x0a, 0x86, 0xca, 0x51, - 0xb6, 0x25, 0x73, 0x2f, 0xa1, 0x66, 0xc8, 0x7a, 0x5e, 0x51, - 0xbd, 0x49, 0xb5, 0x75, 0xda, 0xea, 0xe5, 0xeb, 0x5d, 0xe3, - 0xb0, 0xad, 0x49, 0x9f, 0x8b, 0xfd, 0x89, 0xb3, 0xb7, 0xb2, - 0x4c, 0x7d, 0x8a, 0x29, 0xb2, 0xbe, 0x04, 0xef, 0x9c, 0x73, - 0x3c, 0xea, 0xa3, 0x9f, 0x07, 0x66, 0x5a, 0x2f, 0x38, 0xad, - 0x1a, 0xeb, 0xe1, 0xb0, 0x62, 0x14, 0x55, 0xdc, 0x8c, 0x83, - 0xbb, 0xc7, 0x13, 0x04, 0x41, 0x54, 0xf1, 0x45 ), - FINGERPRINT ( 0xca, 0xcf, 0xea, 0x98, 0x3d, 0x71, 0xb6, 0x9d, - 0x4f, 0x5b, 0x84, 0x5e, 0xaa, 0x8e, 0xae, 0x63, - 0x0e, 0xad, 0x52, 0xe8, 0xc7, 0x51, 0x81, 0x07, - 0xd1, 0xa1, 0x66, 0xdb, 0xd5, 0x62, 0xe1, 0xe6 ) ); - -/* - * subject iPXE self-test useless CA - * issuer iPXE self-test leaf CA - */ -CERTIFICATE ( useless_crt, - DATA ( 0x30, 0x82, 0x02, 0xae, 0x30, 0x82, 0x02, 0x17, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, - 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, - 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, - 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, - 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, - 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, - 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x43, 0x41, - 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, - 0x30, 0x30, 0x30, 0x31, 0x33, 0x34, 0x5a, 0x17, 0x0d, 0x31, - 0x34, 0x31, 0x32, 0x31, 0x37, 0x30, 0x30, 0x30, 0x31, 0x33, - 0x34, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, - 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, - 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, - 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, - 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, - 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, - 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x22, - 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x19, 0x69, - 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, - 0x65, 0x73, 0x74, 0x20, 0x75, 0x73, 0x65, 0x6c, 0x65, 0x73, - 0x73, 0x20, 0x43, 0x41, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, - 0x81, 0x81, 0x00, 0xbe, 0x7f, 0x5a, 0x07, 0x7c, 0x61, 0xc2, - 0x3a, 0x7e, 0xe3, 0x94, 0xcb, 0xe9, 0xc3, 0x4c, 0x6f, 0x8d, - 0x5c, 0x4a, 0xf0, 0xc2, 0x13, 0x54, 0x09, 0x39, 0xa8, 0xf9, - 0xc2, 0xc3, 0xdd, 0xbe, 0x42, 0x99, 0xa6, 0xe1, 0x58, 0x0a, - 0xd5, 0x89, 0x12, 0xa6, 0xd6, 0x4e, 0xfb, 0x6c, 0xe5, 0xab, - 0xff, 0x40, 0x52, 0xcc, 0x1e, 0x63, 0x10, 0xd7, 0xfe, 0x49, - 0xf3, 0x86, 0x29, 0x58, 0x6a, 0x90, 0xe4, 0xe2, 0x56, 0x85, - 0x14, 0x7d, 0xa5, 0xf8, 0xe0, 0x7e, 0x96, 0x88, 0xd9, 0x23, - 0xe5, 0x44, 0x72, 0xa9, 0x5a, 0xbb, 0x76, 0x6b, 0x59, 0x3e, - 0x85, 0xd4, 0xe7, 0xb2, 0x31, 0x32, 0xea, 0x40, 0x1f, 0xce, - 0xfb, 0xb1, 0x91, 0xee, 0x86, 0x91, 0x3e, 0xa4, 0x86, 0xa4, - 0xe9, 0x74, 0xd7, 0x14, 0x8c, 0xb6, 0xb4, 0xc0, 0x08, 0xbb, - 0xc8, 0x38, 0xc3, 0x96, 0x3d, 0x85, 0xcf, 0xef, 0x94, 0x52, - 0x29, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x23, 0x30, 0x21, - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, - 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, - 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, - 0x02, 0x02, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, - 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, - 0x81, 0x00, 0x50, 0x59, 0xfb, 0x9d, 0x4d, 0xfe, 0x0e, 0x5b, - 0xc4, 0x51, 0xe9, 0xe8, 0xa4, 0xf5, 0x2f, 0x32, 0x8b, 0x06, - 0x78, 0xbe, 0xf1, 0x18, 0xc5, 0x6f, 0xd9, 0x20, 0xee, 0xb7, - 0x51, 0x40, 0xaf, 0xf3, 0x3c, 0xe4, 0x74, 0x00, 0xa4, 0x63, - 0x3b, 0x37, 0xe1, 0xef, 0x80, 0xdc, 0xd5, 0x90, 0xed, 0xba, - 0x91, 0x86, 0x7f, 0x97, 0x5d, 0x3e, 0x8f, 0x29, 0xcc, 0x57, - 0xee, 0x79, 0x15, 0x6b, 0xe3, 0xd1, 0x25, 0x14, 0x24, 0xdf, - 0xbf, 0x38, 0xee, 0xe3, 0x8a, 0x88, 0x19, 0x0f, 0xc8, 0x10, - 0xae, 0x27, 0x99, 0xa8, 0x35, 0x47, 0xc9, 0xfb, 0x92, 0x47, - 0xa2, 0x36, 0x2a, 0x8c, 0x26, 0x12, 0xb1, 0x0d, 0x46, 0xe2, - 0xdc, 0x33, 0x29, 0x0c, 0x32, 0xcf, 0x22, 0x49, 0xde, 0xc3, - 0x55, 0x2a, 0xba, 0xdd, 0xe3, 0x98, 0xc0, 0xe4, 0x9a, 0xa2, - 0xe5, 0x43, 0x04, 0x32, 0xd3, 0x50, 0x7d, 0x9c, 0x71, 0x23 ), - FINGERPRINT ( 0xda, 0xbf, 0xd3, 0x5e, 0x2e, 0x29, 0xa9, 0xfd, - 0x4d, 0x40, 0xba, 0xb8, 0xdd, 0x66, 0x93, 0x4c, - 0x10, 0xea, 0x5b, 0x07, 0xa6, 0xe2, 0x27, 0x63, - 0x2e, 0xfe, 0x01, 0x63, 0x7c, 0xea, 0xc6, 0xd0 ) ); - -/* - * subject boot.test.ipxe.org - * issuer iPXE self-test leaf CA - */ -CERTIFICATE ( server_crt, - DATA ( 0x30, 0x82, 0x02, 0xd2, 0x30, 0x82, 0x02, 0x3b, 0xa0, 0x03, - 0x02, 0x01, 0x02, 0x02, 0x01, 0x1e, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, - 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, - 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, - 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, - 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, - 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1f, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, 0x69, 0x50, - 0x58, 0x45, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2d, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x43, 0x41, - 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x30, 0x35, - 0x31, 0x33, 0x34, 0x35, 0x30, 0x35, 0x5a, 0x17, 0x0d, 0x31, - 0x33, 0x30, 0x33, 0x30, 0x35, 0x31, 0x33, 0x34, 0x35, 0x30, - 0x35, 0x5a, 0x30, 0x81, 0x84, 0x31, 0x0b, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, - 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, - 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, - 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, - 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, - 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, - 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, - 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x1b, - 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x12, 0x62, - 0x6f, 0x6f, 0x74, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x69, - 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x30, 0x81, 0x9f, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, - 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, - 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xac, 0x7b, 0x54, 0xc1, - 0x97, 0x4d, 0x56, 0xbd, 0xb2, 0x52, 0xb3, 0x5c, 0x1b, 0x28, - 0xae, 0x91, 0x33, 0xf0, 0xc8, 0xc2, 0x3c, 0x7d, 0xe8, 0x95, - 0x72, 0xaf, 0xfe, 0xa1, 0x68, 0xe1, 0xbd, 0xe2, 0x9d, 0x4c, - 0xe8, 0x95, 0x56, 0x94, 0xce, 0x47, 0x57, 0x1b, 0xb1, 0x08, - 0xa1, 0x5b, 0x02, 0x8f, 0x56, 0x75, 0x1e, 0x4f, 0xfd, 0xc5, - 0x87, 0x5c, 0x1c, 0x3f, 0xab, 0x4f, 0xba, 0x25, 0x14, 0x6d, - 0xe3, 0xa2, 0x47, 0x33, 0xd0, 0x78, 0x63, 0xcc, 0x11, 0x37, - 0x08, 0x73, 0x25, 0x42, 0x20, 0xa9, 0x57, 0x29, 0xeb, 0x44, - 0x80, 0x0d, 0xe6, 0x76, 0x4b, 0x02, 0x8b, 0x67, 0xb2, 0x99, - 0xfe, 0xb3, 0x44, 0x62, 0xdf, 0x34, 0x0e, 0xf3, 0xe2, 0x17, - 0x42, 0x8f, 0x36, 0x42, 0x5a, 0x1c, 0x03, 0x3e, 0x06, 0x0d, - 0x5e, 0x08, 0x52, 0xd1, 0x06, 0xfb, 0xa9, 0xdb, 0x13, 0x15, - 0x08, 0x6d, 0x03, 0x85, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, - 0x4e, 0x30, 0x4c, 0x30, 0x4a, 0x06, 0x03, 0x55, 0x1d, 0x11, - 0x04, 0x43, 0x30, 0x41, 0x82, 0x12, 0x64, 0x65, 0x6d, 0x6f, - 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x69, 0x70, 0x78, 0x65, - 0x2e, 0x6f, 0x72, 0x67, 0x82, 0x13, 0x2a, 0x2e, 0x61, 0x6c, - 0x74, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x69, 0x70, 0x78, - 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x87, 0x04, 0xc0, 0xa8, 0x00, - 0x01, 0x87, 0x10, 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x69, 0xff, 0xfe, 0x50, 0x58, 0x45, 0x30, - 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, - 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x63, 0x83, - 0xf5, 0xde, 0xf7, 0x59, 0x81, 0xd3, 0x34, 0x61, 0xfd, 0x2c, - 0x0c, 0xec, 0x1c, 0x25, 0xd2, 0x2c, 0xe8, 0x90, 0x4f, 0x34, - 0x43, 0x2c, 0x86, 0x18, 0x9e, 0x66, 0x26, 0x0d, 0x02, 0x2a, - 0xea, 0x28, 0xc6, 0xbb, 0x51, 0x02, 0xbe, 0x8f, 0x51, 0x50, - 0xc7, 0x04, 0x49, 0x97, 0xb9, 0xd4, 0xa5, 0x74, 0x39, 0xaa, - 0x22, 0xbb, 0x4e, 0x46, 0x57, 0x15, 0x0e, 0xcf, 0x64, 0x60, - 0xc8, 0x13, 0xdf, 0x82, 0x09, 0x3b, 0x92, 0xf5, 0x69, 0x80, - 0xd2, 0x5e, 0x53, 0x9d, 0x3a, 0xcd, 0x9e, 0x81, 0xa1, 0xbd, - 0x5b, 0x66, 0x89, 0x4d, 0xf7, 0xa4, 0xd6, 0x92, 0xe4, 0xe1, - 0x80, 0x87, 0xfa, 0xa5, 0x47, 0x25, 0x9c, 0x35, 0x77, 0xa5, - 0x11, 0x1b, 0x48, 0x4c, 0x5e, 0x5e, 0x2f, 0xc7, 0xf8, 0x78, - 0x4c, 0x36, 0x41, 0xfb, 0x91, 0x5d, 0xf6, 0x43, 0x99, 0x7c, - 0xcd, 0x7f, 0x27, 0x4c, 0x75, 0xca ), - FINGERPRINT ( 0x82, 0xd3, 0xa0, 0x4c, 0x0d, 0x7d, 0x3c, 0xb1, - 0x90, 0x63, 0xd8, 0xef, 0x1e, 0xd2, 0xdd, 0x10, - 0xd5, 0x89, 0x40, 0x35, 0xb9, 0x5e, 0x98, 0x44, - 0x30, 0xa2, 0x48, 0x9a, 0xb8, 0x2f, 0xcf, 0xe3 ) ); - -/* - * subject not.a.ca.test.ipxe.org - * issuer boot.test.ipxe.org - */ -CERTIFICATE ( not_ca_crt, - DATA ( 0x30, 0x82, 0x02, 0x7d, 0x30, 0x82, 0x01, 0xe6, 0x02, 0x01, - 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x84, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x12, 0x62, 0x6f, 0x6f, 0x74, 0x2e, 0x74, 0x65, - 0x73, 0x74, 0x2e, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, - 0x67, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, - 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x34, 0x5a, 0x17, 0x0d, - 0x31, 0x33, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, - 0x33, 0x34, 0x5a, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, - 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, - 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, - 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, - 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, - 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, - 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, - 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, - 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x16, - 0x6e, 0x6f, 0x74, 0x2e, 0x61, 0x2e, 0x63, 0x61, 0x2e, 0x74, - 0x65, 0x73, 0x74, 0x2e, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, - 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, - 0x00, 0xc3, 0x5b, 0x6d, 0xb3, 0x8d, 0x74, 0x9c, 0x1d, 0xbd, - 0x94, 0x41, 0xa2, 0x42, 0x96, 0x3c, 0x41, 0x82, 0xc0, 0xf1, - 0x95, 0xbf, 0xc5, 0x34, 0x92, 0x92, 0xa3, 0xed, 0xed, 0x5c, - 0x07, 0xaa, 0xb4, 0xc1, 0x66, 0xbb, 0xa6, 0xd1, 0xd9, 0x78, - 0x93, 0xf1, 0x9c, 0x3e, 0x13, 0x3a, 0xee, 0x74, 0x31, 0xeb, - 0x55, 0x86, 0xa5, 0x43, 0x8a, 0x5d, 0x0c, 0x2c, 0x0d, 0xfb, - 0x91, 0x9e, 0x31, 0x22, 0xbe, 0x96, 0xb5, 0x0e, 0x44, 0xc8, - 0x5b, 0x65, 0xb2, 0xf5, 0xec, 0x2a, 0x51, 0xed, 0x8f, 0x28, - 0xd8, 0xb2, 0x4b, 0x45, 0x39, 0x31, 0x1f, 0x11, 0xb7, 0x12, - 0xe3, 0xc6, 0xb2, 0xd2, 0x8d, 0x50, 0xd5, 0xf4, 0xd2, 0x71, - 0x77, 0xc9, 0x4c, 0x67, 0xee, 0xf7, 0xdc, 0xdb, 0x68, 0xa6, - 0xac, 0x33, 0xd4, 0xb2, 0x12, 0x61, 0x5c, 0xae, 0x4c, 0x2e, - 0x26, 0xe8, 0xdf, 0x46, 0x3a, 0x05, 0xaf, 0xeb, 0x0d, 0x02, - 0x03, 0x01, 0x00, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, - 0x81, 0x81, 0x00, 0x90, 0x3e, 0x16, 0x27, 0x2f, 0x4e, 0x4b, - 0x31, 0x0e, 0xae, 0x31, 0x9d, 0x64, 0x88, 0x9f, 0xce, 0xd8, - 0x22, 0x51, 0x9d, 0xd9, 0x2b, 0xfe, 0xed, 0x75, 0xbe, 0xec, - 0x5a, 0x73, 0xaf, 0x6c, 0xa5, 0x5e, 0xd1, 0x15, 0x9a, 0x08, - 0xcf, 0x4d, 0x41, 0x78, 0x48, 0xb4, 0x29, 0xf1, 0xf7, 0x63, - 0x9b, 0x11, 0x91, 0x16, 0x94, 0x55, 0xff, 0xeb, 0xe9, 0x6f, - 0x0a, 0x34, 0x89, 0xed, 0xf2, 0xd1, 0x79, 0x91, 0x9d, 0xe5, - 0x73, 0x48, 0x68, 0x7f, 0x9b, 0xf4, 0x94, 0x80, 0x29, 0xbb, - 0x2f, 0xac, 0x6c, 0xf7, 0x6a, 0x43, 0xcc, 0x40, 0x34, 0x85, - 0xc8, 0xa1, 0x6d, 0x16, 0x36, 0x65, 0x3f, 0x93, 0x60, 0xc1, - 0x64, 0x33, 0x91, 0xa1, 0x8f, 0x86, 0x8c, 0xce, 0x14, 0x19, - 0x72, 0x28, 0xef, 0x94, 0x3d, 0x09, 0xb8, 0x3b, 0x39, 0xe8, - 0xd1, 0x66, 0x2b, 0x38, 0xb4, 0x46, 0x50, 0xf4, 0xcd, 0xc4, - 0x9a ), - FINGERPRINT ( 0x37, 0x6b, 0xc2, 0x20, 0xa9, 0xbc, 0xe2, 0x83, - 0x99, 0x60, 0x06, 0x2e, 0xaf, 0x94, 0xfe, 0xb0, - 0x1a, 0x2c, 0x17, 0x47, 0x1e, 0xc0, 0xd1, 0x66, - 0xb6, 0x76, 0xeb, 0x1c, 0x07, 0xae, 0x72, 0xf2 ) ); - -/* - * subject bad.path.len.test.ipxe.org - * issuer iPXE self-test useless CA - */ -CERTIFICATE ( bad_path_len_crt, - DATA ( 0x30, 0x82, 0x02, 0x88, 0x30, 0x82, 0x01, 0xf1, 0x02, 0x01, - 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, - 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x8b, 0x31, - 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x12, 0x30, - 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x09, 0x43, 0x61, - 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x31, 0x18, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0f, 0x46, 0x65, - 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, - 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, - 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, 0x78, 0x65, 0x2e, 0x6f, - 0x72, 0x67, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x0c, 0x19, 0x69, 0x50, 0x58, 0x45, 0x20, 0x73, 0x65, - 0x6c, 0x66, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x20, 0x75, 0x73, - 0x65, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x43, 0x41, 0x30, 0x1e, - 0x17, 0x0d, 0x31, 0x32, 0x30, 0x33, 0x32, 0x32, 0x30, 0x30, - 0x30, 0x31, 0x33, 0x34, 0x5a, 0x17, 0x0d, 0x31, 0x33, 0x30, - 0x33, 0x32, 0x32, 0x30, 0x30, 0x30, 0x31, 0x33, 0x34, 0x5a, - 0x30, 0x81, 0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x17, 0x30, 0x15, - 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0e, 0x43, 0x61, 0x6d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x68, 0x69, 0x72, - 0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, - 0x0c, 0x09, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, - 0x0c, 0x0f, 0x46, 0x65, 0x6e, 0x20, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x73, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x11, 0x30, - 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x08, 0x69, 0x70, - 0x78, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x31, 0x23, 0x30, 0x21, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1a, 0x62, 0x61, 0x64, - 0x2e, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x65, 0x6e, 0x2e, - 0x74, 0x65, 0x73, 0x74, 0x2e, 0x69, 0x70, 0x78, 0x65, 0x2e, - 0x6f, 0x72, 0x67, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, - 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, - 0x81, 0x00, 0xed, 0xf1, 0xe3, 0xb2, 0x61, 0x68, 0xa0, 0xd5, - 0x43, 0xfe, 0xad, 0xee, 0xfb, 0x8e, 0x2c, 0xf0, 0x44, 0xaf, - 0x0a, 0x3c, 0x87, 0xc2, 0x56, 0x9b, 0x66, 0x15, 0xc6, 0xbc, - 0x5b, 0x96, 0xef, 0xa1, 0x49, 0xd6, 0xe7, 0xeb, 0xb8, 0xf6, - 0x3d, 0x62, 0xf5, 0x51, 0xfd, 0xb1, 0xa5, 0x4e, 0x92, 0x7c, - 0x7a, 0x31, 0x1b, 0xb8, 0x21, 0x5c, 0xfe, 0x0b, 0x4e, 0x58, - 0xd6, 0xd0, 0x8b, 0x81, 0x00, 0x4a, 0xf8, 0xf7, 0x2a, 0xc9, - 0xea, 0xfa, 0x9c, 0xc9, 0x33, 0x0b, 0xc4, 0xce, 0x96, 0x4c, - 0x30, 0x6e, 0xf0, 0x07, 0xfa, 0x1b, 0x94, 0x1f, 0xe3, 0x3b, - 0xb2, 0x7d, 0x31, 0x1a, 0x37, 0x64, 0xe2, 0xc3, 0xf1, 0xe5, - 0xb9, 0xcc, 0xd1, 0x02, 0xae, 0x16, 0x39, 0x9b, 0xfc, 0x55, - 0xca, 0xdd, 0x33, 0x92, 0xe3, 0x12, 0x40, 0xc5, 0x32, 0x51, - 0x62, 0xac, 0x3a, 0xc0, 0x17, 0x36, 0xd0, 0x27, 0x3d, 0xbb, - 0x02, 0x03, 0x01, 0x00, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, - 0x03, 0x81, 0x81, 0x00, 0x07, 0x53, 0x2a, 0x80, 0xd6, 0x25, - 0x10, 0x37, 0xce, 0x3b, 0x87, 0x87, 0xfc, 0xae, 0xe2, 0x2a, - 0x28, 0x3f, 0xf7, 0xa6, 0x32, 0x5b, 0x06, 0xbd, 0x4f, 0x34, - 0x6b, 0x47, 0x8a, 0x4b, 0x47, 0x51, 0xe8, 0x45, 0x69, 0xe3, - 0xf3, 0xdf, 0xa4, 0x25, 0x8f, 0x34, 0xbe, 0xe5, 0x2c, 0xa4, - 0x6c, 0x8c, 0x6e, 0x02, 0x74, 0x23, 0x43, 0x21, 0x4d, 0xe3, - 0x75, 0x93, 0x8e, 0xa8, 0x2c, 0x54, 0xba, 0x35, 0xe7, 0xab, - 0x44, 0xfa, 0x07, 0x7a, 0x18, 0xb4, 0xa7, 0xce, 0xfa, 0xa6, - 0x74, 0x5a, 0x45, 0x2c, 0x6f, 0x86, 0x34, 0x8f, 0x4a, 0x09, - 0xe0, 0xf3, 0x4f, 0x37, 0xbb, 0xa3, 0xa0, 0xcb, 0xad, 0x6b, - 0xc1, 0x16, 0x06, 0xdf, 0x83, 0x98, 0xaf, 0xa8, 0xc3, 0xa0, - 0x5f, 0x33, 0x09, 0x01, 0x12, 0xbd, 0xd3, 0x45, 0x9f, 0x5f, - 0x96, 0x93, 0xe9, 0x69, 0xe9, 0xb1, 0x8a, 0xe4, 0x94, 0xce, - 0xe4, 0x8d ), - FINGERPRINT ( 0xb6, 0x80, 0x84, 0xf1, 0x45, 0x55, 0x1f, 0xbc, - 0x15, 0xa6, 0xd8, 0x4b, 0xf3, 0x19, 0x65, 0xef, - 0x53, 0x5a, 0xc8, 0x99, 0xe5, 0xdf, 0x79, 0x07, - 0x00, 0x2c, 0x9f, 0x49, 0x91, 0x21, 0xeb, 0xfc ) ); - -/** Valid certificate chain up to boot.test.ipxe.org */ -CHAIN ( server_chain, &server_crt, &leaf_crt, &intermediate_crt, &root_crt ); - -/** Broken certificate chain up to boot.test.ipxe.org */ -CHAIN ( broken_server_chain, &server_crt, &leaf_crt, &root_crt ); - -/** Incomplete certificate chain up to boot.test.ipxe.org */ -CHAIN ( incomplete_server_chain, &server_crt, &leaf_crt, &intermediate_crt ); - -/** Non-functional certificate chain up to not_ca.test.ipxe.org */ -CHAIN ( not_ca_chain, - ¬_ca_crt, &server_crt, &leaf_crt, &intermediate_crt, &root_crt ); - -/** Valid certificate chain up to iPXE self-test useless CA */ -CHAIN ( useless_chain, &useless_crt, &leaf_crt, &intermediate_crt, &root_crt ); - -/** Non-functional certificate chain up to bad.path.len.test.ipxe.org */ -CHAIN ( bad_path_len_chain, &bad_path_len_crt, &useless_crt, &leaf_crt, - &intermediate_crt, &root_crt ); - -/** Empty certificate store */ -static struct x509_chain empty_store = { - .refcnt = REF_INIT ( ref_no_free ), - .links = LIST_HEAD_INIT ( empty_store.links ), -}; - -/** Root certificate list containing the iPXE self-test root CA */ -static struct x509_root test_root = { - .digest = &x509_test_algorithm, - .count = 1, - .fingerprints = root_crt_fingerprint, -}; - -/** Root certificate list containing the iPXE self-test intermediate CA */ -static struct x509_root intermediate_root = { - .digest = &x509_test_algorithm, - .count = 1, - .fingerprints = intermediate_crt_fingerprint, -}; - -/** Dummy fingerprint (not matching any certificates) */ -static uint8_t dummy_fingerprint[] = - FINGERPRINT ( 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff ); - -/** Certificate store containing a dummy fingerprint */ -static struct x509_root dummy_root = { - .digest = &x509_test_algorithm, - .count = 1, - .fingerprints = dummy_fingerprint, -}; - -/** Time at which all test certificates are valid */ -static time_t test_time = 1332374737ULL; /* Thu Mar 22 00:05:37 2012 */ - -/** Time at which end-entity test certificates are invalid */ -static time_t test_expired = 1375573111ULL; /* Sat Aug 3 23:38:31 2013 */ - -/** Time at which CA test certificates are invalid */ -static time_t test_ca_expired = 2205014905ULL; /* Wed Nov 16 00:08:25 2039 */ - -/** - * Report certificate parsing test result - * - * @v crt Test certificate - * @v file Test code file - * @v line Test code line - */ -static void x509_certificate_okx ( struct x509_test_certificate *crt, - const char *file, unsigned int line ) { - - okx ( x509_certificate ( crt->data, crt->len, &crt->cert ) == 0, - file, line ); -} -#define x509_certificate_ok( crt ) \ - x509_certificate_okx ( crt, __FILE__, __LINE__ ) - -/** - * Report cached certificate parsing test result - * - * @v crt Test certificate - * @v file Test code file - * @v line Test code line - */ -static void x509_cached_okx ( struct x509_test_certificate *crt, - const char *file, unsigned int line ) { - struct x509_certificate *temp; - - okx ( x509_certificate ( crt->data, crt->len, &temp ) == 0, - file, line ); - okx ( temp == crt->cert, file, line ); - x509_put ( temp ); -} -#define x509_cached_ok( crt ) x509_cached_okx ( crt, __FILE__, __LINE__ ) - -/** - * Report certificate fingerprint test result - * - * @v crt Test certificate - * @v file Test code file - * @v line Test code line - */ -static void x509_fingerprint_okx ( struct x509_test_certificate *crt, - const char *file, unsigned int line ) { - uint8_t fingerprint[ x509_test_algorithm.digestsize ]; - - x509_fingerprint ( crt->cert, &x509_test_algorithm, fingerprint ); - okx ( memcmp ( fingerprint, crt->fingerprint, - sizeof ( fingerprint ) ) == 0, file, line ); -} -#define x509_fingerprint_ok( crt ) \ - x509_fingerprint_okx ( crt, __FILE__, __LINE__ ) - -/** - * Report certificate issuer validation test result - * - * @v crt Test certificate - * @v issuer Test issuer - * @v file Test code file - * @v line Test code line - */ -static void x509_check_issuer_okx ( struct x509_test_certificate *crt, - struct x509_test_certificate *issuer, - const char *file, unsigned int line ) { - - okx ( x509_check_issuer ( crt->cert, issuer->cert ) == 0, file, line ); -} -#define x509_check_issuer_ok( crt, issuer ) \ - x509_check_issuer_okx ( crt, issuer, __FILE__, __LINE__ ) - -/** - * Report certificate issuer validation failure test result - * - * @v crt Test certificate - * @v issuer Test issuer - * @v file Test code file - * @v line Test code line - */ -static void x509_check_issuer_fail_okx ( struct x509_test_certificate *crt, - struct x509_test_certificate *issuer, - const char *file, unsigned int line ) { - - okx ( x509_check_issuer ( crt->cert, issuer->cert ) != 0, - file, line ); -} -#define x509_check_issuer_fail_ok( crt, issuer ) \ - x509_check_issuer_fail_okx ( crt, issuer, __FILE__, __LINE__ ) - -/** - * Report certificate root validation test result - * - * @v crt Test certificate - * @v root Test root certificate store - * @v file Test code file - * @v line Test code line - */ -static void x509_check_root_okx ( struct x509_test_certificate *crt, - struct x509_root *root, const char *file, - unsigned int line ) { - - okx ( x509_check_root ( crt->cert, root ) == 0, file, line ); -} -#define x509_check_root_ok( crt, root ) \ - x509_check_root_okx ( crt, root, __FILE__, __LINE__ ) - -/** - * Report certificate root validation failure test result - * - * @v crt Test certificate - * @v root Test root certificate store - * @v file Test code file - * @v line Test code line - */ -static void x509_check_root_fail_okx ( struct x509_test_certificate *crt, - struct x509_root *root, - const char *file, unsigned int line ) { - - okx ( x509_check_root ( crt->cert, root ) != 0, file, line ); -} -#define x509_check_root_fail_ok( crt, root ) \ - x509_check_root_fail_okx ( crt, root, __FILE__, __LINE__ ) - -/** - * Report certificate time validation test result - * - * @v crt Test certificate - * @v time Test time - * @v file Test code file - * @v line Test code line - */ -static void x509_check_time_okx ( struct x509_test_certificate *crt, - time_t time, const char *file, - unsigned int line ) { - - okx ( x509_check_time ( crt->cert, time ) == 0, file, line ); -} -#define x509_check_time_ok( crt, time ) \ - x509_check_time_okx ( crt, time, __FILE__, __LINE__ ) - -/** - * Report certificate time validation failure test result - * - * @v crt Test certificate - * @v time Test time - * @v file Test code file - * @v line Test code line - */ -static void x509_check_time_fail_okx ( struct x509_test_certificate *crt, - time_t time, const char *file, - unsigned int line ) { - - okx ( x509_check_time ( crt->cert, time ) != 0, file, line ); -} -#define x509_check_time_fail_ok( crt, time ) \ - x509_check_time_fail_okx ( crt, time, __FILE__, __LINE__ ) - -/** - * Report certificate name validation test result - * - * @v crt Test certificate - * @v name Test name - * @v file Test code file - * @v line Test code line - */ -static void x509_check_name_okx ( struct x509_test_certificate *crt, - const char *name, const char *file, - unsigned int line ) { - - okx ( x509_check_name ( crt->cert, name ) == 0, file, line ); -} -#define x509_check_name_ok( crt, name ) \ - x509_check_name_okx ( crt, name, __FILE__, __LINE__ ) - -/** - * Report certificate name validation failure test result - * - * @v crt Test certificate - * @v name Test name - * @v file Test code file - * @v line Test code line - */ -static void x509_check_name_fail_okx ( struct x509_test_certificate *crt, - const char *name, const char *file, - unsigned int line ) { - - okx ( x509_check_name ( crt->cert, name ) != 0, file, line ); -} -#define x509_check_name_fail_ok( crt, name ) \ - x509_check_name_fail_okx ( crt, name, __FILE__, __LINE__ ) - -/** - * Report certificate chain parsing test result - * - * @v chn Test certificate chain - * @v file Test code file - * @v line Test code line - */ -static void x509_chain_okx ( struct x509_test_chain *chn, const char *file, - unsigned int line ) { - unsigned int i; - struct x509_certificate *first; - - chn->chain = x509_alloc_chain(); - okx ( chn->chain != NULL, file, line ); - for ( i = 0 ; i < chn->count ; i++ ) { - okx ( x509_append ( chn->chain, chn->certs[i]->cert ) == 0, - file, line ); - } - first = x509_first ( chn->chain ); - okx ( first != NULL, file, line ); - okx ( first->raw.len == chn->certs[0]->len, file, line ); - okx ( memcmp ( first->raw.data, chn->certs[0]->data, - first->raw.len ) == 0, file, line ); -} -#define x509_chain_ok( chn ) \ - x509_chain_okx ( chn, __FILE__, __LINE__ ) - -/** - * Report certificate chain validation test result - * - * @v chn Test certificate chain - * @v time Test certificate validation time - * @v store Test certificate store - * @v root Test root certificate list - * @v file Test code file - * @v line Test code line - */ -static void x509_validate_chain_okx ( struct x509_test_chain *chn, time_t time, - struct x509_chain *store, - struct x509_root *root, const char *file, - unsigned int line ) { - - x509_invalidate_chain ( chn->chain ); - okx ( x509_validate_chain ( chn->chain, time, store, root ) == 0, - file, line ); -} -#define x509_validate_chain_ok( chn, time, store, root ) \ - x509_validate_chain_okx ( chn, time, store, root, __FILE__, __LINE__ ) - -/** - * Report certificate chain validation failure test result - * - * @v chn Test certificate chain - * @v time Test certificate validation time - * @v store Test certificate store - * @v root Test root certificate list - * @v file Test code file - * @v line Test code line - */ -static void x509_validate_chain_fail_okx ( struct x509_test_chain *chn, - time_t time, - struct x509_chain *store, - struct x509_root *root, - const char *file, - unsigned int line ) { - - x509_invalidate_chain ( chn->chain ); - okx ( x509_validate_chain ( chn->chain, time, store, root ) != 0, - file, line ); -} -#define x509_validate_chain_fail_ok( chn, time, store, root ) \ - x509_validate_chain_fail_okx ( chn, time, store, root, \ - __FILE__, __LINE__ ) - -/** - * Perform X.509 self-tests - * - */ -static void x509_test_exec ( void ) { - - /* Parse all certificates */ - x509_certificate_ok ( &root_crt ); - x509_certificate_ok ( &intermediate_crt ); - x509_certificate_ok ( &leaf_crt ); - x509_certificate_ok ( &useless_crt ); - x509_certificate_ok ( &server_crt ); - x509_certificate_ok ( ¬_ca_crt ); - x509_certificate_ok ( &bad_path_len_crt ); - - /* Check cache functionality */ - x509_cached_ok ( &root_crt ); - x509_cached_ok ( &intermediate_crt ); - x509_cached_ok ( &leaf_crt ); - x509_cached_ok ( &useless_crt ); - x509_cached_ok ( &server_crt ); - x509_cached_ok ( ¬_ca_crt ); - x509_cached_ok ( &bad_path_len_crt ); - - /* Check all certificate fingerprints */ - x509_fingerprint_ok ( &root_crt ); - x509_fingerprint_ok ( &intermediate_crt ); - x509_fingerprint_ok ( &leaf_crt ); - x509_fingerprint_ok ( &useless_crt ); - x509_fingerprint_ok ( &server_crt ); - x509_fingerprint_ok ( ¬_ca_crt ); - x509_fingerprint_ok ( &bad_path_len_crt ); - - /* Check pairwise issuing */ - x509_check_issuer_ok ( &intermediate_crt, &root_crt ); - x509_check_issuer_ok ( &leaf_crt, &intermediate_crt ); - x509_check_issuer_ok ( &useless_crt, &leaf_crt ); - x509_check_issuer_ok ( &server_crt, &leaf_crt ); - x509_check_issuer_fail_ok ( ¬_ca_crt, &server_crt ); - x509_check_issuer_ok ( &bad_path_len_crt, &useless_crt ); - - /* Check root certificate stores */ - x509_check_root_ok ( &root_crt, &test_root ); - x509_check_root_fail_ok ( &intermediate_crt, &test_root ); - x509_check_root_ok ( &intermediate_crt, &intermediate_root ); - x509_check_root_fail_ok ( &root_crt, &intermediate_root ); - x509_check_root_fail_ok ( &root_crt, &dummy_root ); - - /* Check certificate validity periods */ - x509_check_time_ok ( &server_crt, test_time ); - x509_check_time_fail_ok ( &server_crt, test_expired ); - x509_check_time_ok ( &root_crt, test_time ); - x509_check_time_ok ( &root_crt, test_expired ); - x509_check_time_fail_ok ( &root_crt, test_ca_expired ); - - /* Check certificate names */ - x509_check_name_ok ( &server_crt, "boot.test.ipxe.org" ); - x509_check_name_ok ( &server_crt, "demo.test.ipxe.org" ); - x509_check_name_fail_ok ( &server_crt, "incorrect.test.ipxe.org" ); - x509_check_name_ok ( &server_crt, "anything.alt.test.ipxe.org" ); - x509_check_name_ok ( &server_crt, "wildcard.alt.test.ipxe.org" ); - x509_check_name_fail_ok ( &server_crt, "sub.domain.alt.test.ipxe.org" ); - x509_check_name_fail_ok ( &server_crt, "alt.test.ipxe.org" ); - x509_check_name_fail_ok ( &server_crt, "test.ipxe.org" ); - x509_check_name_fail_ok ( &server_crt, "ipxe.org" ); - x509_check_name_fail_ok ( &server_crt, "org" ); - x509_check_name_fail_ok ( &server_crt, "" ); - x509_check_name_ok ( &server_crt, "192.168.0.1" ); - x509_check_name_fail_ok ( &server_crt, "192.168.0.2" ); - x509_check_name_ok ( &server_crt, "fe80::69ff:fe50:5845" ); - x509_check_name_ok ( &server_crt, "FE80:0:0:0:0:69FF:FE50:5845" ); - x509_check_name_fail_ok ( &server_crt, "fe80::69ff:fe50:5846" ); - - /* Parse all certificate chains */ - x509_chain_ok ( &server_chain ); - x509_chain_ok ( &broken_server_chain ); - x509_chain_ok ( &incomplete_server_chain ); - x509_chain_ok ( ¬_ca_chain ); - x509_chain_ok ( &useless_chain ); - x509_chain_ok ( &bad_path_len_chain ); - - /* Check certificate chains */ - x509_validate_chain_ok ( &server_chain, test_time, - &empty_store, &test_root ); - x509_validate_chain_ok ( &server_chain, test_time, - &empty_store, &intermediate_root ); - x509_validate_chain_fail_ok ( &server_chain, test_time, - &empty_store, &dummy_root ); - x509_validate_chain_fail_ok ( &broken_server_chain, test_time, - &empty_store, &test_root ); - x509_validate_chain_fail_ok ( &incomplete_server_chain, test_time, - &empty_store, &test_root ); - x509_validate_chain_ok ( &incomplete_server_chain, test_time, - &empty_store, &intermediate_root ); - x509_validate_chain_fail_ok ( ¬_ca_chain, test_time, - &empty_store, &test_root ); - x509_validate_chain_ok ( &useless_chain, test_time, - &empty_store, &test_root ); - x509_validate_chain_fail_ok ( &bad_path_len_chain, test_time, - &empty_store, &test_root ); - - /* Check certificate chain expiry times */ - x509_validate_chain_fail_ok ( &server_chain, test_expired, - &empty_store, &test_root ); - x509_validate_chain_ok ( &useless_chain, test_expired, - &empty_store, &test_root ); - x509_validate_chain_fail_ok ( &useless_chain, test_ca_expired, - &empty_store, &test_root ); - - /* Sanity check */ - assert ( list_empty ( &empty_store.links ) ); - - /* Drop chain references */ - x509_chain_put ( bad_path_len_chain.chain ); - x509_chain_put ( useless_chain.chain ); - x509_chain_put ( not_ca_chain.chain ); - x509_chain_put ( incomplete_server_chain.chain ); - x509_chain_put ( broken_server_chain.chain ); - x509_chain_put ( server_chain.chain ); - - /* Drop certificate references */ - x509_put ( bad_path_len_crt.cert ); - x509_put ( not_ca_crt.cert ); - x509_put ( server_crt.cert ); - x509_put ( useless_crt.cert ); - x509_put ( leaf_crt.cert ); - x509_put ( intermediate_crt.cert ); - x509_put ( root_crt.cert ); -} - -/** X.509 self-test */ -struct self_test x509_test __self_test = { - .name = "x509", - .exec = x509_test_exec, -}; - -/* Drag in algorithms required for tests */ -REQUIRING_SYMBOL ( x509_test ); -REQUIRE_OBJECT ( rsa ); -REQUIRE_OBJECT ( sha1 ); -REQUIRE_OBJECT ( sha256 ); -REQUIRE_OBJECT ( ipv4 ); -REQUIRE_OBJECT ( ipv6 ); -- cgit 1.2.3-korg