Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
[HWRNG] omap: Minor updates
[CRYPTO] kconfig: Ordering cleanup
[CRYPTO] all: Clean up init()/fini()
[CRYPTO] padlock-aes: Use generic setkey function
[CRYPTO] aes: Export generic setkey
[CRYPTO] api: Make the crypto subsystem fully modular
[CRYPTO] cts: Add CTS mode required for Kerberos AES support
[CRYPTO] lrw: Replace all adds to big endians variables with be*_add_cpu
[CRYPTO] tcrypt: Change the XTEA test vectors
[CRYPTO] tcrypt: Shrink the tcrypt module
[CRYPTO] tcrypt: Change the usage of the test vectors
[CRYPTO] api: Constify function pointer tables
[CRYPTO] aes-x86-32: Remove unused return code
[CRYPTO] tcrypt: Shrink speed templates
[CRYPTO] tcrypt: Group common speed templates
[CRYPTO] sha512: Rename sha512 to sha512_generic
[CRYPTO] sha384: Hardware acceleration for s390
[CRYPTO] sha512: Hardware acceleration for s390
[CRYPTO] s390: Generic sha_update and sha_final
[CRYPTO] api: Switch to proc_create()

+7434 -7120
+3 -2
arch/s390/crypto/Makefile
··· 2 2 # Cryptographic API 3 3 # 4 4 5 - obj-$(CONFIG_CRYPTO_SHA1_S390) += sha1_s390.o 6 - obj-$(CONFIG_CRYPTO_SHA256_S390) += sha256_s390.o 5 + obj-$(CONFIG_CRYPTO_SHA1_S390) += sha1_s390.o sha_common.o 6 + obj-$(CONFIG_CRYPTO_SHA256_S390) += sha256_s390.o sha_common.o 7 + obj-$(CONFIG_CRYPTO_SHA512_S390) += sha512_s390.o sha_common.o 7 8 obj-$(CONFIG_CRYPTO_DES_S390) += des_s390.o des_check_key.o 8 9 obj-$(CONFIG_CRYPTO_AES_S390) += aes_s390.o 9 10 obj-$(CONFIG_S390_PRNG) += prng.o
+2
arch/s390/crypto/crypt_s390.h
··· 82 82 KIMD_QUERY = CRYPT_S390_KIMD | 0, 83 83 KIMD_SHA_1 = CRYPT_S390_KIMD | 1, 84 84 KIMD_SHA_256 = CRYPT_S390_KIMD | 2, 85 + KIMD_SHA_512 = CRYPT_S390_KIMD | 3, 85 86 }; 86 87 87 88 /* ··· 93 92 KLMD_QUERY = CRYPT_S390_KLMD | 0, 94 93 KLMD_SHA_1 = CRYPT_S390_KLMD | 1, 95 94 KLMD_SHA_256 = CRYPT_S390_KLMD | 2, 95 + KLMD_SHA_512 = CRYPT_S390_KLMD | 3, 96 96 }; 97 97 98 98 /*
+35
arch/s390/crypto/sha.h
··· 1 + /* 2 + * Cryptographic API. 3 + * 4 + * s390 generic implementation of the SHA Secure Hash Algorithms. 5 + * 6 + * Copyright IBM Corp. 2007 7 + * Author(s): Jan Glauber (jang@de.ibm.com) 8 + * 9 + * This program is free software; you can redistribute it and/or modify it 10 + * under the terms of the GNU General Public License as published by the Free 11 + * Software Foundation; either version 2 of the License, or (at your option) 12 + * any later version. 13 + * 14 + */ 15 + #ifndef _CRYPTO_ARCH_S390_SHA_H 16 + #define _CRYPTO_ARCH_S390_SHA_H 17 + 18 + #include <linux/crypto.h> 19 + #include <crypto/sha.h> 20 + 21 + /* must be big enough for the largest SHA variant */ 22 + #define SHA_MAX_STATE_SIZE 16 23 + #define SHA_MAX_BLOCK_SIZE SHA512_BLOCK_SIZE 24 + 25 + struct s390_sha_ctx { 26 + u64 count; /* message length in bytes */ 27 + u32 state[SHA_MAX_STATE_SIZE]; 28 + u8 buf[2 * SHA_MAX_BLOCK_SIZE]; 29 + int func; /* KIMD function to use */ 30 + }; 31 + 32 + void s390_sha_update(struct crypto_tfm *tfm, const u8 *data, unsigned int len); 33 + void s390_sha_final(struct crypto_tfm *tfm, u8 *out); 34 + 35 + #endif
+6 -85
arch/s390/crypto/sha1_s390.c
··· 29 29 #include <crypto/sha.h> 30 30 31 31 #include "crypt_s390.h" 32 - 33 - struct s390_sha1_ctx { 34 - u64 count; /* message length */ 35 - u32 state[5]; 36 - u8 buf[2 * SHA1_BLOCK_SIZE]; 37 - }; 32 + #include "sha.h" 38 33 39 34 static void sha1_init(struct crypto_tfm *tfm) 40 35 { 41 - struct s390_sha1_ctx *sctx = crypto_tfm_ctx(tfm); 36 + struct s390_sha_ctx *sctx = crypto_tfm_ctx(tfm); 42 37 43 38 sctx->state[0] = SHA1_H0; 44 39 sctx->state[1] = SHA1_H1; ··· 41 46 sctx->state[3] = SHA1_H3; 42 47 sctx->state[4] = SHA1_H4; 43 48 sctx->count = 0; 44 - } 45 - 46 - static void sha1_update(struct crypto_tfm *tfm, const u8 *data, 47 - unsigned int len) 48 - { 49 - struct s390_sha1_ctx *sctx = crypto_tfm_ctx(tfm); 50 - unsigned int index; 51 - int ret; 52 - 53 - /* how much is already in the buffer? */ 54 - index = sctx->count & 0x3f; 55 - 56 - sctx->count += len; 57 - 58 - if (index + len < SHA1_BLOCK_SIZE) 59 - goto store; 60 - 61 - /* process one stored block */ 62 - if (index) { 63 - memcpy(sctx->buf + index, data, SHA1_BLOCK_SIZE - index); 64 - ret = crypt_s390_kimd(KIMD_SHA_1, sctx->state, sctx->buf, 65 - SHA1_BLOCK_SIZE); 66 - BUG_ON(ret != SHA1_BLOCK_SIZE); 67 - data += SHA1_BLOCK_SIZE - index; 68 - len -= SHA1_BLOCK_SIZE - index; 69 - } 70 - 71 - /* process as many blocks as possible */ 72 - if (len >= SHA1_BLOCK_SIZE) { 73 - ret = crypt_s390_kimd(KIMD_SHA_1, sctx->state, data, 74 - len & ~(SHA1_BLOCK_SIZE - 1)); 75 - BUG_ON(ret != (len & ~(SHA1_BLOCK_SIZE - 1))); 76 - data += ret; 77 - len -= ret; 78 - } 79 - 80 - store: 81 - /* anything left? */ 82 - if (len) 83 - memcpy(sctx->buf + index , data, len); 84 - } 85 - 86 - /* Add padding and return the message digest. */ 87 - static void sha1_final(struct crypto_tfm *tfm, u8 *out) 88 - { 89 - struct s390_sha1_ctx *sctx = crypto_tfm_ctx(tfm); 90 - u64 bits; 91 - unsigned int index, end; 92 - int ret; 93 - 94 - /* must perform manual padding */ 95 - index = sctx->count & 0x3f; 96 - end = (index < 56) ? SHA1_BLOCK_SIZE : (2 * SHA1_BLOCK_SIZE); 97 - 98 - /* start pad with 1 */ 99 - sctx->buf[index] = 0x80; 100 - 101 - /* pad with zeros */ 102 - index++; 103 - memset(sctx->buf + index, 0x00, end - index - 8); 104 - 105 - /* append message length */ 106 - bits = sctx->count * 8; 107 - memcpy(sctx->buf + end - 8, &bits, sizeof(bits)); 108 - 109 - ret = crypt_s390_kimd(KIMD_SHA_1, sctx->state, sctx->buf, end); 110 - BUG_ON(ret != end); 111 - 112 - /* copy digest to out */ 113 - memcpy(out, sctx->state, SHA1_DIGEST_SIZE); 114 - 115 - /* wipe context */ 116 - memset(sctx, 0, sizeof *sctx); 49 + sctx->func = KIMD_SHA_1; 117 50 } 118 51 119 52 static struct crypto_alg alg = { ··· 50 127 .cra_priority = CRYPT_S390_PRIORITY, 51 128 .cra_flags = CRYPTO_ALG_TYPE_DIGEST, 52 129 .cra_blocksize = SHA1_BLOCK_SIZE, 53 - .cra_ctxsize = sizeof(struct s390_sha1_ctx), 130 + .cra_ctxsize = sizeof(struct s390_sha_ctx), 54 131 .cra_module = THIS_MODULE, 55 132 .cra_list = LIST_HEAD_INIT(alg.cra_list), 56 133 .cra_u = { .digest = { 57 134 .dia_digestsize = SHA1_DIGEST_SIZE, 58 135 .dia_init = sha1_init, 59 - .dia_update = sha1_update, 60 - .dia_final = sha1_final } } 136 + .dia_update = s390_sha_update, 137 + .dia_final = s390_sha_final } } 61 138 }; 62 139 63 140 static int __init sha1_s390_init(void) 64 141 { 65 142 if (!crypt_s390_func_available(KIMD_SHA_1)) 66 143 return -EOPNOTSUPP; 67 - 68 144 return crypto_register_alg(&alg); 69 145 } 70 146 ··· 76 154 module_exit(sha1_s390_fini); 77 155 78 156 MODULE_ALIAS("sha1"); 79 - 80 157 MODULE_LICENSE("GPL"); 81 158 MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm");
+6 -84
arch/s390/crypto/sha256_s390.c
··· 22 22 #include <crypto/sha.h> 23 23 24 24 #include "crypt_s390.h" 25 - 26 - struct s390_sha256_ctx { 27 - u64 count; /* message length */ 28 - u32 state[8]; 29 - u8 buf[2 * SHA256_BLOCK_SIZE]; 30 - }; 25 + #include "sha.h" 31 26 32 27 static void sha256_init(struct crypto_tfm *tfm) 33 28 { 34 - struct s390_sha256_ctx *sctx = crypto_tfm_ctx(tfm); 29 + struct s390_sha_ctx *sctx = crypto_tfm_ctx(tfm); 35 30 36 31 sctx->state[0] = SHA256_H0; 37 32 sctx->state[1] = SHA256_H1; ··· 37 42 sctx->state[6] = SHA256_H6; 38 43 sctx->state[7] = SHA256_H7; 39 44 sctx->count = 0; 40 - } 41 - 42 - static void sha256_update(struct crypto_tfm *tfm, const u8 *data, 43 - unsigned int len) 44 - { 45 - struct s390_sha256_ctx *sctx = crypto_tfm_ctx(tfm); 46 - unsigned int index; 47 - int ret; 48 - 49 - /* how much is already in the buffer? */ 50 - index = sctx->count & 0x3f; 51 - 52 - sctx->count += len; 53 - 54 - if ((index + len) < SHA256_BLOCK_SIZE) 55 - goto store; 56 - 57 - /* process one stored block */ 58 - if (index) { 59 - memcpy(sctx->buf + index, data, SHA256_BLOCK_SIZE - index); 60 - ret = crypt_s390_kimd(KIMD_SHA_256, sctx->state, sctx->buf, 61 - SHA256_BLOCK_SIZE); 62 - BUG_ON(ret != SHA256_BLOCK_SIZE); 63 - data += SHA256_BLOCK_SIZE - index; 64 - len -= SHA256_BLOCK_SIZE - index; 65 - } 66 - 67 - /* process as many blocks as possible */ 68 - if (len >= SHA256_BLOCK_SIZE) { 69 - ret = crypt_s390_kimd(KIMD_SHA_256, sctx->state, data, 70 - len & ~(SHA256_BLOCK_SIZE - 1)); 71 - BUG_ON(ret != (len & ~(SHA256_BLOCK_SIZE - 1))); 72 - data += ret; 73 - len -= ret; 74 - } 75 - 76 - store: 77 - /* anything left? */ 78 - if (len) 79 - memcpy(sctx->buf + index , data, len); 80 - } 81 - 82 - /* Add padding and return the message digest */ 83 - static void sha256_final(struct crypto_tfm *tfm, u8 *out) 84 - { 85 - struct s390_sha256_ctx *sctx = crypto_tfm_ctx(tfm); 86 - u64 bits; 87 - unsigned int index, end; 88 - int ret; 89 - 90 - /* must perform manual padding */ 91 - index = sctx->count & 0x3f; 92 - end = (index < 56) ? SHA256_BLOCK_SIZE : (2 * SHA256_BLOCK_SIZE); 93 - 94 - /* start pad with 1 */ 95 - sctx->buf[index] = 0x80; 96 - 97 - /* pad with zeros */ 98 - index++; 99 - memset(sctx->buf + index, 0x00, end - index - 8); 100 - 101 - /* append message length */ 102 - bits = sctx->count * 8; 103 - memcpy(sctx->buf + end - 8, &bits, sizeof(bits)); 104 - 105 - ret = crypt_s390_kimd(KIMD_SHA_256, sctx->state, sctx->buf, end); 106 - BUG_ON(ret != end); 107 - 108 - /* copy digest to out */ 109 - memcpy(out, sctx->state, SHA256_DIGEST_SIZE); 110 - 111 - /* wipe context */ 112 - memset(sctx, 0, sizeof *sctx); 45 + sctx->func = KIMD_SHA_256; 113 46 } 114 47 115 48 static struct crypto_alg alg = { ··· 46 123 .cra_priority = CRYPT_S390_PRIORITY, 47 124 .cra_flags = CRYPTO_ALG_TYPE_DIGEST, 48 125 .cra_blocksize = SHA256_BLOCK_SIZE, 49 - .cra_ctxsize = sizeof(struct s390_sha256_ctx), 126 + .cra_ctxsize = sizeof(struct s390_sha_ctx), 50 127 .cra_module = THIS_MODULE, 51 128 .cra_list = LIST_HEAD_INIT(alg.cra_list), 52 129 .cra_u = { .digest = { 53 130 .dia_digestsize = SHA256_DIGEST_SIZE, 54 131 .dia_init = sha256_init, 55 - .dia_update = sha256_update, 56 - .dia_final = sha256_final } } 132 + .dia_update = s390_sha_update, 133 + .dia_final = s390_sha_final } } 57 134 }; 58 135 59 136 static int sha256_s390_init(void) ··· 73 150 module_exit(sha256_s390_fini); 74 151 75 152 MODULE_ALIAS("sha256"); 76 - 77 153 MODULE_LICENSE("GPL"); 78 154 MODULE_DESCRIPTION("SHA256 Secure Hash Algorithm");
+114
arch/s390/crypto/sha512_s390.c
··· 1 + /* 2 + * Cryptographic API. 3 + * 4 + * s390 implementation of the SHA512 and SHA38 Secure Hash Algorithm. 5 + * 6 + * Copyright IBM Corp. 2007 7 + * Author(s): Jan Glauber (jang@de.ibm.com) 8 + * 9 + * This program is free software; you can redistribute it and/or modify it 10 + * under the terms of the GNU General Public License as published by the Free 11 + * Software Foundation; either version 2 of the License, or (at your option) 12 + * any later version. 13 + * 14 + */ 15 + #include <linux/init.h> 16 + #include <linux/module.h> 17 + #include <linux/crypto.h> 18 + 19 + #include "sha.h" 20 + #include "crypt_s390.h" 21 + 22 + static void sha512_init(struct crypto_tfm *tfm) 23 + { 24 + struct s390_sha_ctx *ctx = crypto_tfm_ctx(tfm); 25 + 26 + *(__u64 *)&ctx->state[0] = 0x6a09e667f3bcc908ULL; 27 + *(__u64 *)&ctx->state[2] = 0xbb67ae8584caa73bULL; 28 + *(__u64 *)&ctx->state[4] = 0x3c6ef372fe94f82bULL; 29 + *(__u64 *)&ctx->state[6] = 0xa54ff53a5f1d36f1ULL; 30 + *(__u64 *)&ctx->state[8] = 0x510e527fade682d1ULL; 31 + *(__u64 *)&ctx->state[10] = 0x9b05688c2b3e6c1fULL; 32 + *(__u64 *)&ctx->state[12] = 0x1f83d9abfb41bd6bULL; 33 + *(__u64 *)&ctx->state[14] = 0x5be0cd19137e2179ULL; 34 + ctx->count = 0; 35 + ctx->func = KIMD_SHA_512; 36 + } 37 + 38 + static struct crypto_alg sha512_alg = { 39 + .cra_name = "sha512", 40 + .cra_driver_name = "sha512-s390", 41 + .cra_priority = CRYPT_S390_PRIORITY, 42 + .cra_flags = CRYPTO_ALG_TYPE_DIGEST, 43 + .cra_blocksize = SHA512_BLOCK_SIZE, 44 + .cra_ctxsize = sizeof(struct s390_sha_ctx), 45 + .cra_module = THIS_MODULE, 46 + .cra_list = LIST_HEAD_INIT(sha512_alg.cra_list), 47 + .cra_u = { .digest = { 48 + .dia_digestsize = SHA512_DIGEST_SIZE, 49 + .dia_init = sha512_init, 50 + .dia_update = s390_sha_update, 51 + .dia_final = s390_sha_final } } 52 + }; 53 + 54 + MODULE_ALIAS("sha512"); 55 + 56 + static void sha384_init(struct crypto_tfm *tfm) 57 + { 58 + struct s390_sha_ctx *ctx = crypto_tfm_ctx(tfm); 59 + 60 + *(__u64 *)&ctx->state[0] = 0xcbbb9d5dc1059ed8ULL; 61 + *(__u64 *)&ctx->state[2] = 0x629a292a367cd507ULL; 62 + *(__u64 *)&ctx->state[4] = 0x9159015a3070dd17ULL; 63 + *(__u64 *)&ctx->state[6] = 0x152fecd8f70e5939ULL; 64 + *(__u64 *)&ctx->state[8] = 0x67332667ffc00b31ULL; 65 + *(__u64 *)&ctx->state[10] = 0x8eb44a8768581511ULL; 66 + *(__u64 *)&ctx->state[12] = 0xdb0c2e0d64f98fa7ULL; 67 + *(__u64 *)&ctx->state[14] = 0x47b5481dbefa4fa4ULL; 68 + ctx->count = 0; 69 + ctx->func = KIMD_SHA_512; 70 + } 71 + 72 + static struct crypto_alg sha384_alg = { 73 + .cra_name = "sha384", 74 + .cra_driver_name = "sha384-s390", 75 + .cra_priority = CRYPT_S390_PRIORITY, 76 + .cra_flags = CRYPTO_ALG_TYPE_DIGEST, 77 + .cra_blocksize = SHA384_BLOCK_SIZE, 78 + .cra_ctxsize = sizeof(struct s390_sha_ctx), 79 + .cra_module = THIS_MODULE, 80 + .cra_list = LIST_HEAD_INIT(sha384_alg.cra_list), 81 + .cra_u = { .digest = { 82 + .dia_digestsize = SHA384_DIGEST_SIZE, 83 + .dia_init = sha384_init, 84 + .dia_update = s390_sha_update, 85 + .dia_final = s390_sha_final } } 86 + }; 87 + 88 + MODULE_ALIAS("sha384"); 89 + 90 + static int __init init(void) 91 + { 92 + int ret; 93 + 94 + if (!crypt_s390_func_available(KIMD_SHA_512)) 95 + return -EOPNOTSUPP; 96 + if ((ret = crypto_register_alg(&sha512_alg)) < 0) 97 + goto out; 98 + if ((ret = crypto_register_alg(&sha384_alg)) < 0) 99 + crypto_unregister_alg(&sha512_alg); 100 + out: 101 + return ret; 102 + } 103 + 104 + static void __exit fini(void) 105 + { 106 + crypto_unregister_alg(&sha512_alg); 107 + crypto_unregister_alg(&sha384_alg); 108 + } 109 + 110 + module_init(init); 111 + module_exit(fini); 112 + 113 + MODULE_LICENSE("GPL"); 114 + MODULE_DESCRIPTION("SHA512 and SHA-384 Secure Hash Algorithm");
+97
arch/s390/crypto/sha_common.c
··· 1 + /* 2 + * Cryptographic API. 3 + * 4 + * s390 generic implementation of the SHA Secure Hash Algorithms. 5 + * 6 + * Copyright IBM Corp. 2007 7 + * Author(s): Jan Glauber (jang@de.ibm.com) 8 + * 9 + * This program is free software; you can redistribute it and/or modify it 10 + * under the terms of the GNU General Public License as published by the Free 11 + * Software Foundation; either version 2 of the License, or (at your option) 12 + * any later version. 13 + * 14 + */ 15 + 16 + #include <linux/crypto.h> 17 + #include "sha.h" 18 + #include "crypt_s390.h" 19 + 20 + void s390_sha_update(struct crypto_tfm *tfm, const u8 *data, unsigned int len) 21 + { 22 + struct s390_sha_ctx *ctx = crypto_tfm_ctx(tfm); 23 + unsigned int bsize = crypto_tfm_alg_blocksize(tfm); 24 + unsigned int index; 25 + int ret; 26 + 27 + /* how much is already in the buffer? */ 28 + index = ctx->count & (bsize - 1); 29 + ctx->count += len; 30 + 31 + if ((index + len) < bsize) 32 + goto store; 33 + 34 + /* process one stored block */ 35 + if (index) { 36 + memcpy(ctx->buf + index, data, bsize - index); 37 + ret = crypt_s390_kimd(ctx->func, ctx->state, ctx->buf, bsize); 38 + BUG_ON(ret != bsize); 39 + data += bsize - index; 40 + len -= bsize - index; 41 + } 42 + 43 + /* process as many blocks as possible */ 44 + if (len >= bsize) { 45 + ret = crypt_s390_kimd(ctx->func, ctx->state, data, 46 + len & ~(bsize - 1)); 47 + BUG_ON(ret != (len & ~(bsize - 1))); 48 + data += ret; 49 + len -= ret; 50 + } 51 + store: 52 + if (len) 53 + memcpy(ctx->buf + index , data, len); 54 + } 55 + EXPORT_SYMBOL_GPL(s390_sha_update); 56 + 57 + void s390_sha_final(struct crypto_tfm *tfm, u8 *out) 58 + { 59 + struct s390_sha_ctx *ctx = crypto_tfm_ctx(tfm); 60 + unsigned int bsize = crypto_tfm_alg_blocksize(tfm); 61 + u64 bits; 62 + unsigned int index, end, plen; 63 + int ret; 64 + 65 + /* SHA-512 uses 128 bit padding length */ 66 + plen = (bsize > SHA256_BLOCK_SIZE) ? 16 : 8; 67 + 68 + /* must perform manual padding */ 69 + index = ctx->count & (bsize - 1); 70 + end = (index < bsize - plen) ? bsize : (2 * bsize); 71 + 72 + /* start pad with 1 */ 73 + ctx->buf[index] = 0x80; 74 + index++; 75 + 76 + /* pad with zeros */ 77 + memset(ctx->buf + index, 0x00, end - index - 8); 78 + 79 + /* 80 + * Append message length. Well, SHA-512 wants a 128 bit lenght value, 81 + * nevertheless we use u64, should be enough for now... 82 + */ 83 + bits = ctx->count * 8; 84 + memcpy(ctx->buf + end - 8, &bits, sizeof(bits)); 85 + 86 + ret = crypt_s390_kimd(ctx->func, ctx->state, ctx->buf, end); 87 + BUG_ON(ret != end); 88 + 89 + /* copy digest to out */ 90 + memcpy(out, ctx->state, crypto_hash_digestsize(crypto_hash_cast(tfm))); 91 + /* wipe context */ 92 + memset(ctx, 0, sizeof *ctx); 93 + } 94 + EXPORT_SYMBOL_GPL(s390_sha_final); 95 + 96 + MODULE_LICENSE("GPL"); 97 + MODULE_DESCRIPTION("s390 SHA cipher common functions");
-3
arch/x86/crypto/aes-i586-asm_32.S
··· 289 289 pop %ebx 290 290 mov %r0,(%ebp) 291 291 pop %ebp 292 - mov $1,%eax 293 292 ret 294 293 295 294 // AES (Rijndael) Decryption Subroutine ··· 364 365 pop %ebx 365 366 mov %r0,(%ebp) 366 367 pop %ebp 367 - mov $1,%eax 368 368 ret 369 -
+361 -337
crypto/Kconfig
··· 13 13 # Cryptographic API Configuration 14 14 # 15 15 menuconfig CRYPTO 16 - bool "Cryptographic API" 16 + tristate "Cryptographic API" 17 17 help 18 18 This option provides the core Cryptographic API. 19 19 20 20 if CRYPTO 21 + 22 + comment "Crypto core or helper" 21 23 22 24 config CRYPTO_ALGAPI 23 25 tristate ··· 34 32 tristate 35 33 select CRYPTO_ALGAPI 36 34 37 - config CRYPTO_SEQIV 38 - tristate "Sequence Number IV Generator" 39 - select CRYPTO_AEAD 40 - select CRYPTO_BLKCIPHER 41 - help 42 - This IV generator generates an IV based on a sequence number by 43 - xoring it with a salt. This algorithm is mainly useful for CTR 44 - and similar modes. 45 - 46 35 config CRYPTO_HASH 47 36 tristate 48 37 select CRYPTO_ALGAPI ··· 44 51 help 45 52 Create default cryptographic template instantiations such as 46 53 cbc(aes). 54 + 55 + config CRYPTO_GF128MUL 56 + tristate "GF(2^128) multiplication functions (EXPERIMENTAL)" 57 + depends on EXPERIMENTAL 58 + help 59 + Efficient table driven implementation of multiplications in the 60 + field GF(2^128). This is needed by some cypher modes. This 61 + option will be selected automatically if you select such a 62 + cipher mode. Only select this option by hand if you expect to load 63 + an external module that requires these functions. 64 + 65 + config CRYPTO_NULL 66 + tristate "Null algorithms" 67 + select CRYPTO_ALGAPI 68 + select CRYPTO_BLKCIPHER 69 + help 70 + These are 'Null' algorithms, used by IPsec, which do nothing. 71 + 72 + config CRYPTO_CRYPTD 73 + tristate "Software async crypto daemon" 74 + select CRYPTO_BLKCIPHER 75 + select CRYPTO_MANAGER 76 + help 77 + This is a generic software asynchronous crypto daemon that 78 + converts an arbitrary synchronous software crypto algorithm 79 + into an asynchronous algorithm that executes in a kernel thread. 80 + 81 + config CRYPTO_AUTHENC 82 + tristate "Authenc support" 83 + select CRYPTO_AEAD 84 + select CRYPTO_BLKCIPHER 85 + select CRYPTO_MANAGER 86 + select CRYPTO_HASH 87 + help 88 + Authenc: Combined mode wrapper for IPsec. 89 + This is required for IPSec. 90 + 91 + config CRYPTO_TEST 92 + tristate "Testing module" 93 + depends on m 94 + select CRYPTO_ALGAPI 95 + select CRYPTO_AEAD 96 + select CRYPTO_BLKCIPHER 97 + help 98 + Quick & dirty crypto test module. 99 + 100 + comment "Authenticated Encryption with Associated Data" 101 + 102 + config CRYPTO_CCM 103 + tristate "CCM support" 104 + select CRYPTO_CTR 105 + select CRYPTO_AEAD 106 + help 107 + Support for Counter with CBC MAC. Required for IPsec. 108 + 109 + config CRYPTO_GCM 110 + tristate "GCM/GMAC support" 111 + select CRYPTO_CTR 112 + select CRYPTO_AEAD 113 + select CRYPTO_GF128MUL 114 + help 115 + Support for Galois/Counter Mode (GCM) and Galois Message 116 + Authentication Code (GMAC). Required for IPSec. 117 + 118 + config CRYPTO_SEQIV 119 + tristate "Sequence Number IV Generator" 120 + select CRYPTO_AEAD 121 + select CRYPTO_BLKCIPHER 122 + help 123 + This IV generator generates an IV based on a sequence number by 124 + xoring it with a salt. This algorithm is mainly useful for CTR 125 + 126 + comment "Block modes" 127 + 128 + config CRYPTO_CBC 129 + tristate "CBC support" 130 + select CRYPTO_BLKCIPHER 131 + select CRYPTO_MANAGER 132 + help 133 + CBC: Cipher Block Chaining mode 134 + This block cipher algorithm is required for IPSec. 135 + 136 + config CRYPTO_CTR 137 + tristate "CTR support" 138 + select CRYPTO_BLKCIPHER 139 + select CRYPTO_SEQIV 140 + select CRYPTO_MANAGER 141 + help 142 + CTR: Counter mode 143 + This block cipher algorithm is required for IPSec. 144 + 145 + config CRYPTO_CTS 146 + tristate "CTS support" 147 + select CRYPTO_BLKCIPHER 148 + help 149 + CTS: Cipher Text Stealing 150 + This is the Cipher Text Stealing mode as described by 151 + Section 8 of rfc2040 and referenced by rfc3962. 152 + (rfc3962 includes errata information in its Appendix A) 153 + This mode is required for Kerberos gss mechanism support 154 + for AES encryption. 155 + 156 + config CRYPTO_ECB 157 + tristate "ECB support" 158 + select CRYPTO_BLKCIPHER 159 + select CRYPTO_MANAGER 160 + help 161 + ECB: Electronic CodeBook mode 162 + This is the simplest block cipher algorithm. It simply encrypts 163 + the input block by block. 164 + 165 + config CRYPTO_LRW 166 + tristate "LRW support (EXPERIMENTAL)" 167 + depends on EXPERIMENTAL 168 + select CRYPTO_BLKCIPHER 169 + select CRYPTO_MANAGER 170 + select CRYPTO_GF128MUL 171 + help 172 + LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable 173 + narrow block cipher mode for dm-crypt. Use it with cipher 174 + specification string aes-lrw-benbi, the key must be 256, 320 or 384. 175 + The first 128, 192 or 256 bits in the key are used for AES and the 176 + rest is used to tie each cipher block to its logical position. 177 + 178 + config CRYPTO_PCBC 179 + tristate "PCBC support" 180 + select CRYPTO_BLKCIPHER 181 + select CRYPTO_MANAGER 182 + help 183 + PCBC: Propagating Cipher Block Chaining mode 184 + This block cipher algorithm is required for RxRPC. 185 + 186 + config CRYPTO_XTS 187 + tristate "XTS support (EXPERIMENTAL)" 188 + depends on EXPERIMENTAL 189 + select CRYPTO_BLKCIPHER 190 + select CRYPTO_MANAGER 191 + select CRYPTO_GF128MUL 192 + help 193 + XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain, 194 + key size 256, 384 or 512 bits. This implementation currently 195 + can't handle a sectorsize which is not a multiple of 16 bytes. 196 + 197 + comment "Hash modes" 47 198 48 199 config CRYPTO_HMAC 49 200 tristate "HMAC support" ··· 208 71 http://csrc.nist.gov/encryption/modes/proposedmodes/ 209 72 xcbc-mac/xcbc-mac-spec.pdf 210 73 211 - config CRYPTO_NULL 212 - tristate "Null algorithms" 74 + comment "Digest" 75 + 76 + config CRYPTO_CRC32C 77 + tristate "CRC32c CRC algorithm" 213 78 select CRYPTO_ALGAPI 214 - select CRYPTO_BLKCIPHER 79 + select LIBCRC32C 215 80 help 216 - These are 'Null' algorithms, used by IPsec, which do nothing. 81 + Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used 82 + by iSCSI for header and data digests and by others. 83 + See Castagnoli93. This implementation uses lib/libcrc32c. 84 + Module will be crc32c. 217 85 218 86 config CRYPTO_MD4 219 87 tristate "MD4 digest algorithm" ··· 232 90 help 233 91 MD5 message digest algorithm (RFC1321). 234 92 93 + config CRYPTO_MICHAEL_MIC 94 + tristate "Michael MIC keyed digest algorithm" 95 + select CRYPTO_ALGAPI 96 + help 97 + Michael MIC is used for message integrity protection in TKIP 98 + (IEEE 802.11i). This algorithm is required for TKIP, but it 99 + should not be used for other purposes because of the weakness 100 + of the algorithm. 101 + 235 102 config CRYPTO_SHA1 236 103 tristate "SHA1 digest algorithm" 237 104 select CRYPTO_ALGAPI ··· 252 101 select CRYPTO_ALGAPI 253 102 help 254 103 SHA256 secure hash standard (DFIPS 180-2). 255 - 104 + 256 105 This version of SHA implements a 256 bit hash with 128 bits of 257 106 security against collision attacks. 258 107 ··· 264 113 select CRYPTO_ALGAPI 265 114 help 266 115 SHA512 secure hash standard (DFIPS 180-2). 267 - 116 + 268 117 This version of SHA implements a 512 bit hash with 256 bits of 269 118 security against collision attacks. 270 119 271 120 This code also includes SHA-384, a 384 bit hash with 192 bits 272 121 of security against collision attacks. 273 - 274 - config CRYPTO_WP512 275 - tristate "Whirlpool digest algorithms" 276 - select CRYPTO_ALGAPI 277 - help 278 - Whirlpool hash algorithm 512, 384 and 256-bit hashes 279 - 280 - Whirlpool-512 is part of the NESSIE cryptographic primitives. 281 - Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard 282 - 283 - See also: 284 - <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html> 285 122 286 123 config CRYPTO_TGR192 287 124 tristate "Tiger digest algorithms" ··· 284 145 See also: 285 146 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>. 286 147 287 - config CRYPTO_GF128MUL 288 - tristate "GF(2^128) multiplication functions (EXPERIMENTAL)" 289 - depends on EXPERIMENTAL 290 - help 291 - Efficient table driven implementation of multiplications in the 292 - field GF(2^128). This is needed by some cypher modes. This 293 - option will be selected automatically if you select such a 294 - cipher mode. Only select this option by hand if you expect to load 295 - an external module that requires these functions. 296 - 297 - config CRYPTO_ECB 298 - tristate "ECB support" 299 - select CRYPTO_BLKCIPHER 300 - select CRYPTO_MANAGER 301 - help 302 - ECB: Electronic CodeBook mode 303 - This is the simplest block cipher algorithm. It simply encrypts 304 - the input block by block. 305 - 306 - config CRYPTO_CBC 307 - tristate "CBC support" 308 - select CRYPTO_BLKCIPHER 309 - select CRYPTO_MANAGER 310 - help 311 - CBC: Cipher Block Chaining mode 312 - This block cipher algorithm is required for IPSec. 313 - 314 - config CRYPTO_PCBC 315 - tristate "PCBC support" 316 - select CRYPTO_BLKCIPHER 317 - select CRYPTO_MANAGER 318 - help 319 - PCBC: Propagating Cipher Block Chaining mode 320 - This block cipher algorithm is required for RxRPC. 321 - 322 - config CRYPTO_LRW 323 - tristate "LRW support (EXPERIMENTAL)" 324 - depends on EXPERIMENTAL 325 - select CRYPTO_BLKCIPHER 326 - select CRYPTO_MANAGER 327 - select CRYPTO_GF128MUL 328 - help 329 - LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable 330 - narrow block cipher mode for dm-crypt. Use it with cipher 331 - specification string aes-lrw-benbi, the key must be 256, 320 or 384. 332 - The first 128, 192 or 256 bits in the key are used for AES and the 333 - rest is used to tie each cipher block to its logical position. 334 - 335 - config CRYPTO_XTS 336 - tristate "XTS support (EXPERIMENTAL)" 337 - depends on EXPERIMENTAL 338 - select CRYPTO_BLKCIPHER 339 - select CRYPTO_MANAGER 340 - select CRYPTO_GF128MUL 341 - help 342 - XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain, 343 - key size 256, 384 or 512 bits. This implementation currently 344 - can't handle a sectorsize which is not a multiple of 16 bytes. 345 - 346 - config CRYPTO_CTR 347 - tristate "CTR support" 348 - select CRYPTO_BLKCIPHER 349 - select CRYPTO_SEQIV 350 - select CRYPTO_MANAGER 351 - help 352 - CTR: Counter mode 353 - This block cipher algorithm is required for IPSec. 354 - 355 - config CRYPTO_GCM 356 - tristate "GCM/GMAC support" 357 - select CRYPTO_CTR 358 - select CRYPTO_AEAD 359 - select CRYPTO_GF128MUL 360 - help 361 - Support for Galois/Counter Mode (GCM) and Galois Message 362 - Authentication Code (GMAC). Required for IPSec. 363 - 364 - config CRYPTO_CCM 365 - tristate "CCM support" 366 - select CRYPTO_CTR 367 - select CRYPTO_AEAD 368 - help 369 - Support for Counter with CBC MAC. Required for IPsec. 370 - 371 - config CRYPTO_CRYPTD 372 - tristate "Software async crypto daemon" 373 - select CRYPTO_BLKCIPHER 374 - select CRYPTO_MANAGER 375 - help 376 - This is a generic software asynchronous crypto daemon that 377 - converts an arbitrary synchronous software crypto algorithm 378 - into an asynchronous algorithm that executes in a kernel thread. 379 - 380 - config CRYPTO_DES 381 - tristate "DES and Triple DES EDE cipher algorithms" 148 + config CRYPTO_WP512 149 + tristate "Whirlpool digest algorithms" 382 150 select CRYPTO_ALGAPI 383 151 help 384 - DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). 152 + Whirlpool hash algorithm 512, 384 and 256-bit hashes 385 153 386 - config CRYPTO_FCRYPT 387 - tristate "FCrypt cipher algorithm" 388 - select CRYPTO_ALGAPI 389 - select CRYPTO_BLKCIPHER 390 - help 391 - FCrypt algorithm used by RxRPC. 392 - 393 - config CRYPTO_BLOWFISH 394 - tristate "Blowfish cipher algorithm" 395 - select CRYPTO_ALGAPI 396 - help 397 - Blowfish cipher algorithm, by Bruce Schneier. 398 - 399 - This is a variable key length cipher which can use keys from 32 400 - bits to 448 bits in length. It's fast, simple and specifically 401 - designed for use on "large microprocessors". 402 - 403 - See also: 404 - <http://www.schneier.com/blowfish.html> 405 - 406 - config CRYPTO_TWOFISH 407 - tristate "Twofish cipher algorithm" 408 - select CRYPTO_ALGAPI 409 - select CRYPTO_TWOFISH_COMMON 410 - help 411 - Twofish cipher algorithm. 412 - 413 - Twofish was submitted as an AES (Advanced Encryption Standard) 414 - candidate cipher by researchers at CounterPane Systems. It is a 415 - 16 round block cipher supporting key sizes of 128, 192, and 256 416 - bits. 417 - 418 - See also: 419 - <http://www.schneier.com/twofish.html> 420 - 421 - config CRYPTO_TWOFISH_COMMON 422 - tristate 423 - help 424 - Common parts of the Twofish cipher algorithm shared by the 425 - generic c and the assembler implementations. 426 - 427 - config CRYPTO_TWOFISH_586 428 - tristate "Twofish cipher algorithms (i586)" 429 - depends on (X86 || UML_X86) && !64BIT 430 - select CRYPTO_ALGAPI 431 - select CRYPTO_TWOFISH_COMMON 432 - help 433 - Twofish cipher algorithm. 434 - 435 - Twofish was submitted as an AES (Advanced Encryption Standard) 436 - candidate cipher by researchers at CounterPane Systems. It is a 437 - 16 round block cipher supporting key sizes of 128, 192, and 256 438 - bits. 154 + Whirlpool-512 is part of the NESSIE cryptographic primitives. 155 + Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard 439 156 440 157 See also: 441 - <http://www.schneier.com/twofish.html> 158 + <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html> 442 159 443 - config CRYPTO_TWOFISH_X86_64 444 - tristate "Twofish cipher algorithm (x86_64)" 445 - depends on (X86 || UML_X86) && 64BIT 446 - select CRYPTO_ALGAPI 447 - select CRYPTO_TWOFISH_COMMON 448 - help 449 - Twofish cipher algorithm (x86_64). 450 - 451 - Twofish was submitted as an AES (Advanced Encryption Standard) 452 - candidate cipher by researchers at CounterPane Systems. It is a 453 - 16 round block cipher supporting key sizes of 128, 192, and 256 454 - bits. 455 - 456 - See also: 457 - <http://www.schneier.com/twofish.html> 458 - 459 - config CRYPTO_SERPENT 460 - tristate "Serpent cipher algorithm" 461 - select CRYPTO_ALGAPI 462 - help 463 - Serpent cipher algorithm, by Anderson, Biham & Knudsen. 464 - 465 - Keys are allowed to be from 0 to 256 bits in length, in steps 466 - of 8 bits. Also includes the 'Tnepres' algorithm, a reversed 467 - variant of Serpent for compatibility with old kerneli.org code. 468 - 469 - See also: 470 - <http://www.cl.cam.ac.uk/~rja14/serpent.html> 160 + comment "Ciphers" 471 161 472 162 config CRYPTO_AES 473 163 tristate "AES cipher algorithms" 474 164 select CRYPTO_ALGAPI 475 165 help 476 - AES cipher algorithms (FIPS-197). AES uses the Rijndael 166 + AES cipher algorithms (FIPS-197). AES uses the Rijndael 477 167 algorithm. 478 168 479 169 Rijndael appears to be consistently a very good performer in 480 - both hardware and software across a wide range of computing 481 - environments regardless of its use in feedback or non-feedback 482 - modes. Its key setup time is excellent, and its key agility is 483 - good. Rijndael's very low memory requirements make it very well 484 - suited for restricted-space environments, in which it also 485 - demonstrates excellent performance. Rijndael's operations are 486 - among the easiest to defend against power and timing attacks. 170 + both hardware and software across a wide range of computing 171 + environments regardless of its use in feedback or non-feedback 172 + modes. Its key setup time is excellent, and its key agility is 173 + good. Rijndael's very low memory requirements make it very well 174 + suited for restricted-space environments, in which it also 175 + demonstrates excellent performance. Rijndael's operations are 176 + among the easiest to defend against power and timing attacks. 487 177 488 - The AES specifies three key sizes: 128, 192 and 256 bits 178 + The AES specifies three key sizes: 128, 192 and 256 bits 489 179 490 180 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information. 491 181 ··· 324 356 select CRYPTO_ALGAPI 325 357 select CRYPTO_AES 326 358 help 327 - AES cipher algorithms (FIPS-197). AES uses the Rijndael 359 + AES cipher algorithms (FIPS-197). AES uses the Rijndael 328 360 algorithm. 329 361 330 362 Rijndael appears to be consistently a very good performer in 331 - both hardware and software across a wide range of computing 332 - environments regardless of its use in feedback or non-feedback 333 - modes. Its key setup time is excellent, and its key agility is 334 - good. Rijndael's very low memory requirements make it very well 335 - suited for restricted-space environments, in which it also 336 - demonstrates excellent performance. Rijndael's operations are 337 - among the easiest to defend against power and timing attacks. 363 + both hardware and software across a wide range of computing 364 + environments regardless of its use in feedback or non-feedback 365 + modes. Its key setup time is excellent, and its key agility is 366 + good. Rijndael's very low memory requirements make it very well 367 + suited for restricted-space environments, in which it also 368 + demonstrates excellent performance. Rijndael's operations are 369 + among the easiest to defend against power and timing attacks. 338 370 339 - The AES specifies three key sizes: 128, 192 and 256 bits 371 + The AES specifies three key sizes: 128, 192 and 256 bits 340 372 341 373 See <http://csrc.nist.gov/encryption/aes/> for more information. 342 374 ··· 346 378 select CRYPTO_ALGAPI 347 379 select CRYPTO_AES 348 380 help 349 - AES cipher algorithms (FIPS-197). AES uses the Rijndael 381 + AES cipher algorithms (FIPS-197). AES uses the Rijndael 350 382 algorithm. 351 383 352 384 Rijndael appears to be consistently a very good performer in 353 - both hardware and software across a wide range of computing 354 - environments regardless of its use in feedback or non-feedback 355 - modes. Its key setup time is excellent, and its key agility is 356 - good. Rijndael's very low memory requirements make it very well 357 - suited for restricted-space environments, in which it also 358 - demonstrates excellent performance. Rijndael's operations are 359 - among the easiest to defend against power and timing attacks. 385 + both hardware and software across a wide range of computing 386 + environments regardless of its use in feedback or non-feedback 387 + modes. Its key setup time is excellent, and its key agility is 388 + good. Rijndael's very low memory requirements make it very well 389 + suited for restricted-space environments, in which it also 390 + demonstrates excellent performance. Rijndael's operations are 391 + among the easiest to defend against power and timing attacks. 360 392 361 - The AES specifies three key sizes: 128, 192 and 256 bits 393 + The AES specifies three key sizes: 128, 192 and 256 bits 362 394 363 395 See <http://csrc.nist.gov/encryption/aes/> for more information. 396 + 397 + config CRYPTO_ANUBIS 398 + tristate "Anubis cipher algorithm" 399 + select CRYPTO_ALGAPI 400 + help 401 + Anubis cipher algorithm. 402 + 403 + Anubis is a variable key length cipher which can use keys from 404 + 128 bits to 320 bits in length. It was evaluated as a entrant 405 + in the NESSIE competition. 406 + 407 + See also: 408 + <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/> 409 + <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html> 410 + 411 + config CRYPTO_ARC4 412 + tristate "ARC4 cipher algorithm" 413 + select CRYPTO_ALGAPI 414 + help 415 + ARC4 cipher algorithm. 416 + 417 + ARC4 is a stream cipher using keys ranging from 8 bits to 2048 418 + bits in length. This algorithm is required for driver-based 419 + WEP, but it should not be for other purposes because of the 420 + weakness of the algorithm. 421 + 422 + config CRYPTO_BLOWFISH 423 + tristate "Blowfish cipher algorithm" 424 + select CRYPTO_ALGAPI 425 + help 426 + Blowfish cipher algorithm, by Bruce Schneier. 427 + 428 + This is a variable key length cipher which can use keys from 32 429 + bits to 448 bits in length. It's fast, simple and specifically 430 + designed for use on "large microprocessors". 431 + 432 + See also: 433 + <http://www.schneier.com/blowfish.html> 434 + 435 + config CRYPTO_CAMELLIA 436 + tristate "Camellia cipher algorithms" 437 + depends on CRYPTO 438 + select CRYPTO_ALGAPI 439 + help 440 + Camellia cipher algorithms module. 441 + 442 + Camellia is a symmetric key block cipher developed jointly 443 + at NTT and Mitsubishi Electric Corporation. 444 + 445 + The Camellia specifies three key sizes: 128, 192 and 256 bits. 446 + 447 + See also: 448 + <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 364 449 365 450 config CRYPTO_CAST5 366 451 tristate "CAST5 (CAST-128) cipher algorithm" ··· 429 408 The CAST6 encryption algorithm (synonymous with CAST-256) is 430 409 described in RFC2612. 431 410 432 - config CRYPTO_TEA 433 - tristate "TEA, XTEA and XETA cipher algorithms" 411 + config CRYPTO_DES 412 + tristate "DES and Triple DES EDE cipher algorithms" 434 413 select CRYPTO_ALGAPI 435 414 help 436 - TEA cipher algorithm. 415 + DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). 437 416 438 - Tiny Encryption Algorithm is a simple cipher that uses 439 - many rounds for security. It is very fast and uses 440 - little memory. 441 - 442 - Xtendend Tiny Encryption Algorithm is a modification to 443 - the TEA algorithm to address a potential key weakness 444 - in the TEA algorithm. 445 - 446 - Xtendend Encryption Tiny Algorithm is a mis-implementation 447 - of the XTEA algorithm for compatibility purposes. 448 - 449 - config CRYPTO_ARC4 450 - tristate "ARC4 cipher algorithm" 417 + config CRYPTO_FCRYPT 418 + tristate "FCrypt cipher algorithm" 451 419 select CRYPTO_ALGAPI 420 + select CRYPTO_BLKCIPHER 452 421 help 453 - ARC4 cipher algorithm. 454 - 455 - ARC4 is a stream cipher using keys ranging from 8 bits to 2048 456 - bits in length. This algorithm is required for driver-based 457 - WEP, but it should not be for other purposes because of the 458 - weakness of the algorithm. 422 + FCrypt algorithm used by RxRPC. 459 423 460 424 config CRYPTO_KHAZAD 461 425 tristate "Khazad cipher algorithm" ··· 454 448 455 449 See also: 456 450 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html> 457 - 458 - config CRYPTO_ANUBIS 459 - tristate "Anubis cipher algorithm" 460 - select CRYPTO_ALGAPI 461 - help 462 - Anubis cipher algorithm. 463 - 464 - Anubis is a variable key length cipher which can use keys from 465 - 128 bits to 320 bits in length. It was evaluated as a entrant 466 - in the NESSIE competition. 467 - 468 - See also: 469 - <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/> 470 - <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html> 471 - 472 - config CRYPTO_SEED 473 - tristate "SEED cipher algorithm" 474 - select CRYPTO_ALGAPI 475 - help 476 - SEED cipher algorithm (RFC4269). 477 - 478 - SEED is a 128-bit symmetric key block cipher that has been 479 - developed by KISA (Korea Information Security Agency) as a 480 - national standard encryption algorithm of the Republic of Korea. 481 - It is a 16 round block cipher with the key size of 128 bit. 482 - 483 - See also: 484 - <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp> 485 451 486 452 config CRYPTO_SALSA20 487 453 tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)" ··· 496 518 The Salsa20 stream cipher algorithm is designed by Daniel J. 497 519 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> 498 520 521 + config CRYPTO_SEED 522 + tristate "SEED cipher algorithm" 523 + select CRYPTO_ALGAPI 524 + help 525 + SEED cipher algorithm (RFC4269). 526 + 527 + SEED is a 128-bit symmetric key block cipher that has been 528 + developed by KISA (Korea Information Security Agency) as a 529 + national standard encryption algorithm of the Republic of Korea. 530 + It is a 16 round block cipher with the key size of 128 bit. 531 + 532 + See also: 533 + <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp> 534 + 535 + config CRYPTO_SERPENT 536 + tristate "Serpent cipher algorithm" 537 + select CRYPTO_ALGAPI 538 + help 539 + Serpent cipher algorithm, by Anderson, Biham & Knudsen. 540 + 541 + Keys are allowed to be from 0 to 256 bits in length, in steps 542 + of 8 bits. Also includes the 'Tnepres' algorithm, a reversed 543 + variant of Serpent for compatibility with old kerneli.org code. 544 + 545 + See also: 546 + <http://www.cl.cam.ac.uk/~rja14/serpent.html> 547 + 548 + config CRYPTO_TEA 549 + tristate "TEA, XTEA and XETA cipher algorithms" 550 + select CRYPTO_ALGAPI 551 + help 552 + TEA cipher algorithm. 553 + 554 + Tiny Encryption Algorithm is a simple cipher that uses 555 + many rounds for security. It is very fast and uses 556 + little memory. 557 + 558 + Xtendend Tiny Encryption Algorithm is a modification to 559 + the TEA algorithm to address a potential key weakness 560 + in the TEA algorithm. 561 + 562 + Xtendend Encryption Tiny Algorithm is a mis-implementation 563 + of the XTEA algorithm for compatibility purposes. 564 + 565 + config CRYPTO_TWOFISH 566 + tristate "Twofish cipher algorithm" 567 + select CRYPTO_ALGAPI 568 + select CRYPTO_TWOFISH_COMMON 569 + help 570 + Twofish cipher algorithm. 571 + 572 + Twofish was submitted as an AES (Advanced Encryption Standard) 573 + candidate cipher by researchers at CounterPane Systems. It is a 574 + 16 round block cipher supporting key sizes of 128, 192, and 256 575 + bits. 576 + 577 + See also: 578 + <http://www.schneier.com/twofish.html> 579 + 580 + config CRYPTO_TWOFISH_COMMON 581 + tristate 582 + help 583 + Common parts of the Twofish cipher algorithm shared by the 584 + generic c and the assembler implementations. 585 + 586 + config CRYPTO_TWOFISH_586 587 + tristate "Twofish cipher algorithms (i586)" 588 + depends on (X86 || UML_X86) && !64BIT 589 + select CRYPTO_ALGAPI 590 + select CRYPTO_TWOFISH_COMMON 591 + help 592 + Twofish cipher algorithm. 593 + 594 + Twofish was submitted as an AES (Advanced Encryption Standard) 595 + candidate cipher by researchers at CounterPane Systems. It is a 596 + 16 round block cipher supporting key sizes of 128, 192, and 256 597 + bits. 598 + 599 + See also: 600 + <http://www.schneier.com/twofish.html> 601 + 602 + config CRYPTO_TWOFISH_X86_64 603 + tristate "Twofish cipher algorithm (x86_64)" 604 + depends on (X86 || UML_X86) && 64BIT 605 + select CRYPTO_ALGAPI 606 + select CRYPTO_TWOFISH_COMMON 607 + help 608 + Twofish cipher algorithm (x86_64). 609 + 610 + Twofish was submitted as an AES (Advanced Encryption Standard) 611 + candidate cipher by researchers at CounterPane Systems. It is a 612 + 16 round block cipher supporting key sizes of 128, 192, and 256 613 + bits. 614 + 615 + See also: 616 + <http://www.schneier.com/twofish.html> 617 + 618 + comment "Compression" 619 + 499 620 config CRYPTO_DEFLATE 500 621 tristate "Deflate compression algorithm" 501 622 select CRYPTO_ALGAPI ··· 603 526 help 604 527 This is the Deflate algorithm (RFC1951), specified for use in 605 528 IPSec with the IPCOMP protocol (RFC3173, RFC2394). 606 - 529 + 607 530 You will most probably want this if using IPSec. 608 - 609 - config CRYPTO_MICHAEL_MIC 610 - tristate "Michael MIC keyed digest algorithm" 611 - select CRYPTO_ALGAPI 612 - help 613 - Michael MIC is used for message integrity protection in TKIP 614 - (IEEE 802.11i). This algorithm is required for TKIP, but it 615 - should not be used for other purposes because of the weakness 616 - of the algorithm. 617 - 618 - config CRYPTO_CRC32C 619 - tristate "CRC32c CRC algorithm" 620 - select CRYPTO_ALGAPI 621 - select LIBCRC32C 622 - help 623 - Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used 624 - by iSCSI for header and data digests and by others. 625 - See Castagnoli93. This implementation uses lib/libcrc32c. 626 - Module will be crc32c. 627 - 628 - config CRYPTO_CAMELLIA 629 - tristate "Camellia cipher algorithms" 630 - depends on CRYPTO 631 - select CRYPTO_ALGAPI 632 - help 633 - Camellia cipher algorithms module. 634 - 635 - Camellia is a symmetric key block cipher developed jointly 636 - at NTT and Mitsubishi Electric Corporation. 637 - 638 - The Camellia specifies three key sizes: 128, 192 and 256 bits. 639 - 640 - See also: 641 - <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 642 - 643 - config CRYPTO_TEST 644 - tristate "Testing module" 645 - depends on m 646 - select CRYPTO_ALGAPI 647 - select CRYPTO_AEAD 648 - select CRYPTO_BLKCIPHER 649 - help 650 - Quick & dirty crypto test module. 651 - 652 - config CRYPTO_AUTHENC 653 - tristate "Authenc support" 654 - select CRYPTO_AEAD 655 - select CRYPTO_BLKCIPHER 656 - select CRYPTO_MANAGER 657 - select CRYPTO_HASH 658 - help 659 - Authenc: Combined mode wrapper for IPsec. 660 - This is required for IPSec. 661 531 662 532 config CRYPTO_LZO 663 533 tristate "LZO compression algorithm"
+4 -2
crypto/Makefile
··· 2 2 # Cryptographic API 3 3 # 4 4 5 - obj-$(CONFIG_CRYPTO) += api.o cipher.o digest.o compress.o 5 + obj-$(CONFIG_CRYPTO) += crypto.o 6 + crypto-objs := api.o cipher.o digest.o compress.o 6 7 7 8 crypto_algapi-$(CONFIG_PROC_FS) += proc.o 8 9 crypto_algapi-objs := algapi.o scatterwalk.o $(crypto_algapi-y) ··· 29 28 obj-$(CONFIG_CRYPTO_MD5) += md5.o 30 29 obj-$(CONFIG_CRYPTO_SHA1) += sha1_generic.o 31 30 obj-$(CONFIG_CRYPTO_SHA256) += sha256_generic.o 32 - obj-$(CONFIG_CRYPTO_SHA512) += sha512.o 31 + obj-$(CONFIG_CRYPTO_SHA512) += sha512_generic.o 33 32 obj-$(CONFIG_CRYPTO_WP512) += wp512.o 34 33 obj-$(CONFIG_CRYPTO_TGR192) += tgr192.o 35 34 obj-$(CONFIG_CRYPTO_GF128MUL) += gf128mul.o 36 35 obj-$(CONFIG_CRYPTO_ECB) += ecb.o 37 36 obj-$(CONFIG_CRYPTO_CBC) += cbc.o 38 37 obj-$(CONFIG_CRYPTO_PCBC) += pcbc.o 38 + obj-$(CONFIG_CRYPTO_CTS) += cts.o 39 39 obj-$(CONFIG_CRYPTO_LRW) += lrw.o 40 40 obj-$(CONFIG_CRYPTO_XTS) += xts.o 41 41 obj-$(CONFIG_CRYPTO_CTR) += ctr.o
+47 -9
crypto/aes_generic.c
··· 229 229 ctx->key_enc[8 * i + 15] = t; \ 230 230 } while (0) 231 231 232 - int crypto_aes_set_key(struct crypto_tfm *tfm, const u8 *in_key, 232 + /** 233 + * crypto_aes_expand_key - Expands the AES key as described in FIPS-197 234 + * @ctx: The location where the computed key will be stored. 235 + * @in_key: The supplied key. 236 + * @key_len: The length of the supplied key. 237 + * 238 + * Returns 0 on success. The function fails only if an invalid key size (or 239 + * pointer) is supplied. 240 + * The expanded key size is 240 bytes (max of 14 rounds with a unique 16 bytes 241 + * key schedule plus a 16 bytes key which is used before the first round). 242 + * The decryption key is prepared for the "Equivalent Inverse Cipher" as 243 + * described in FIPS-197. The first slot (16 bytes) of each key (enc or dec) is 244 + * for the initial combination, the second slot for the first round and so on. 245 + */ 246 + int crypto_aes_expand_key(struct crypto_aes_ctx *ctx, const u8 *in_key, 233 247 unsigned int key_len) 234 248 { 235 - struct crypto_aes_ctx *ctx = crypto_tfm_ctx(tfm); 236 249 const __le32 *key = (const __le32 *)in_key; 237 - u32 *flags = &tfm->crt_flags; 238 250 u32 i, t, u, v, w, j; 239 251 240 - if (key_len % 8) { 241 - *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; 252 + if (key_len != AES_KEYSIZE_128 && key_len != AES_KEYSIZE_192 && 253 + key_len != AES_KEYSIZE_256) 242 254 return -EINVAL; 243 - } 244 255 245 256 ctx->key_length = key_len; 246 257 ··· 261 250 ctx->key_dec[key_len + 27] = ctx->key_enc[3] = le32_to_cpu(key[3]); 262 251 263 252 switch (key_len) { 264 - case 16: 253 + case AES_KEYSIZE_128: 265 254 t = ctx->key_enc[3]; 266 255 for (i = 0; i < 10; ++i) 267 256 loop4(i); 268 257 break; 269 258 270 - case 24: 259 + case AES_KEYSIZE_192: 271 260 ctx->key_enc[4] = le32_to_cpu(key[4]); 272 261 t = ctx->key_enc[5] = le32_to_cpu(key[5]); 273 262 for (i = 0; i < 8; ++i) 274 263 loop6(i); 275 264 break; 276 265 277 - case 32: 266 + case AES_KEYSIZE_256: 278 267 ctx->key_enc[4] = le32_to_cpu(key[4]); 279 268 ctx->key_enc[5] = le32_to_cpu(key[5]); 280 269 ctx->key_enc[6] = le32_to_cpu(key[6]); ··· 294 283 imix_col(ctx->key_dec[j], ctx->key_enc[i]); 295 284 } 296 285 return 0; 286 + } 287 + EXPORT_SYMBOL_GPL(crypto_aes_expand_key); 288 + 289 + /** 290 + * crypto_aes_set_key - Set the AES key. 291 + * @tfm: The %crypto_tfm that is used in the context. 292 + * @in_key: The input key. 293 + * @key_len: The size of the key. 294 + * 295 + * Returns 0 on success, on failure the %CRYPTO_TFM_RES_BAD_KEY_LEN flag in tfm 296 + * is set. The function uses crypto_aes_expand_key() to expand the key. 297 + * &crypto_aes_ctx _must_ be the private data embedded in @tfm which is 298 + * retrieved with crypto_tfm_ctx(). 299 + */ 300 + int crypto_aes_set_key(struct crypto_tfm *tfm, const u8 *in_key, 301 + unsigned int key_len) 302 + { 303 + struct crypto_aes_ctx *ctx = crypto_tfm_ctx(tfm); 304 + u32 *flags = &tfm->crt_flags; 305 + int ret; 306 + 307 + ret = crypto_aes_expand_key(ctx, in_key, key_len); 308 + if (!ret) 309 + return 0; 310 + 311 + *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; 312 + return -EINVAL; 297 313 } 298 314 EXPORT_SYMBOL_GPL(crypto_aes_set_key); 299 315
+4 -4
crypto/anubis.c
··· 687 687 .cia_decrypt = anubis_decrypt } } 688 688 }; 689 689 690 - static int __init init(void) 690 + static int __init anubis_mod_init(void) 691 691 { 692 692 int ret = 0; 693 693 ··· 695 695 return ret; 696 696 } 697 697 698 - static void __exit fini(void) 698 + static void __exit anubis_mod_fini(void) 699 699 { 700 700 crypto_unregister_alg(&anubis_alg); 701 701 } 702 702 703 - module_init(init); 704 - module_exit(fini); 703 + module_init(anubis_mod_init); 704 + module_exit(anubis_mod_fini); 705 705 706 706 MODULE_LICENSE("GPL"); 707 707 MODULE_DESCRIPTION("Anubis Cryptographic Algorithm");
+3
crypto/api.c
··· 445 445 return ret; 446 446 } 447 447 EXPORT_SYMBOL_GPL(crypto_has_alg); 448 + 449 + MODULE_DESCRIPTION("Cryptographic core API"); 450 + MODULE_LICENSE("GPL");
+4 -4
crypto/blowfish.c
··· 465 465 .cia_decrypt = bf_decrypt } } 466 466 }; 467 467 468 - static int __init init(void) 468 + static int __init blowfish_mod_init(void) 469 469 { 470 470 return crypto_register_alg(&alg); 471 471 } 472 472 473 - static void __exit fini(void) 473 + static void __exit blowfish_mod_fini(void) 474 474 { 475 475 crypto_unregister_alg(&alg); 476 476 } 477 477 478 - module_init(init); 479 - module_exit(fini); 478 + module_init(blowfish_mod_init); 479 + module_exit(blowfish_mod_fini); 480 480 481 481 MODULE_LICENSE("GPL"); 482 482 MODULE_DESCRIPTION("Blowfish Cipher Algorithm");
+4 -4
crypto/cast5.c
··· 817 817 } 818 818 }; 819 819 820 - static int __init init(void) 820 + static int __init cast5_mod_init(void) 821 821 { 822 822 return crypto_register_alg(&alg); 823 823 } 824 824 825 - static void __exit fini(void) 825 + static void __exit cast5_mod_fini(void) 826 826 { 827 827 crypto_unregister_alg(&alg); 828 828 } 829 829 830 - module_init(init); 831 - module_exit(fini); 830 + module_init(cast5_mod_init); 831 + module_exit(cast5_mod_fini); 832 832 833 833 MODULE_LICENSE("GPL"); 834 834 MODULE_DESCRIPTION("Cast5 Cipher Algorithm");
+4 -4
crypto/cast6.c
··· 528 528 } 529 529 }; 530 530 531 - static int __init init(void) 531 + static int __init cast6_mod_init(void) 532 532 { 533 533 return crypto_register_alg(&alg); 534 534 } 535 535 536 - static void __exit fini(void) 536 + static void __exit cast6_mod_fini(void) 537 537 { 538 538 crypto_unregister_alg(&alg); 539 539 } 540 540 541 - module_init(init); 542 - module_exit(fini); 541 + module_init(cast6_mod_init); 542 + module_exit(cast6_mod_fini); 543 543 544 544 MODULE_LICENSE("GPL"); 545 545 MODULE_DESCRIPTION("Cast6 Cipher Algorithm");
+4 -4
crypto/crc32c.c
··· 98 98 } 99 99 }; 100 100 101 - static int __init init(void) 101 + static int __init crc32c_mod_init(void) 102 102 { 103 103 return crypto_register_alg(&alg); 104 104 } 105 105 106 - static void __exit fini(void) 106 + static void __exit crc32c_mod_fini(void) 107 107 { 108 108 crypto_unregister_alg(&alg); 109 109 } 110 110 111 - module_init(init); 112 - module_exit(fini); 111 + module_init(crc32c_mod_init); 112 + module_exit(crc32c_mod_fini); 113 113 114 114 MODULE_AUTHOR("Clay Haapala <chaapala@cisco.com>"); 115 115 MODULE_DESCRIPTION("CRC32c (Castagnoli) calculations wrapper for lib/crc32c");
+4 -4
crypto/crypto_null.c
··· 142 142 MODULE_ALIAS("digest_null"); 143 143 MODULE_ALIAS("cipher_null"); 144 144 145 - static int __init init(void) 145 + static int __init crypto_null_mod_init(void) 146 146 { 147 147 int ret = 0; 148 148 ··· 174 174 goto out; 175 175 } 176 176 177 - static void __exit fini(void) 177 + static void __exit crypto_null_mod_fini(void) 178 178 { 179 179 crypto_unregister_alg(&compress_null); 180 180 crypto_unregister_alg(&digest_null); ··· 182 182 crypto_unregister_alg(&cipher_null); 183 183 } 184 184 185 - module_init(init); 186 - module_exit(fini); 185 + module_init(crypto_null_mod_init); 186 + module_exit(crypto_null_mod_fini); 187 187 188 188 MODULE_LICENSE("GPL"); 189 189 MODULE_DESCRIPTION("Null Cryptographic Algorithms");
+347
crypto/cts.c
··· 1 + /* 2 + * CTS: Cipher Text Stealing mode 3 + * 4 + * COPYRIGHT (c) 2008 5 + * The Regents of the University of Michigan 6 + * ALL RIGHTS RESERVED 7 + * 8 + * Permission is granted to use, copy, create derivative works 9 + * and redistribute this software and such derivative works 10 + * for any purpose, so long as the name of The University of 11 + * Michigan is not used in any advertising or publicity 12 + * pertaining to the use of distribution of this software 13 + * without specific, written prior authorization. If the 14 + * above copyright notice or any other identification of the 15 + * University of Michigan is included in any copy of any 16 + * portion of this software, then the disclaimer below must 17 + * also be included. 18 + * 19 + * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION 20 + * FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY 21 + * PURPOSE, AND WITHOUT WARRANTY BY THE UNIVERSITY OF 22 + * MICHIGAN OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING 23 + * WITHOUT LIMITATION THE IMPLIED WARRANTIES OF 24 + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE 25 + * REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE 26 + * FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR 27 + * CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING 28 + * OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN 29 + * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF 30 + * SUCH DAMAGES. 31 + */ 32 + 33 + /* Derived from various: 34 + * Copyright (c) 2006 Herbert Xu <herbert@gondor.apana.org.au> 35 + */ 36 + 37 + /* 38 + * This is the Cipher Text Stealing mode as described by 39 + * Section 8 of rfc2040 and referenced by rfc3962. 40 + * rfc3962 includes errata information in its Appendix A. 41 + */ 42 + 43 + #include <crypto/algapi.h> 44 + #include <linux/err.h> 45 + #include <linux/init.h> 46 + #include <linux/kernel.h> 47 + #include <linux/log2.h> 48 + #include <linux/module.h> 49 + #include <linux/scatterlist.h> 50 + #include <crypto/scatterwalk.h> 51 + #include <linux/slab.h> 52 + 53 + struct crypto_cts_ctx { 54 + struct crypto_blkcipher *child; 55 + }; 56 + 57 + static int crypto_cts_setkey(struct crypto_tfm *parent, const u8 *key, 58 + unsigned int keylen) 59 + { 60 + struct crypto_cts_ctx *ctx = crypto_tfm_ctx(parent); 61 + struct crypto_blkcipher *child = ctx->child; 62 + int err; 63 + 64 + crypto_blkcipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); 65 + crypto_blkcipher_set_flags(child, crypto_tfm_get_flags(parent) & 66 + CRYPTO_TFM_REQ_MASK); 67 + err = crypto_blkcipher_setkey(child, key, keylen); 68 + crypto_tfm_set_flags(parent, crypto_blkcipher_get_flags(child) & 69 + CRYPTO_TFM_RES_MASK); 70 + return err; 71 + } 72 + 73 + static int cts_cbc_encrypt(struct crypto_cts_ctx *ctx, 74 + struct blkcipher_desc *desc, 75 + struct scatterlist *dst, 76 + struct scatterlist *src, 77 + unsigned int offset, 78 + unsigned int nbytes) 79 + { 80 + int bsize = crypto_blkcipher_blocksize(desc->tfm); 81 + u8 tmp[bsize], tmp2[bsize]; 82 + struct blkcipher_desc lcldesc; 83 + struct scatterlist sgsrc[1], sgdst[1]; 84 + int lastn = nbytes - bsize; 85 + u8 iv[bsize]; 86 + u8 s[bsize * 2], d[bsize * 2]; 87 + int err; 88 + 89 + if (lastn < 0) 90 + return -EINVAL; 91 + 92 + memset(s, 0, sizeof(s)); 93 + scatterwalk_map_and_copy(s, src, offset, nbytes, 0); 94 + 95 + memcpy(iv, desc->info, bsize); 96 + 97 + lcldesc.tfm = ctx->child; 98 + lcldesc.info = iv; 99 + lcldesc.flags = desc->flags; 100 + 101 + sg_set_buf(&sgsrc[0], s, bsize); 102 + sg_set_buf(&sgdst[0], tmp, bsize); 103 + err = crypto_blkcipher_encrypt_iv(&lcldesc, sgdst, sgsrc, bsize); 104 + 105 + memcpy(d + bsize, tmp, lastn); 106 + 107 + lcldesc.info = tmp; 108 + 109 + sg_set_buf(&sgsrc[0], s + bsize, bsize); 110 + sg_set_buf(&sgdst[0], tmp2, bsize); 111 + err = crypto_blkcipher_encrypt_iv(&lcldesc, sgdst, sgsrc, bsize); 112 + 113 + memcpy(d, tmp2, bsize); 114 + 115 + scatterwalk_map_and_copy(d, dst, offset, nbytes, 1); 116 + 117 + memcpy(desc->info, tmp2, bsize); 118 + 119 + return err; 120 + } 121 + 122 + static int crypto_cts_encrypt(struct blkcipher_desc *desc, 123 + struct scatterlist *dst, struct scatterlist *src, 124 + unsigned int nbytes) 125 + { 126 + struct crypto_cts_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); 127 + int bsize = crypto_blkcipher_blocksize(desc->tfm); 128 + int tot_blocks = (nbytes + bsize - 1) / bsize; 129 + int cbc_blocks = tot_blocks > 2 ? tot_blocks - 2 : 0; 130 + struct blkcipher_desc lcldesc; 131 + int err; 132 + 133 + lcldesc.tfm = ctx->child; 134 + lcldesc.info = desc->info; 135 + lcldesc.flags = desc->flags; 136 + 137 + if (tot_blocks == 1) { 138 + err = crypto_blkcipher_encrypt_iv(&lcldesc, dst, src, bsize); 139 + } else if (nbytes <= bsize * 2) { 140 + err = cts_cbc_encrypt(ctx, desc, dst, src, 0, nbytes); 141 + } else { 142 + /* do normal function for tot_blocks - 2 */ 143 + err = crypto_blkcipher_encrypt_iv(&lcldesc, dst, src, 144 + cbc_blocks * bsize); 145 + if (err == 0) { 146 + /* do cts for final two blocks */ 147 + err = cts_cbc_encrypt(ctx, desc, dst, src, 148 + cbc_blocks * bsize, 149 + nbytes - (cbc_blocks * bsize)); 150 + } 151 + } 152 + 153 + return err; 154 + } 155 + 156 + static int cts_cbc_decrypt(struct crypto_cts_ctx *ctx, 157 + struct blkcipher_desc *desc, 158 + struct scatterlist *dst, 159 + struct scatterlist *src, 160 + unsigned int offset, 161 + unsigned int nbytes) 162 + { 163 + int bsize = crypto_blkcipher_blocksize(desc->tfm); 164 + u8 tmp[bsize]; 165 + struct blkcipher_desc lcldesc; 166 + struct scatterlist sgsrc[1], sgdst[1]; 167 + int lastn = nbytes - bsize; 168 + u8 iv[bsize]; 169 + u8 s[bsize * 2], d[bsize * 2]; 170 + int err; 171 + 172 + if (lastn < 0) 173 + return -EINVAL; 174 + 175 + scatterwalk_map_and_copy(s, src, offset, nbytes, 0); 176 + 177 + lcldesc.tfm = ctx->child; 178 + lcldesc.info = iv; 179 + lcldesc.flags = desc->flags; 180 + 181 + /* 1. Decrypt Cn-1 (s) to create Dn (tmp)*/ 182 + memset(iv, 0, sizeof(iv)); 183 + sg_set_buf(&sgsrc[0], s, bsize); 184 + sg_set_buf(&sgdst[0], tmp, bsize); 185 + err = crypto_blkcipher_decrypt_iv(&lcldesc, sgdst, sgsrc, bsize); 186 + if (err) 187 + return err; 188 + /* 2. Pad Cn with zeros at the end to create C of length BB */ 189 + memset(iv, 0, sizeof(iv)); 190 + memcpy(iv, s + bsize, lastn); 191 + /* 3. Exclusive-or Dn (tmp) with C (iv) to create Xn (tmp) */ 192 + crypto_xor(tmp, iv, bsize); 193 + /* 4. Select the first Ln bytes of Xn (tmp) to create Pn */ 194 + memcpy(d + bsize, tmp, lastn); 195 + 196 + /* 5. Append the tail (BB - Ln) bytes of Xn (tmp) to Cn to create En */ 197 + memcpy(s + bsize + lastn, tmp + lastn, bsize - lastn); 198 + /* 6. Decrypt En to create Pn-1 */ 199 + memset(iv, 0, sizeof(iv)); 200 + sg_set_buf(&sgsrc[0], s + bsize, bsize); 201 + sg_set_buf(&sgdst[0], d, bsize); 202 + err = crypto_blkcipher_decrypt_iv(&lcldesc, sgdst, sgsrc, bsize); 203 + 204 + /* XOR with previous block */ 205 + crypto_xor(d, desc->info, bsize); 206 + 207 + scatterwalk_map_and_copy(d, dst, offset, nbytes, 1); 208 + 209 + memcpy(desc->info, s, bsize); 210 + return err; 211 + } 212 + 213 + static int crypto_cts_decrypt(struct blkcipher_desc *desc, 214 + struct scatterlist *dst, struct scatterlist *src, 215 + unsigned int nbytes) 216 + { 217 + struct crypto_cts_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); 218 + int bsize = crypto_blkcipher_blocksize(desc->tfm); 219 + int tot_blocks = (nbytes + bsize - 1) / bsize; 220 + int cbc_blocks = tot_blocks > 2 ? tot_blocks - 2 : 0; 221 + struct blkcipher_desc lcldesc; 222 + int err; 223 + 224 + lcldesc.tfm = ctx->child; 225 + lcldesc.info = desc->info; 226 + lcldesc.flags = desc->flags; 227 + 228 + if (tot_blocks == 1) { 229 + err = crypto_blkcipher_decrypt_iv(&lcldesc, dst, src, bsize); 230 + } else if (nbytes <= bsize * 2) { 231 + err = cts_cbc_decrypt(ctx, desc, dst, src, 0, nbytes); 232 + } else { 233 + /* do normal function for tot_blocks - 2 */ 234 + err = crypto_blkcipher_decrypt_iv(&lcldesc, dst, src, 235 + cbc_blocks * bsize); 236 + if (err == 0) { 237 + /* do cts for final two blocks */ 238 + err = cts_cbc_decrypt(ctx, desc, dst, src, 239 + cbc_blocks * bsize, 240 + nbytes - (cbc_blocks * bsize)); 241 + } 242 + } 243 + return err; 244 + } 245 + 246 + static int crypto_cts_init_tfm(struct crypto_tfm *tfm) 247 + { 248 + struct crypto_instance *inst = (void *)tfm->__crt_alg; 249 + struct crypto_spawn *spawn = crypto_instance_ctx(inst); 250 + struct crypto_cts_ctx *ctx = crypto_tfm_ctx(tfm); 251 + struct crypto_blkcipher *cipher; 252 + 253 + cipher = crypto_spawn_blkcipher(spawn); 254 + if (IS_ERR(cipher)) 255 + return PTR_ERR(cipher); 256 + 257 + ctx->child = cipher; 258 + return 0; 259 + } 260 + 261 + static void crypto_cts_exit_tfm(struct crypto_tfm *tfm) 262 + { 263 + struct crypto_cts_ctx *ctx = crypto_tfm_ctx(tfm); 264 + crypto_free_blkcipher(ctx->child); 265 + } 266 + 267 + static struct crypto_instance *crypto_cts_alloc(struct rtattr **tb) 268 + { 269 + struct crypto_instance *inst; 270 + struct crypto_alg *alg; 271 + int err; 272 + 273 + err = crypto_check_attr_type(tb, CRYPTO_ALG_TYPE_BLKCIPHER); 274 + if (err) 275 + return ERR_PTR(err); 276 + 277 + alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_BLKCIPHER, 278 + CRYPTO_ALG_TYPE_MASK); 279 + err = PTR_ERR(alg); 280 + if (IS_ERR(alg)) 281 + return ERR_PTR(err); 282 + 283 + inst = ERR_PTR(-EINVAL); 284 + if (!is_power_of_2(alg->cra_blocksize)) 285 + goto out_put_alg; 286 + 287 + inst = crypto_alloc_instance("cts", alg); 288 + if (IS_ERR(inst)) 289 + goto out_put_alg; 290 + 291 + inst->alg.cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER; 292 + inst->alg.cra_priority = alg->cra_priority; 293 + inst->alg.cra_blocksize = alg->cra_blocksize; 294 + inst->alg.cra_alignmask = alg->cra_alignmask; 295 + inst->alg.cra_type = &crypto_blkcipher_type; 296 + 297 + /* We access the data as u32s when xoring. */ 298 + inst->alg.cra_alignmask |= __alignof__(u32) - 1; 299 + 300 + inst->alg.cra_blkcipher.ivsize = alg->cra_blocksize; 301 + inst->alg.cra_blkcipher.min_keysize = alg->cra_blkcipher.min_keysize; 302 + inst->alg.cra_blkcipher.max_keysize = alg->cra_blkcipher.max_keysize; 303 + 304 + inst->alg.cra_blkcipher.geniv = "seqiv"; 305 + 306 + inst->alg.cra_ctxsize = sizeof(struct crypto_cts_ctx); 307 + 308 + inst->alg.cra_init = crypto_cts_init_tfm; 309 + inst->alg.cra_exit = crypto_cts_exit_tfm; 310 + 311 + inst->alg.cra_blkcipher.setkey = crypto_cts_setkey; 312 + inst->alg.cra_blkcipher.encrypt = crypto_cts_encrypt; 313 + inst->alg.cra_blkcipher.decrypt = crypto_cts_decrypt; 314 + 315 + out_put_alg: 316 + crypto_mod_put(alg); 317 + return inst; 318 + } 319 + 320 + static void crypto_cts_free(struct crypto_instance *inst) 321 + { 322 + crypto_drop_spawn(crypto_instance_ctx(inst)); 323 + kfree(inst); 324 + } 325 + 326 + static struct crypto_template crypto_cts_tmpl = { 327 + .name = "cts", 328 + .alloc = crypto_cts_alloc, 329 + .free = crypto_cts_free, 330 + .module = THIS_MODULE, 331 + }; 332 + 333 + static int __init crypto_cts_module_init(void) 334 + { 335 + return crypto_register_template(&crypto_cts_tmpl); 336 + } 337 + 338 + static void __exit crypto_cts_module_exit(void) 339 + { 340 + crypto_unregister_template(&crypto_cts_tmpl); 341 + } 342 + 343 + module_init(crypto_cts_module_init); 344 + module_exit(crypto_cts_module_exit); 345 + 346 + MODULE_LICENSE("Dual BSD/GPL"); 347 + MODULE_DESCRIPTION("CTS-CBC CipherText Stealing for CBC");
+4 -4
crypto/deflate.c
··· 208 208 .coa_decompress = deflate_decompress } } 209 209 }; 210 210 211 - static int __init init(void) 211 + static int __init deflate_mod_init(void) 212 212 { 213 213 return crypto_register_alg(&alg); 214 214 } 215 215 216 - static void __exit fini(void) 216 + static void __exit deflate_mod_fini(void) 217 217 { 218 218 crypto_unregister_alg(&alg); 219 219 } 220 220 221 - module_init(init); 222 - module_exit(fini); 221 + module_init(deflate_mod_init); 222 + module_exit(deflate_mod_fini); 223 223 224 224 MODULE_LICENSE("GPL"); 225 225 MODULE_DESCRIPTION("Deflate Compression Algorithm for IPCOMP");
+4 -4
crypto/des_generic.c
··· 977 977 978 978 MODULE_ALIAS("des3_ede"); 979 979 980 - static int __init init(void) 980 + static int __init des_generic_mod_init(void) 981 981 { 982 982 int ret = 0; 983 983 ··· 992 992 return ret; 993 993 } 994 994 995 - static void __exit fini(void) 995 + static void __exit des_generic_mod_fini(void) 996 996 { 997 997 crypto_unregister_alg(&des3_ede_alg); 998 998 crypto_unregister_alg(&des_alg); 999 999 } 1000 1000 1001 - module_init(init); 1002 - module_exit(fini); 1001 + module_init(des_generic_mod_init); 1002 + module_exit(des_generic_mod_fini); 1003 1003 1004 1004 MODULE_LICENSE("GPL"); 1005 1005 MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms");
+4 -4
crypto/fcrypt.c
··· 405 405 .cia_decrypt = fcrypt_decrypt } } 406 406 }; 407 407 408 - static int __init init(void) 408 + static int __init fcrypt_mod_init(void) 409 409 { 410 410 return crypto_register_alg(&fcrypt_alg); 411 411 } 412 412 413 - static void __exit fini(void) 413 + static void __exit fcrypt_mod_fini(void) 414 414 { 415 415 crypto_unregister_alg(&fcrypt_alg); 416 416 } 417 417 418 - module_init(init); 419 - module_exit(fini); 418 + module_init(fcrypt_mod_init); 419 + module_exit(fcrypt_mod_fini); 420 420 421 421 MODULE_LICENSE("Dual BSD/GPL"); 422 422 MODULE_DESCRIPTION("FCrypt Cipher Algorithm");
+4 -4
crypto/khazad.c
··· 862 862 .cia_decrypt = khazad_decrypt } } 863 863 }; 864 864 865 - static int __init init(void) 865 + static int __init khazad_mod_init(void) 866 866 { 867 867 int ret = 0; 868 868 ··· 870 870 return ret; 871 871 } 872 872 873 - static void __exit fini(void) 873 + static void __exit khazad_mod_fini(void) 874 874 { 875 875 crypto_unregister_alg(&khazad_alg); 876 876 } 877 877 878 878 879 - module_init(init); 880 - module_exit(fini); 879 + module_init(khazad_mod_init); 880 + module_exit(khazad_mod_fini); 881 881 882 882 MODULE_LICENSE("GPL"); 883 883 MODULE_DESCRIPTION("Khazad Cryptographic Algorithm");
+3 -2
crypto/lrw.c
··· 91 91 92 92 static inline void inc(be128 *iv) 93 93 { 94 - if (!(iv->b = cpu_to_be64(be64_to_cpu(iv->b) + 1))) 95 - iv->a = cpu_to_be64(be64_to_cpu(iv->a) + 1); 94 + be64_add_cpu(&iv->b, 1); 95 + if (!iv->b) 96 + be64_add_cpu(&iv->a, 1); 96 97 } 97 98 98 99 static inline void lrw_round(struct sinfo *s, void *dst, const void *src)
+4 -4
crypto/lzo.c
··· 89 89 .coa_decompress = lzo_decompress } } 90 90 }; 91 91 92 - static int __init init(void) 92 + static int __init lzo_mod_init(void) 93 93 { 94 94 return crypto_register_alg(&alg); 95 95 } 96 96 97 - static void __exit fini(void) 97 + static void __exit lzo_mod_fini(void) 98 98 { 99 99 crypto_unregister_alg(&alg); 100 100 } 101 101 102 - module_init(init); 103 - module_exit(fini); 102 + module_init(lzo_mod_init); 103 + module_exit(lzo_mod_fini); 104 104 105 105 MODULE_LICENSE("GPL"); 106 106 MODULE_DESCRIPTION("LZO Compression Algorithm");
+4 -4
crypto/md4.c
··· 233 233 .dia_final = md4_final } } 234 234 }; 235 235 236 - static int __init init(void) 236 + static int __init md4_mod_init(void) 237 237 { 238 238 return crypto_register_alg(&alg); 239 239 } 240 240 241 - static void __exit fini(void) 241 + static void __exit md4_mod_fini(void) 242 242 { 243 243 crypto_unregister_alg(&alg); 244 244 } 245 245 246 - module_init(init); 247 - module_exit(fini); 246 + module_init(md4_mod_init); 247 + module_exit(md4_mod_fini); 248 248 249 249 MODULE_LICENSE("GPL"); 250 250 MODULE_DESCRIPTION("MD4 Message Digest Algorithm");
+4 -4
crypto/md5.c
··· 228 228 .dia_final = md5_final } } 229 229 }; 230 230 231 - static int __init init(void) 231 + static int __init md5_mod_init(void) 232 232 { 233 233 return crypto_register_alg(&alg); 234 234 } 235 235 236 - static void __exit fini(void) 236 + static void __exit md5_mod_fini(void) 237 237 { 238 238 crypto_unregister_alg(&alg); 239 239 } 240 240 241 - module_init(init); 242 - module_exit(fini); 241 + module_init(md5_mod_init); 242 + module_exit(md5_mod_fini); 243 243 244 244 MODULE_LICENSE("GPL"); 245 245 MODULE_DESCRIPTION("MD5 Message Digest Algorithm");
+2 -6
crypto/proc.c
··· 78 78 return 0; 79 79 } 80 80 81 - static struct seq_operations crypto_seq_ops = { 81 + static const struct seq_operations crypto_seq_ops = { 82 82 .start = c_start, 83 83 .next = c_next, 84 84 .stop = c_stop, ··· 99 99 100 100 void __init crypto_init_proc(void) 101 101 { 102 - struct proc_dir_entry *proc; 103 - 104 - proc = create_proc_entry("crypto", 0, NULL); 105 - if (proc) 106 - proc->proc_fops = &proc_crypto_ops; 102 + proc_create("crypto", 0, NULL, &proc_crypto_ops); 107 103 } 108 104 109 105 void __exit crypto_exit_proc(void)
+4 -4
crypto/salsa20_generic.c
··· 237 237 } 238 238 }; 239 239 240 - static int __init init(void) 240 + static int __init salsa20_generic_mod_init(void) 241 241 { 242 242 return crypto_register_alg(&alg); 243 243 } 244 244 245 - static void __exit fini(void) 245 + static void __exit salsa20_generic_mod_fini(void) 246 246 { 247 247 crypto_unregister_alg(&alg); 248 248 } 249 249 250 - module_init(init); 251 - module_exit(fini); 250 + module_init(salsa20_generic_mod_init); 251 + module_exit(salsa20_generic_mod_fini); 252 252 253 253 MODULE_LICENSE("GPL"); 254 254 MODULE_DESCRIPTION ("Salsa20 stream cipher algorithm");
+4 -4
crypto/serpent.c
··· 557 557 .cia_decrypt = tnepres_decrypt } } 558 558 }; 559 559 560 - static int __init init(void) 560 + static int __init serpent_mod_init(void) 561 561 { 562 562 int ret = crypto_register_alg(&serpent_alg); 563 563 ··· 572 572 return ret; 573 573 } 574 574 575 - static void __exit fini(void) 575 + static void __exit serpent_mod_fini(void) 576 576 { 577 577 crypto_unregister_alg(&tnepres_alg); 578 578 crypto_unregister_alg(&serpent_alg); 579 579 } 580 580 581 - module_init(init); 582 - module_exit(fini); 581 + module_init(serpent_mod_init); 582 + module_exit(serpent_mod_fini); 583 583 584 584 MODULE_LICENSE("GPL"); 585 585 MODULE_DESCRIPTION("Serpent and tnepres (kerneli compatible serpent reversed) Cipher Algorithm");
+4 -4
crypto/sha1_generic.c
··· 120 120 .dia_final = sha1_final } } 121 121 }; 122 122 123 - static int __init init(void) 123 + static int __init sha1_generic_mod_init(void) 124 124 { 125 125 return crypto_register_alg(&alg); 126 126 } 127 127 128 - static void __exit fini(void) 128 + static void __exit sha1_generic_mod_fini(void) 129 129 { 130 130 crypto_unregister_alg(&alg); 131 131 } 132 132 133 - module_init(init); 134 - module_exit(fini); 133 + module_init(sha1_generic_mod_init); 134 + module_exit(sha1_generic_mod_fini); 135 135 136 136 MODULE_LICENSE("GPL"); 137 137 MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm");
+4 -4
crypto/sha256_generic.c
··· 353 353 .dia_final = sha224_final } } 354 354 }; 355 355 356 - static int __init init(void) 356 + static int __init sha256_generic_mod_init(void) 357 357 { 358 358 int ret = 0; 359 359 ··· 370 370 return ret; 371 371 } 372 372 373 - static void __exit fini(void) 373 + static void __exit sha256_generic_mod_fini(void) 374 374 { 375 375 crypto_unregister_alg(&sha224); 376 376 crypto_unregister_alg(&sha256); 377 377 } 378 378 379 - module_init(init); 380 - module_exit(fini); 379 + module_init(sha256_generic_mod_init); 380 + module_exit(sha256_generic_mod_fini); 381 381 382 382 MODULE_LICENSE("GPL"); 383 383 MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm");
+16 -15
crypto/sha512.c crypto/sha512_generic.c
··· 104 104 } 105 105 106 106 /* load the state into our registers */ 107 - a=state[0]; b=state[1]; c=state[2]; d=state[3]; 108 - e=state[4]; f=state[5]; g=state[6]; h=state[7]; 109 - 107 + a=state[0]; b=state[1]; c=state[2]; d=state[3]; 108 + e=state[4]; f=state[5]; g=state[6]; h=state[7]; 109 + 110 110 /* now iterate */ 111 111 for (i=0; i<80; i+=8) { 112 112 t1 = h + e1(e) + Ch(e,f,g) + sha512_K[i ] + W[i ]; ··· 126 126 t1 = a + e1(f) + Ch(f,g,h) + sha512_K[i+7] + W[i+7]; 127 127 t2 = e0(b) + Maj(b,c,d); e+=t1; a=t1+t2; 128 128 } 129 - 130 - state[0] += a; state[1] += b; state[2] += c; state[3] += d; 131 - state[4] += e; state[5] += f; state[6] += g; state[7] += h; 129 + 130 + state[0] += a; state[1] += b; state[2] += c; state[3] += d; 131 + state[4] += e; state[5] += f; state[6] += g; state[7] += h; 132 132 133 133 /* erase our data */ 134 134 a = b = c = d = e = f = g = h = t1 = t2 = 0; ··· 173 173 174 174 /* Compute number of bytes mod 128 */ 175 175 index = (unsigned int)((sctx->count[0] >> 3) & 0x7F); 176 - 176 + 177 177 /* Update number of bits */ 178 178 if ((sctx->count[0] += (len << 3)) < (len << 3)) { 179 179 if ((sctx->count[1] += 1) < 1) ··· 181 181 sctx->count[3]++; 182 182 sctx->count[1] += (len >> 29); 183 183 } 184 - 184 + 185 185 part_len = 128 - index; 186 - 186 + 187 187 /* Transform as many times as possible. */ 188 188 if (len >= part_len) { 189 189 memcpy(&sctx->buf[index], data, part_len); ··· 278 278 } 279 279 }; 280 280 281 - MODULE_ALIAS("sha384"); 282 - 283 - static int __init init(void) 281 + static int __init sha512_generic_mod_init(void) 284 282 { 285 283 int ret = 0; 286 284 ··· 290 292 return ret; 291 293 } 292 294 293 - static void __exit fini(void) 295 + static void __exit sha512_generic_mod_fini(void) 294 296 { 295 297 crypto_unregister_alg(&sha384); 296 298 crypto_unregister_alg(&sha512); 297 299 } 298 300 299 - module_init(init); 300 - module_exit(fini); 301 + module_init(sha512_generic_mod_init); 302 + module_exit(sha512_generic_mod_fini); 301 303 302 304 MODULE_LICENSE("GPL"); 303 305 MODULE_DESCRIPTION("SHA-512 and SHA-384 Secure Hash Algorithms"); 306 + 307 + MODULE_ALIAS("sha384"); 308 + MODULE_ALIAS("sha512");
+285 -250
crypto/tcrypt.c
··· 82 82 "des", "md5", "des3_ede", "rot13", "sha1", "sha224", "sha256", 83 83 "blowfish", "twofish", "serpent", "sha384", "sha512", "md4", "aes", 84 84 "cast6", "arc4", "michael_mic", "deflate", "crc32c", "tea", "xtea", 85 - "arc4", "michael_mic", "deflate", "crc32c", "tea", "xtea", 86 85 "khazad", "wp512", "wp384", "wp256", "tnepres", "xeta", "fcrypt", 87 - "camellia", "seed", "salsa20", "lzo", NULL 86 + "camellia", "seed", "salsa20", "lzo", "cts", NULL 88 87 }; 89 88 90 89 static void hexdump(unsigned char *buf, unsigned int len) ··· 112 113 char result[64]; 113 114 struct crypto_hash *tfm; 114 115 struct hash_desc desc; 115 - struct hash_testvec *hash_tv; 116 - unsigned int tsize; 117 116 int ret; 117 + void *hash_buff; 118 118 119 119 printk("\ntesting %s\n", algo); 120 - 121 - tsize = sizeof(struct hash_testvec); 122 - tsize *= tcount; 123 - 124 - if (tsize > TVMEMSIZE) { 125 - printk("template (%u) too big for tvmem (%u)\n", tsize, TVMEMSIZE); 126 - return; 127 - } 128 - 129 - memcpy(tvmem, template, tsize); 130 - hash_tv = (void *)tvmem; 131 120 132 121 tfm = crypto_alloc_hash(algo, 0, CRYPTO_ALG_ASYNC); 133 122 if (IS_ERR(tfm)) { ··· 131 144 printk("test %u:\n", i + 1); 132 145 memset(result, 0, 64); 133 146 134 - sg_init_one(&sg[0], hash_tv[i].plaintext, hash_tv[i].psize); 147 + hash_buff = kzalloc(template[i].psize, GFP_KERNEL); 148 + if (!hash_buff) 149 + continue; 135 150 136 - if (hash_tv[i].ksize) { 137 - ret = crypto_hash_setkey(tfm, hash_tv[i].key, 138 - hash_tv[i].ksize); 151 + memcpy(hash_buff, template[i].plaintext, template[i].psize); 152 + sg_init_one(&sg[0], hash_buff, template[i].psize); 153 + 154 + if (template[i].ksize) { 155 + ret = crypto_hash_setkey(tfm, template[i].key, 156 + template[i].ksize); 139 157 if (ret) { 140 158 printk("setkey() failed ret=%d\n", ret); 159 + kfree(hash_buff); 141 160 goto out; 142 161 } 143 162 } 144 163 145 - ret = crypto_hash_digest(&desc, sg, hash_tv[i].psize, result); 164 + ret = crypto_hash_digest(&desc, sg, template[i].psize, result); 146 165 if (ret) { 147 166 printk("digest () failed ret=%d\n", ret); 167 + kfree(hash_buff); 148 168 goto out; 149 169 } 150 170 151 171 hexdump(result, crypto_hash_digestsize(tfm)); 152 172 printk("%s\n", 153 - memcmp(result, hash_tv[i].digest, 173 + memcmp(result, template[i].digest, 154 174 crypto_hash_digestsize(tfm)) ? 155 175 "fail" : "pass"); 176 + kfree(hash_buff); 156 177 } 157 178 158 179 printk("testing %s across pages\n", algo); ··· 170 175 171 176 j = 0; 172 177 for (i = 0; i < tcount; i++) { 173 - if (hash_tv[i].np) { 178 + if (template[i].np) { 174 179 j++; 175 180 printk("test %u:\n", j); 176 181 memset(result, 0, 64); 177 182 178 183 temp = 0; 179 - sg_init_table(sg, hash_tv[i].np); 180 - for (k = 0; k < hash_tv[i].np; k++) { 184 + sg_init_table(sg, template[i].np); 185 + for (k = 0; k < template[i].np; k++) { 181 186 memcpy(&xbuf[IDX[k]], 182 - hash_tv[i].plaintext + temp, 183 - hash_tv[i].tap[k]); 184 - temp += hash_tv[i].tap[k]; 187 + template[i].plaintext + temp, 188 + template[i].tap[k]); 189 + temp += template[i].tap[k]; 185 190 sg_set_buf(&sg[k], &xbuf[IDX[k]], 186 - hash_tv[i].tap[k]); 191 + template[i].tap[k]); 187 192 } 188 193 189 - if (hash_tv[i].ksize) { 190 - ret = crypto_hash_setkey(tfm, hash_tv[i].key, 191 - hash_tv[i].ksize); 194 + if (template[i].ksize) { 195 + ret = crypto_hash_setkey(tfm, template[i].key, 196 + template[i].ksize); 192 197 193 198 if (ret) { 194 199 printk("setkey() failed ret=%d\n", ret); ··· 196 201 } 197 202 } 198 203 199 - ret = crypto_hash_digest(&desc, sg, hash_tv[i].psize, 204 + ret = crypto_hash_digest(&desc, sg, template[i].psize, 200 205 result); 201 206 if (ret) { 202 207 printk("digest () failed ret=%d\n", ret); ··· 205 210 206 211 hexdump(result, crypto_hash_digestsize(tfm)); 207 212 printk("%s\n", 208 - memcmp(result, hash_tv[i].digest, 213 + memcmp(result, template[i].digest, 209 214 crypto_hash_digestsize(tfm)) ? 210 215 "fail" : "pass"); 211 216 } ··· 219 224 unsigned int tcount) 220 225 { 221 226 unsigned int ret, i, j, k, temp; 222 - unsigned int tsize; 223 227 char *q; 224 228 struct crypto_aead *tfm; 225 229 char *key; 226 - struct aead_testvec *aead_tv; 227 230 struct aead_request *req; 228 231 struct scatterlist sg[8]; 229 232 struct scatterlist asg[8]; 230 233 const char *e; 231 234 struct tcrypt_result result; 232 235 unsigned int authsize; 236 + void *input; 237 + void *assoc; 238 + char iv[MAX_IVLEN]; 233 239 234 240 if (enc == ENCRYPT) 235 241 e = "encryption"; ··· 238 242 e = "decryption"; 239 243 240 244 printk(KERN_INFO "\ntesting %s %s\n", algo, e); 241 - 242 - tsize = sizeof(struct aead_testvec); 243 - tsize *= tcount; 244 - 245 - if (tsize > TVMEMSIZE) { 246 - printk(KERN_INFO "template (%u) too big for tvmem (%u)\n", 247 - tsize, TVMEMSIZE); 248 - return; 249 - } 250 - 251 - memcpy(tvmem, template, tsize); 252 - aead_tv = (void *)tvmem; 253 245 254 246 init_completion(&result.completion); 255 247 ··· 259 275 tcrypt_complete, &result); 260 276 261 277 for (i = 0, j = 0; i < tcount; i++) { 262 - if (!aead_tv[i].np) { 278 + if (!template[i].np) { 263 279 printk(KERN_INFO "test %u (%d bit key):\n", 264 - ++j, aead_tv[i].klen * 8); 280 + ++j, template[i].klen * 8); 281 + 282 + /* some tepmplates have no input data but they will 283 + * touch input 284 + */ 285 + input = kzalloc(template[i].ilen + template[i].rlen, GFP_KERNEL); 286 + if (!input) 287 + continue; 288 + 289 + assoc = kzalloc(template[i].alen, GFP_KERNEL); 290 + if (!assoc) { 291 + kfree(input); 292 + continue; 293 + } 294 + 295 + memcpy(input, template[i].input, template[i].ilen); 296 + memcpy(assoc, template[i].assoc, template[i].alen); 297 + if (template[i].iv) 298 + memcpy(iv, template[i].iv, MAX_IVLEN); 299 + else 300 + memset(iv, 0, MAX_IVLEN); 265 301 266 302 crypto_aead_clear_flags(tfm, ~0); 267 - if (aead_tv[i].wk) 303 + if (template[i].wk) 268 304 crypto_aead_set_flags( 269 305 tfm, CRYPTO_TFM_REQ_WEAK_KEY); 270 - key = aead_tv[i].key; 306 + 307 + if (template[i].key) 308 + key = template[i].key; 309 + else 310 + key = kzalloc(template[i].klen, GFP_KERNEL); 271 311 272 312 ret = crypto_aead_setkey(tfm, key, 273 - aead_tv[i].klen); 313 + template[i].klen); 274 314 if (ret) { 275 315 printk(KERN_INFO "setkey() failed flags=%x\n", 276 316 crypto_aead_get_flags(tfm)); 277 317 278 - if (!aead_tv[i].fail) 279 - goto out; 318 + if (!template[i].fail) 319 + goto next_one; 280 320 } 281 321 282 - authsize = abs(aead_tv[i].rlen - aead_tv[i].ilen); 322 + authsize = abs(template[i].rlen - template[i].ilen); 283 323 ret = crypto_aead_setauthsize(tfm, authsize); 284 324 if (ret) { 285 325 printk(KERN_INFO 286 326 "failed to set authsize = %u\n", 287 327 authsize); 288 - goto out; 328 + goto next_one; 289 329 } 290 330 291 - sg_init_one(&sg[0], aead_tv[i].input, 292 - aead_tv[i].ilen + (enc ? authsize : 0)); 331 + sg_init_one(&sg[0], input, 332 + template[i].ilen + (enc ? authsize : 0)); 293 333 294 - sg_init_one(&asg[0], aead_tv[i].assoc, 295 - aead_tv[i].alen); 334 + sg_init_one(&asg[0], assoc, template[i].alen); 296 335 297 336 aead_request_set_crypt(req, sg, sg, 298 - aead_tv[i].ilen, 299 - aead_tv[i].iv); 337 + template[i].ilen, iv); 300 338 301 - aead_request_set_assoc(req, asg, aead_tv[i].alen); 339 + aead_request_set_assoc(req, asg, template[i].alen); 302 340 303 341 ret = enc ? 304 342 crypto_aead_encrypt(req) : ··· 341 335 default: 342 336 printk(KERN_INFO "%s () failed err=%d\n", 343 337 e, -ret); 344 - goto out; 338 + goto next_one; 345 339 } 346 340 347 341 q = kmap(sg_page(&sg[0])) + sg[0].offset; 348 - hexdump(q, aead_tv[i].rlen); 342 + hexdump(q, template[i].rlen); 349 343 350 344 printk(KERN_INFO "enc/dec: %s\n", 351 - memcmp(q, aead_tv[i].result, 352 - aead_tv[i].rlen) ? "fail" : "pass"); 345 + memcmp(q, template[i].result, 346 + template[i].rlen) ? "fail" : "pass"); 347 + kunmap(sg_page(&sg[0])); 348 + next_one: 349 + if (!template[i].key) 350 + kfree(key); 351 + kfree(assoc); 352 + kfree(input); 353 353 } 354 354 } 355 355 ··· 364 352 memset(axbuf, 0, XBUFSIZE); 365 353 366 354 for (i = 0, j = 0; i < tcount; i++) { 367 - if (aead_tv[i].np) { 355 + if (template[i].np) { 368 356 printk(KERN_INFO "test %u (%d bit key):\n", 369 - ++j, aead_tv[i].klen * 8); 357 + ++j, template[i].klen * 8); 358 + 359 + if (template[i].iv) 360 + memcpy(iv, template[i].iv, MAX_IVLEN); 361 + else 362 + memset(iv, 0, MAX_IVLEN); 370 363 371 364 crypto_aead_clear_flags(tfm, ~0); 372 - if (aead_tv[i].wk) 365 + if (template[i].wk) 373 366 crypto_aead_set_flags( 374 367 tfm, CRYPTO_TFM_REQ_WEAK_KEY); 375 - key = aead_tv[i].key; 368 + key = template[i].key; 376 369 377 - ret = crypto_aead_setkey(tfm, key, aead_tv[i].klen); 370 + ret = crypto_aead_setkey(tfm, key, template[i].klen); 378 371 if (ret) { 379 372 printk(KERN_INFO "setkey() failed flags=%x\n", 380 373 crypto_aead_get_flags(tfm)); 381 374 382 - if (!aead_tv[i].fail) 375 + if (!template[i].fail) 383 376 goto out; 384 377 } 385 378 386 - sg_init_table(sg, aead_tv[i].np); 387 - for (k = 0, temp = 0; k < aead_tv[i].np; k++) { 379 + sg_init_table(sg, template[i].np); 380 + for (k = 0, temp = 0; k < template[i].np; k++) { 388 381 memcpy(&xbuf[IDX[k]], 389 - aead_tv[i].input + temp, 390 - aead_tv[i].tap[k]); 391 - temp += aead_tv[i].tap[k]; 382 + template[i].input + temp, 383 + template[i].tap[k]); 384 + temp += template[i].tap[k]; 392 385 sg_set_buf(&sg[k], &xbuf[IDX[k]], 393 - aead_tv[i].tap[k]); 386 + template[i].tap[k]); 394 387 } 395 388 396 - authsize = abs(aead_tv[i].rlen - aead_tv[i].ilen); 389 + authsize = abs(template[i].rlen - template[i].ilen); 397 390 ret = crypto_aead_setauthsize(tfm, authsize); 398 391 if (ret) { 399 392 printk(KERN_INFO ··· 410 393 if (enc) 411 394 sg[k - 1].length += authsize; 412 395 413 - sg_init_table(asg, aead_tv[i].anp); 414 - for (k = 0, temp = 0; k < aead_tv[i].anp; k++) { 396 + sg_init_table(asg, template[i].anp); 397 + for (k = 0, temp = 0; k < template[i].anp; k++) { 415 398 memcpy(&axbuf[IDX[k]], 416 - aead_tv[i].assoc + temp, 417 - aead_tv[i].atap[k]); 418 - temp += aead_tv[i].atap[k]; 399 + template[i].assoc + temp, 400 + template[i].atap[k]); 401 + temp += template[i].atap[k]; 419 402 sg_set_buf(&asg[k], &axbuf[IDX[k]], 420 - aead_tv[i].atap[k]); 403 + template[i].atap[k]); 421 404 } 422 405 423 406 aead_request_set_crypt(req, sg, sg, 424 - aead_tv[i].ilen, 425 - aead_tv[i].iv); 407 + template[i].ilen, 408 + iv); 426 409 427 - aead_request_set_assoc(req, asg, aead_tv[i].alen); 410 + aead_request_set_assoc(req, asg, template[i].alen); 428 411 429 412 ret = enc ? 430 413 crypto_aead_encrypt(req) : ··· 448 431 goto out; 449 432 } 450 433 451 - for (k = 0, temp = 0; k < aead_tv[i].np; k++) { 434 + for (k = 0, temp = 0; k < template[i].np; k++) { 452 435 printk(KERN_INFO "page %u\n", k); 453 436 q = kmap(sg_page(&sg[k])) + sg[k].offset; 454 - hexdump(q, aead_tv[i].tap[k]); 437 + hexdump(q, template[i].tap[k]); 455 438 printk(KERN_INFO "%s\n", 456 - memcmp(q, aead_tv[i].result + temp, 457 - aead_tv[i].tap[k] - 458 - (k < aead_tv[i].np - 1 || enc ? 439 + memcmp(q, template[i].result + temp, 440 + template[i].tap[k] - 441 + (k < template[i].np - 1 || enc ? 459 442 0 : authsize)) ? 460 443 "fail" : "pass"); 461 444 462 - temp += aead_tv[i].tap[k]; 445 + temp += template[i].tap[k]; 446 + kunmap(sg_page(&sg[k])); 463 447 } 464 448 } 465 449 } ··· 474 456 struct cipher_testvec *template, unsigned int tcount) 475 457 { 476 458 unsigned int ret, i, j, k, temp; 477 - unsigned int tsize; 478 459 char *q; 479 460 struct crypto_ablkcipher *tfm; 480 - char *key; 481 - struct cipher_testvec *cipher_tv; 482 461 struct ablkcipher_request *req; 483 462 struct scatterlist sg[8]; 484 463 const char *e; 485 464 struct tcrypt_result result; 465 + void *data; 466 + char iv[MAX_IVLEN]; 486 467 487 468 if (enc == ENCRYPT) 488 469 e = "encryption"; ··· 490 473 491 474 printk("\ntesting %s %s\n", algo, e); 492 475 493 - tsize = sizeof (struct cipher_testvec); 494 - if (tsize > TVMEMSIZE) { 495 - printk("template (%u) too big for tvmem (%u)\n", tsize, 496 - TVMEMSIZE); 497 - return; 498 - } 499 - cipher_tv = (void *)tvmem; 500 - 501 476 init_completion(&result.completion); 502 - 503 477 tfm = crypto_alloc_ablkcipher(algo, 0, 0); 504 478 505 479 if (IS_ERR(tfm)) { ··· 510 502 511 503 j = 0; 512 504 for (i = 0; i < tcount; i++) { 513 - memcpy(cipher_tv, &template[i], tsize); 514 - if (!(cipher_tv->np)) { 505 + 506 + data = kzalloc(template[i].ilen, GFP_KERNEL); 507 + if (!data) 508 + continue; 509 + 510 + memcpy(data, template[i].input, template[i].ilen); 511 + if (template[i].iv) 512 + memcpy(iv, template[i].iv, MAX_IVLEN); 513 + else 514 + memset(iv, 0, MAX_IVLEN); 515 + 516 + if (!(template[i].np)) { 515 517 j++; 516 518 printk("test %u (%d bit key):\n", 517 - j, cipher_tv->klen * 8); 519 + j, template[i].klen * 8); 518 520 519 521 crypto_ablkcipher_clear_flags(tfm, ~0); 520 - if (cipher_tv->wk) 522 + if (template[i].wk) 521 523 crypto_ablkcipher_set_flags( 522 524 tfm, CRYPTO_TFM_REQ_WEAK_KEY); 523 - key = cipher_tv->key; 524 525 525 - ret = crypto_ablkcipher_setkey(tfm, key, 526 - cipher_tv->klen); 526 + ret = crypto_ablkcipher_setkey(tfm, template[i].key, 527 + template[i].klen); 527 528 if (ret) { 528 529 printk("setkey() failed flags=%x\n", 529 530 crypto_ablkcipher_get_flags(tfm)); 530 531 531 - if (!cipher_tv->fail) 532 + if (!template[i].fail) { 533 + kfree(data); 532 534 goto out; 535 + } 533 536 } 534 537 535 - sg_init_one(&sg[0], cipher_tv->input, 536 - cipher_tv->ilen); 538 + sg_init_one(&sg[0], data, template[i].ilen); 537 539 538 540 ablkcipher_request_set_crypt(req, sg, sg, 539 - cipher_tv->ilen, 540 - cipher_tv->iv); 541 - 541 + template[i].ilen, iv); 542 542 ret = enc ? 543 543 crypto_ablkcipher_encrypt(req) : 544 544 crypto_ablkcipher_decrypt(req); ··· 565 549 /* fall through */ 566 550 default: 567 551 printk("%s () failed err=%d\n", e, -ret); 552 + kfree(data); 568 553 goto out; 569 554 } 570 555 571 556 q = kmap(sg_page(&sg[0])) + sg[0].offset; 572 - hexdump(q, cipher_tv->rlen); 557 + hexdump(q, template[i].rlen); 573 558 574 559 printk("%s\n", 575 - memcmp(q, cipher_tv->result, 576 - cipher_tv->rlen) ? "fail" : "pass"); 560 + memcmp(q, template[i].result, 561 + template[i].rlen) ? "fail" : "pass"); 562 + kunmap(sg_page(&sg[0])); 577 563 } 564 + kfree(data); 578 565 } 579 566 580 567 printk("\ntesting %s %s across pages (chunking)\n", algo, e); ··· 585 566 586 567 j = 0; 587 568 for (i = 0; i < tcount; i++) { 588 - memcpy(cipher_tv, &template[i], tsize); 589 - if (cipher_tv->np) { 569 + 570 + data = kzalloc(template[i].ilen, GFP_KERNEL); 571 + if (!data) 572 + continue; 573 + 574 + memcpy(data, template[i].input, template[i].ilen); 575 + 576 + if (template[i].iv) 577 + memcpy(iv, template[i].iv, MAX_IVLEN); 578 + else 579 + memset(iv, 0, MAX_IVLEN); 580 + 581 + if (template[i].np) { 590 582 j++; 591 583 printk("test %u (%d bit key):\n", 592 - j, cipher_tv->klen * 8); 584 + j, template[i].klen * 8); 593 585 594 586 crypto_ablkcipher_clear_flags(tfm, ~0); 595 - if (cipher_tv->wk) 587 + if (template[i].wk) 596 588 crypto_ablkcipher_set_flags( 597 589 tfm, CRYPTO_TFM_REQ_WEAK_KEY); 598 - key = cipher_tv->key; 599 590 600 - ret = crypto_ablkcipher_setkey(tfm, key, 601 - cipher_tv->klen); 591 + ret = crypto_ablkcipher_setkey(tfm, template[i].key, 592 + template[i].klen); 602 593 if (ret) { 603 594 printk("setkey() failed flags=%x\n", 604 - crypto_ablkcipher_get_flags(tfm)); 595 + crypto_ablkcipher_get_flags(tfm)); 605 596 606 - if (!cipher_tv->fail) 597 + if (!template[i].fail) { 598 + kfree(data); 607 599 goto out; 600 + } 608 601 } 609 602 610 603 temp = 0; 611 - sg_init_table(sg, cipher_tv->np); 612 - for (k = 0; k < cipher_tv->np; k++) { 604 + sg_init_table(sg, template[i].np); 605 + for (k = 0; k < template[i].np; k++) { 613 606 memcpy(&xbuf[IDX[k]], 614 - cipher_tv->input + temp, 615 - cipher_tv->tap[k]); 616 - temp += cipher_tv->tap[k]; 607 + template[i].input + temp, 608 + template[i].tap[k]); 609 + temp += template[i].tap[k]; 617 610 sg_set_buf(&sg[k], &xbuf[IDX[k]], 618 - cipher_tv->tap[k]); 611 + template[i].tap[k]); 619 612 } 620 613 621 614 ablkcipher_request_set_crypt(req, sg, sg, 622 - cipher_tv->ilen, 623 - cipher_tv->iv); 615 + template[i].ilen, iv); 624 616 625 617 ret = enc ? 626 618 crypto_ablkcipher_encrypt(req) : ··· 655 625 } 656 626 657 627 temp = 0; 658 - for (k = 0; k < cipher_tv->np; k++) { 628 + for (k = 0; k < template[i].np; k++) { 659 629 printk("page %u\n", k); 660 630 q = kmap(sg_page(&sg[k])) + sg[k].offset; 661 - hexdump(q, cipher_tv->tap[k]); 631 + hexdump(q, template[i].tap[k]); 662 632 printk("%s\n", 663 - memcmp(q, cipher_tv->result + temp, 664 - cipher_tv->tap[k]) ? "fail" : 633 + memcmp(q, template[i].result + temp, 634 + template[i].tap[k]) ? "fail" : 665 635 "pass"); 666 - temp += cipher_tv->tap[k]; 636 + temp += template[i].tap[k]; 637 + kunmap(sg_page(&sg[k])); 667 638 } 668 639 } 669 640 } 670 - 671 641 out: 672 642 crypto_free_ablkcipher(tfm); 673 643 ablkcipher_request_free(req); ··· 751 721 return ret; 752 722 } 753 723 724 + static u32 block_sizes[] = { 16, 64, 256, 1024, 8192, 0 }; 725 + 754 726 static void test_cipher_speed(char *algo, int enc, unsigned int sec, 755 727 struct cipher_testvec *template, 756 - unsigned int tcount, struct cipher_speed *speed) 728 + unsigned int tcount, u8 *keysize) 757 729 { 758 730 unsigned int ret, i, j, iv_len; 759 731 unsigned char *key, *p, iv[128]; 760 732 struct crypto_blkcipher *tfm; 761 733 struct blkcipher_desc desc; 762 734 const char *e; 735 + u32 *b_size; 763 736 764 737 if (enc == ENCRYPT) 765 738 e = "encryption"; ··· 781 748 desc.tfm = tfm; 782 749 desc.flags = 0; 783 750 784 - for (i = 0; speed[i].klen != 0; i++) { 785 - if ((speed[i].blen + speed[i].klen) > TVMEMSIZE) { 786 - printk("template (%u) too big for tvmem (%u)\n", 787 - speed[i].blen + speed[i].klen, TVMEMSIZE); 788 - goto out; 789 - } 751 + i = 0; 752 + do { 790 753 791 - printk("test %u (%d bit key, %d byte blocks): ", i, 792 - speed[i].klen * 8, speed[i].blen); 754 + b_size = block_sizes; 755 + do { 793 756 794 - memset(tvmem, 0xff, speed[i].klen + speed[i].blen); 757 + if ((*keysize + *b_size) > TVMEMSIZE) { 758 + printk("template (%u) too big for tvmem (%u)\n", 759 + *keysize + *b_size, TVMEMSIZE); 760 + goto out; 761 + } 795 762 796 - /* set key, plain text and IV */ 797 - key = (unsigned char *)tvmem; 798 - for (j = 0; j < tcount; j++) { 799 - if (template[j].klen == speed[i].klen) { 800 - key = template[j].key; 763 + printk("test %u (%d bit key, %d byte blocks): ", i, 764 + *keysize * 8, *b_size); 765 + 766 + memset(tvmem, 0xff, *keysize + *b_size); 767 + 768 + /* set key, plain text and IV */ 769 + key = (unsigned char *)tvmem; 770 + for (j = 0; j < tcount; j++) { 771 + if (template[j].klen == *keysize) { 772 + key = template[j].key; 773 + break; 774 + } 775 + } 776 + p = (unsigned char *)tvmem + *keysize; 777 + 778 + ret = crypto_blkcipher_setkey(tfm, key, *keysize); 779 + if (ret) { 780 + printk("setkey() failed flags=%x\n", 781 + crypto_blkcipher_get_flags(tfm)); 782 + goto out; 783 + } 784 + 785 + iv_len = crypto_blkcipher_ivsize(tfm); 786 + if (iv_len) { 787 + memset(&iv, 0xff, iv_len); 788 + crypto_blkcipher_set_iv(tfm, iv, iv_len); 789 + } 790 + 791 + if (sec) 792 + ret = test_cipher_jiffies(&desc, enc, p, *b_size, sec); 793 + else 794 + ret = test_cipher_cycles(&desc, enc, p, *b_size); 795 + 796 + if (ret) { 797 + printk("%s() failed flags=%x\n", e, desc.flags); 801 798 break; 802 799 } 803 - } 804 - p = (unsigned char *)tvmem + speed[i].klen; 805 - 806 - ret = crypto_blkcipher_setkey(tfm, key, speed[i].klen); 807 - if (ret) { 808 - printk("setkey() failed flags=%x\n", 809 - crypto_blkcipher_get_flags(tfm)); 810 - goto out; 811 - } 812 - 813 - iv_len = crypto_blkcipher_ivsize(tfm); 814 - if (iv_len) { 815 - memset(&iv, 0xff, iv_len); 816 - crypto_blkcipher_set_iv(tfm, iv, iv_len); 817 - } 818 - 819 - if (sec) 820 - ret = test_cipher_jiffies(&desc, enc, p, speed[i].blen, 821 - sec); 822 - else 823 - ret = test_cipher_cycles(&desc, enc, p, speed[i].blen); 824 - 825 - if (ret) { 826 - printk("%s() failed flags=%x\n", e, desc.flags); 827 - break; 828 - } 829 - } 800 + b_size++; 801 + i++; 802 + } while (*b_size); 803 + keysize++; 804 + } while (*keysize); 830 805 831 806 out: 832 807 crypto_free_blkcipher(tfm); ··· 1082 1041 unsigned int i; 1083 1042 char result[COMP_BUF_SIZE]; 1084 1043 struct crypto_comp *tfm; 1085 - struct comp_testvec *tv; 1086 1044 unsigned int tsize; 1087 1045 1088 1046 printk("\ntesting %s compression\n", algo); 1089 - 1090 - tsize = sizeof(struct comp_testvec); 1091 - tsize *= ctcount; 1092 - if (tsize > TVMEMSIZE) { 1093 - printk("template (%u) too big for tvmem (%u)\n", tsize, 1094 - TVMEMSIZE); 1095 - return; 1096 - } 1097 - 1098 - memcpy(tvmem, ctemplate, tsize); 1099 - tv = (void *)tvmem; 1100 1047 1101 1048 tfm = crypto_alloc_comp(algo, 0, CRYPTO_ALG_ASYNC); 1102 1049 if (IS_ERR(tfm)) { ··· 1098 1069 printk("test %u:\n", i + 1); 1099 1070 memset(result, 0, sizeof (result)); 1100 1071 1101 - ilen = tv[i].inlen; 1102 - ret = crypto_comp_compress(tfm, tv[i].input, 1072 + ilen = ctemplate[i].inlen; 1073 + ret = crypto_comp_compress(tfm, ctemplate[i].input, 1103 1074 ilen, result, &dlen); 1104 1075 if (ret) { 1105 1076 printk("fail: ret=%d\n", ret); ··· 1107 1078 } 1108 1079 hexdump(result, dlen); 1109 1080 printk("%s (ratio %d:%d)\n", 1110 - memcmp(result, tv[i].output, dlen) ? "fail" : "pass", 1081 + memcmp(result, ctemplate[i].output, dlen) ? "fail" : "pass", 1111 1082 ilen, dlen); 1112 1083 } 1113 1084 ··· 1121 1092 goto out; 1122 1093 } 1123 1094 1124 - memcpy(tvmem, dtemplate, tsize); 1125 - tv = (void *)tvmem; 1126 - 1127 1095 for (i = 0; i < dtcount; i++) { 1128 1096 int ilen, ret, dlen = COMP_BUF_SIZE; 1129 1097 1130 1098 printk("test %u:\n", i + 1); 1131 1099 memset(result, 0, sizeof (result)); 1132 1100 1133 - ilen = tv[i].inlen; 1134 - ret = crypto_comp_decompress(tfm, tv[i].input, 1101 + ilen = dtemplate[i].inlen; 1102 + ret = crypto_comp_decompress(tfm, dtemplate[i].input, 1135 1103 ilen, result, &dlen); 1136 1104 if (ret) { 1137 1105 printk("fail: ret=%d\n", ret); ··· 1136 1110 } 1137 1111 hexdump(result, dlen); 1138 1112 printk("%s (ratio %d:%d)\n", 1139 - memcmp(result, tv[i].output, dlen) ? "fail" : "pass", 1113 + memcmp(result, dtemplate[i].output, dlen) ? "fail" : "pass", 1140 1114 ilen, dlen); 1141 1115 } 1142 1116 out: ··· 1326 1300 SEED_ENC_TEST_VECTORS); 1327 1301 test_cipher("ecb(seed)", DECRYPT, seed_dec_tv_template, 1328 1302 SEED_DEC_TEST_VECTORS); 1303 + 1304 + //CTS 1305 + test_cipher("cts(cbc(aes))", ENCRYPT, cts_mode_enc_tv_template, 1306 + CTS_MODE_ENC_TEST_VECTORS); 1307 + test_cipher("cts(cbc(aes))", DECRYPT, cts_mode_dec_tv_template, 1308 + CTS_MODE_DEC_TEST_VECTORS); 1329 1309 1330 1310 test_hash("sha384", sha384_tv_template, SHA384_TEST_VECTORS); 1331 1311 test_hash("sha512", sha512_tv_template, SHA512_TEST_VECTORS); ··· 1616 1584 AES_CCM_DEC_TEST_VECTORS); 1617 1585 break; 1618 1586 1587 + case 38: 1588 + test_cipher("cts(cbc(aes))", ENCRYPT, cts_mode_enc_tv_template, 1589 + CTS_MODE_ENC_TEST_VECTORS); 1590 + test_cipher("cts(cbc(aes))", DECRYPT, cts_mode_dec_tv_template, 1591 + CTS_MODE_DEC_TEST_VECTORS); 1592 + break; 1593 + 1619 1594 case 100: 1620 1595 test_hash("hmac(md5)", hmac_md5_tv_template, 1621 1596 HMAC_MD5_TEST_VECTORS); ··· 1660 1621 1661 1622 case 200: 1662 1623 test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0, 1663 - aes_speed_template); 1624 + speed_template_16_24_32); 1664 1625 test_cipher_speed("ecb(aes)", DECRYPT, sec, NULL, 0, 1665 - aes_speed_template); 1626 + speed_template_16_24_32); 1666 1627 test_cipher_speed("cbc(aes)", ENCRYPT, sec, NULL, 0, 1667 - aes_speed_template); 1628 + speed_template_16_24_32); 1668 1629 test_cipher_speed("cbc(aes)", DECRYPT, sec, NULL, 0, 1669 - aes_speed_template); 1630 + speed_template_16_24_32); 1670 1631 test_cipher_speed("lrw(aes)", ENCRYPT, sec, NULL, 0, 1671 - aes_lrw_speed_template); 1632 + speed_template_32_40_48); 1672 1633 test_cipher_speed("lrw(aes)", DECRYPT, sec, NULL, 0, 1673 - aes_lrw_speed_template); 1634 + speed_template_32_40_48); 1674 1635 test_cipher_speed("xts(aes)", ENCRYPT, sec, NULL, 0, 1675 - aes_xts_speed_template); 1636 + speed_template_32_48_64); 1676 1637 test_cipher_speed("xts(aes)", DECRYPT, sec, NULL, 0, 1677 - aes_xts_speed_template); 1638 + speed_template_32_48_64); 1678 1639 break; 1679 1640 1680 1641 case 201: 1681 1642 test_cipher_speed("ecb(des3_ede)", ENCRYPT, sec, 1682 - des3_ede_enc_tv_template, 1683 - DES3_EDE_ENC_TEST_VECTORS, 1684 - des3_ede_speed_template); 1643 + des3_ede_enc_tv_template, DES3_EDE_ENC_TEST_VECTORS, 1644 + speed_template_24); 1685 1645 test_cipher_speed("ecb(des3_ede)", DECRYPT, sec, 1686 - des3_ede_dec_tv_template, 1687 - DES3_EDE_DEC_TEST_VECTORS, 1688 - des3_ede_speed_template); 1646 + des3_ede_enc_tv_template, DES3_EDE_ENC_TEST_VECTORS, 1647 + speed_template_24); 1689 1648 test_cipher_speed("cbc(des3_ede)", ENCRYPT, sec, 1690 - des3_ede_enc_tv_template, 1691 - DES3_EDE_ENC_TEST_VECTORS, 1692 - des3_ede_speed_template); 1649 + des3_ede_enc_tv_template, DES3_EDE_ENC_TEST_VECTORS, 1650 + speed_template_24); 1693 1651 test_cipher_speed("cbc(des3_ede)", DECRYPT, sec, 1694 - des3_ede_dec_tv_template, 1695 - DES3_EDE_DEC_TEST_VECTORS, 1696 - des3_ede_speed_template); 1652 + des3_ede_enc_tv_template, DES3_EDE_ENC_TEST_VECTORS, 1653 + speed_template_24); 1697 1654 break; 1698 1655 1699 1656 case 202: 1700 1657 test_cipher_speed("ecb(twofish)", ENCRYPT, sec, NULL, 0, 1701 - twofish_speed_template); 1658 + speed_template_16_24_32); 1702 1659 test_cipher_speed("ecb(twofish)", DECRYPT, sec, NULL, 0, 1703 - twofish_speed_template); 1660 + speed_template_16_24_32); 1704 1661 test_cipher_speed("cbc(twofish)", ENCRYPT, sec, NULL, 0, 1705 - twofish_speed_template); 1662 + speed_template_16_24_32); 1706 1663 test_cipher_speed("cbc(twofish)", DECRYPT, sec, NULL, 0, 1707 - twofish_speed_template); 1664 + speed_template_16_24_32); 1708 1665 break; 1709 1666 1710 1667 case 203: 1711 1668 test_cipher_speed("ecb(blowfish)", ENCRYPT, sec, NULL, 0, 1712 - blowfish_speed_template); 1669 + speed_template_8_32); 1713 1670 test_cipher_speed("ecb(blowfish)", DECRYPT, sec, NULL, 0, 1714 - blowfish_speed_template); 1671 + speed_template_8_32); 1715 1672 test_cipher_speed("cbc(blowfish)", ENCRYPT, sec, NULL, 0, 1716 - blowfish_speed_template); 1673 + speed_template_8_32); 1717 1674 test_cipher_speed("cbc(blowfish)", DECRYPT, sec, NULL, 0, 1718 - blowfish_speed_template); 1675 + speed_template_8_32); 1719 1676 break; 1720 1677 1721 1678 case 204: 1722 1679 test_cipher_speed("ecb(des)", ENCRYPT, sec, NULL, 0, 1723 - des_speed_template); 1680 + speed_template_8); 1724 1681 test_cipher_speed("ecb(des)", DECRYPT, sec, NULL, 0, 1725 - des_speed_template); 1682 + speed_template_8); 1726 1683 test_cipher_speed("cbc(des)", ENCRYPT, sec, NULL, 0, 1727 - des_speed_template); 1684 + speed_template_8); 1728 1685 test_cipher_speed("cbc(des)", DECRYPT, sec, NULL, 0, 1729 - des_speed_template); 1686 + speed_template_8); 1730 1687 break; 1731 1688 1732 1689 case 205: 1733 1690 test_cipher_speed("ecb(camellia)", ENCRYPT, sec, NULL, 0, 1734 - camellia_speed_template); 1691 + speed_template_16_24_32); 1735 1692 test_cipher_speed("ecb(camellia)", DECRYPT, sec, NULL, 0, 1736 - camellia_speed_template); 1693 + speed_template_16_24_32); 1737 1694 test_cipher_speed("cbc(camellia)", ENCRYPT, sec, NULL, 0, 1738 - camellia_speed_template); 1695 + speed_template_16_24_32); 1739 1696 test_cipher_speed("cbc(camellia)", DECRYPT, sec, NULL, 0, 1740 - camellia_speed_template); 1697 + speed_template_16_24_32); 1741 1698 break; 1742 1699 1743 1700 case 206: 1744 1701 test_cipher_speed("salsa20", ENCRYPT, sec, NULL, 0, 1745 - salsa20_speed_template); 1702 + speed_template_16_32); 1746 1703 break; 1747 1704 1748 1705 case 300: ··· 1810 1775 } 1811 1776 } 1812 1777 1813 - static int __init init(void) 1778 + static int __init tcrypt_mod_init(void) 1814 1779 { 1815 1780 int err = -ENOMEM; 1816 1781 ··· 1849 1814 * If an init function is provided, an exit function must also be provided 1850 1815 * to allow module unload. 1851 1816 */ 1852 - static void __exit fini(void) { } 1817 + static void __exit tcrypt_mod_fini(void) { } 1853 1818 1854 - module_init(init); 1855 - module_exit(fini); 1819 + module_init(tcrypt_mod_init); 1820 + module_exit(tcrypt_mod_fini); 1856 1821 1857 1822 module_param(mode, int, 0); 1858 1823 module_param(sec, uint, 0);
+5967 -5918
crypto/tcrypt.h
··· 31 31 32 32 struct hash_testvec { 33 33 /* only used with keyed hash algorithms */ 34 - char key[132] __attribute__ ((__aligned__(4))); 35 - char plaintext[240]; 36 - char digest[MAX_DIGEST_SIZE]; 34 + char *key; 35 + char *plaintext; 36 + char *digest; 37 37 unsigned char tap[MAX_TAP]; 38 38 unsigned char psize; 39 39 unsigned char np; ··· 41 41 }; 42 42 43 43 struct cipher_testvec { 44 - char key[MAX_KEYLEN] __attribute__ ((__aligned__(4))); 45 - char iv[MAX_IVLEN]; 46 - char input[4100]; 47 - char result[4100]; 44 + char *key; 45 + char *iv; 46 + char *input; 47 + char *result; 48 48 unsigned char tap[MAX_TAP]; 49 49 int np; 50 50 unsigned char fail; ··· 55 55 }; 56 56 57 57 struct aead_testvec { 58 - char key[MAX_KEYLEN] __attribute__ ((__aligned__(4))); 59 - char iv[MAX_IVLEN]; 60 - char input[512]; 61 - char assoc[512]; 62 - char result[512]; 58 + char *key; 59 + char *iv; 60 + char *input; 61 + char *assoc; 62 + char *result; 63 63 unsigned char tap[MAX_TAP]; 64 64 unsigned char atap[MAX_TAP]; 65 65 int np; ··· 72 72 unsigned short rlen; 73 73 }; 74 74 75 - struct cipher_speed { 76 - unsigned char klen; 77 - unsigned int blen; 78 - }; 79 - 80 75 struct hash_speed { 81 76 unsigned int blen; /* buffer length */ 82 77 unsigned int plen; /* per-update length */ 83 78 }; 79 + 80 + static char zeroed_string[48]; 84 81 85 82 /* 86 83 * MD4 test vectors from RFC1320 ··· 87 90 static struct hash_testvec md4_tv_template [] = { 88 91 { 89 92 .plaintext = "", 90 - .digest = { 0x31, 0xd6, 0xcf, 0xe0, 0xd1, 0x6a, 0xe9, 0x31, 91 - 0xb7, 0x3c, 0x59, 0xd7, 0xe0, 0xc0, 0x89, 0xc0 }, 93 + .digest = "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31" 94 + "\xb7\x3c\x59\xd7\xe0\xc0\x89\xc0", 92 95 }, { 93 96 .plaintext = "a", 94 97 .psize = 1, 95 - .digest = { 0xbd, 0xe5, 0x2c, 0xb3, 0x1d, 0xe3, 0x3e, 0x46, 96 - 0x24, 0x5e, 0x05, 0xfb, 0xdb, 0xd6, 0xfb, 0x24 }, 98 + .digest = "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46" 99 + "\x24\x5e\x05\xfb\xdb\xd6\xfb\x24", 97 100 }, { 98 101 .plaintext = "abc", 99 102 .psize = 3, 100 - .digest = { 0xa4, 0x48, 0x01, 0x7a, 0xaf, 0x21, 0xd8, 0x52, 101 - 0x5f, 0xc1, 0x0a, 0xe8, 0x7a, 0xa6, 0x72, 0x9d }, 103 + .digest = "\xa4\x48\x01\x7a\xaf\x21\xd8\x52" 104 + "\x5f\xc1\x0a\xe8\x7a\xa6\x72\x9d", 102 105 }, { 103 106 .plaintext = "message digest", 104 107 .psize = 14, 105 - .digest = { 0xd9, 0x13, 0x0a, 0x81, 0x64, 0x54, 0x9f, 0xe8, 106 - 0x18, 0x87, 0x48, 0x06, 0xe1, 0xc7, 0x01, 0x4b }, 108 + .digest = "\xd9\x13\x0a\x81\x64\x54\x9f\xe8" 109 + "\x18\x87\x48\x06\xe1\xc7\x01\x4b", 107 110 }, { 108 111 .plaintext = "abcdefghijklmnopqrstuvwxyz", 109 112 .psize = 26, 110 - .digest = { 0xd7, 0x9e, 0x1c, 0x30, 0x8a, 0xa5, 0xbb, 0xcd, 111 - 0xee, 0xa8, 0xed, 0x63, 0xdf, 0x41, 0x2d, 0xa9 }, 113 + .digest = "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd" 114 + "\xee\xa8\xed\x63\xdf\x41\x2d\xa9", 112 115 .np = 2, 113 116 .tap = { 13, 13 }, 114 117 }, { 115 118 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 116 119 .psize = 62, 117 - .digest = { 0x04, 0x3f, 0x85, 0x82, 0xf2, 0x41, 0xdb, 0x35, 118 - 0x1c, 0xe6, 0x27, 0xe1, 0x53, 0xe7, 0xf0, 0xe4 }, 120 + .digest = "\x04\x3f\x85\x82\xf2\x41\xdb\x35" 121 + "\x1c\xe6\x27\xe1\x53\xe7\xf0\xe4", 119 122 }, { 120 123 .plaintext = "123456789012345678901234567890123456789012345678901234567890123" 121 - "45678901234567890", 124 + "45678901234567890", 122 125 .psize = 80, 123 - .digest = { 0xe3, 0x3b, 0x4d, 0xdc, 0x9c, 0x38, 0xf2, 0x19, 124 - 0x9c, 0x3e, 0x7b, 0x16, 0x4f, 0xcc, 0x05, 0x36 }, 126 + .digest = "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19" 127 + "\x9c\x3e\x7b\x16\x4f\xcc\x05\x36", 125 128 }, 126 129 }; 127 130 ··· 132 135 133 136 static struct hash_testvec md5_tv_template[] = { 134 137 { 135 - .digest = { 0xd4, 0x1d, 0x8c, 0xd9, 0x8f, 0x00, 0xb2, 0x04, 136 - 0xe9, 0x80, 0x09, 0x98, 0xec, 0xf8, 0x42, 0x7e }, 138 + .digest = "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04" 139 + "\xe9\x80\x09\x98\xec\xf8\x42\x7e", 137 140 }, { 138 141 .plaintext = "a", 139 142 .psize = 1, 140 - .digest = { 0x0c, 0xc1, 0x75, 0xb9, 0xc0, 0xf1, 0xb6, 0xa8, 141 - 0x31, 0xc3, 0x99, 0xe2, 0x69, 0x77, 0x26, 0x61 }, 143 + .digest = "\x0c\xc1\x75\xb9\xc0\xf1\xb6\xa8" 144 + "\x31\xc3\x99\xe2\x69\x77\x26\x61", 142 145 }, { 143 146 .plaintext = "abc", 144 147 .psize = 3, 145 - .digest = { 0x90, 0x01, 0x50, 0x98, 0x3c, 0xd2, 0x4f, 0xb0, 146 - 0xd6, 0x96, 0x3f, 0x7d, 0x28, 0xe1, 0x7f, 0x72 }, 148 + .digest = "\x90\x01\x50\x98\x3c\xd2\x4f\xb0" 149 + "\xd6\x96\x3f\x7d\x28\xe1\x7f\x72", 147 150 }, { 148 151 .plaintext = "message digest", 149 152 .psize = 14, 150 - .digest = { 0xf9, 0x6b, 0x69, 0x7d, 0x7c, 0xb7, 0x93, 0x8d, 151 - 0x52, 0x5a, 0x2f, 0x31, 0xaa, 0xf1, 0x61, 0xd0 }, 153 + .digest = "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d" 154 + "\x52\x5a\x2f\x31\xaa\xf1\x61\xd0", 152 155 }, { 153 156 .plaintext = "abcdefghijklmnopqrstuvwxyz", 154 157 .psize = 26, 155 - .digest = { 0xc3, 0xfc, 0xd3, 0xd7, 0x61, 0x92, 0xe4, 0x00, 156 - 0x7d, 0xfb, 0x49, 0x6c, 0xca, 0x67, 0xe1, 0x3b }, 158 + .digest = "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00" 159 + "\x7d\xfb\x49\x6c\xca\x67\xe1\x3b", 157 160 .np = 2, 158 161 .tap = {13, 13} 159 162 }, { 160 163 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 161 164 .psize = 62, 162 - .digest = { 0xd1, 0x74, 0xab, 0x98, 0xd2, 0x77, 0xd9, 0xf5, 163 - 0xa5, 0x61, 0x1c, 0x2c, 0x9f, 0x41, 0x9d, 0x9f }, 165 + .digest = "\xd1\x74\xab\x98\xd2\x77\xd9\xf5" 166 + "\xa5\x61\x1c\x2c\x9f\x41\x9d\x9f", 164 167 }, { 165 168 .plaintext = "12345678901234567890123456789012345678901234567890123456789012" 166 - "345678901234567890", 169 + "345678901234567890", 167 170 .psize = 80, 168 - .digest = { 0x57, 0xed, 0xf4, 0xa2, 0x2b, 0xe3, 0xc9, 0x55, 169 - 0xac, 0x49, 0xda, 0x2e, 0x21, 0x07, 0xb6, 0x7a }, 171 + .digest = "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55" 172 + "\xac\x49\xda\x2e\x21\x07\xb6\x7a", 170 173 } 171 174 }; 172 175 ··· 179 182 { 180 183 .plaintext = "abc", 181 184 .psize = 3, 182 - .digest = { 0xa9, 0x99, 0x3e, 0x36, 0x47, 0x06, 0x81, 0x6a, 0xba, 0x3e, 183 - 0x25, 0x71, 0x78, 0x50, 0xc2, 0x6c, 0x9c, 0xd0, 0xd8, 0x9d }, 185 + .digest = "\xa9\x99\x3e\x36\x47\x06\x81\x6a\xba\x3e" 186 + "\x25\x71\x78\x50\xc2\x6c\x9c\xd0\xd8\x9d", 184 187 }, { 185 188 .plaintext = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 186 189 .psize = 56, 187 - .digest = { 0x84, 0x98, 0x3e, 0x44, 0x1c, 0x3b, 0xd2, 0x6e, 0xba, 0xae, 188 - 0x4a, 0xa1, 0xf9, 0x51, 0x29, 0xe5, 0xe5, 0x46, 0x70, 0xf1 }, 190 + .digest = "\x84\x98\x3e\x44\x1c\x3b\xd2\x6e\xba\xae" 191 + "\x4a\xa1\xf9\x51\x29\xe5\xe5\x46\x70\xf1", 189 192 .np = 2, 190 193 .tap = { 28, 28 } 191 194 } ··· 201 204 { 202 205 .plaintext = "abc", 203 206 .psize = 3, 204 - .digest = { 0x23, 0x09, 0x7D, 0x22, 0x34, 0x05, 0xD8, 0x22, 205 - 0x86, 0x42, 0xA4, 0x77, 0xBD, 0xA2, 0x55, 0xB3, 206 - 0x2A, 0xAD, 0xBC, 0xE4, 0xBD, 0xA0, 0xB3, 0xF7, 207 - 0xE3, 0x6C, 0x9D, 0xA7}, 207 + .digest = "\x23\x09\x7D\x22\x34\x05\xD8\x22" 208 + "\x86\x42\xA4\x77\xBD\xA2\x55\xB3" 209 + "\x2A\xAD\xBC\xE4\xBD\xA0\xB3\xF7" 210 + "\xE3\x6C\x9D\xA7", 208 211 }, { 209 212 .plaintext = 210 213 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 211 214 .psize = 56, 212 - .digest = { 0x75, 0x38, 0x8B, 0x16, 0x51, 0x27, 0x76, 0xCC, 213 - 0x5D, 0xBA, 0x5D, 0xA1, 0xFD, 0x89, 0x01, 0x50, 214 - 0xB0, 0xC6, 0x45, 0x5C, 0xB4, 0xF5, 0x8B, 0x19, 215 - 0x52, 0x52, 0x25, 0x25 }, 215 + .digest = "\x75\x38\x8B\x16\x51\x27\x76\xCC" 216 + "\x5D\xBA\x5D\xA1\xFD\x89\x01\x50" 217 + "\xB0\xC6\x45\x5C\xB4\xF5\x8B\x19" 218 + "\x52\x52\x25\x25", 216 219 .np = 2, 217 220 .tap = { 28, 28 } 218 221 } ··· 227 230 { 228 231 .plaintext = "abc", 229 232 .psize = 3, 230 - .digest = { 0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea, 231 - 0x41, 0x41, 0x40, 0xde, 0x5d, 0xae, 0x22, 0x23, 232 - 0xb0, 0x03, 0x61, 0xa3, 0x96, 0x17, 0x7a, 0x9c, 233 - 0xb4, 0x10, 0xff, 0x61, 0xf2, 0x00, 0x15, 0xad }, 233 + .digest = "\xba\x78\x16\xbf\x8f\x01\xcf\xea" 234 + "\x41\x41\x40\xde\x5d\xae\x22\x23" 235 + "\xb0\x03\x61\xa3\x96\x17\x7a\x9c" 236 + "\xb4\x10\xff\x61\xf2\x00\x15\xad", 234 237 }, { 235 238 .plaintext = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 236 239 .psize = 56, 237 - .digest = { 0x24, 0x8d, 0x6a, 0x61, 0xd2, 0x06, 0x38, 0xb8, 238 - 0xe5, 0xc0, 0x26, 0x93, 0x0c, 0x3e, 0x60, 0x39, 239 - 0xa3, 0x3c, 0xe4, 0x59, 0x64, 0xff, 0x21, 0x67, 240 - 0xf6, 0xec, 0xed, 0xd4, 0x19, 0xdb, 0x06, 0xc1 }, 240 + .digest = "\x24\x8d\x6a\x61\xd2\x06\x38\xb8" 241 + "\xe5\xc0\x26\x93\x0c\x3e\x60\x39" 242 + "\xa3\x3c\xe4\x59\x64\xff\x21\x67" 243 + "\xf6\xec\xed\xd4\x19\xdb\x06\xc1", 241 244 .np = 2, 242 245 .tap = { 28, 28 } 243 246 }, ··· 252 255 { 253 256 .plaintext= "abc", 254 257 .psize = 3, 255 - .digest = { 0xcb, 0x00, 0x75, 0x3f, 0x45, 0xa3, 0x5e, 0x8b, 256 - 0xb5, 0xa0, 0x3d, 0x69, 0x9a, 0xc6, 0x50, 0x07, 257 - 0x27, 0x2c, 0x32, 0xab, 0x0e, 0xde, 0xd1, 0x63, 258 - 0x1a, 0x8b, 0x60, 0x5a, 0x43, 0xff, 0x5b, 0xed, 259 - 0x80, 0x86, 0x07, 0x2b, 0xa1, 0xe7, 0xcc, 0x23, 260 - 0x58, 0xba, 0xec, 0xa1, 0x34, 0xc8, 0x25, 0xa7 }, 258 + .digest = "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b" 259 + "\xb5\xa0\x3d\x69\x9a\xc6\x50\x07" 260 + "\x27\x2c\x32\xab\x0e\xde\xd1\x63" 261 + "\x1a\x8b\x60\x5a\x43\xff\x5b\xed" 262 + "\x80\x86\x07\x2b\xa1\xe7\xcc\x23" 263 + "\x58\xba\xec\xa1\x34\xc8\x25\xa7", 261 264 }, { 262 265 .plaintext = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 263 266 .psize = 56, 264 - .digest = { 0x33, 0x91, 0xfd, 0xdd, 0xfc, 0x8d, 0xc7, 0x39, 265 - 0x37, 0x07, 0xa6, 0x5b, 0x1b, 0x47, 0x09, 0x39, 266 - 0x7c, 0xf8, 0xb1, 0xd1, 0x62, 0xaf, 0x05, 0xab, 267 - 0xfe, 0x8f, 0x45, 0x0d, 0xe5, 0xf3, 0x6b, 0xc6, 268 - 0xb0, 0x45, 0x5a, 0x85, 0x20, 0xbc, 0x4e, 0x6f, 269 - 0x5f, 0xe9, 0x5b, 0x1f, 0xe3, 0xc8, 0x45, 0x2b}, 267 + .digest = "\x33\x91\xfd\xdd\xfc\x8d\xc7\x39" 268 + "\x37\x07\xa6\x5b\x1b\x47\x09\x39" 269 + "\x7c\xf8\xb1\xd1\x62\xaf\x05\xab" 270 + "\xfe\x8f\x45\x0d\xe5\xf3\x6b\xc6" 271 + "\xb0\x45\x5a\x85\x20\xbc\x4e\x6f" 272 + "\x5f\xe9\x5b\x1f\xe3\xc8\x45\x2b", 270 273 }, { 271 274 .plaintext = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn" 272 - "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", 275 + "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", 273 276 .psize = 112, 274 - .digest = { 0x09, 0x33, 0x0c, 0x33, 0xf7, 0x11, 0x47, 0xe8, 275 - 0x3d, 0x19, 0x2f, 0xc7, 0x82, 0xcd, 0x1b, 0x47, 276 - 0x53, 0x11, 0x1b, 0x17, 0x3b, 0x3b, 0x05, 0xd2, 277 - 0x2f, 0xa0, 0x80, 0x86, 0xe3, 0xb0, 0xf7, 0x12, 278 - 0xfc, 0xc7, 0xc7, 0x1a, 0x55, 0x7e, 0x2d, 0xb9, 279 - 0x66, 0xc3, 0xe9, 0xfa, 0x91, 0x74, 0x60, 0x39 }, 277 + .digest = "\x09\x33\x0c\x33\xf7\x11\x47\xe8" 278 + "\x3d\x19\x2f\xc7\x82\xcd\x1b\x47" 279 + "\x53\x11\x1b\x17\x3b\x3b\x05\xd2" 280 + "\x2f\xa0\x80\x86\xe3\xb0\xf7\x12" 281 + "\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9" 282 + "\x66\xc3\xe9\xfa\x91\x74\x60\x39", 280 283 }, { 281 284 .plaintext = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd" 282 - "efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", 285 + "efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", 283 286 .psize = 104, 284 - .digest = { 0x3d, 0x20, 0x89, 0x73, 0xab, 0x35, 0x08, 0xdb, 285 - 0xbd, 0x7e, 0x2c, 0x28, 0x62, 0xba, 0x29, 0x0a, 286 - 0xd3, 0x01, 0x0e, 0x49, 0x78, 0xc1, 0x98, 0xdc, 287 - 0x4d, 0x8f, 0xd0, 0x14, 0xe5, 0x82, 0x82, 0x3a, 288 - 0x89, 0xe1, 0x6f, 0x9b, 0x2a, 0x7b, 0xbc, 0x1a, 289 - 0xc9, 0x38, 0xe2, 0xd1, 0x99, 0xe8, 0xbe, 0xa4 }, 287 + .digest = "\x3d\x20\x89\x73\xab\x35\x08\xdb" 288 + "\xbd\x7e\x2c\x28\x62\xba\x29\x0a" 289 + "\xd3\x01\x0e\x49\x78\xc1\x98\xdc" 290 + "\x4d\x8f\xd0\x14\xe5\x82\x82\x3a" 291 + "\x89\xe1\x6f\x9b\x2a\x7b\xbc\x1a" 292 + "\xc9\x38\xe2\xd1\x99\xe8\xbe\xa4", 290 293 .np = 4, 291 294 .tap = { 26, 26, 26, 26 } 292 295 }, ··· 301 304 { 302 305 .plaintext = "abc", 303 306 .psize = 3, 304 - .digest = { 0xdd, 0xaf, 0x35, 0xa1, 0x93, 0x61, 0x7a, 0xba, 305 - 0xcc, 0x41, 0x73, 0x49, 0xae, 0x20, 0x41, 0x31, 306 - 0x12, 0xe6, 0xfa, 0x4e, 0x89, 0xa9, 0x7e, 0xa2, 307 - 0x0a, 0x9e, 0xee, 0xe6, 0x4b, 0x55, 0xd3, 0x9a, 308 - 0x21, 0x92, 0x99, 0x2a, 0x27, 0x4f, 0xc1, 0xa8, 309 - 0x36, 0xba, 0x3c, 0x23, 0xa3, 0xfe, 0xeb, 0xbd, 310 - 0x45, 0x4d, 0x44, 0x23, 0x64, 0x3c, 0xe8, 0x0e, 311 - 0x2a, 0x9a, 0xc9, 0x4f, 0xa5, 0x4c, 0xa4, 0x9f }, 307 + .digest = "\xdd\xaf\x35\xa1\x93\x61\x7a\xba" 308 + "\xcc\x41\x73\x49\xae\x20\x41\x31" 309 + "\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2" 310 + "\x0a\x9e\xee\xe6\x4b\x55\xd3\x9a" 311 + "\x21\x92\x99\x2a\x27\x4f\xc1\xa8" 312 + "\x36\xba\x3c\x23\xa3\xfe\xeb\xbd" 313 + "\x45\x4d\x44\x23\x64\x3c\xe8\x0e" 314 + "\x2a\x9a\xc9\x4f\xa5\x4c\xa4\x9f", 312 315 }, { 313 316 .plaintext = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 314 317 .psize = 56, 315 - .digest = { 0x20, 0x4a, 0x8f, 0xc6, 0xdd, 0xa8, 0x2f, 0x0a, 316 - 0x0c, 0xed, 0x7b, 0xeb, 0x8e, 0x08, 0xa4, 0x16, 317 - 0x57, 0xc1, 0x6e, 0xf4, 0x68, 0xb2, 0x28, 0xa8, 318 - 0x27, 0x9b, 0xe3, 0x31, 0xa7, 0x03, 0xc3, 0x35, 319 - 0x96, 0xfd, 0x15, 0xc1, 0x3b, 0x1b, 0x07, 0xf9, 320 - 0xaa, 0x1d, 0x3b, 0xea, 0x57, 0x78, 0x9c, 0xa0, 321 - 0x31, 0xad, 0x85, 0xc7, 0xa7, 0x1d, 0xd7, 0x03, 322 - 0x54, 0xec, 0x63, 0x12, 0x38, 0xca, 0x34, 0x45 }, 318 + .digest = "\x20\x4a\x8f\xc6\xdd\xa8\x2f\x0a" 319 + "\x0c\xed\x7b\xeb\x8e\x08\xa4\x16" 320 + "\x57\xc1\x6e\xf4\x68\xb2\x28\xa8" 321 + "\x27\x9b\xe3\x31\xa7\x03\xc3\x35" 322 + "\x96\xfd\x15\xc1\x3b\x1b\x07\xf9" 323 + "\xaa\x1d\x3b\xea\x57\x78\x9c\xa0" 324 + "\x31\xad\x85\xc7\xa7\x1d\xd7\x03" 325 + "\x54\xec\x63\x12\x38\xca\x34\x45", 323 326 }, { 324 327 .plaintext = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn" 325 - "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", 328 + "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", 326 329 .psize = 112, 327 - .digest = { 0x8e, 0x95, 0x9b, 0x75, 0xda, 0xe3, 0x13, 0xda, 328 - 0x8c, 0xf4, 0xf7, 0x28, 0x14, 0xfc, 0x14, 0x3f, 329 - 0x8f, 0x77, 0x79, 0xc6, 0xeb, 0x9f, 0x7f, 0xa1, 330 - 0x72, 0x99, 0xae, 0xad, 0xb6, 0x88, 0x90, 0x18, 331 - 0x50, 0x1d, 0x28, 0x9e, 0x49, 0x00, 0xf7, 0xe4, 332 - 0x33, 0x1b, 0x99, 0xde, 0xc4, 0xb5, 0x43, 0x3a, 333 - 0xc7, 0xd3, 0x29, 0xee, 0xb6, 0xdd, 0x26, 0x54, 334 - 0x5e, 0x96, 0xe5, 0x5b, 0x87, 0x4b, 0xe9, 0x09 }, 330 + .digest = "\x8e\x95\x9b\x75\xda\xe3\x13\xda" 331 + "\x8c\xf4\xf7\x28\x14\xfc\x14\x3f" 332 + "\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1" 333 + "\x72\x99\xae\xad\xb6\x88\x90\x18" 334 + "\x50\x1d\x28\x9e\x49\x00\xf7\xe4" 335 + "\x33\x1b\x99\xde\xc4\xb5\x43\x3a" 336 + "\xc7\xd3\x29\xee\xb6\xdd\x26\x54" 337 + "\x5e\x96\xe5\x5b\x87\x4b\xe9\x09", 335 338 }, { 336 339 .plaintext = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd" 337 - "efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", 340 + "efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", 338 341 .psize = 104, 339 - .digest = { 0x93, 0x0d, 0x0c, 0xef, 0xcb, 0x30, 0xff, 0x11, 340 - 0x33, 0xb6, 0x89, 0x81, 0x21, 0xf1, 0xcf, 0x3d, 341 - 0x27, 0x57, 0x8a, 0xfc, 0xaf, 0xe8, 0x67, 0x7c, 342 - 0x52, 0x57, 0xcf, 0x06, 0x99, 0x11, 0xf7, 0x5d, 343 - 0x8f, 0x58, 0x31, 0xb5, 0x6e, 0xbf, 0xda, 0x67, 344 - 0xb2, 0x78, 0xe6, 0x6d, 0xff, 0x8b, 0x84, 0xfe, 345 - 0x2b, 0x28, 0x70, 0xf7, 0x42, 0xa5, 0x80, 0xd8, 346 - 0xed, 0xb4, 0x19, 0x87, 0x23, 0x28, 0x50, 0xc9 }, 342 + .digest = "\x93\x0d\x0c\xef\xcb\x30\xff\x11" 343 + "\x33\xb6\x89\x81\x21\xf1\xcf\x3d" 344 + "\x27\x57\x8a\xfc\xaf\xe8\x67\x7c" 345 + "\x52\x57\xcf\x06\x99\x11\xf7\x5d" 346 + "\x8f\x58\x31\xb5\x6e\xbf\xda\x67" 347 + "\xb2\x78\xe6\x6d\xff\x8b\x84\xfe" 348 + "\x2b\x28\x70\xf7\x42\xa5\x80\xd8" 349 + "\xed\xb4\x19\x87\x23\x28\x50\xc9", 347 350 .np = 4, 348 351 .tap = { 26, 26, 26, 26 } 349 352 }, ··· 361 364 { 362 365 .plaintext = "", 363 366 .psize = 0, 364 - .digest = { 0x19, 0xFA, 0x61, 0xD7, 0x55, 0x22, 0xA4, 0x66, 365 - 0x9B, 0x44, 0xE3, 0x9C, 0x1D, 0x2E, 0x17, 0x26, 366 - 0xC5, 0x30, 0x23, 0x21, 0x30, 0xD4, 0x07, 0xF8, 367 - 0x9A, 0xFE, 0xE0, 0x96, 0x49, 0x97, 0xF7, 0xA7, 368 - 0x3E, 0x83, 0xBE, 0x69, 0x8B, 0x28, 0x8F, 0xEB, 369 - 0xCF, 0x88, 0xE3, 0xE0, 0x3C, 0x4F, 0x07, 0x57, 370 - 0xEA, 0x89, 0x64, 0xE5, 0x9B, 0x63, 0xD9, 0x37, 371 - 0x08, 0xB1, 0x38, 0xCC, 0x42, 0xA6, 0x6E, 0xB3 }, 367 + .digest = "\x19\xFA\x61\xD7\x55\x22\xA4\x66" 368 + "\x9B\x44\xE3\x9C\x1D\x2E\x17\x26" 369 + "\xC5\x30\x23\x21\x30\xD4\x07\xF8" 370 + "\x9A\xFE\xE0\x96\x49\x97\xF7\xA7" 371 + "\x3E\x83\xBE\x69\x8B\x28\x8F\xEB" 372 + "\xCF\x88\xE3\xE0\x3C\x4F\x07\x57" 373 + "\xEA\x89\x64\xE5\x9B\x63\xD9\x37" 374 + "\x08\xB1\x38\xCC\x42\xA6\x6E\xB3", 372 375 373 376 374 377 }, { 375 378 .plaintext = "a", 376 379 .psize = 1, 377 - .digest = { 0x8A, 0xCA, 0x26, 0x02, 0x79, 0x2A, 0xEC, 0x6F, 378 - 0x11, 0xA6, 0x72, 0x06, 0x53, 0x1F, 0xB7, 0xD7, 379 - 0xF0, 0xDF, 0xF5, 0x94, 0x13, 0x14, 0x5E, 0x69, 380 - 0x73, 0xC4, 0x50, 0x01, 0xD0, 0x08, 0x7B, 0x42, 381 - 0xD1, 0x1B, 0xC6, 0x45, 0x41, 0x3A, 0xEF, 0xF6, 382 - 0x3A, 0x42, 0x39, 0x1A, 0x39, 0x14, 0x5A, 0x59, 383 - 0x1A, 0x92, 0x20, 0x0D, 0x56, 0x01, 0x95, 0xE5, 384 - 0x3B, 0x47, 0x85, 0x84, 0xFD, 0xAE, 0x23, 0x1A }, 380 + .digest = "\x8A\xCA\x26\x02\x79\x2A\xEC\x6F" 381 + "\x11\xA6\x72\x06\x53\x1F\xB7\xD7" 382 + "\xF0\xDF\xF5\x94\x13\x14\x5E\x69" 383 + "\x73\xC4\x50\x01\xD0\x08\x7B\x42" 384 + "\xD1\x1B\xC6\x45\x41\x3A\xEF\xF6" 385 + "\x3A\x42\x39\x1A\x39\x14\x5A\x59" 386 + "\x1A\x92\x20\x0D\x56\x01\x95\xE5" 387 + "\x3B\x47\x85\x84\xFD\xAE\x23\x1A", 385 388 }, { 386 389 .plaintext = "abc", 387 390 .psize = 3, 388 - .digest = { 0x4E, 0x24, 0x48, 0xA4, 0xC6, 0xF4, 0x86, 0xBB, 389 - 0x16, 0xB6, 0x56, 0x2C, 0x73, 0xB4, 0x02, 0x0B, 390 - 0xF3, 0x04, 0x3E, 0x3A, 0x73, 0x1B, 0xCE, 0x72, 391 - 0x1A, 0xE1, 0xB3, 0x03, 0xD9, 0x7E, 0x6D, 0x4C, 392 - 0x71, 0x81, 0xEE, 0xBD, 0xB6, 0xC5, 0x7E, 0x27, 393 - 0x7D, 0x0E, 0x34, 0x95, 0x71, 0x14, 0xCB, 0xD6, 394 - 0xC7, 0x97, 0xFC, 0x9D, 0x95, 0xD8, 0xB5, 0x82, 395 - 0xD2, 0x25, 0x29, 0x20, 0x76, 0xD4, 0xEE, 0xF5 }, 391 + .digest = "\x4E\x24\x48\xA4\xC6\xF4\x86\xBB" 392 + "\x16\xB6\x56\x2C\x73\xB4\x02\x0B" 393 + "\xF3\x04\x3E\x3A\x73\x1B\xCE\x72" 394 + "\x1A\xE1\xB3\x03\xD9\x7E\x6D\x4C" 395 + "\x71\x81\xEE\xBD\xB6\xC5\x7E\x27" 396 + "\x7D\x0E\x34\x95\x71\x14\xCB\xD6" 397 + "\xC7\x97\xFC\x9D\x95\xD8\xB5\x82" 398 + "\xD2\x25\x29\x20\x76\xD4\xEE\xF5", 396 399 }, { 397 400 .plaintext = "message digest", 398 401 .psize = 14, 399 - .digest = { 0x37, 0x8C, 0x84, 0xA4, 0x12, 0x6E, 0x2D, 0xC6, 400 - 0xE5, 0x6D, 0xCC, 0x74, 0x58, 0x37, 0x7A, 0xAC, 401 - 0x83, 0x8D, 0x00, 0x03, 0x22, 0x30, 0xF5, 0x3C, 402 - 0xE1, 0xF5, 0x70, 0x0C, 0x0F, 0xFB, 0x4D, 0x3B, 403 - 0x84, 0x21, 0x55, 0x76, 0x59, 0xEF, 0x55, 0xC1, 404 - 0x06, 0xB4, 0xB5, 0x2A, 0xC5, 0xA4, 0xAA, 0xA6, 405 - 0x92, 0xED, 0x92, 0x00, 0x52, 0x83, 0x8F, 0x33, 406 - 0x62, 0xE8, 0x6D, 0xBD, 0x37, 0xA8, 0x90, 0x3E }, 402 + .digest = "\x37\x8C\x84\xA4\x12\x6E\x2D\xC6" 403 + "\xE5\x6D\xCC\x74\x58\x37\x7A\xAC" 404 + "\x83\x8D\x00\x03\x22\x30\xF5\x3C" 405 + "\xE1\xF5\x70\x0C\x0F\xFB\x4D\x3B" 406 + "\x84\x21\x55\x76\x59\xEF\x55\xC1" 407 + "\x06\xB4\xB5\x2A\xC5\xA4\xAA\xA6" 408 + "\x92\xED\x92\x00\x52\x83\x8F\x33" 409 + "\x62\xE8\x6D\xBD\x37\xA8\x90\x3E", 407 410 }, { 408 411 .plaintext = "abcdefghijklmnopqrstuvwxyz", 409 412 .psize = 26, 410 - .digest = { 0xF1, 0xD7, 0x54, 0x66, 0x26, 0x36, 0xFF, 0xE9, 411 - 0x2C, 0x82, 0xEB, 0xB9, 0x21, 0x2A, 0x48, 0x4A, 412 - 0x8D, 0x38, 0x63, 0x1E, 0xAD, 0x42, 0x38, 0xF5, 413 - 0x44, 0x2E, 0xE1, 0x3B, 0x80, 0x54, 0xE4, 0x1B, 414 - 0x08, 0xBF, 0x2A, 0x92, 0x51, 0xC3, 0x0B, 0x6A, 415 - 0x0B, 0x8A, 0xAE, 0x86, 0x17, 0x7A, 0xB4, 0xA6, 416 - 0xF6, 0x8F, 0x67, 0x3E, 0x72, 0x07, 0x86, 0x5D, 417 - 0x5D, 0x98, 0x19, 0xA3, 0xDB, 0xA4, 0xEB, 0x3B }, 413 + .digest = "\xF1\xD7\x54\x66\x26\x36\xFF\xE9" 414 + "\x2C\x82\xEB\xB9\x21\x2A\x48\x4A" 415 + "\x8D\x38\x63\x1E\xAD\x42\x38\xF5" 416 + "\x44\x2E\xE1\x3B\x80\x54\xE4\x1B" 417 + "\x08\xBF\x2A\x92\x51\xC3\x0B\x6A" 418 + "\x0B\x8A\xAE\x86\x17\x7A\xB4\xA6" 419 + "\xF6\x8F\x67\x3E\x72\x07\x86\x5D" 420 + "\x5D\x98\x19\xA3\xDB\xA4\xEB\x3B", 418 421 }, { 419 422 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 420 - "abcdefghijklmnopqrstuvwxyz0123456789", 423 + "abcdefghijklmnopqrstuvwxyz0123456789", 421 424 .psize = 62, 422 - .digest = { 0xDC, 0x37, 0xE0, 0x08, 0xCF, 0x9E, 0xE6, 0x9B, 423 - 0xF1, 0x1F, 0x00, 0xED, 0x9A, 0xBA, 0x26, 0x90, 424 - 0x1D, 0xD7, 0xC2, 0x8C, 0xDE, 0xC0, 0x66, 0xCC, 425 - 0x6A, 0xF4, 0x2E, 0x40, 0xF8, 0x2F, 0x3A, 0x1E, 426 - 0x08, 0xEB, 0xA2, 0x66, 0x29, 0x12, 0x9D, 0x8F, 427 - 0xB7, 0xCB, 0x57, 0x21, 0x1B, 0x92, 0x81, 0xA6, 428 - 0x55, 0x17, 0xCC, 0x87, 0x9D, 0x7B, 0x96, 0x21, 429 - 0x42, 0xC6, 0x5F, 0x5A, 0x7A, 0xF0, 0x14, 0x67 }, 425 + .digest = "\xDC\x37\xE0\x08\xCF\x9E\xE6\x9B" 426 + "\xF1\x1F\x00\xED\x9A\xBA\x26\x90" 427 + "\x1D\xD7\xC2\x8C\xDE\xC0\x66\xCC" 428 + "\x6A\xF4\x2E\x40\xF8\x2F\x3A\x1E" 429 + "\x08\xEB\xA2\x66\x29\x12\x9D\x8F" 430 + "\xB7\xCB\x57\x21\x1B\x92\x81\xA6" 431 + "\x55\x17\xCC\x87\x9D\x7B\x96\x21" 432 + "\x42\xC6\x5F\x5A\x7A\xF0\x14\x67", 430 433 }, { 431 434 .plaintext = "1234567890123456789012345678901234567890" 432 - "1234567890123456789012345678901234567890", 435 + "1234567890123456789012345678901234567890", 433 436 .psize = 80, 434 - .digest = { 0x46, 0x6E, 0xF1, 0x8B, 0xAB, 0xB0, 0x15, 0x4D, 435 - 0x25, 0xB9, 0xD3, 0x8A, 0x64, 0x14, 0xF5, 0xC0, 436 - 0x87, 0x84, 0x37, 0x2B, 0xCC, 0xB2, 0x04, 0xD6, 437 - 0x54, 0x9C, 0x4A, 0xFA, 0xDB, 0x60, 0x14, 0x29, 438 - 0x4D, 0x5B, 0xD8, 0xDF, 0x2A, 0x6C, 0x44, 0xE5, 439 - 0x38, 0xCD, 0x04, 0x7B, 0x26, 0x81, 0xA5, 0x1A, 440 - 0x2C, 0x60, 0x48, 0x1E, 0x88, 0xC5, 0xA2, 0x0B, 441 - 0x2C, 0x2A, 0x80, 0xCF, 0x3A, 0x9A, 0x08, 0x3B }, 437 + .digest = "\x46\x6E\xF1\x8B\xAB\xB0\x15\x4D" 438 + "\x25\xB9\xD3\x8A\x64\x14\xF5\xC0" 439 + "\x87\x84\x37\x2B\xCC\xB2\x04\xD6" 440 + "\x54\x9C\x4A\xFA\xDB\x60\x14\x29" 441 + "\x4D\x5B\xD8\xDF\x2A\x6C\x44\xE5" 442 + "\x38\xCD\x04\x7B\x26\x81\xA5\x1A" 443 + "\x2C\x60\x48\x1E\x88\xC5\xA2\x0B" 444 + "\x2C\x2A\x80\xCF\x3A\x9A\x08\x3B", 442 445 }, { 443 446 .plaintext = "abcdbcdecdefdefgefghfghighijhijk", 444 447 .psize = 32, 445 - .digest = { 0x2A, 0x98, 0x7E, 0xA4, 0x0F, 0x91, 0x70, 0x61, 446 - 0xF5, 0xD6, 0xF0, 0xA0, 0xE4, 0x64, 0x4F, 0x48, 447 - 0x8A, 0x7A, 0x5A, 0x52, 0xDE, 0xEE, 0x65, 0x62, 448 - 0x07, 0xC5, 0x62, 0xF9, 0x88, 0xE9, 0x5C, 0x69, 449 - 0x16, 0xBD, 0xC8, 0x03, 0x1B, 0xC5, 0xBE, 0x1B, 450 - 0x7B, 0x94, 0x76, 0x39, 0xFE, 0x05, 0x0B, 0x56, 451 - 0x93, 0x9B, 0xAA, 0xA0, 0xAD, 0xFF, 0x9A, 0xE6, 452 - 0x74, 0x5B, 0x7B, 0x18, 0x1C, 0x3B, 0xE3, 0xFD }, 448 + .digest = "\x2A\x98\x7E\xA4\x0F\x91\x70\x61" 449 + "\xF5\xD6\xF0\xA0\xE4\x64\x4F\x48" 450 + "\x8A\x7A\x5A\x52\xDE\xEE\x65\x62" 451 + "\x07\xC5\x62\xF9\x88\xE9\x5C\x69" 452 + "\x16\xBD\xC8\x03\x1B\xC5\xBE\x1B" 453 + "\x7B\x94\x76\x39\xFE\x05\x0B\x56" 454 + "\x93\x9B\xAA\xA0\xAD\xFF\x9A\xE6" 455 + "\x74\x5B\x7B\x18\x1C\x3B\xE3\xFD", 453 456 }, 454 457 }; 455 458 ··· 459 462 { 460 463 .plaintext = "", 461 464 .psize = 0, 462 - .digest = { 0x19, 0xFA, 0x61, 0xD7, 0x55, 0x22, 0xA4, 0x66, 463 - 0x9B, 0x44, 0xE3, 0x9C, 0x1D, 0x2E, 0x17, 0x26, 464 - 0xC5, 0x30, 0x23, 0x21, 0x30, 0xD4, 0x07, 0xF8, 465 - 0x9A, 0xFE, 0xE0, 0x96, 0x49, 0x97, 0xF7, 0xA7, 466 - 0x3E, 0x83, 0xBE, 0x69, 0x8B, 0x28, 0x8F, 0xEB, 467 - 0xCF, 0x88, 0xE3, 0xE0, 0x3C, 0x4F, 0x07, 0x57 }, 465 + .digest = "\x19\xFA\x61\xD7\x55\x22\xA4\x66" 466 + "\x9B\x44\xE3\x9C\x1D\x2E\x17\x26" 467 + "\xC5\x30\x23\x21\x30\xD4\x07\xF8" 468 + "\x9A\xFE\xE0\x96\x49\x97\xF7\xA7" 469 + "\x3E\x83\xBE\x69\x8B\x28\x8F\xEB" 470 + "\xCF\x88\xE3\xE0\x3C\x4F\x07\x57", 468 471 469 472 470 473 }, { 471 474 .plaintext = "a", 472 475 .psize = 1, 473 - .digest = { 0x8A, 0xCA, 0x26, 0x02, 0x79, 0x2A, 0xEC, 0x6F, 474 - 0x11, 0xA6, 0x72, 0x06, 0x53, 0x1F, 0xB7, 0xD7, 475 - 0xF0, 0xDF, 0xF5, 0x94, 0x13, 0x14, 0x5E, 0x69, 476 - 0x73, 0xC4, 0x50, 0x01, 0xD0, 0x08, 0x7B, 0x42, 477 - 0xD1, 0x1B, 0xC6, 0x45, 0x41, 0x3A, 0xEF, 0xF6, 478 - 0x3A, 0x42, 0x39, 0x1A, 0x39, 0x14, 0x5A, 0x59 }, 476 + .digest = "\x8A\xCA\x26\x02\x79\x2A\xEC\x6F" 477 + "\x11\xA6\x72\x06\x53\x1F\xB7\xD7" 478 + "\xF0\xDF\xF5\x94\x13\x14\x5E\x69" 479 + "\x73\xC4\x50\x01\xD0\x08\x7B\x42" 480 + "\xD1\x1B\xC6\x45\x41\x3A\xEF\xF6" 481 + "\x3A\x42\x39\x1A\x39\x14\x5A\x59", 479 482 }, { 480 483 .plaintext = "abc", 481 484 .psize = 3, 482 - .digest = { 0x4E, 0x24, 0x48, 0xA4, 0xC6, 0xF4, 0x86, 0xBB, 483 - 0x16, 0xB6, 0x56, 0x2C, 0x73, 0xB4, 0x02, 0x0B, 484 - 0xF3, 0x04, 0x3E, 0x3A, 0x73, 0x1B, 0xCE, 0x72, 485 - 0x1A, 0xE1, 0xB3, 0x03, 0xD9, 0x7E, 0x6D, 0x4C, 486 - 0x71, 0x81, 0xEE, 0xBD, 0xB6, 0xC5, 0x7E, 0x27, 487 - 0x7D, 0x0E, 0x34, 0x95, 0x71, 0x14, 0xCB, 0xD6 }, 485 + .digest = "\x4E\x24\x48\xA4\xC6\xF4\x86\xBB" 486 + "\x16\xB6\x56\x2C\x73\xB4\x02\x0B" 487 + "\xF3\x04\x3E\x3A\x73\x1B\xCE\x72" 488 + "\x1A\xE1\xB3\x03\xD9\x7E\x6D\x4C" 489 + "\x71\x81\xEE\xBD\xB6\xC5\x7E\x27" 490 + "\x7D\x0E\x34\x95\x71\x14\xCB\xD6", 488 491 }, { 489 492 .plaintext = "message digest", 490 493 .psize = 14, 491 - .digest = { 0x37, 0x8C, 0x84, 0xA4, 0x12, 0x6E, 0x2D, 0xC6, 492 - 0xE5, 0x6D, 0xCC, 0x74, 0x58, 0x37, 0x7A, 0xAC, 493 - 0x83, 0x8D, 0x00, 0x03, 0x22, 0x30, 0xF5, 0x3C, 494 - 0xE1, 0xF5, 0x70, 0x0C, 0x0F, 0xFB, 0x4D, 0x3B, 495 - 0x84, 0x21, 0x55, 0x76, 0x59, 0xEF, 0x55, 0xC1, 496 - 0x06, 0xB4, 0xB5, 0x2A, 0xC5, 0xA4, 0xAA, 0xA6 }, 494 + .digest = "\x37\x8C\x84\xA4\x12\x6E\x2D\xC6" 495 + "\xE5\x6D\xCC\x74\x58\x37\x7A\xAC" 496 + "\x83\x8D\x00\x03\x22\x30\xF5\x3C" 497 + "\xE1\xF5\x70\x0C\x0F\xFB\x4D\x3B" 498 + "\x84\x21\x55\x76\x59\xEF\x55\xC1" 499 + "\x06\xB4\xB5\x2A\xC5\xA4\xAA\xA6", 497 500 }, { 498 501 .plaintext = "abcdefghijklmnopqrstuvwxyz", 499 502 .psize = 26, 500 - .digest = { 0xF1, 0xD7, 0x54, 0x66, 0x26, 0x36, 0xFF, 0xE9, 501 - 0x2C, 0x82, 0xEB, 0xB9, 0x21, 0x2A, 0x48, 0x4A, 502 - 0x8D, 0x38, 0x63, 0x1E, 0xAD, 0x42, 0x38, 0xF5, 503 - 0x44, 0x2E, 0xE1, 0x3B, 0x80, 0x54, 0xE4, 0x1B, 504 - 0x08, 0xBF, 0x2A, 0x92, 0x51, 0xC3, 0x0B, 0x6A, 505 - 0x0B, 0x8A, 0xAE, 0x86, 0x17, 0x7A, 0xB4, 0xA6 }, 503 + .digest = "\xF1\xD7\x54\x66\x26\x36\xFF\xE9" 504 + "\x2C\x82\xEB\xB9\x21\x2A\x48\x4A" 505 + "\x8D\x38\x63\x1E\xAD\x42\x38\xF5" 506 + "\x44\x2E\xE1\x3B\x80\x54\xE4\x1B" 507 + "\x08\xBF\x2A\x92\x51\xC3\x0B\x6A" 508 + "\x0B\x8A\xAE\x86\x17\x7A\xB4\xA6", 506 509 }, { 507 510 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 508 - "abcdefghijklmnopqrstuvwxyz0123456789", 511 + "abcdefghijklmnopqrstuvwxyz0123456789", 509 512 .psize = 62, 510 - .digest = { 0xDC, 0x37, 0xE0, 0x08, 0xCF, 0x9E, 0xE6, 0x9B, 511 - 0xF1, 0x1F, 0x00, 0xED, 0x9A, 0xBA, 0x26, 0x90, 512 - 0x1D, 0xD7, 0xC2, 0x8C, 0xDE, 0xC0, 0x66, 0xCC, 513 - 0x6A, 0xF4, 0x2E, 0x40, 0xF8, 0x2F, 0x3A, 0x1E, 514 - 0x08, 0xEB, 0xA2, 0x66, 0x29, 0x12, 0x9D, 0x8F, 515 - 0xB7, 0xCB, 0x57, 0x21, 0x1B, 0x92, 0x81, 0xA6 }, 513 + .digest = "\xDC\x37\xE0\x08\xCF\x9E\xE6\x9B" 514 + "\xF1\x1F\x00\xED\x9A\xBA\x26\x90" 515 + "\x1D\xD7\xC2\x8C\xDE\xC0\x66\xCC" 516 + "\x6A\xF4\x2E\x40\xF8\x2F\x3A\x1E" 517 + "\x08\xEB\xA2\x66\x29\x12\x9D\x8F" 518 + "\xB7\xCB\x57\x21\x1B\x92\x81\xA6", 516 519 }, { 517 520 .plaintext = "1234567890123456789012345678901234567890" 518 - "1234567890123456789012345678901234567890", 521 + "1234567890123456789012345678901234567890", 519 522 .psize = 80, 520 - .digest = { 0x46, 0x6E, 0xF1, 0x8B, 0xAB, 0xB0, 0x15, 0x4D, 521 - 0x25, 0xB9, 0xD3, 0x8A, 0x64, 0x14, 0xF5, 0xC0, 522 - 0x87, 0x84, 0x37, 0x2B, 0xCC, 0xB2, 0x04, 0xD6, 523 - 0x54, 0x9C, 0x4A, 0xFA, 0xDB, 0x60, 0x14, 0x29, 524 - 0x4D, 0x5B, 0xD8, 0xDF, 0x2A, 0x6C, 0x44, 0xE5, 525 - 0x38, 0xCD, 0x04, 0x7B, 0x26, 0x81, 0xA5, 0x1A }, 523 + .digest = "\x46\x6E\xF1\x8B\xAB\xB0\x15\x4D" 524 + "\x25\xB9\xD3\x8A\x64\x14\xF5\xC0" 525 + "\x87\x84\x37\x2B\xCC\xB2\x04\xD6" 526 + "\x54\x9C\x4A\xFA\xDB\x60\x14\x29" 527 + "\x4D\x5B\xD8\xDF\x2A\x6C\x44\xE5" 528 + "\x38\xCD\x04\x7B\x26\x81\xA5\x1A", 526 529 }, { 527 530 .plaintext = "abcdbcdecdefdefgefghfghighijhijk", 528 531 .psize = 32, 529 - .digest = { 0x2A, 0x98, 0x7E, 0xA4, 0x0F, 0x91, 0x70, 0x61, 530 - 0xF5, 0xD6, 0xF0, 0xA0, 0xE4, 0x64, 0x4F, 0x48, 531 - 0x8A, 0x7A, 0x5A, 0x52, 0xDE, 0xEE, 0x65, 0x62, 532 - 0x07, 0xC5, 0x62, 0xF9, 0x88, 0xE9, 0x5C, 0x69, 533 - 0x16, 0xBD, 0xC8, 0x03, 0x1B, 0xC5, 0xBE, 0x1B, 534 - 0x7B, 0x94, 0x76, 0x39, 0xFE, 0x05, 0x0B, 0x56 }, 532 + .digest = "\x2A\x98\x7E\xA4\x0F\x91\x70\x61" 533 + "\xF5\xD6\xF0\xA0\xE4\x64\x4F\x48" 534 + "\x8A\x7A\x5A\x52\xDE\xEE\x65\x62" 535 + "\x07\xC5\x62\xF9\x88\xE9\x5C\x69" 536 + "\x16\xBD\xC8\x03\x1B\xC5\xBE\x1B" 537 + "\x7B\x94\x76\x39\xFE\x05\x0B\x56", 535 538 }, 536 539 }; 537 540 ··· 541 544 { 542 545 .plaintext = "", 543 546 .psize = 0, 544 - .digest = { 0x19, 0xFA, 0x61, 0xD7, 0x55, 0x22, 0xA4, 0x66, 545 - 0x9B, 0x44, 0xE3, 0x9C, 0x1D, 0x2E, 0x17, 0x26, 546 - 0xC5, 0x30, 0x23, 0x21, 0x30, 0xD4, 0x07, 0xF8, 547 - 0x9A, 0xFE, 0xE0, 0x96, 0x49, 0x97, 0xF7, 0xA7 }, 547 + .digest = "\x19\xFA\x61\xD7\x55\x22\xA4\x66" 548 + "\x9B\x44\xE3\x9C\x1D\x2E\x17\x26" 549 + "\xC5\x30\x23\x21\x30\xD4\x07\xF8" 550 + "\x9A\xFE\xE0\x96\x49\x97\xF7\xA7", 548 551 549 552 550 553 }, { 551 554 .plaintext = "a", 552 555 .psize = 1, 553 - .digest = { 0x8A, 0xCA, 0x26, 0x02, 0x79, 0x2A, 0xEC, 0x6F, 554 - 0x11, 0xA6, 0x72, 0x06, 0x53, 0x1F, 0xB7, 0xD7, 555 - 0xF0, 0xDF, 0xF5, 0x94, 0x13, 0x14, 0x5E, 0x69, 556 - 0x73, 0xC4, 0x50, 0x01, 0xD0, 0x08, 0x7B, 0x42 }, 556 + .digest = "\x8A\xCA\x26\x02\x79\x2A\xEC\x6F" 557 + "\x11\xA6\x72\x06\x53\x1F\xB7\xD7" 558 + "\xF0\xDF\xF5\x94\x13\x14\x5E\x69" 559 + "\x73\xC4\x50\x01\xD0\x08\x7B\x42", 557 560 }, { 558 561 .plaintext = "abc", 559 562 .psize = 3, 560 - .digest = { 0x4E, 0x24, 0x48, 0xA4, 0xC6, 0xF4, 0x86, 0xBB, 561 - 0x16, 0xB6, 0x56, 0x2C, 0x73, 0xB4, 0x02, 0x0B, 562 - 0xF3, 0x04, 0x3E, 0x3A, 0x73, 0x1B, 0xCE, 0x72, 563 - 0x1A, 0xE1, 0xB3, 0x03, 0xD9, 0x7E, 0x6D, 0x4C }, 563 + .digest = "\x4E\x24\x48\xA4\xC6\xF4\x86\xBB" 564 + "\x16\xB6\x56\x2C\x73\xB4\x02\x0B" 565 + "\xF3\x04\x3E\x3A\x73\x1B\xCE\x72" 566 + "\x1A\xE1\xB3\x03\xD9\x7E\x6D\x4C", 564 567 }, { 565 568 .plaintext = "message digest", 566 569 .psize = 14, 567 - .digest = { 0x37, 0x8C, 0x84, 0xA4, 0x12, 0x6E, 0x2D, 0xC6, 568 - 0xE5, 0x6D, 0xCC, 0x74, 0x58, 0x37, 0x7A, 0xAC, 569 - 0x83, 0x8D, 0x00, 0x03, 0x22, 0x30, 0xF5, 0x3C, 570 - 0xE1, 0xF5, 0x70, 0x0C, 0x0F, 0xFB, 0x4D, 0x3B }, 570 + .digest = "\x37\x8C\x84\xA4\x12\x6E\x2D\xC6" 571 + "\xE5\x6D\xCC\x74\x58\x37\x7A\xAC" 572 + "\x83\x8D\x00\x03\x22\x30\xF5\x3C" 573 + "\xE1\xF5\x70\x0C\x0F\xFB\x4D\x3B", 571 574 }, { 572 575 .plaintext = "abcdefghijklmnopqrstuvwxyz", 573 576 .psize = 26, 574 - .digest = { 0xF1, 0xD7, 0x54, 0x66, 0x26, 0x36, 0xFF, 0xE9, 575 - 0x2C, 0x82, 0xEB, 0xB9, 0x21, 0x2A, 0x48, 0x4A, 576 - 0x8D, 0x38, 0x63, 0x1E, 0xAD, 0x42, 0x38, 0xF5, 577 - 0x44, 0x2E, 0xE1, 0x3B, 0x80, 0x54, 0xE4, 0x1B }, 577 + .digest = "\xF1\xD7\x54\x66\x26\x36\xFF\xE9" 578 + "\x2C\x82\xEB\xB9\x21\x2A\x48\x4A" 579 + "\x8D\x38\x63\x1E\xAD\x42\x38\xF5" 580 + "\x44\x2E\xE1\x3B\x80\x54\xE4\x1B", 578 581 }, { 579 582 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 580 - "abcdefghijklmnopqrstuvwxyz0123456789", 583 + "abcdefghijklmnopqrstuvwxyz0123456789", 581 584 .psize = 62, 582 - .digest = { 0xDC, 0x37, 0xE0, 0x08, 0xCF, 0x9E, 0xE6, 0x9B, 583 - 0xF1, 0x1F, 0x00, 0xED, 0x9A, 0xBA, 0x26, 0x90, 584 - 0x1D, 0xD7, 0xC2, 0x8C, 0xDE, 0xC0, 0x66, 0xCC, 585 - 0x6A, 0xF4, 0x2E, 0x40, 0xF8, 0x2F, 0x3A, 0x1E }, 585 + .digest = "\xDC\x37\xE0\x08\xCF\x9E\xE6\x9B" 586 + "\xF1\x1F\x00\xED\x9A\xBA\x26\x90" 587 + "\x1D\xD7\xC2\x8C\xDE\xC0\x66\xCC" 588 + "\x6A\xF4\x2E\x40\xF8\x2F\x3A\x1E", 586 589 }, { 587 590 .plaintext = "1234567890123456789012345678901234567890" 588 - "1234567890123456789012345678901234567890", 591 + "1234567890123456789012345678901234567890", 589 592 .psize = 80, 590 - .digest = { 0x46, 0x6E, 0xF1, 0x8B, 0xAB, 0xB0, 0x15, 0x4D, 591 - 0x25, 0xB9, 0xD3, 0x8A, 0x64, 0x14, 0xF5, 0xC0, 592 - 0x87, 0x84, 0x37, 0x2B, 0xCC, 0xB2, 0x04, 0xD6, 593 - 0x54, 0x9C, 0x4A, 0xFA, 0xDB, 0x60, 0x14, 0x29 }, 593 + .digest = "\x46\x6E\xF1\x8B\xAB\xB0\x15\x4D" 594 + "\x25\xB9\xD3\x8A\x64\x14\xF5\xC0" 595 + "\x87\x84\x37\x2B\xCC\xB2\x04\xD6" 596 + "\x54\x9C\x4A\xFA\xDB\x60\x14\x29", 594 597 }, { 595 598 .plaintext = "abcdbcdecdefdefgefghfghighijhijk", 596 599 .psize = 32, 597 - .digest = { 0x2A, 0x98, 0x7E, 0xA4, 0x0F, 0x91, 0x70, 0x61, 598 - 0xF5, 0xD6, 0xF0, 0xA0, 0xE4, 0x64, 0x4F, 0x48, 599 - 0x8A, 0x7A, 0x5A, 0x52, 0xDE, 0xEE, 0x65, 0x62, 600 - 0x07, 0xC5, 0x62, 0xF9, 0x88, 0xE9, 0x5C, 0x69 }, 600 + .digest = "\x2A\x98\x7E\xA4\x0F\x91\x70\x61" 601 + "\xF5\xD6\xF0\xA0\xE4\x64\x4F\x48" 602 + "\x8A\x7A\x5A\x52\xDE\xEE\x65\x62" 603 + "\x07\xC5\x62\xF9\x88\xE9\x5C\x69", 601 604 }, 602 605 }; 603 606 ··· 610 613 { 611 614 .plaintext = "", 612 615 .psize = 0, 613 - .digest = { 0x24, 0xf0, 0x13, 0x0c, 0x63, 0xac, 0x93, 0x32, 614 - 0x16, 0x16, 0x6e, 0x76, 0xb1, 0xbb, 0x92, 0x5f, 615 - 0xf3, 0x73, 0xde, 0x2d, 0x49, 0x58, 0x4e, 0x7a }, 616 + .digest = "\x24\xf0\x13\x0c\x63\xac\x93\x32" 617 + "\x16\x16\x6e\x76\xb1\xbb\x92\x5f" 618 + "\xf3\x73\xde\x2d\x49\x58\x4e\x7a", 616 619 }, { 617 620 .plaintext = "abc", 618 621 .psize = 3, 619 - .digest = { 0xf2, 0x58, 0xc1, 0xe8, 0x84, 0x14, 0xab, 0x2a, 620 - 0x52, 0x7a, 0xb5, 0x41, 0xff, 0xc5, 0xb8, 0xbf, 621 - 0x93, 0x5f, 0x7b, 0x95, 0x1c, 0x13, 0x29, 0x51 }, 622 + .digest = "\xf2\x58\xc1\xe8\x84\x14\xab\x2a" 623 + "\x52\x7a\xb5\x41\xff\xc5\xb8\xbf" 624 + "\x93\x5f\x7b\x95\x1c\x13\x29\x51", 622 625 }, { 623 626 .plaintext = "Tiger", 624 627 .psize = 5, 625 - .digest = { 0x9f, 0x00, 0xf5, 0x99, 0x07, 0x23, 0x00, 0xdd, 626 - 0x27, 0x6a, 0xbb, 0x38, 0xc8, 0xeb, 0x6d, 0xec, 627 - 0x37, 0x79, 0x0c, 0x11, 0x6f, 0x9d, 0x2b, 0xdf }, 628 + .digest = "\x9f\x00\xf5\x99\x07\x23\x00\xdd" 629 + "\x27\x6a\xbb\x38\xc8\xeb\x6d\xec" 630 + "\x37\x79\x0c\x11\x6f\x9d\x2b\xdf", 628 631 }, { 629 632 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-", 630 633 .psize = 64, 631 - .digest = { 0x87, 0xfb, 0x2a, 0x90, 0x83, 0x85, 0x1c, 0xf7, 632 - 0x47, 0x0d, 0x2c, 0xf8, 0x10, 0xe6, 0xdf, 0x9e, 633 - 0xb5, 0x86, 0x44, 0x50, 0x34, 0xa5, 0xa3, 0x86 }, 634 + .digest = "\x87\xfb\x2a\x90\x83\x85\x1c\xf7" 635 + "\x47\x0d\x2c\xf8\x10\xe6\xdf\x9e" 636 + "\xb5\x86\x44\x50\x34\xa5\xa3\x86", 634 637 }, { 635 638 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789", 636 639 .psize = 64, 637 - .digest = { 0x46, 0x7d, 0xb8, 0x08, 0x63, 0xeb, 0xce, 0x48, 638 - 0x8d, 0xf1, 0xcd, 0x12, 0x61, 0x65, 0x5d, 0xe9, 639 - 0x57, 0x89, 0x65, 0x65, 0x97, 0x5f, 0x91, 0x97 }, 640 + .digest = "\x46\x7d\xb8\x08\x63\xeb\xce\x48" 641 + "\x8d\xf1\xcd\x12\x61\x65\x5d\xe9" 642 + "\x57\x89\x65\x65\x97\x5f\x91\x97", 640 643 }, { 641 644 .plaintext = "Tiger - A Fast New Hash Function, " 642 - "by Ross Anderson and Eli Biham, " 643 - "proceedings of Fast Software Encryption 3, " 644 - "Cambridge, 1996.", 645 + "by Ross Anderson and Eli Biham, " 646 + "proceedings of Fast Software Encryption 3, " 647 + "Cambridge, 1996.", 645 648 .psize = 125, 646 - .digest = { 0x3d, 0x9a, 0xeb, 0x03, 0xd1, 0xbd, 0x1a, 0x63, 647 - 0x57, 0xb2, 0x77, 0x4d, 0xfd, 0x6d, 0x5b, 0x24, 648 - 0xdd, 0x68, 0x15, 0x1d, 0x50, 0x39, 0x74, 0xfc }, 649 + .digest = "\x3d\x9a\xeb\x03\xd1\xbd\x1a\x63" 650 + "\x57\xb2\x77\x4d\xfd\x6d\x5b\x24" 651 + "\xdd\x68\x15\x1d\x50\x39\x74\xfc", 649 652 }, 650 653 }; 651 654 ··· 655 658 { 656 659 .plaintext = "", 657 660 .psize = 0, 658 - .digest = { 0x24, 0xf0, 0x13, 0x0c, 0x63, 0xac, 0x93, 0x32, 659 - 0x16, 0x16, 0x6e, 0x76, 0xb1, 0xbb, 0x92, 0x5f, 660 - 0xf3, 0x73, 0xde, 0x2d }, 661 + .digest = "\x24\xf0\x13\x0c\x63\xac\x93\x32" 662 + "\x16\x16\x6e\x76\xb1\xbb\x92\x5f" 663 + "\xf3\x73\xde\x2d", 661 664 }, { 662 665 .plaintext = "abc", 663 666 .psize = 3, 664 - .digest = { 0xf2, 0x58, 0xc1, 0xe8, 0x84, 0x14, 0xab, 0x2a, 665 - 0x52, 0x7a, 0xb5, 0x41, 0xff, 0xc5, 0xb8, 0xbf, 666 - 0x93, 0x5f, 0x7b, 0x95 }, 667 + .digest = "\xf2\x58\xc1\xe8\x84\x14\xab\x2a" 668 + "\x52\x7a\xb5\x41\xff\xc5\xb8\xbf" 669 + "\x93\x5f\x7b\x95", 667 670 }, { 668 671 .plaintext = "Tiger", 669 672 .psize = 5, 670 - .digest = { 0x9f, 0x00, 0xf5, 0x99, 0x07, 0x23, 0x00, 0xdd, 671 - 0x27, 0x6a, 0xbb, 0x38, 0xc8, 0xeb, 0x6d, 0xec, 672 - 0x37, 0x79, 0x0c, 0x11 }, 673 + .digest = "\x9f\x00\xf5\x99\x07\x23\x00\xdd" 674 + "\x27\x6a\xbb\x38\xc8\xeb\x6d\xec" 675 + "\x37\x79\x0c\x11", 673 676 }, { 674 677 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-", 675 678 .psize = 64, 676 - .digest = { 0x87, 0xfb, 0x2a, 0x90, 0x83, 0x85, 0x1c, 0xf7, 677 - 0x47, 0x0d, 0x2c, 0xf8, 0x10, 0xe6, 0xdf, 0x9e, 678 - 0xb5, 0x86, 0x44, 0x50 }, 679 + .digest = "\x87\xfb\x2a\x90\x83\x85\x1c\xf7" 680 + "\x47\x0d\x2c\xf8\x10\xe6\xdf\x9e" 681 + "\xb5\x86\x44\x50", 679 682 }, { 680 683 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789", 681 684 .psize = 64, 682 - .digest = { 0x46, 0x7d, 0xb8, 0x08, 0x63, 0xeb, 0xce, 0x48, 683 - 0x8d, 0xf1, 0xcd, 0x12, 0x61, 0x65, 0x5d, 0xe9, 684 - 0x57, 0x89, 0x65, 0x65 }, 685 + .digest = "\x46\x7d\xb8\x08\x63\xeb\xce\x48" 686 + "\x8d\xf1\xcd\x12\x61\x65\x5d\xe9" 687 + "\x57\x89\x65\x65", 685 688 }, { 686 689 .plaintext = "Tiger - A Fast New Hash Function, " 687 - "by Ross Anderson and Eli Biham, " 688 - "proceedings of Fast Software Encryption 3, " 689 - "Cambridge, 1996.", 690 + "by Ross Anderson and Eli Biham, " 691 + "proceedings of Fast Software Encryption 3, " 692 + "Cambridge, 1996.", 690 693 .psize = 125, 691 - .digest = { 0x3d, 0x9a, 0xeb, 0x03, 0xd1, 0xbd, 0x1a, 0x63, 692 - 0x57, 0xb2, 0x77, 0x4d, 0xfd, 0x6d, 0x5b, 0x24, 693 - 0xdd, 0x68, 0x15, 0x1d }, 694 + .digest = "\x3d\x9a\xeb\x03\xd1\xbd\x1a\x63" 695 + "\x57\xb2\x77\x4d\xfd\x6d\x5b\x24" 696 + "\xdd\x68\x15\x1d", 694 697 }, 695 698 }; 696 699 ··· 700 703 { 701 704 .plaintext = "", 702 705 .psize = 0, 703 - .digest = { 0x24, 0xf0, 0x13, 0x0c, 0x63, 0xac, 0x93, 0x32, 704 - 0x16, 0x16, 0x6e, 0x76, 0xb1, 0xbb, 0x92, 0x5f }, 706 + .digest = "\x24\xf0\x13\x0c\x63\xac\x93\x32" 707 + "\x16\x16\x6e\x76\xb1\xbb\x92\x5f", 705 708 }, { 706 709 .plaintext = "abc", 707 710 .psize = 3, 708 - .digest = { 0xf2, 0x58, 0xc1, 0xe8, 0x84, 0x14, 0xab, 0x2a, 709 - 0x52, 0x7a, 0xb5, 0x41, 0xff, 0xc5, 0xb8, 0xbf }, 711 + .digest = "\xf2\x58\xc1\xe8\x84\x14\xab\x2a" 712 + "\x52\x7a\xb5\x41\xff\xc5\xb8\xbf", 710 713 }, { 711 714 .plaintext = "Tiger", 712 715 .psize = 5, 713 - .digest = { 0x9f, 0x00, 0xf5, 0x99, 0x07, 0x23, 0x00, 0xdd, 714 - 0x27, 0x6a, 0xbb, 0x38, 0xc8, 0xeb, 0x6d, 0xec }, 716 + .digest = "\x9f\x00\xf5\x99\x07\x23\x00\xdd" 717 + "\x27\x6a\xbb\x38\xc8\xeb\x6d\xec", 715 718 }, { 716 719 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-", 717 720 .psize = 64, 718 - .digest = { 0x87, 0xfb, 0x2a, 0x90, 0x83, 0x85, 0x1c, 0xf7, 719 - 0x47, 0x0d, 0x2c, 0xf8, 0x10, 0xe6, 0xdf, 0x9e }, 721 + .digest = "\x87\xfb\x2a\x90\x83\x85\x1c\xf7" 722 + "\x47\x0d\x2c\xf8\x10\xe6\xdf\x9e", 720 723 }, { 721 724 .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789", 722 725 .psize = 64, 723 - .digest = { 0x46, 0x7d, 0xb8, 0x08, 0x63, 0xeb, 0xce, 0x48, 724 - 0x8d, 0xf1, 0xcd, 0x12, 0x61, 0x65, 0x5d, 0xe9 }, 726 + .digest = "\x46\x7d\xb8\x08\x63\xeb\xce\x48" 727 + "\x8d\xf1\xcd\x12\x61\x65\x5d\xe9", 725 728 }, { 726 729 .plaintext = "Tiger - A Fast New Hash Function, " 727 - "by Ross Anderson and Eli Biham, " 728 - "proceedings of Fast Software Encryption 3, " 729 - "Cambridge, 1996.", 730 + "by Ross Anderson and Eli Biham, " 731 + "proceedings of Fast Software Encryption 3, " 732 + "Cambridge, 1996.", 730 733 .psize = 125, 731 - .digest = { 0x3d, 0x9a, 0xeb, 0x03, 0xd1, 0xbd, 0x1a, 0x63, 732 - 0x57, 0xb2, 0x77, 0x4d, 0xfd, 0x6d, 0x5b, 0x24 }, 734 + .digest = "\x3d\x9a\xeb\x03\xd1\xbd\x1a\x63" 735 + "\x57\xb2\x77\x4d\xfd\x6d\x5b\x24", 733 736 }, 734 737 }; 735 738 ··· 742 745 static struct hash_testvec hmac_md5_tv_template[] = 743 746 { 744 747 { 745 - .key = { [0 ... 15] = 0x0b }, 748 + .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", 746 749 .ksize = 16, 747 750 .plaintext = "Hi There", 748 751 .psize = 8, 749 - .digest = { 0x92, 0x94, 0x72, 0x7a, 0x36, 0x38, 0xbb, 0x1c, 750 - 0x13, 0xf4, 0x8e, 0xf8, 0x15, 0x8b, 0xfc, 0x9d }, 752 + .digest = "\x92\x94\x72\x7a\x36\x38\xbb\x1c" 753 + "\x13\xf4\x8e\xf8\x15\x8b\xfc\x9d", 751 754 }, { 752 - .key = { 'J', 'e', 'f', 'e' }, 755 + .key = "Jefe", 753 756 .ksize = 4, 754 757 .plaintext = "what do ya want for nothing?", 755 758 .psize = 28, 756 - .digest = { 0x75, 0x0c, 0x78, 0x3e, 0x6a, 0xb0, 0xb5, 0x03, 757 - 0xea, 0xa8, 0x6e, 0x31, 0x0a, 0x5d, 0xb7, 0x38 }, 759 + .digest = "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03" 760 + "\xea\xa8\x6e\x31\x0a\x5d\xb7\x38", 758 761 .np = 2, 759 762 .tap = {14, 14} 760 763 }, { 761 - .key = { [0 ... 15] = 0xaa }, 764 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", 762 765 .ksize = 16, 763 - .plaintext = { [0 ... 49] = 0xdd }, 766 + .plaintext = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 767 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 768 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 769 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd", 764 770 .psize = 50, 765 - .digest = { 0x56, 0xbe, 0x34, 0x52, 0x1d, 0x14, 0x4c, 0x88, 766 - 0xdb, 0xb8, 0xc7, 0x33, 0xf0, 0xe8, 0xb3, 0xf6 }, 771 + .digest = "\x56\xbe\x34\x52\x1d\x14\x4c\x88" 772 + "\xdb\xb8\xc7\x33\xf0\xe8\xb3\xf6", 767 773 }, { 768 - .key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 769 - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 770 - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, }, 774 + .key = "\x01\x02\x03\x04\x05\x06\x07\x08" 775 + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" 776 + "\x11\x12\x13\x14\x15\x16\x17\x18\x19", 771 777 .ksize = 25, 772 - .plaintext = { [0 ... 49] = 0xcd }, 778 + .plaintext = "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 779 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 780 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 781 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd", 773 782 .psize = 50, 774 - .digest = { 0x69, 0x7e, 0xaf, 0x0a, 0xca, 0x3a, 0x3a, 0xea, 775 - 0x3a, 0x75, 0x16, 0x47, 0x46, 0xff, 0xaa, 0x79 }, 783 + .digest = "\x69\x7e\xaf\x0a\xca\x3a\x3a\xea" 784 + "\x3a\x75\x16\x47\x46\xff\xaa\x79", 776 785 }, { 777 - .key = { [0 ... 15] = 0x0c }, 786 + .key = "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c", 778 787 .ksize = 16, 779 788 .plaintext = "Test With Truncation", 780 789 .psize = 20, 781 - .digest = { 0x56, 0x46, 0x1e, 0xf2, 0x34, 0x2e, 0xdc, 0x00, 782 - 0xf9, 0xba, 0xb9, 0x95, 0x69, 0x0e, 0xfd, 0x4c }, 790 + .digest = "\x56\x46\x1e\xf2\x34\x2e\xdc\x00" 791 + "\xf9\xba\xb9\x95\x69\x0e\xfd\x4c", 783 792 }, { 784 - .key = { [0 ... 79] = 0xaa }, 793 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 794 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 795 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 796 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 797 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 798 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 799 + "\xaa\xaa", 785 800 .ksize = 80, 786 801 .plaintext = "Test Using Larger Than Block-Size Key - Hash Key First", 787 802 .psize = 54, 788 - .digest = { 0x6b, 0x1a, 0xb7, 0xfe, 0x4b, 0xd7, 0xbf, 0x8f, 789 - 0x0b, 0x62, 0xe6, 0xce, 0x61, 0xb9, 0xd0, 0xcd }, 803 + .digest = "\x6b\x1a\xb7\xfe\x4b\xd7\xbf\x8f" 804 + "\x0b\x62\xe6\xce\x61\xb9\xd0\xcd", 790 805 }, { 791 - .key = { [0 ... 79] = 0xaa }, 806 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 807 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 808 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 809 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 810 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 811 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 812 + "\xaa\xaa", 792 813 .ksize = 80, 793 814 .plaintext = "Test Using Larger Than Block-Size Key and Larger Than One " 794 - "Block-Size Data", 815 + "Block-Size Data", 795 816 .psize = 73, 796 - .digest = { 0x6f, 0x63, 0x0f, 0xad, 0x67, 0xcd, 0xa0, 0xee, 797 - 0x1f, 0xb1, 0xf5, 0x62, 0xdb, 0x3a, 0xa5, 0x3e }, 817 + .digest = "\x6f\x63\x0f\xad\x67\xcd\xa0\xee" 818 + "\x1f\xb1\xf5\x62\xdb\x3a\xa5\x3e", 798 819 }, 799 820 }; 800 821 ··· 823 808 824 809 static struct hash_testvec hmac_sha1_tv_template[] = { 825 810 { 826 - .key = { [0 ... 19] = 0x0b }, 811 + .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", 827 812 .ksize = 20, 828 813 .plaintext = "Hi There", 829 814 .psize = 8, 830 - .digest = { 0xb6, 0x17, 0x31, 0x86, 0x55, 0x05, 0x72, 0x64, 831 - 0xe2, 0x8b, 0xc0, 0xb6, 0xfb, 0x37, 0x8c, 0x8e, 0xf1, 832 - 0x46, 0xbe }, 815 + .digest = "\xb6\x17\x31\x86\x55\x05\x72\x64" 816 + "\xe2\x8b\xc0\xb6\xfb\x37\x8c\x8e\xf1" 817 + "\x46\xbe", 833 818 }, { 834 - .key = { 'J', 'e', 'f', 'e' }, 819 + .key = "Jefe", 835 820 .ksize = 4, 836 821 .plaintext = "what do ya want for nothing?", 837 822 .psize = 28, 838 - .digest = { 0xef, 0xfc, 0xdf, 0x6a, 0xe5, 0xeb, 0x2f, 0xa2, 0xd2, 0x74, 839 - 0x16, 0xd5, 0xf1, 0x84, 0xdf, 0x9c, 0x25, 0x9a, 0x7c, 0x79 }, 823 + .digest = "\xef\xfc\xdf\x6a\xe5\xeb\x2f\xa2\xd2\x74" 824 + "\x16\xd5\xf1\x84\xdf\x9c\x25\x9a\x7c\x79", 840 825 .np = 2, 841 826 .tap = { 14, 14 } 842 827 }, { 843 - .key = { [0 ... 19] = 0xaa }, 828 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", 844 829 .ksize = 20, 845 - .plaintext = { [0 ... 49] = 0xdd }, 830 + .plaintext = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 831 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 832 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 833 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd", 846 834 .psize = 50, 847 - .digest = { 0x12, 0x5d, 0x73, 0x42, 0xb9, 0xac, 0x11, 0xcd, 0x91, 0xa3, 848 - 0x9a, 0xf4, 0x8a, 0xa1, 0x7b, 0x4f, 0x63, 0xf1, 0x75, 0xd3 }, 835 + .digest = "\x12\x5d\x73\x42\xb9\xac\x11\xcd\x91\xa3" 836 + "\x9a\xf4\x8a\xa1\x7b\x4f\x63\xf1\x75\xd3", 849 837 }, { 850 - .key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 851 - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 852 - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19 }, 838 + .key = "\x01\x02\x03\x04\x05\x06\x07\x08" 839 + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" 840 + "\x11\x12\x13\x14\x15\x16\x17\x18\x19", 853 841 .ksize = 25, 854 - .plaintext = { [0 ... 49] = 0xcd }, 842 + .plaintext = "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 843 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 844 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 845 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd", 855 846 .psize = 50, 856 - .digest = { 0x4c, 0x90, 0x07, 0xf4, 0x02, 0x62, 0x50, 0xc6, 0xbc, 0x84, 857 - 0x14, 0xf9, 0xbf, 0x50, 0xc8, 0x6c, 0x2d, 0x72, 0x35, 0xda }, 847 + .digest = "\x4c\x90\x07\xf4\x02\x62\x50\xc6\xbc\x84" 848 + "\x14\xf9\xbf\x50\xc8\x6c\x2d\x72\x35\xda", 858 849 }, { 859 - .key = { [0 ... 19] = 0x0c }, 850 + .key = "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c", 860 851 .ksize = 20, 861 852 .plaintext = "Test With Truncation", 862 853 .psize = 20, 863 - .digest = { 0x4c, 0x1a, 0x03, 0x42, 0x4b, 0x55, 0xe0, 0x7f, 0xe7, 0xf2, 864 - 0x7b, 0xe1, 0xd5, 0x8b, 0xb9, 0x32, 0x4a, 0x9a, 0x5a, 0x04 }, 854 + .digest = "\x4c\x1a\x03\x42\x4b\x55\xe0\x7f\xe7\xf2" 855 + "\x7b\xe1\xd5\x8b\xb9\x32\x4a\x9a\x5a\x04", 865 856 }, { 866 - .key = { [0 ... 79] = 0xaa }, 857 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 858 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 859 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 860 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 861 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 862 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 863 + "\xaa\xaa", 867 864 .ksize = 80, 868 865 .plaintext = "Test Using Larger Than Block-Size Key - Hash Key First", 869 866 .psize = 54, 870 - .digest = { 0xaa, 0x4a, 0xe5, 0xe1, 0x52, 0x72, 0xd0, 0x0e, 0x95, 0x70, 871 - 0x56, 0x37, 0xce, 0x8a, 0x3b, 0x55, 0xed, 0x40, 0x21, 0x12 }, 867 + .digest = "\xaa\x4a\xe5\xe1\x52\x72\xd0\x0e\x95\x70" 868 + "\x56\x37\xce\x8a\x3b\x55\xed\x40\x21\x12", 872 869 }, { 873 - .key = { [0 ... 79] = 0xaa }, 870 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 871 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 872 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 873 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 874 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 875 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 876 + "\xaa\xaa", 874 877 .ksize = 80, 875 878 .plaintext = "Test Using Larger Than Block-Size Key and Larger Than One " 876 - "Block-Size Data", 879 + "Block-Size Data", 877 880 .psize = 73, 878 - .digest = { 0xe8, 0xe9, 0x9d, 0x0f, 0x45, 0x23, 0x7d, 0x78, 0x6d, 0x6b, 879 - 0xba, 0xa7, 0x96, 0x5c, 0x78, 0x08, 0xbb, 0xff, 0x1a, 0x91 }, 881 + .digest = "\xe8\xe9\x9d\x0f\x45\x23\x7d\x78\x6d\x6b" 882 + "\xba\xa7\x96\x5c\x78\x08\xbb\xff\x1a\x91", 880 883 }, 881 884 }; 882 885 ··· 906 873 907 874 static struct hash_testvec hmac_sha224_tv_template[] = { 908 875 { 909 - .key = { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 910 - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 911 - 0x0b, 0x0b, 0x0b, 0x0b }, 876 + .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 877 + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 878 + "\x0b\x0b\x0b\x0b", 912 879 .ksize = 20, 913 880 /* ("Hi There") */ 914 - .plaintext = { 0x48, 0x69, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65 }, 881 + .plaintext = "\x48\x69\x20\x54\x68\x65\x72\x65", 915 882 .psize = 8, 916 - .digest = { 0x89, 0x6f, 0xb1, 0x12, 0x8a, 0xbb, 0xdf, 0x19, 917 - 0x68, 0x32, 0x10, 0x7c, 0xd4, 0x9d, 0xf3, 0x3f, 918 - 0x47, 0xb4, 0xb1, 0x16, 0x99, 0x12, 0xba, 0x4f, 919 - 0x53, 0x68, 0x4b, 0x22}, 883 + .digest = "\x89\x6f\xb1\x12\x8a\xbb\xdf\x19" 884 + "\x68\x32\x10\x7c\xd4\x9d\xf3\x3f" 885 + "\x47\xb4\xb1\x16\x99\x12\xba\x4f" 886 + "\x53\x68\x4b\x22", 920 887 }, { 921 - .key = { 0x4a, 0x65, 0x66, 0x65 }, /* ("Jefe") */ 888 + .key = "Jefe", 922 889 .ksize = 4, 923 890 /* ("what do ya want for nothing?") */ 924 - .plaintext = { 0x77, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 925 - 0x79, 0x61, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, 926 - 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x68, 927 - 0x69, 0x6e, 0x67, 0x3f }, 891 + .plaintext = "\x77\x68\x61\x74\x20\x64\x6f\x20" 892 + "\x79\x61\x20\x77\x61\x6e\x74\x20" 893 + "\x66\x6f\x72\x20\x6e\x6f\x74\x68" 894 + "\x69\x6e\x67\x3f", 928 895 .psize = 28, 929 - .digest = { 0xa3, 0x0e, 0x01, 0x09, 0x8b, 0xc6, 0xdb, 0xbf, 930 - 0x45, 0x69, 0x0f, 0x3a, 0x7e, 0x9e, 0x6d, 0x0f, 931 - 0x8b, 0xbe, 0xa2, 0xa3, 0x9e, 0x61, 0x48, 0x00, 932 - 0x8f, 0xd0, 0x5e, 0x44 }, 896 + .digest = "\xa3\x0e\x01\x09\x8b\xc6\xdb\xbf" 897 + "\x45\x69\x0f\x3a\x7e\x9e\x6d\x0f" 898 + "\x8b\xbe\xa2\xa3\x9e\x61\x48\x00" 899 + "\x8f\xd0\x5e\x44", 933 900 .np = 4, 934 901 .tap = { 7, 7, 7, 7 } 935 902 }, { 936 - .key = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 937 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 938 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 939 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 940 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 941 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 942 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 943 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 944 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 945 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 946 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 947 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 948 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 949 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 950 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 951 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 952 - 0xaa, 0xaa, 0xaa }, 903 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 904 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 905 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 906 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 907 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 908 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 909 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 910 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 911 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 912 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 913 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 914 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 915 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 916 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 917 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 918 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 919 + "\xaa\xaa\xaa", 953 920 .ksize = 131, 954 921 /* ("Test Using Larger Than Block-Size Key - Hash Key First") */ 955 - .plaintext = { 0x54, 0x65, 0x73, 0x74, 0x20, 0x55, 0x73, 0x69, 956 - 0x6e, 0x67, 0x20, 0x4c, 0x61, 0x72, 0x67, 0x65, 957 - 0x72, 0x20, 0x54, 0x68, 0x61, 0x6e, 0x20, 0x42, 958 - 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x53, 0x69, 0x7a, 959 - 0x65, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x2d, 0x20, 960 - 0x48, 0x61, 0x73, 0x68, 0x20, 0x4b, 0x65, 0x79, 961 - 0x20, 0x46, 0x69, 0x72, 0x73, 0x74 }, 922 + .plaintext = "\x54\x65\x73\x74\x20\x55\x73\x69" 923 + "\x6e\x67\x20\x4c\x61\x72\x67\x65" 924 + "\x72\x20\x54\x68\x61\x6e\x20\x42" 925 + "\x6c\x6f\x63\x6b\x2d\x53\x69\x7a" 926 + "\x65\x20\x4b\x65\x79\x20\x2d\x20" 927 + "\x48\x61\x73\x68\x20\x4b\x65\x79" 928 + "\x20\x46\x69\x72\x73\x74", 962 929 .psize = 54, 963 - .digest = { 0x95, 0xe9, 0xa0, 0xdb, 0x96, 0x20, 0x95, 0xad, 964 - 0xae, 0xbe, 0x9b, 0x2d, 0x6f, 0x0d, 0xbc, 0xe2, 965 - 0xd4, 0x99, 0xf1, 0x12, 0xf2, 0xd2, 0xb7, 0x27, 966 - 0x3f, 0xa6, 0x87, 0x0e }, 930 + .digest = "\x95\xe9\xa0\xdb\x96\x20\x95\xad" 931 + "\xae\xbe\x9b\x2d\x6f\x0d\xbc\xe2" 932 + "\xd4\x99\xf1\x12\xf2\xd2\xb7\x27" 933 + "\x3f\xa6\x87\x0e", 967 934 }, { 968 - .key = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 969 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 970 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 971 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 972 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 973 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 974 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 975 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 976 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 977 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 978 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 979 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 980 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 981 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 982 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 983 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 984 - 0xaa, 0xaa, 0xaa }, 935 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 936 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 937 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 938 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 939 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 940 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 941 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 942 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 943 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 944 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 945 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 946 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 947 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 948 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 949 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 950 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 951 + "\xaa\xaa\xaa", 985 952 .ksize = 131, 986 953 /* ("This is a test using a larger than block-size key and a") 987 954 (" larger than block-size data. The key needs to be") 988 955 (" hashed before being used by the HMAC algorithm.") */ 989 - .plaintext = { 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 990 - 0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x75, 991 - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x6c, 992 - 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 993 - 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 994 - 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6b, 0x65, 995 - 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x20, 996 - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 997 - 0x68, 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 998 - 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x64, 999 - 0x61, 0x74, 0x61, 0x2e, 0x20, 0x54, 0x68, 0x65, 1000 - 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6e, 0x65, 0x65, 1001 - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 1002 - 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, 1003 - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x62, 1004 - 0x65, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x65, 1005 - 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 1006 - 0x20, 0x48, 0x4d, 0x41, 0x43, 0x20, 0x61, 0x6c, 1007 - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x2e }, 956 + .plaintext = "\x54\x68\x69\x73\x20\x69\x73\x20" 957 + "\x61\x20\x74\x65\x73\x74\x20\x75" 958 + "\x73\x69\x6e\x67\x20\x61\x20\x6c" 959 + "\x61\x72\x67\x65\x72\x20\x74\x68" 960 + "\x61\x6e\x20\x62\x6c\x6f\x63\x6b" 961 + "\x2d\x73\x69\x7a\x65\x20\x6b\x65" 962 + "\x79\x20\x61\x6e\x64\x20\x61\x20" 963 + "\x6c\x61\x72\x67\x65\x72\x20\x74" 964 + "\x68\x61\x6e\x20\x62\x6c\x6f\x63" 965 + "\x6b\x2d\x73\x69\x7a\x65\x20\x64" 966 + "\x61\x74\x61\x2e\x20\x54\x68\x65" 967 + "\x20\x6b\x65\x79\x20\x6e\x65\x65" 968 + "\x64\x73\x20\x74\x6f\x20\x62\x65" 969 + "\x20\x68\x61\x73\x68\x65\x64\x20" 970 + "\x62\x65\x66\x6f\x72\x65\x20\x62" 971 + "\x65\x69\x6e\x67\x20\x75\x73\x65" 972 + "\x64\x20\x62\x79\x20\x74\x68\x65" 973 + "\x20\x48\x4d\x41\x43\x20\x61\x6c" 974 + "\x67\x6f\x72\x69\x74\x68\x6d\x2e", 1008 975 .psize = 152, 1009 - .digest = { 0x3a, 0x85, 0x41, 0x66, 0xac, 0x5d, 0x9f, 0x02, 1010 - 0x3f, 0x54, 0xd5, 0x17, 0xd0, 0xb3, 0x9d, 0xbd, 1011 - 0x94, 0x67, 0x70, 0xdb, 0x9c, 0x2b, 0x95, 0xc9, 1012 - 0xf6, 0xf5, 0x65, 0xd1 }, 976 + .digest = "\x3a\x85\x41\x66\xac\x5d\x9f\x02" 977 + "\x3f\x54\xd5\x17\xd0\xb3\x9d\xbd" 978 + "\x94\x67\x70\xdb\x9c\x2b\x95\xc9" 979 + "\xf6\xf5\x65\xd1", 1013 980 }, 1014 981 }; 1015 982 ··· 1021 988 1022 989 static struct hash_testvec hmac_sha256_tv_template[] = { 1023 990 { 1024 - .key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 1025 - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 1026 - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 1027 - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20}, 991 + .key = "\x01\x02\x03\x04\x05\x06\x07\x08" 992 + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" 993 + "\x11\x12\x13\x14\x15\x16\x17\x18" 994 + "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20", 1028 995 .ksize = 32, 1029 996 .plaintext = "abc", 1030 997 .psize = 3, 1031 - .digest = { 0xa2, 0x1b, 0x1f, 0x5d, 0x4c, 0xf4, 0xf7, 0x3a, 1032 - 0x4d, 0xd9, 0x39, 0x75, 0x0f, 0x7a, 0x06, 0x6a, 1033 - 0x7f, 0x98, 0xcc, 0x13, 0x1c, 0xb1, 0x6a, 0x66, 1034 - 0x92, 0x75, 0x90, 0x21, 0xcf, 0xab, 0x81, 0x81 }, 998 + .digest = "\xa2\x1b\x1f\x5d\x4c\xf4\xf7\x3a" 999 + "\x4d\xd9\x39\x75\x0f\x7a\x06\x6a" 1000 + "\x7f\x98\xcc\x13\x1c\xb1\x6a\x66" 1001 + "\x92\x75\x90\x21\xcf\xab\x81\x81", 1035 1002 }, { 1036 - .key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 1037 - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 1038 - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 1039 - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20 }, 1003 + .key = "\x01\x02\x03\x04\x05\x06\x07\x08" 1004 + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" 1005 + "\x11\x12\x13\x14\x15\x16\x17\x18" 1006 + "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20", 1040 1007 .ksize = 32, 1041 1008 .plaintext = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 1042 1009 .psize = 56, 1043 - .digest = { 0x10, 0x4f, 0xdc, 0x12, 0x57, 0x32, 0x8f, 0x08, 1044 - 0x18, 0x4b, 0xa7, 0x31, 0x31, 0xc5, 0x3c, 0xae, 1045 - 0xe6, 0x98, 0xe3, 0x61, 0x19, 0x42, 0x11, 0x49, 1046 - 0xea, 0x8c, 0x71, 0x24, 0x56, 0x69, 0x7d, 0x30 }, 1010 + .digest = "\x10\x4f\xdc\x12\x57\x32\x8f\x08" 1011 + "\x18\x4b\xa7\x31\x31\xc5\x3c\xae" 1012 + "\xe6\x98\xe3\x61\x19\x42\x11\x49" 1013 + "\xea\x8c\x71\x24\x56\x69\x7d\x30", 1047 1014 }, { 1048 - .key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 1049 - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 1050 - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 1051 - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20 }, 1015 + .key = "\x01\x02\x03\x04\x05\x06\x07\x08" 1016 + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" 1017 + "\x11\x12\x13\x14\x15\x16\x17\x18" 1018 + "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20", 1052 1019 .ksize = 32, 1053 1020 .plaintext = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" 1054 - "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 1021 + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 1055 1022 .psize = 112, 1056 - .digest = { 0x47, 0x03, 0x05, 0xfc, 0x7e, 0x40, 0xfe, 0x34, 1057 - 0xd3, 0xee, 0xb3, 0xe7, 0x73, 0xd9, 0x5a, 0xab, 1058 - 0x73, 0xac, 0xf0, 0xfd, 0x06, 0x04, 0x47, 0xa5, 1059 - 0xeb, 0x45, 0x95, 0xbf, 0x33, 0xa9, 0xd1, 0xa3 }, 1023 + .digest = "\x47\x03\x05\xfc\x7e\x40\xfe\x34" 1024 + "\xd3\xee\xb3\xe7\x73\xd9\x5a\xab" 1025 + "\x73\xac\xf0\xfd\x06\x04\x47\xa5" 1026 + "\xeb\x45\x95\xbf\x33\xa9\xd1\xa3", 1060 1027 }, { 1061 - .key = { [0 ... 31] = 0x0b }, 1028 + .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 1029 + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 1030 + "\x0b\x0b\x0b\x0b\x0b\x0b", 1062 1031 .ksize = 32, 1063 1032 .plaintext = "Hi There", 1064 1033 .psize = 8, 1065 - .digest = { 0x19, 0x8a, 0x60, 0x7e, 0xb4, 0x4b, 0xfb, 0xc6, 1066 - 0x99, 0x03, 0xa0, 0xf1, 0xcf, 0x2b, 0xbd, 0xc5, 1067 - 0xba, 0x0a, 0xa3, 0xf3, 0xd9, 0xae, 0x3c, 0x1c, 1068 - 0x7a, 0x3b, 0x16, 0x96, 0xa0, 0xb6, 0x8c, 0xf7 }, 1034 + .digest = "\x19\x8a\x60\x7e\xb4\x4b\xfb\xc6" 1035 + "\x99\x03\xa0\xf1\xcf\x2b\xbd\xc5" 1036 + "\xba\x0a\xa3\xf3\xd9\xae\x3c\x1c" 1037 + "\x7a\x3b\x16\x96\xa0\xb6\x8c\xf7", 1069 1038 }, { 1070 1039 .key = "Jefe", 1071 1040 .ksize = 4, 1072 1041 .plaintext = "what do ya want for nothing?", 1073 1042 .psize = 28, 1074 - .digest = { 0x5b, 0xdc, 0xc1, 0x46, 0xbf, 0x60, 0x75, 0x4e, 1075 - 0x6a, 0x04, 0x24, 0x26, 0x08, 0x95, 0x75, 0xc7, 1076 - 0x5a, 0x00, 0x3f, 0x08, 0x9d, 0x27, 0x39, 0x83, 1077 - 0x9d, 0xec, 0x58, 0xb9, 0x64, 0xec, 0x38, 0x43 }, 1043 + .digest = "\x5b\xdc\xc1\x46\xbf\x60\x75\x4e" 1044 + "\x6a\x04\x24\x26\x08\x95\x75\xc7" 1045 + "\x5a\x00\x3f\x08\x9d\x27\x39\x83" 1046 + "\x9d\xec\x58\xb9\x64\xec\x38\x43", 1078 1047 .np = 2, 1079 1048 .tap = { 14, 14 } 1080 1049 }, { 1081 - .key = { [0 ... 31] = 0xaa }, 1050 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1051 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1052 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa", 1082 1053 .ksize = 32, 1083 - .plaintext = { [0 ... 49] = 0xdd }, 1054 + .plaintext = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 1055 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 1056 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" 1057 + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd", 1084 1058 .psize = 50, 1085 - .digest = { 0xcd, 0xcb, 0x12, 0x20, 0xd1, 0xec, 0xcc, 0xea, 1086 - 0x91, 0xe5, 0x3a, 0xba, 0x30, 0x92, 0xf9, 0x62, 1087 - 0xe5, 0x49, 0xfe, 0x6c, 0xe9, 0xed, 0x7f, 0xdc, 1088 - 0x43, 0x19, 0x1f, 0xbd, 0xe4, 0x5c, 0x30, 0xb0 }, 1059 + .digest = "\xcd\xcb\x12\x20\xd1\xec\xcc\xea" 1060 + "\x91\xe5\x3a\xba\x30\x92\xf9\x62" 1061 + "\xe5\x49\xfe\x6c\xe9\xed\x7f\xdc" 1062 + "\x43\x19\x1f\xbd\xe4\x5c\x30\xb0", 1089 1063 }, { 1090 - .key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 1091 - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 1092 - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 1093 - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 1094 - 0x21, 0x22, 0x23, 0x24, 0x25 }, 1064 + .key = "\x01\x02\x03\x04\x05\x06\x07\x08" 1065 + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" 1066 + "\x11\x12\x13\x14\x15\x16\x17\x18" 1067 + "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20" 1068 + "\x21\x22\x23\x24\x25", 1095 1069 .ksize = 37, 1096 - .plaintext = { [0 ... 49] = 0xcd }, 1070 + .plaintext = "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 1071 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 1072 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 1073 + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd", 1097 1074 .psize = 50, 1098 - .digest = { 0xd4, 0x63, 0x3c, 0x17, 0xf6, 0xfb, 0x8d, 0x74, 1099 - 0x4c, 0x66, 0xde, 0xe0, 0xf8, 0xf0, 0x74, 0x55, 1100 - 0x6e, 0xc4, 0xaf, 0x55, 0xef, 0x07, 0x99, 0x85, 1101 - 0x41, 0x46, 0x8e, 0xb4, 0x9b, 0xd2, 0xe9, 0x17 }, 1075 + .digest = "\xd4\x63\x3c\x17\xf6\xfb\x8d\x74" 1076 + "\x4c\x66\xde\xe0\xf8\xf0\x74\x55" 1077 + "\x6e\xc4\xaf\x55\xef\x07\x99\x85" 1078 + "\x41\x46\x8e\xb4\x9b\xd2\xe9\x17", 1102 1079 }, { 1103 - .key = { [0 ... 31] = 0x0c }, 1080 + .key = "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" 1081 + "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" 1082 + "\x0c\x0c\x0c\x0c\x0c\x0c", 1104 1083 .ksize = 32, 1105 1084 .plaintext = "Test With Truncation", 1106 1085 .psize = 20, 1107 - .digest = { 0x75, 0x46, 0xaf, 0x01, 0x84, 0x1f, 0xc0, 0x9b, 1108 - 0x1a, 0xb9, 0xc3, 0x74, 0x9a, 0x5f, 0x1c, 0x17, 1109 - 0xd4, 0xf5, 0x89, 0x66, 0x8a, 0x58, 0x7b, 0x27, 1110 - 0x00, 0xa9, 0xc9, 0x7c, 0x11, 0x93, 0xcf, 0x42 }, 1086 + .digest = "\x75\x46\xaf\x01\x84\x1f\xc0\x9b" 1087 + "\x1a\xb9\xc3\x74\x9a\x5f\x1c\x17" 1088 + "\xd4\xf5\x89\x66\x8a\x58\x7b\x27" 1089 + "\x00\xa9\xc9\x7c\x11\x93\xcf\x42", 1111 1090 }, { 1112 - .key = { [0 ... 79] = 0xaa }, 1091 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1092 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1093 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1094 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1095 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1096 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1097 + "\xaa\xaa", 1113 1098 .ksize = 80, 1114 1099 .plaintext = "Test Using Larger Than Block-Size Key - Hash Key First", 1115 1100 .psize = 54, 1116 - .digest = { 0x69, 0x53, 0x02, 0x5e, 0xd9, 0x6f, 0x0c, 0x09, 1117 - 0xf8, 0x0a, 0x96, 0xf7, 0x8e, 0x65, 0x38, 0xdb, 1118 - 0xe2, 0xe7, 0xb8, 0x20, 0xe3, 0xdd, 0x97, 0x0e, 1119 - 0x7d, 0xdd, 0x39, 0x09, 0x1b, 0x32, 0x35, 0x2f }, 1101 + .digest = "\x69\x53\x02\x5e\xd9\x6f\x0c\x09" 1102 + "\xf8\x0a\x96\xf7\x8e\x65\x38\xdb" 1103 + "\xe2\xe7\xb8\x20\xe3\xdd\x97\x0e" 1104 + "\x7d\xdd\x39\x09\x1b\x32\x35\x2f", 1120 1105 }, { 1121 - .key = { [0 ... 79] = 0xaa }, 1106 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1107 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1108 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1109 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1110 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1111 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1112 + "\xaa\xaa", 1122 1113 .ksize = 80, 1123 1114 .plaintext = "Test Using Larger Than Block-Size Key and Larger Than " 1124 - "One Block-Size Data", 1115 + "One Block-Size Data", 1125 1116 .psize = 73, 1126 - .digest = { 0x63, 0x55, 0xac, 0x22, 0xe8, 0x90, 0xd0, 0xa3, 1127 - 0xc8, 0x48, 0x1a, 0x5c, 0xa4, 0x82, 0x5b, 0xc8, 1128 - 0x84, 0xd3, 0xe7, 0xa1, 0xff, 0x98, 0xa2, 0xfc, 1129 - 0x2a, 0xc7, 0xd8, 0xe0, 0x64, 0xc3, 0xb2, 0xe6 }, 1117 + .digest = "\x63\x55\xac\x22\xe8\x90\xd0\xa3" 1118 + "\xc8\x48\x1a\x5c\xa4\x82\x5b\xc8" 1119 + "\x84\xd3\xe7\xa1\xff\x98\xa2\xfc" 1120 + "\x2a\xc7\xd8\xe0\x64\xc3\xb2\xe6", 1130 1121 }, 1131 1122 }; 1132 1123 ··· 1158 1101 1159 1102 static struct hash_testvec aes_xcbc128_tv_template[] = { 1160 1103 { 1161 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1162 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 1163 - .plaintext = { [0 ... 15] = 0 }, 1164 - .digest = { 0x75, 0xf0, 0x25, 0x1d, 0x52, 0x8a, 0xc0, 0x1c, 1165 - 0x45, 0x73, 0xdf, 0xd5, 0x84, 0xd7, 0x9f, 0x29 }, 1104 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 1105 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 1106 + .plaintext = zeroed_string, 1107 + .digest = "\x75\xf0\x25\x1d\x52\x8a\xc0\x1c" 1108 + "\x45\x73\xdf\xd5\x84\xd7\x9f\x29", 1166 1109 .psize = 0, 1167 1110 .ksize = 16, 1168 1111 }, { 1169 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1170 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 1171 - .plaintext = { 0x00, 0x01, 0x02 }, 1172 - .digest = { 0x5b, 0x37, 0x65, 0x80, 0xae, 0x2f, 0x19, 0xaf, 1173 - 0xe7, 0x21, 0x9c, 0xee, 0xf1, 0x72, 0x75, 0x6f }, 1112 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 1113 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 1114 + .plaintext = "\x00\x01\x02", 1115 + .digest = "\x5b\x37\x65\x80\xae\x2f\x19\xaf" 1116 + "\xe7\x21\x9c\xee\xf1\x72\x75\x6f", 1174 1117 .psize = 3, 1175 1118 .ksize = 16, 1176 1119 } , { 1177 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1178 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 1179 - .plaintext = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1180 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 1181 - .digest = { 0xd2, 0xa2, 0x46, 0xfa, 0x34, 0x9b, 0x68, 0xa7, 1182 - 0x99, 0x98, 0xa4, 0x39, 0x4f, 0xf7, 0xa2, 0x63 }, 1120 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 1121 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 1122 + .plaintext = "\x00\x01\x02\x03\x04\x05\x06\x07" 1123 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 1124 + .digest = "\xd2\xa2\x46\xfa\x34\x9b\x68\xa7" 1125 + "\x99\x98\xa4\x39\x4f\xf7\xa2\x63", 1183 1126 .psize = 16, 1184 1127 .ksize = 16, 1185 1128 }, { 1186 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1187 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 1188 - .plaintext = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1189 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 1190 - 0x10, 0x11, 0x12, 0x13 }, 1191 - .digest = { 0x47, 0xf5, 0x1b, 0x45, 0x64, 0x96, 0x62, 0x15, 1192 - 0xb8, 0x98, 0x5c, 0x63, 0x05, 0x5e, 0xd3, 0x08 }, 1129 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 1130 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 1131 + .plaintext = "\x00\x01\x02\x03\x04\x05\x06\x07" 1132 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 1133 + "\x10\x11\x12\x13", 1134 + .digest = "\x47\xf5\x1b\x45\x64\x96\x62\x15" 1135 + "\xb8\x98\x5c\x63\x05\x5e\xd3\x08", 1193 1136 .tap = { 10, 10 }, 1194 1137 .psize = 20, 1195 1138 .np = 2, 1196 1139 .ksize = 16, 1197 1140 }, { 1198 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1199 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 1200 - .plaintext = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1201 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 1202 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 1203 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 1204 - .digest = { 0xf5, 0x4f, 0x0e, 0xc8, 0xd2, 0xb9, 0xf3, 0xd3, 1205 - 0x68, 0x07, 0x73, 0x4b, 0xd5, 0x28, 0x3f, 0xd4 }, 1141 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 1142 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 1143 + .plaintext = "\x00\x01\x02\x03\x04\x05\x06\x07" 1144 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 1145 + "\x10\x11\x12\x13\x14\x15\x16\x17" 1146 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 1147 + .digest = "\xf5\x4f\x0e\xc8\xd2\xb9\xf3\xd3" 1148 + "\x68\x07\x73\x4b\xd5\x28\x3f\xd4", 1206 1149 .psize = 32, 1207 1150 .ksize = 16, 1208 1151 }, { 1209 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1210 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 1211 - .plaintext = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1212 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 1213 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 1214 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 1215 - 0x20, 0x21 }, 1216 - .digest = { 0xbe, 0xcb, 0xb3, 0xbc, 0xcd, 0xb5, 0x18, 0xa3, 1217 - 0x06, 0x77, 0xd5, 0x48, 0x1f, 0xb6, 0xb4, 0xd8 }, 1152 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 1153 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 1154 + .plaintext = "\x00\x01\x02\x03\x04\x05\x06\x07" 1155 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 1156 + "\x10\x11\x12\x13\x14\x15\x16\x17" 1157 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 1158 + "\x20\x21", 1159 + .digest = "\xbe\xcb\xb3\xbc\xcd\xb5\x18\xa3" 1160 + "\x06\x77\xd5\x48\x1f\xb6\xb4\xd8", 1218 1161 .tap = { 17, 17 }, 1219 1162 .psize = 34, 1220 1163 .np = 2, ··· 1230 1173 1231 1174 static struct hash_testvec hmac_sha384_tv_template[] = { 1232 1175 { 1233 - .key = { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 1234 - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 1235 - 0x0b, 0x0b, 0x0b, 0x0b }, // (20 bytes) 1176 + .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 1177 + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 1178 + "\x0b\x0b\x0b\x0b", 1236 1179 .ksize = 20, 1237 - .plaintext = { 0x48, 0x69, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65 }, // ("Hi There") 1180 + .plaintext = "Hi There", 1238 1181 .psize = 8, 1239 - .digest = { 0xaf, 0xd0, 0x39, 0x44, 0xd8, 0x48, 0x95, 0x62, 1240 - 0x6b, 0x08, 0x25, 0xf4, 0xab, 0x46, 0x90, 0x7f, 1241 - 0x15, 0xf9, 0xda, 0xdb, 0xe4, 0x10, 0x1e, 0xc6, 1242 - 0x82, 0xaa, 0x03, 0x4c, 0x7c, 0xeb, 0xc5, 0x9c, 1243 - 0xfa, 0xea, 0x9e, 0xa9, 0x07, 0x6e, 0xde, 0x7f, 1244 - 0x4a, 0xf1, 0x52, 0xe8, 0xb2, 0xfa, 0x9c, 0xb6 }, 1182 + .digest = "\xaf\xd0\x39\x44\xd8\x48\x95\x62" 1183 + "\x6b\x08\x25\xf4\xab\x46\x90\x7f" 1184 + "\x15\xf9\xda\xdb\xe4\x10\x1e\xc6" 1185 + "\x82\xaa\x03\x4c\x7c\xeb\xc5\x9c" 1186 + "\xfa\xea\x9e\xa9\x07\x6e\xde\x7f" 1187 + "\x4a\xf1\x52\xe8\xb2\xfa\x9c\xb6", 1245 1188 }, { 1246 - .key = { 0x4a, 0x65, 0x66, 0x65 }, // ("Jefe") 1189 + .key = "Jefe", 1247 1190 .ksize = 4, 1248 - .plaintext = { 0x77, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 1249 - 0x79, 0x61, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, // ("what do ya want ") 1250 - 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x68, 1251 - 0x69, 0x6e, 0x67, 0x3f }, // ("for nothing?") 1191 + .plaintext = "what do ya want for nothing?", 1252 1192 .psize = 28, 1253 - .digest = { 0xaf, 0x45, 0xd2, 0xe3, 0x76, 0x48, 0x40, 0x31, 1254 - 0x61, 0x7f, 0x78, 0xd2, 0xb5, 0x8a, 0x6b, 0x1b, 1255 - 0x9c, 0x7e, 0xf4, 0x64, 0xf5, 0xa0, 0x1b, 0x47, 1256 - 0xe4, 0x2e, 0xc3, 0x73, 0x63, 0x22, 0x44, 0x5e, 1257 - 0x8e, 0x22, 0x40, 0xca, 0x5e, 0x69, 0xe2, 0xc7, 1258 - 0x8b, 0x32, 0x39, 0xec, 0xfa, 0xb2, 0x16, 0x49 }, 1193 + .digest = "\xaf\x45\xd2\xe3\x76\x48\x40\x31" 1194 + "\x61\x7f\x78\xd2\xb5\x8a\x6b\x1b" 1195 + "\x9c\x7e\xf4\x64\xf5\xa0\x1b\x47" 1196 + "\xe4\x2e\xc3\x73\x63\x22\x44\x5e" 1197 + "\x8e\x22\x40\xca\x5e\x69\xe2\xc7" 1198 + "\x8b\x32\x39\xec\xfa\xb2\x16\x49", 1259 1199 .np = 4, 1260 1200 .tap = { 7, 7, 7, 7 } 1261 1201 }, { 1262 - .key = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1263 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1264 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1265 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1266 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1267 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1268 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1269 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1270 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1271 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1272 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1273 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1274 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1275 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1276 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1277 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1278 - 0xaa, 0xaa, 0xaa }, // (131 bytes) 1202 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1203 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1204 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1205 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1206 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1207 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1208 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1209 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1210 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1211 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1212 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1213 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1214 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1215 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1216 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1217 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1218 + "\xaa\xaa\xaa", 1279 1219 .ksize = 131, 1280 - .plaintext = { 0x54, 0x65, 0x73, 0x74, 0x20, 0x55, 0x73, 0x69, 1281 - 0x6e, 0x67, 0x20, 0x4c, 0x61, 0x72, 0x67, 0x65, // ("Test Using Large") 1282 - 0x72, 0x20, 0x54, 0x68, 0x61, 0x6e, 0x20, 0x42, 1283 - 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x53, 0x69, 0x7a, // ("r Than Block-Siz") 1284 - 0x65, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x2d, 0x20, 1285 - 0x48, 0x61, 0x73, 0x68, 0x20, 0x4b, 0x65, 0x79, // ("e Key - Hash Key") 1286 - 0x20, 0x46, 0x69, 0x72, 0x73, 0x74 }, // (" First") 1220 + .plaintext = "Test Using Larger Than Block-Siz" 1221 + "e Key - Hash Key First", 1287 1222 .psize = 54, 1288 - .digest = { 0x4e, 0xce, 0x08, 0x44, 0x85, 0x81, 0x3e, 0x90, 1289 - 0x88, 0xd2, 0xc6, 0x3a, 0x04, 0x1b, 0xc5, 0xb4, 1290 - 0x4f, 0x9e, 0xf1, 0x01, 0x2a, 0x2b, 0x58, 0x8f, 1291 - 0x3c, 0xd1, 0x1f, 0x05, 0x03, 0x3a, 0xc4, 0xc6, 1292 - 0x0c, 0x2e, 0xf6, 0xab, 0x40, 0x30, 0xfe, 0x82, 1293 - 0x96, 0x24, 0x8d, 0xf1, 0x63, 0xf4, 0x49, 0x52 }, 1223 + .digest = "\x4e\xce\x08\x44\x85\x81\x3e\x90" 1224 + "\x88\xd2\xc6\x3a\x04\x1b\xc5\xb4" 1225 + "\x4f\x9e\xf1\x01\x2a\x2b\x58\x8f" 1226 + "\x3c\xd1\x1f\x05\x03\x3a\xc4\xc6" 1227 + "\x0c\x2e\xf6\xab\x40\x30\xfe\x82" 1228 + "\x96\x24\x8d\xf1\x63\xf4\x49\x52", 1294 1229 }, { 1295 - .key = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1296 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1297 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1298 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1299 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1300 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1301 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1302 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1303 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1304 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1305 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1306 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1307 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1308 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1309 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1310 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1311 - 0xaa, 0xaa, 0xaa }, // (131 bytes) 1230 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1231 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1232 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1233 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1234 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1235 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1236 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1237 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1238 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1239 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1240 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1241 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1242 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1243 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1244 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1245 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1246 + "\xaa\xaa\xaa", 1312 1247 .ksize = 131, 1313 - .plaintext = { 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 1314 - 0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x75, // ("This is a test u") 1315 - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x6c, 1316 - 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, // ("sing a larger th") 1317 - 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 1318 - 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6b, 0x65, // ("an block-size ke") 1319 - 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x20, 1320 - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, // ("y and a larger t") 1321 - 0x68, 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 1322 - 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x64, // ("han block-size d") 1323 - 0x61, 0x74, 0x61, 0x2e, 0x20, 0x54, 0x68, 0x65, 1324 - 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6e, 0x65, 0x65, // ("ata. The key nee") 1325 - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 1326 - 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, // ("ds to be hashed ") 1327 - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x62, 1328 - 0x65, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x65, // ("before being use") 1329 - 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 1330 - 0x20, 0x48, 0x4d, 0x41, 0x43, 0x20, 0x61, 0x6c, // ("d by the HMAC al") 1331 - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x2e }, // ("gorithm.") 1248 + .plaintext = "This is a test u" 1249 + "sing a larger th" 1250 + "an block-size ke" 1251 + "y and a larger t" 1252 + "han block-size d" 1253 + "ata. The key nee" 1254 + "ds to be hashed " 1255 + "before being use" 1256 + "d by the HMAC al" 1257 + "gorithm.", 1332 1258 .psize = 152, 1333 - .digest = { 0x66, 0x17, 0x17, 0x8e, 0x94, 0x1f, 0x02, 0x0d, 1334 - 0x35, 0x1e, 0x2f, 0x25, 0x4e, 0x8f, 0xd3, 0x2c, 1335 - 0x60, 0x24, 0x20, 0xfe, 0xb0, 0xb8, 0xfb, 0x9a, 1336 - 0xdc, 0xce, 0xbb, 0x82, 0x46, 0x1e, 0x99, 0xc5, 1337 - 0xa6, 0x78, 0xcc, 0x31, 0xe7, 0x99, 0x17, 0x6d, 1338 - 0x38, 0x60, 0xe6, 0x11, 0x0c, 0x46, 0x52, 0x3e }, 1259 + .digest = "\x66\x17\x17\x8e\x94\x1f\x02\x0d" 1260 + "\x35\x1e\x2f\x25\x4e\x8f\xd3\x2c" 1261 + "\x60\x24\x20\xfe\xb0\xb8\xfb\x9a" 1262 + "\xdc\xce\xbb\x82\x46\x1e\x99\xc5" 1263 + "\xa6\x78\xcc\x31\xe7\x99\x17\x6d" 1264 + "\x38\x60\xe6\x11\x0c\x46\x52\x3e", 1339 1265 }, 1340 1266 }; 1341 1267 ··· 1330 1290 1331 1291 static struct hash_testvec hmac_sha512_tv_template[] = { 1332 1292 { 1333 - .key = { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 1334 - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 1335 - 0x0b, 0x0b, 0x0b, 0x0b }, // (20 bytes) 1293 + .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 1294 + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 1295 + "\x0b\x0b\x0b\x0b", 1336 1296 .ksize = 20, 1337 - .plaintext = { 0x48, 0x69, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65 }, // ("Hi There") 1297 + .plaintext = "Hi There", 1338 1298 .psize = 8, 1339 - .digest = { 0x87, 0xaa, 0x7c, 0xde, 0xa5, 0xef, 0x61, 0x9d, 1340 - 0x4f, 0xf0, 0xb4, 0x24, 0x1a, 0x1d, 0x6c, 0xb0, 1341 - 0x23, 0x79, 0xf4, 0xe2, 0xce, 0x4e, 0xc2, 0x78, 1342 - 0x7a, 0xd0, 0xb3, 0x05, 0x45, 0xe1, 0x7c, 0xde, 1343 - 0xda, 0xa8, 0x33, 0xb7, 0xd6, 0xb8, 0xa7, 0x02, 1344 - 0x03, 0x8b, 0x27, 0x4e, 0xae, 0xa3, 0xf4, 0xe4, 1345 - 0xbe, 0x9d, 0x91, 0x4e, 0xeb, 0x61, 0xf1, 0x70, 1346 - 0x2e, 0x69, 0x6c, 0x20, 0x3a, 0x12, 0x68, 0x54 }, 1299 + .digest = "\x87\xaa\x7c\xde\xa5\xef\x61\x9d" 1300 + "\x4f\xf0\xb4\x24\x1a\x1d\x6c\xb0" 1301 + "\x23\x79\xf4\xe2\xce\x4e\xc2\x78" 1302 + "\x7a\xd0\xb3\x05\x45\xe1\x7c\xde" 1303 + "\xda\xa8\x33\xb7\xd6\xb8\xa7\x02" 1304 + "\x03\x8b\x27\x4e\xae\xa3\xf4\xe4" 1305 + "\xbe\x9d\x91\x4e\xeb\x61\xf1\x70" 1306 + "\x2e\x69\x6c\x20\x3a\x12\x68\x54", 1347 1307 }, { 1348 - .key = { 0x4a, 0x65, 0x66, 0x65 }, // ("Jefe") 1308 + .key = "Jefe", 1349 1309 .ksize = 4, 1350 - .plaintext = { 0x77, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 1351 - 0x79, 0x61, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, // ("what do ya want ") 1352 - 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x68, 1353 - 0x69, 0x6e, 0x67, 0x3f }, // ("for nothing?") 1310 + .plaintext = "what do ya want for nothing?", 1354 1311 .psize = 28, 1355 - .digest = { 0x16, 0x4b, 0x7a, 0x7b, 0xfc, 0xf8, 0x19, 0xe2, 1356 - 0xe3, 0x95, 0xfb, 0xe7, 0x3b, 0x56, 0xe0, 0xa3, 1357 - 0x87, 0xbd, 0x64, 0x22, 0x2e, 0x83, 0x1f, 0xd6, 1358 - 0x10, 0x27, 0x0c, 0xd7, 0xea, 0x25, 0x05, 0x54, 1359 - 0x97, 0x58, 0xbf, 0x75, 0xc0, 0x5a, 0x99, 0x4a, 1360 - 0x6d, 0x03, 0x4f, 0x65, 0xf8, 0xf0, 0xe6, 0xfd, 1361 - 0xca, 0xea, 0xb1, 0xa3, 0x4d, 0x4a, 0x6b, 0x4b, 1362 - 0x63, 0x6e, 0x07, 0x0a, 0x38, 0xbc, 0xe7, 0x37 }, 1312 + .digest = "\x16\x4b\x7a\x7b\xfc\xf8\x19\xe2" 1313 + "\xe3\x95\xfb\xe7\x3b\x56\xe0\xa3" 1314 + "\x87\xbd\x64\x22\x2e\x83\x1f\xd6" 1315 + "\x10\x27\x0c\xd7\xea\x25\x05\x54" 1316 + "\x97\x58\xbf\x75\xc0\x5a\x99\x4a" 1317 + "\x6d\x03\x4f\x65\xf8\xf0\xe6\xfd" 1318 + "\xca\xea\xb1\xa3\x4d\x4a\x6b\x4b" 1319 + "\x63\x6e\x07\x0a\x38\xbc\xe7\x37", 1363 1320 .np = 4, 1364 1321 .tap = { 7, 7, 7, 7 } 1365 1322 }, { 1366 - .key = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1367 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1368 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1369 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1370 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1371 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1372 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1373 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1374 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1375 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1376 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1377 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1378 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1379 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1380 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1381 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1382 - 0xaa, 0xaa, 0xaa }, // (131 bytes) 1323 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1324 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1325 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1326 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1327 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1328 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1329 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1330 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1331 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1332 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1333 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1334 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1335 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1336 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1337 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1338 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1339 + "\xaa\xaa\xaa", 1383 1340 .ksize = 131, 1384 - .plaintext = { 0x54, 0x65, 0x73, 0x74, 0x20, 0x55, 0x73, 0x69, 1385 - 0x6e, 0x67, 0x20, 0x4c, 0x61, 0x72, 0x67, 0x65, // ("Test Using Large") 1386 - 0x72, 0x20, 0x54, 0x68, 0x61, 0x6e, 0x20, 0x42, 1387 - 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x53, 0x69, 0x7a, // ("r Than Block-Siz") 1388 - 0x65, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x2d, 0x20, 1389 - 0x48, 0x61, 0x73, 0x68, 0x20, 0x4b, 0x65, 0x79, // ("e Key - Hash Key") 1390 - 0x20, 0x46, 0x69, 0x72, 0x73, 0x74 }, // (" First") 1341 + .plaintext = "Test Using Large" 1342 + "r Than Block-Siz" 1343 + "e Key - Hash Key" 1344 + " First", 1391 1345 .psize = 54, 1392 - .digest = { 0x80, 0xb2, 0x42, 0x63, 0xc7, 0xc1, 0xa3, 0xeb, 1393 - 0xb7, 0x14, 0x93, 0xc1, 0xdd, 0x7b, 0xe8, 0xb4, 1394 - 0x9b, 0x46, 0xd1, 0xf4, 0x1b, 0x4a, 0xee, 0xc1, 1395 - 0x12, 0x1b, 0x01, 0x37, 0x83, 0xf8, 0xf3, 0x52, 1396 - 0x6b, 0x56, 0xd0, 0x37, 0xe0, 0x5f, 0x25, 0x98, 1397 - 0xbd, 0x0f, 0xd2, 0x21, 0x5d, 0x6a, 0x1e, 0x52, 1398 - 0x95, 0xe6, 0x4f, 0x73, 0xf6, 0x3f, 0x0a, 0xec, 1399 - 0x8b, 0x91, 0x5a, 0x98, 0x5d, 0x78, 0x65, 0x98 }, 1346 + .digest = "\x80\xb2\x42\x63\xc7\xc1\xa3\xeb" 1347 + "\xb7\x14\x93\xc1\xdd\x7b\xe8\xb4" 1348 + "\x9b\x46\xd1\xf4\x1b\x4a\xee\xc1" 1349 + "\x12\x1b\x01\x37\x83\xf8\xf3\x52" 1350 + "\x6b\x56\xd0\x37\xe0\x5f\x25\x98" 1351 + "\xbd\x0f\xd2\x21\x5d\x6a\x1e\x52" 1352 + "\x95\xe6\x4f\x73\xf6\x3f\x0a\xec" 1353 + "\x8b\x91\x5a\x98\x5d\x78\x65\x98", 1400 1354 }, { 1401 - .key = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1402 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1403 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1404 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1405 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1406 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1407 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1408 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1409 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1410 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1411 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1412 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1413 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1414 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1415 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1416 - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 1417 - 0xaa, 0xaa, 0xaa }, // (131 bytes) 1355 + .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1356 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1357 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1358 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1359 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1360 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1361 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1362 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1363 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1364 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1365 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1366 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1367 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1368 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1369 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1370 + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 1371 + "\xaa\xaa\xaa", 1418 1372 .ksize = 131, 1419 - .plaintext = { 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 1420 - 0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x75, // ("This is a test u") 1421 - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x6c, 1422 - 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, // ("sing a larger th") 1423 - 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 1424 - 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6b, 0x65, // ("an block-size ke") 1425 - 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x20, 1426 - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, // ("y and a larger t") 1427 - 0x68, 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 1428 - 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x64, // ("han block-size d") 1429 - 0x61, 0x74, 0x61, 0x2e, 0x20, 0x54, 0x68, 0x65, 1430 - 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6e, 0x65, 0x65, // ("ata. The key nee") 1431 - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 1432 - 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, // ("ds to be hashed ") 1433 - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x62, 1434 - 0x65, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x65, // ("before being use") 1435 - 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 1436 - 0x20, 0x48, 0x4d, 0x41, 0x43, 0x20, 0x61, 0x6c, // ("d by the HMAC al") 1437 - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x2e }, // ("gorithm.") 1373 + .plaintext = 1374 + "This is a test u" 1375 + "sing a larger th" 1376 + "an block-size ke" 1377 + "y and a larger t" 1378 + "han block-size d" 1379 + "ata. The key nee" 1380 + "ds to be hashed " 1381 + "before being use" 1382 + "d by the HMAC al" 1383 + "gorithm.", 1438 1384 .psize = 152, 1439 - .digest = { 0xe3, 0x7b, 0x6a, 0x77, 0x5d, 0xc8, 0x7d, 0xba, 1440 - 0xa4, 0xdf, 0xa9, 0xf9, 0x6e, 0x5e, 0x3f, 0xfd, 1441 - 0xde, 0xbd, 0x71, 0xf8, 0x86, 0x72, 0x89, 0x86, 1442 - 0x5d, 0xf5, 0xa3, 0x2d, 0x20, 0xcd, 0xc9, 0x44, 1443 - 0xb6, 0x02, 0x2c, 0xac, 0x3c, 0x49, 0x82, 0xb1, 1444 - 0x0d, 0x5e, 0xeb, 0x55, 0xc3, 0xe4, 0xde, 0x15, 1445 - 0x13, 0x46, 0x76, 0xfb, 0x6d, 0xe0, 0x44, 0x60, 1446 - 0x65, 0xc9, 0x74, 0x40, 0xfa, 0x8c, 0x6a, 0x58 }, 1385 + .digest = "\xe3\x7b\x6a\x77\x5d\xc8\x7d\xba" 1386 + "\xa4\xdf\xa9\xf9\x6e\x5e\x3f\xfd" 1387 + "\xde\xbd\x71\xf8\x86\x72\x89\x86" 1388 + "\x5d\xf5\xa3\x2d\x20\xcd\xc9\x44" 1389 + "\xb6\x02\x2c\xac\x3c\x49\x82\xb1" 1390 + "\x0d\x5e\xeb\x55\xc3\xe4\xde\x15" 1391 + "\x13\x46\x76\xfb\x6d\xe0\x44\x60" 1392 + "\x65\xc9\x74\x40\xfa\x8c\x6a\x58", 1447 1393 }, 1448 1394 }; 1449 1395 ··· 1445 1419 1446 1420 static struct cipher_testvec des_enc_tv_template[] = { 1447 1421 { /* From Applied Cryptography */ 1448 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1422 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1449 1423 .klen = 8, 1450 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7 }, 1424 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xe7", 1451 1425 .ilen = 8, 1452 - .result = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d }, 1426 + .result = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d", 1453 1427 .rlen = 8, 1454 1428 }, { /* Same key, different plaintext block */ 1455 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1429 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1456 1430 .klen = 8, 1457 - .input = { 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99 }, 1431 + .input = "\x22\x33\x44\x55\x66\x77\x88\x99", 1458 1432 .ilen = 8, 1459 - .result = { 0xf7, 0x9c, 0x89, 0x2a, 0x33, 0x8f, 0x4a, 0x8b }, 1433 + .result = "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", 1460 1434 .rlen = 8, 1461 1435 }, { /* Sbox test from NBS */ 1462 - .key = { 0x7c, 0xa1, 0x10, 0x45, 0x4a, 0x1a, 0x6e, 0x57 }, 1436 + .key = "\x7c\xa1\x10\x45\x4a\x1a\x6e\x57", 1463 1437 .klen = 8, 1464 - .input = { 0x01, 0xa1, 0xd6, 0xd0, 0x39, 0x77, 0x67, 0x42 }, 1438 + .input = "\x01\xa1\xd6\xd0\x39\x77\x67\x42", 1465 1439 .ilen = 8, 1466 - .result = { 0x69, 0x0f, 0x5b, 0x0d, 0x9a, 0x26, 0x93, 0x9b }, 1440 + .result = "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b", 1467 1441 .rlen = 8, 1468 1442 }, { /* Three blocks */ 1469 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1443 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1470 1444 .klen = 8, 1471 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7, 1472 - 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 1473 - 0xca, 0xfe, 0xba, 0xbe, 0xfe, 0xed, 0xbe, 0xef }, 1445 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xe7" 1446 + "\x22\x33\x44\x55\x66\x77\x88\x99" 1447 + "\xca\xfe\xba\xbe\xfe\xed\xbe\xef", 1474 1448 .ilen = 24, 1475 - .result = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d, 1476 - 0xf7, 0x9c, 0x89, 0x2a, 0x33, 0x8f, 0x4a, 0x8b, 1477 - 0xb4, 0x99, 0x26, 0xf7, 0x1f, 0xe1, 0xd4, 0x90 }, 1449 + .result = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 1450 + "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b" 1451 + "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90", 1478 1452 .rlen = 24, 1479 1453 }, { /* Weak key */ 1480 1454 .fail = 1, 1481 1455 .wk = 1, 1482 - .key = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, 1456 + .key = "\x01\x01\x01\x01\x01\x01\x01\x01", 1483 1457 .klen = 8, 1484 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7 }, 1458 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xe7", 1485 1459 .ilen = 8, 1486 - .result = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d }, 1460 + .result = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d", 1487 1461 .rlen = 8, 1488 1462 }, { /* Two blocks -- for testing encryption across pages */ 1489 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1463 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1490 1464 .klen = 8, 1491 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7, 1492 - 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99 }, 1465 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xe7" 1466 + "\x22\x33\x44\x55\x66\x77\x88\x99", 1493 1467 .ilen = 16, 1494 - .result = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d, 1495 - 0xf7, 0x9c, 0x89, 0x2a, 0x33, 0x8f, 0x4a, 0x8b }, 1468 + .result = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 1469 + "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", 1496 1470 .rlen = 16, 1497 1471 .np = 2, 1498 1472 .tap = { 8, 8 } 1499 1473 }, { /* Four blocks -- for testing encryption with chunking */ 1500 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1474 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1501 1475 .klen = 8, 1502 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7, 1503 - 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 1504 - 0xca, 0xfe, 0xba, 0xbe, 0xfe, 0xed, 0xbe, 0xef, 1505 - 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99 }, 1476 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xe7" 1477 + "\x22\x33\x44\x55\x66\x77\x88\x99" 1478 + "\xca\xfe\xba\xbe\xfe\xed\xbe\xef" 1479 + "\x22\x33\x44\x55\x66\x77\x88\x99", 1506 1480 .ilen = 32, 1507 - .result = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d, 1508 - 0xf7, 0x9c, 0x89, 0x2a, 0x33, 0x8f, 0x4a, 0x8b, 1509 - 0xb4, 0x99, 0x26, 0xf7, 0x1f, 0xe1, 0xd4, 0x90, 1510 - 0xf7, 0x9c, 0x89, 0x2a, 0x33, 0x8f, 0x4a, 0x8b }, 1481 + .result = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 1482 + "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b" 1483 + "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90" 1484 + "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", 1511 1485 .rlen = 32, 1512 1486 .np = 3, 1513 1487 .tap = { 14, 10, 8 } 1514 1488 }, { 1515 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1489 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1516 1490 .klen = 8, 1517 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7, 1518 - 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 1519 - 0xca, 0xfe, 0xba, 0xbe, 0xfe, 0xed, 0xbe, 0xef }, 1491 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xe7" 1492 + "\x22\x33\x44\x55\x66\x77\x88\x99" 1493 + "\xca\xfe\xba\xbe\xfe\xed\xbe\xef", 1520 1494 .ilen = 24, 1521 - .result = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d, 1522 - 0xf7, 0x9c, 0x89, 0x2a, 0x33, 0x8f, 0x4a, 0x8b, 1523 - 0xb4, 0x99, 0x26, 0xf7, 0x1f, 0xe1, 0xd4, 0x90 }, 1495 + .result = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 1496 + "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b" 1497 + "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90", 1524 1498 .rlen = 24, 1525 1499 .np = 4, 1526 1500 .tap = { 2, 1, 3, 18 } 1527 1501 }, { 1528 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1502 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1529 1503 .klen = 8, 1530 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7, 1531 - 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99 }, 1504 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xe7" 1505 + "\x22\x33\x44\x55\x66\x77\x88\x99", 1532 1506 .ilen = 16, 1533 - .result = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d, 1534 - 0xf7, 0x9c, 0x89, 0x2a, 0x33, 0x8f, 0x4a, 0x8b }, 1507 + .result = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 1508 + "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", 1535 1509 .rlen = 16, 1536 1510 .np = 5, 1537 1511 .tap = { 2, 2, 2, 2, 8 } 1538 1512 }, { 1539 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1513 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1540 1514 .klen = 8, 1541 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7 }, 1515 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xe7", 1542 1516 .ilen = 8, 1543 - .result = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d }, 1517 + .result = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d", 1544 1518 .rlen = 8, 1545 1519 .np = 8, 1546 1520 .tap = { 1, 1, 1, 1, 1, 1, 1, 1 } ··· 1549 1523 1550 1524 static struct cipher_testvec des_dec_tv_template[] = { 1551 1525 { /* From Applied Cryptography */ 1552 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1526 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1553 1527 .klen = 8, 1554 - .input = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d }, 1528 + .input = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d", 1555 1529 .ilen = 8, 1556 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7 }, 1530 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xe7", 1557 1531 .rlen = 8, 1558 1532 }, { /* Sbox test from NBS */ 1559 - .key = { 0x7c, 0xa1, 0x10, 0x45, 0x4a, 0x1a, 0x6e, 0x57 }, 1533 + .key = "\x7c\xa1\x10\x45\x4a\x1a\x6e\x57", 1560 1534 .klen = 8, 1561 - .input = { 0x69, 0x0f, 0x5b, 0x0d, 0x9a, 0x26, 0x93, 0x9b }, 1535 + .input = "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b", 1562 1536 .ilen = 8, 1563 - .result = { 0x01, 0xa1, 0xd6, 0xd0, 0x39, 0x77, 0x67, 0x42 }, 1537 + .result = "\x01\xa1\xd6\xd0\x39\x77\x67\x42", 1564 1538 .rlen = 8, 1565 1539 }, { /* Two blocks, for chunking test */ 1566 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1540 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1567 1541 .klen = 8, 1568 - .input = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d, 1569 - 0x69, 0x0f, 0x5b, 0x0d, 0x9a, 0x26, 0x93, 0x9b }, 1542 + .input = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 1543 + "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b", 1570 1544 .ilen = 16, 1571 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7, 1572 - 0xa3, 0x99, 0x7b, 0xca, 0xaf, 0x69, 0xa0, 0xf5 }, 1545 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xe7" 1546 + "\xa3\x99\x7b\xca\xaf\x69\xa0\xf5", 1573 1547 .rlen = 16, 1574 1548 .np = 2, 1575 1549 .tap = { 8, 8 } 1576 1550 }, { 1577 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1551 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1578 1552 .klen = 8, 1579 - .input = { 0xc9, 0x57, 0x44, 0x25, 0x6a, 0x5e, 0xd3, 0x1d, 1580 - 0x69, 0x0f, 0x5b, 0x0d, 0x9a, 0x26, 0x93, 0x9b }, 1553 + .input = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" 1554 + "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b", 1581 1555 .ilen = 16, 1582 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe7, 1583 - 0xa3, 0x99, 0x7b, 0xca, 0xaf, 0x69, 0xa0, 0xf5 }, 1556 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xe7" 1557 + "\xa3\x99\x7b\xca\xaf\x69\xa0\xf5", 1584 1558 .rlen = 16, 1585 1559 .np = 3, 1586 1560 .tap = { 3, 12, 1 } ··· 1589 1563 1590 1564 static struct cipher_testvec des_cbc_enc_tv_template[] = { 1591 1565 { /* From OpenSSL */ 1592 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}, 1566 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1593 1567 .klen = 8, 1594 - .iv = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10}, 1595 - .input = { 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x20, 1596 - 0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74, 1597 - 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20 }, 1568 + .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1569 + .input = "\x37\x36\x35\x34\x33\x32\x31\x20" 1570 + "\x4e\x6f\x77\x20\x69\x73\x20\x74" 1571 + "\x68\x65\x20\x74\x69\x6d\x65\x20", 1598 1572 .ilen = 24, 1599 - .result = { 0xcc, 0xd1, 0x73, 0xff, 0xab, 0x20, 0x39, 0xf4, 1600 - 0xac, 0xd8, 0xae, 0xfd, 0xdf, 0xd8, 0xa1, 0xeb, 1601 - 0x46, 0x8e, 0x91, 0x15, 0x78, 0x88, 0xba, 0x68 }, 1573 + .result = "\xcc\xd1\x73\xff\xab\x20\x39\xf4" 1574 + "\xac\xd8\xae\xfd\xdf\xd8\xa1\xeb" 1575 + "\x46\x8e\x91\x15\x78\x88\xba\x68", 1602 1576 .rlen = 24, 1603 1577 }, { /* FIPS Pub 81 */ 1604 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1578 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1605 1579 .klen = 8, 1606 - .iv = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef }, 1607 - .input = { 0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74 }, 1580 + .iv = "\x12\x34\x56\x78\x90\xab\xcd\xef", 1581 + .input = "\x4e\x6f\x77\x20\x69\x73\x20\x74", 1608 1582 .ilen = 8, 1609 - .result = { 0xe5, 0xc7, 0xcd, 0xde, 0x87, 0x2b, 0xf2, 0x7c }, 1583 + .result = "\xe5\xc7\xcd\xde\x87\x2b\xf2\x7c", 1610 1584 .rlen = 8, 1611 1585 }, { 1612 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1586 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1613 1587 .klen = 8, 1614 - .iv = { 0xe5, 0xc7, 0xcd, 0xde, 0x87, 0x2b, 0xf2, 0x7c }, 1615 - .input = { 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20 }, 1588 + .iv = "\xe5\xc7\xcd\xde\x87\x2b\xf2\x7c", 1589 + .input = "\x68\x65\x20\x74\x69\x6d\x65\x20", 1616 1590 .ilen = 8, 1617 - .result = { 0x43, 0xe9, 0x34, 0x00, 0x8c, 0x38, 0x9c, 0x0f }, 1591 + .result = "\x43\xe9\x34\x00\x8c\x38\x9c\x0f", 1618 1592 .rlen = 8, 1619 1593 }, { 1620 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1594 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1621 1595 .klen = 8, 1622 - .iv = { 0x43, 0xe9, 0x34, 0x00, 0x8c, 0x38, 0x9c, 0x0f }, 1623 - .input = { 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20 }, 1596 + .iv = "\x43\xe9\x34\x00\x8c\x38\x9c\x0f", 1597 + .input = "\x66\x6f\x72\x20\x61\x6c\x6c\x20", 1624 1598 .ilen = 8, 1625 - .result = { 0x68, 0x37, 0x88, 0x49, 0x9a, 0x7c, 0x05, 0xf6 }, 1599 + .result = "\x68\x37\x88\x49\x9a\x7c\x05\xf6", 1626 1600 .rlen = 8, 1627 1601 }, { /* Copy of openssl vector for chunk testing */ 1628 1602 /* From OpenSSL */ 1629 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}, 1603 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1630 1604 .klen = 8, 1631 - .iv = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10}, 1632 - .input = { 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x20, 1633 - 0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74, 1634 - 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20 }, 1605 + .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1606 + .input = "\x37\x36\x35\x34\x33\x32\x31\x20" 1607 + "\x4e\x6f\x77\x20\x69\x73\x20\x74" 1608 + "\x68\x65\x20\x74\x69\x6d\x65\x20", 1635 1609 .ilen = 24, 1636 - .result = { 0xcc, 0xd1, 0x73, 0xff, 0xab, 0x20, 0x39, 0xf4, 1637 - 0xac, 0xd8, 0xae, 0xfd, 0xdf, 0xd8, 0xa1, 0xeb, 1638 - 0x46, 0x8e, 0x91, 0x15, 0x78, 0x88, 0xba, 0x68 }, 1610 + .result = "\xcc\xd1\x73\xff\xab\x20\x39\xf4" 1611 + "\xac\xd8\xae\xfd\xdf\xd8\xa1\xeb" 1612 + "\x46\x8e\x91\x15\x78\x88\xba\x68", 1639 1613 .rlen = 24, 1640 1614 .np = 2, 1641 1615 .tap = { 13, 11 } ··· 1644 1618 1645 1619 static struct cipher_testvec des_cbc_dec_tv_template[] = { 1646 1620 { /* FIPS Pub 81 */ 1647 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1621 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1648 1622 .klen = 8, 1649 - .iv = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef }, 1650 - .input = { 0xe5, 0xc7, 0xcd, 0xde, 0x87, 0x2b, 0xf2, 0x7c }, 1623 + .iv = "\x12\x34\x56\x78\x90\xab\xcd\xef", 1624 + .input = "\xe5\xc7\xcd\xde\x87\x2b\xf2\x7c", 1651 1625 .ilen = 8, 1652 - .result = { 0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74 }, 1626 + .result = "\x4e\x6f\x77\x20\x69\x73\x20\x74", 1653 1627 .rlen = 8, 1654 1628 }, { 1655 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1629 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1656 1630 .klen = 8, 1657 - .iv = { 0xe5, 0xc7, 0xcd, 0xde, 0x87, 0x2b, 0xf2, 0x7c }, 1658 - .input = { 0x43, 0xe9, 0x34, 0x00, 0x8c, 0x38, 0x9c, 0x0f }, 1631 + .iv = "\xe5\xc7\xcd\xde\x87\x2b\xf2\x7c", 1632 + .input = "\x43\xe9\x34\x00\x8c\x38\x9c\x0f", 1659 1633 .ilen = 8, 1660 - .result = { 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20 }, 1634 + .result = "\x68\x65\x20\x74\x69\x6d\x65\x20", 1661 1635 .rlen = 8, 1662 1636 }, { 1663 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1637 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1664 1638 .klen = 8, 1665 - .iv = { 0x43, 0xe9, 0x34, 0x00, 0x8c, 0x38, 0x9c, 0x0f }, 1666 - .input = { 0x68, 0x37, 0x88, 0x49, 0x9a, 0x7c, 0x05, 0xf6 }, 1639 + .iv = "\x43\xe9\x34\x00\x8c\x38\x9c\x0f", 1640 + .input = "\x68\x37\x88\x49\x9a\x7c\x05\xf6", 1667 1641 .ilen = 8, 1668 - .result = { 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20 }, 1642 + .result = "\x66\x6f\x72\x20\x61\x6c\x6c\x20", 1669 1643 .rlen = 8, 1670 1644 }, { /* Copy of above, for chunk testing */ 1671 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1645 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1672 1646 .klen = 8, 1673 - .iv = { 0x43, 0xe9, 0x34, 0x00, 0x8c, 0x38, 0x9c, 0x0f }, 1674 - .input = { 0x68, 0x37, 0x88, 0x49, 0x9a, 0x7c, 0x05, 0xf6 }, 1647 + .iv = "\x43\xe9\x34\x00\x8c\x38\x9c\x0f", 1648 + .input = "\x68\x37\x88\x49\x9a\x7c\x05\xf6", 1675 1649 .ilen = 8, 1676 - .result = { 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20 }, 1650 + .result = "\x66\x6f\x72\x20\x61\x6c\x6c\x20", 1677 1651 .rlen = 8, 1678 1652 .np = 2, 1679 1653 .tap = { 4, 4 } ··· 1685 1659 */ 1686 1660 static struct cipher_testvec des3_ede_enc_tv_template[] = { 1687 1661 { /* These are from openssl */ 1688 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 1689 - 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 1690 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10}, 1662 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 1663 + "\x55\x55\x55\x55\x55\x55\x55\x55" 1664 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1691 1665 .klen = 24, 1692 - .input = { 0x73, 0x6f, 0x6d, 0x65, 0x64, 0x61, 0x74, 0x61 }, 1666 + .input = "\x73\x6f\x6d\x65\x64\x61\x74\x61", 1693 1667 .ilen = 8, 1694 - .result = { 0x18, 0xd7, 0x48, 0xe5, 0x63, 0x62, 0x05, 0x72 }, 1668 + .result = "\x18\xd7\x48\xe5\x63\x62\x05\x72", 1695 1669 .rlen = 8, 1696 1670 }, { 1697 - .key = { 0x03, 0x52, 0x02, 0x07, 0x67, 0x20, 0x82, 0x17, 1698 - 0x86, 0x02, 0x87, 0x66, 0x59, 0x08, 0x21, 0x98, 1699 - 0x64, 0x05, 0x6a, 0xbd, 0xfe, 0xa9, 0x34, 0x57 }, 1671 + .key = "\x03\x52\x02\x07\x67\x20\x82\x17" 1672 + "\x86\x02\x87\x66\x59\x08\x21\x98" 1673 + "\x64\x05\x6a\xbd\xfe\xa9\x34\x57", 1700 1674 .klen = 24, 1701 - .input = { 0x73, 0x71, 0x75, 0x69, 0x67, 0x67, 0x6c, 0x65 }, 1675 + .input = "\x73\x71\x75\x69\x67\x67\x6c\x65", 1702 1676 .ilen = 8, 1703 - .result = { 0xc0, 0x7d, 0x2a, 0x0f, 0xa5, 0x66, 0xfa, 0x30 }, 1677 + .result = "\xc0\x7d\x2a\x0f\xa5\x66\xfa\x30", 1704 1678 .rlen = 8, 1705 1679 }, { 1706 - .key = { 0x10, 0x46, 0x10, 0x34, 0x89, 0x98, 0x80, 0x20, 1707 - 0x91, 0x07, 0xd0, 0x15, 0x89, 0x19, 0x01, 0x01, 1708 - 0x19, 0x07, 0x92, 0x10, 0x98, 0x1a, 0x01, 0x01 }, 1680 + .key = "\x10\x46\x10\x34\x89\x98\x80\x20" 1681 + "\x91\x07\xd0\x15\x89\x19\x01\x01" 1682 + "\x19\x07\x92\x10\x98\x1a\x01\x01", 1709 1683 .klen = 24, 1710 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 1684 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00", 1711 1685 .ilen = 8, 1712 - .result = { 0xe1, 0xef, 0x62, 0xc3, 0x32, 0xfe, 0x82, 0x5b }, 1686 + .result = "\xe1\xef\x62\xc3\x32\xfe\x82\x5b", 1713 1687 .rlen = 8, 1714 1688 }, 1715 1689 }; 1716 1690 1717 1691 static struct cipher_testvec des3_ede_dec_tv_template[] = { 1718 1692 { /* These are from openssl */ 1719 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 1720 - 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 1721 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10}, 1693 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 1694 + "\x55\x55\x55\x55\x55\x55\x55\x55" 1695 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1722 1696 .klen = 24, 1723 - .input = { 0x18, 0xd7, 0x48, 0xe5, 0x63, 0x62, 0x05, 0x72 }, 1697 + .input = "\x18\xd7\x48\xe5\x63\x62\x05\x72", 1724 1698 .ilen = 8, 1725 - .result = { 0x73, 0x6f, 0x6d, 0x65, 0x64, 0x61, 0x74, 0x61 }, 1699 + .result = "\x73\x6f\x6d\x65\x64\x61\x74\x61", 1726 1700 .rlen = 8, 1727 1701 }, { 1728 - .key = { 0x03, 0x52, 0x02, 0x07, 0x67, 0x20, 0x82, 0x17, 1729 - 0x86, 0x02, 0x87, 0x66, 0x59, 0x08, 0x21, 0x98, 1730 - 0x64, 0x05, 0x6a, 0xbd, 0xfe, 0xa9, 0x34, 0x57 }, 1702 + .key = "\x03\x52\x02\x07\x67\x20\x82\x17" 1703 + "\x86\x02\x87\x66\x59\x08\x21\x98" 1704 + "\x64\x05\x6a\xbd\xfe\xa9\x34\x57", 1731 1705 .klen = 24, 1732 - .input = { 0xc0, 0x7d, 0x2a, 0x0f, 0xa5, 0x66, 0xfa, 0x30 }, 1706 + .input = "\xc0\x7d\x2a\x0f\xa5\x66\xfa\x30", 1733 1707 .ilen = 8, 1734 - .result = { 0x73, 0x71, 0x75, 0x69, 0x67, 0x67, 0x6c, 0x65 }, 1708 + .result = "\x73\x71\x75\x69\x67\x67\x6c\x65", 1735 1709 .rlen = 8, 1736 1710 }, { 1737 - .key = { 0x10, 0x46, 0x10, 0x34, 0x89, 0x98, 0x80, 0x20, 1738 - 0x91, 0x07, 0xd0, 0x15, 0x89, 0x19, 0x01, 0x01, 1739 - 0x19, 0x07, 0x92, 0x10, 0x98, 0x1a, 0x01, 0x01 }, 1711 + .key = "\x10\x46\x10\x34\x89\x98\x80\x20" 1712 + "\x91\x07\xd0\x15\x89\x19\x01\x01" 1713 + "\x19\x07\x92\x10\x98\x1a\x01\x01", 1740 1714 .klen = 24, 1741 - .input = { 0xe1, 0xef, 0x62, 0xc3, 0x32, 0xfe, 0x82, 0x5b }, 1715 + .input = "\xe1\xef\x62\xc3\x32\xfe\x82\x5b", 1742 1716 .ilen = 8, 1743 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 1717 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00", 1744 1718 .rlen = 8, 1745 1719 }, 1746 1720 }; ··· 1755 1729 1756 1730 static struct cipher_testvec bf_enc_tv_template[] = { 1757 1731 { /* DES test vectors from OpenSSL */ 1758 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, 1732 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00", 1759 1733 .klen = 8, 1760 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 1734 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00", 1761 1735 .ilen = 8, 1762 - .result = { 0x4e, 0xf9, 0x97, 0x45, 0x61, 0x98, 0xdd, 0x78 }, 1736 + .result = "\x4e\xf9\x97\x45\x61\x98\xdd\x78", 1763 1737 .rlen = 8, 1764 1738 }, { 1765 - .key = { 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e }, 1739 + .key = "\x1f\x1f\x1f\x1f\x0e\x0e\x0e\x0e", 1766 1740 .klen = 8, 1767 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1741 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1768 1742 .ilen = 8, 1769 - .result = { 0xa7, 0x90, 0x79, 0x51, 0x08, 0xea, 0x3c, 0xae }, 1743 + .result = "\xa7\x90\x79\x51\x08\xea\x3c\xae", 1770 1744 .rlen = 8, 1771 1745 }, { 1772 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 1746 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 1773 1747 .klen = 8, 1774 - .input = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1748 + .input = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1775 1749 .ilen = 8, 1776 - .result = { 0xe8, 0x7a, 0x24, 0x4e, 0x2c, 0xc8, 0x5e, 0x82 }, 1750 + .result = "\xe8\x7a\x24\x4e\x2c\xc8\x5e\x82", 1777 1751 .rlen = 8, 1778 1752 }, { /* Vary the keylength... */ 1779 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87, 1780 - 0x78, 0x69, 0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f }, 1753 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87" 1754 + "\x78\x69\x5a\x4b\x3c\x2d\x1e\x0f", 1781 1755 .klen = 16, 1782 - .input = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1756 + .input = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1783 1757 .ilen = 8, 1784 - .result = { 0x93, 0x14, 0x28, 0x87, 0xee, 0x3b, 0xe1, 0x5c }, 1758 + .result = "\x93\x14\x28\x87\xee\x3b\xe1\x5c", 1785 1759 .rlen = 8, 1786 1760 }, { 1787 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87, 1788 - 0x78, 0x69, 0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f, 1789 - 0x00, 0x11, 0x22, 0x33, 0x44 }, 1761 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87" 1762 + "\x78\x69\x5a\x4b\x3c\x2d\x1e\x0f" 1763 + "\x00\x11\x22\x33\x44", 1790 1764 .klen = 21, 1791 - .input = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1765 + .input = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1792 1766 .ilen = 8, 1793 - .result = { 0xe6, 0xf5, 0x1e, 0xd7, 0x9b, 0x9d, 0xb2, 0x1f }, 1767 + .result = "\xe6\xf5\x1e\xd7\x9b\x9d\xb2\x1f", 1794 1768 .rlen = 8, 1795 1769 }, { /* Generated with bf488 */ 1796 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87, 1797 - 0x78, 0x69, 0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f, 1798 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 1799 - 0x04, 0x68, 0x91, 0x04, 0xc2, 0xfd, 0x3b, 0x2f, 1800 - 0x58, 0x40, 0x23, 0x64, 0x1a, 0xba, 0x61, 0x76, 1801 - 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 1802 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 1770 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87" 1771 + "\x78\x69\x5a\x4b\x3c\x2d\x1e\x0f" 1772 + "\x00\x11\x22\x33\x44\x55\x66\x77" 1773 + "\x04\x68\x91\x04\xc2\xfd\x3b\x2f" 1774 + "\x58\x40\x23\x64\x1a\xba\x61\x76" 1775 + "\x1f\x1f\x1f\x1f\x0e\x0e\x0e\x0e" 1776 + "\xff\xff\xff\xff\xff\xff\xff\xff", 1803 1777 .klen = 56, 1804 - .input = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1778 + .input = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1805 1779 .ilen = 8, 1806 - .result = { 0xc0, 0x45, 0x04, 0x01, 0x2e, 0x4e, 0x1f, 0x53 }, 1780 + .result = "\xc0\x45\x04\x01\x2e\x4e\x1f\x53", 1807 1781 .rlen = 8, 1808 1782 }, 1809 1783 }; 1810 1784 1811 1785 static struct cipher_testvec bf_dec_tv_template[] = { 1812 1786 { /* DES test vectors from OpenSSL */ 1813 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 1787 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00", 1814 1788 .klen = 8, 1815 - .input = { 0x4e, 0xf9, 0x97, 0x45, 0x61, 0x98, 0xdd, 0x78 }, 1789 + .input = "\x4e\xf9\x97\x45\x61\x98\xdd\x78", 1816 1790 .ilen = 8, 1817 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 1791 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00", 1818 1792 .rlen = 8, 1819 1793 }, { 1820 - .key = { 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e }, 1794 + .key = "\x1f\x1f\x1f\x1f\x0e\x0e\x0e\x0e", 1821 1795 .klen = 8, 1822 - .input = { 0xa7, 0x90, 0x79, 0x51, 0x08, 0xea, 0x3c, 0xae }, 1796 + .input = "\xa7\x90\x79\x51\x08\xea\x3c\xae", 1823 1797 .ilen = 8, 1824 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 1798 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xef", 1825 1799 .rlen = 8, 1826 1800 }, { 1827 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 1801 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 1828 1802 .klen = 8, 1829 - .input = { 0xe8, 0x7a, 0x24, 0x4e, 0x2c, 0xc8, 0x5e, 0x82 }, 1803 + .input = "\xe8\x7a\x24\x4e\x2c\xc8\x5e\x82", 1830 1804 .ilen = 8, 1831 - .result = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1805 + .result = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1832 1806 .rlen = 8, 1833 1807 }, { /* Vary the keylength... */ 1834 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87, 1835 - 0x78, 0x69, 0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f }, 1808 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87" 1809 + "\x78\x69\x5a\x4b\x3c\x2d\x1e\x0f", 1836 1810 .klen = 16, 1837 - .input = { 0x93, 0x14, 0x28, 0x87, 0xee, 0x3b, 0xe1, 0x5c }, 1811 + .input = "\x93\x14\x28\x87\xee\x3b\xe1\x5c", 1838 1812 .ilen = 8, 1839 - .result = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1813 + .result = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1840 1814 .rlen = 8, 1841 1815 }, { 1842 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87, 1843 - 0x78, 0x69, 0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f, 1844 - 0x00, 0x11, 0x22, 0x33, 0x44 }, 1816 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87" 1817 + "\x78\x69\x5a\x4b\x3c\x2d\x1e\x0f" 1818 + "\x00\x11\x22\x33\x44", 1845 1819 .klen = 21, 1846 - .input = { 0xe6, 0xf5, 0x1e, 0xd7, 0x9b, 0x9d, 0xb2, 0x1f }, 1820 + .input = "\xe6\xf5\x1e\xd7\x9b\x9d\xb2\x1f", 1847 1821 .ilen = 8, 1848 - .result = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1822 + .result = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1849 1823 .rlen = 8, 1850 1824 }, { /* Generated with bf488, using OpenSSL, Libgcrypt and Nettle */ 1851 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87, 1852 - 0x78, 0x69, 0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f, 1853 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 1854 - 0x04, 0x68, 0x91, 0x04, 0xc2, 0xfd, 0x3b, 0x2f, 1855 - 0x58, 0x40, 0x23, 0x64, 0x1a, 0xba, 0x61, 0x76, 1856 - 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 1857 - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, 1825 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87" 1826 + "\x78\x69\x5a\x4b\x3c\x2d\x1e\x0f" 1827 + "\x00\x11\x22\x33\x44\x55\x66\x77" 1828 + "\x04\x68\x91\x04\xc2\xfd\x3b\x2f" 1829 + "\x58\x40\x23\x64\x1a\xba\x61\x76" 1830 + "\x1f\x1f\x1f\x1f\x0e\x0e\x0e\x0e" 1831 + "\xff\xff\xff\xff\xff\xff\xff\xff", 1858 1832 .klen = 56, 1859 - .input = { 0xc0, 0x45, 0x04, 0x01, 0x2e, 0x4e, 0x1f, 0x53 }, 1833 + .input = "\xc0\x45\x04\x01\x2e\x4e\x1f\x53", 1860 1834 .ilen = 8, 1861 - .result = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1835 + .result = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1862 1836 .rlen = 8, 1863 1837 }, 1864 1838 }; 1865 1839 1866 1840 static struct cipher_testvec bf_cbc_enc_tv_template[] = { 1867 1841 { /* From OpenSSL */ 1868 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 1869 - 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 1842 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 1843 + "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 1870 1844 .klen = 16, 1871 - .iv = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1872 - .input = { 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x20, 1873 - 0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74, 1874 - 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 1875 - 0x66, 0x6f, 0x72, 0x20, 0x00, 0x00, 0x00, 0x00 }, 1845 + .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1846 + .input = "\x37\x36\x35\x34\x33\x32\x31\x20" 1847 + "\x4e\x6f\x77\x20\x69\x73\x20\x74" 1848 + "\x68\x65\x20\x74\x69\x6d\x65\x20" 1849 + "\x66\x6f\x72\x20\x00\x00\x00\x00", 1876 1850 .ilen = 32, 1877 - .result = { 0x6b, 0x77, 0xb4, 0xd6, 0x30, 0x06, 0xde, 0xe6, 1878 - 0x05, 0xb1, 0x56, 0xe2, 0x74, 0x03, 0x97, 0x93, 1879 - 0x58, 0xde, 0xb9, 0xe7, 0x15, 0x46, 0x16, 0xd9, 1880 - 0x59, 0xf1, 0x65, 0x2b, 0xd5, 0xff, 0x92, 0xcc }, 1851 + .result = "\x6b\x77\xb4\xd6\x30\x06\xde\xe6" 1852 + "\x05\xb1\x56\xe2\x74\x03\x97\x93" 1853 + "\x58\xde\xb9\xe7\x15\x46\x16\xd9" 1854 + "\x59\xf1\x65\x2b\xd5\xff\x92\xcc", 1881 1855 .rlen = 32, 1882 1856 }, 1883 1857 }; 1884 1858 1885 1859 static struct cipher_testvec bf_cbc_dec_tv_template[] = { 1886 1860 { /* From OpenSSL */ 1887 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 1888 - 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 1861 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 1862 + "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 1889 1863 .klen = 16, 1890 - .iv = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 1891 - .input = { 0x6b, 0x77, 0xb4, 0xd6, 0x30, 0x06, 0xde, 0xe6, 1892 - 0x05, 0xb1, 0x56, 0xe2, 0x74, 0x03, 0x97, 0x93, 1893 - 0x58, 0xde, 0xb9, 0xe7, 0x15, 0x46, 0x16, 0xd9, 1894 - 0x59, 0xf1, 0x65, 0x2b, 0xd5, 0xff, 0x92, 0xcc }, 1864 + .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 1865 + .input = "\x6b\x77\xb4\xd6\x30\x06\xde\xe6" 1866 + "\x05\xb1\x56\xe2\x74\x03\x97\x93" 1867 + "\x58\xde\xb9\xe7\x15\x46\x16\xd9" 1868 + "\x59\xf1\x65\x2b\xd5\xff\x92\xcc", 1895 1869 .ilen = 32, 1896 - .result = { 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x20, 1897 - 0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74, 1898 - 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 1899 - 0x66, 0x6f, 0x72, 0x20, 0x00, 0x00, 0x00, 0x00 }, 1870 + .result = "\x37\x36\x35\x34\x33\x32\x31\x20" 1871 + "\x4e\x6f\x77\x20\x69\x73\x20\x74" 1872 + "\x68\x65\x20\x74\x69\x6d\x65\x20" 1873 + "\x66\x6f\x72\x20\x00\x00\x00\x00", 1900 1874 .rlen = 32, 1901 1875 }, 1902 1876 }; ··· 1911 1885 1912 1886 static struct cipher_testvec tf_enc_tv_template[] = { 1913 1887 { 1914 - .key = { [0 ... 15] = 0x00 }, 1888 + .key = zeroed_string, 1915 1889 .klen = 16, 1916 - .input = { [0 ... 15] = 0x00 }, 1890 + .input = zeroed_string, 1917 1891 .ilen = 16, 1918 - .result = { 0x9f, 0x58, 0x9f, 0x5c, 0xf6, 0x12, 0x2c, 0x32, 1919 - 0xb6, 0xbf, 0xec, 0x2f, 0x2a, 0xe8, 0xc3, 0x5a }, 1892 + .result = "\x9f\x58\x9f\x5c\xf6\x12\x2c\x32" 1893 + "\xb6\xbf\xec\x2f\x2a\xe8\xc3\x5a", 1920 1894 .rlen = 16, 1921 1895 }, { 1922 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 1923 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 1924 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }, 1896 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 1897 + "\xfe\xdc\xba\x98\x76\x54\x32\x10" 1898 + "\x00\x11\x22\x33\x44\x55\x66\x77", 1925 1899 .klen = 24, 1926 - .input = { [0 ... 15] = 0x00 }, 1900 + .input = zeroed_string, 1927 1901 .ilen = 16, 1928 - .result = { 0xcf, 0xd1, 0xd2, 0xe5, 0xa9, 0xbe, 0x9c, 0xdf, 1929 - 0x50, 0x1f, 0x13, 0xb8, 0x92, 0xbd, 0x22, 0x48 }, 1902 + .result = "\xcf\xd1\xd2\xe5\xa9\xbe\x9c\xdf" 1903 + "\x50\x1f\x13\xb8\x92\xbd\x22\x48", 1930 1904 .rlen = 16, 1931 1905 }, { 1932 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 1933 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 1934 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 1935 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 1906 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 1907 + "\xfe\xdc\xba\x98\x76\x54\x32\x10" 1908 + "\x00\x11\x22\x33\x44\x55\x66\x77" 1909 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 1936 1910 .klen = 32, 1937 - .input = { [0 ... 15] = 0x00 }, 1911 + .input = zeroed_string, 1938 1912 .ilen = 16, 1939 - .result = { 0x37, 0x52, 0x7b, 0xe0, 0x05, 0x23, 0x34, 0xb8, 1940 - 0x9f, 0x0c, 0xfc, 0xca, 0xe8, 0x7c, 0xfa, 0x20 }, 1913 + .result = "\x37\x52\x7b\xe0\x05\x23\x34\xb8" 1914 + "\x9f\x0c\xfc\xca\xe8\x7c\xfa\x20", 1941 1915 .rlen = 16, 1942 1916 }, 1943 1917 }; 1944 1918 1945 1919 static struct cipher_testvec tf_dec_tv_template[] = { 1946 1920 { 1947 - .key = { [0 ... 15] = 0x00 }, 1921 + .key = zeroed_string, 1948 1922 .klen = 16, 1949 - .input = { 0x9f, 0x58, 0x9f, 0x5c, 0xf6, 0x12, 0x2c, 0x32, 1950 - 0xb6, 0xbf, 0xec, 0x2f, 0x2a, 0xe8, 0xc3, 0x5a }, 1923 + .input = "\x9f\x58\x9f\x5c\xf6\x12\x2c\x32" 1924 + "\xb6\xbf\xec\x2f\x2a\xe8\xc3\x5a", 1951 1925 .ilen = 16, 1952 - .result = { [0 ... 15] = 0x00 }, 1926 + .result = zeroed_string, 1953 1927 .rlen = 16, 1954 1928 }, { 1955 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 1956 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 1957 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }, 1929 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 1930 + "\xfe\xdc\xba\x98\x76\x54\x32\x10" 1931 + "\x00\x11\x22\x33\x44\x55\x66\x77", 1958 1932 .klen = 24, 1959 - .input = { 0xcf, 0xd1, 0xd2, 0xe5, 0xa9, 0xbe, 0x9c, 0xdf, 1960 - 0x50, 0x1f, 0x13, 0xb8, 0x92, 0xbd, 0x22, 0x48 }, 1933 + .input = "\xcf\xd1\xd2\xe5\xa9\xbe\x9c\xdf" 1934 + "\x50\x1f\x13\xb8\x92\xbd\x22\x48", 1961 1935 .ilen = 16, 1962 - .result = { [0 ... 15] = 0x00 }, 1936 + .result = zeroed_string, 1963 1937 .rlen = 16, 1964 1938 }, { 1965 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 1966 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 1967 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 1968 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 1939 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 1940 + "\xfe\xdc\xba\x98\x76\x54\x32\x10" 1941 + "\x00\x11\x22\x33\x44\x55\x66\x77" 1942 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 1969 1943 .klen = 32, 1970 - .input = { 0x37, 0x52, 0x7b, 0xe0, 0x05, 0x23, 0x34, 0xb8, 1971 - 0x9f, 0x0c, 0xfc, 0xca, 0xe8, 0x7c, 0xfa, 0x20 }, 1944 + .input = "\x37\x52\x7b\xe0\x05\x23\x34\xb8" 1945 + "\x9f\x0c\xfc\xca\xe8\x7c\xfa\x20", 1972 1946 .ilen = 16, 1973 - .result = { [0 ... 15] = 0x00 }, 1947 + .result = zeroed_string, 1974 1948 .rlen = 16, 1975 1949 }, 1976 1950 }; 1977 1951 1978 1952 static struct cipher_testvec tf_cbc_enc_tv_template[] = { 1979 1953 { /* Generated with Nettle */ 1980 - .key = { [0 ... 15] = 0x00 }, 1954 + .key = zeroed_string, 1981 1955 .klen = 16, 1982 - .iv = { [0 ... 15] = 0x00 }, 1983 - .input = { [0 ... 15] = 0x00 }, 1956 + .iv = zeroed_string, 1957 + .input = zeroed_string, 1984 1958 .ilen = 16, 1985 - .result = { 0x9f, 0x58, 0x9f, 0x5c, 0xf6, 0x12, 0x2c, 0x32, 1986 - 0xb6, 0xbf, 0xec, 0x2f, 0x2a, 0xe8, 0xc3, 0x5a }, 1959 + .result = "\x9f\x58\x9f\x5c\xf6\x12\x2c\x32" 1960 + "\xb6\xbf\xec\x2f\x2a\xe8\xc3\x5a", 1987 1961 .rlen = 16, 1988 1962 }, { 1989 - .key = { [0 ... 15] = 0x00 }, 1963 + .key = zeroed_string, 1990 1964 .klen = 16, 1991 - .iv = { 0x9f, 0x58, 0x9f, 0x5c, 0xf6, 0x12, 0x2c, 0x32, 1992 - 0xb6, 0xbf, 0xec, 0x2f, 0x2a, 0xe8, 0xc3, 0x5a }, 1993 - .input = { [0 ... 15] = 0x00 }, 1965 + .iv = "\x9f\x58\x9f\x5c\xf6\x12\x2c\x32" 1966 + "\xb6\xbf\xec\x2f\x2a\xe8\xc3\x5a", 1967 + .input = zeroed_string, 1994 1968 .ilen = 16, 1995 - .result = { 0xd4, 0x91, 0xdb, 0x16, 0xe7, 0xb1, 0xc3, 0x9e, 1996 - 0x86, 0xcb, 0x08, 0x6b, 0x78, 0x9f, 0x54, 0x19 }, 1969 + .result = "\xd4\x91\xdb\x16\xe7\xb1\xc3\x9e" 1970 + "\x86\xcb\x08\x6b\x78\x9f\x54\x19", 1997 1971 .rlen = 16, 1998 1972 }, { 1999 - .key = { [0 ... 15] = 0x00 }, 1973 + .key = zeroed_string, 2000 1974 .klen = 16, 2001 - .iv = { 0xd4, 0x91, 0xdb, 0x16, 0xe7, 0xb1, 0xc3, 0x9e, 2002 - 0x86, 0xcb, 0x08, 0x6b, 0x78, 0x9f, 0x54, 0x19 }, 2003 - .input = { [0 ... 15] = 0x00 }, 1975 + .iv = "\xd4\x91\xdb\x16\xe7\xb1\xc3\x9e" 1976 + "\x86\xcb\x08\x6b\x78\x9f\x54\x19", 1977 + .input = zeroed_string, 2004 1978 .ilen = 16, 2005 - .result = { 0x05, 0xef, 0x8c, 0x61, 0xa8, 0x11, 0x58, 0x26, 2006 - 0x34, 0xba, 0x5c, 0xb7, 0x10, 0x6a, 0xa6, 0x41 }, 1979 + .result = "\x05\xef\x8c\x61\xa8\x11\x58\x26" 1980 + "\x34\xba\x5c\xb7\x10\x6a\xa6\x41", 2007 1981 .rlen = 16, 2008 1982 }, { 2009 - .key = { [0 ... 15] = 0x00 }, 1983 + .key = zeroed_string, 2010 1984 .klen = 16, 2011 - .iv = { [0 ... 15] = 0x00 }, 2012 - .input = { [0 ... 47] = 0x00 }, 1985 + .iv = zeroed_string, 1986 + .input = zeroed_string, 2013 1987 .ilen = 48, 2014 - .result = { 0x9f, 0x58, 0x9f, 0x5c, 0xf6, 0x12, 0x2c, 0x32, 2015 - 0xb6, 0xbf, 0xec, 0x2f, 0x2a, 0xe8, 0xc3, 0x5a, 2016 - 0xd4, 0x91, 0xdb, 0x16, 0xe7, 0xb1, 0xc3, 0x9e, 2017 - 0x86, 0xcb, 0x08, 0x6b, 0x78, 0x9f, 0x54, 0x19, 2018 - 0x05, 0xef, 0x8c, 0x61, 0xa8, 0x11, 0x58, 0x26, 2019 - 0x34, 0xba, 0x5c, 0xb7, 0x10, 0x6a, 0xa6, 0x41 }, 1988 + .result = "\x9f\x58\x9f\x5c\xf6\x12\x2c\x32" 1989 + "\xb6\xbf\xec\x2f\x2a\xe8\xc3\x5a" 1990 + "\xd4\x91\xdb\x16\xe7\xb1\xc3\x9e" 1991 + "\x86\xcb\x08\x6b\x78\x9f\x54\x19" 1992 + "\x05\xef\x8c\x61\xa8\x11\x58\x26" 1993 + "\x34\xba\x5c\xb7\x10\x6a\xa6\x41", 2020 1994 .rlen = 48, 2021 1995 }, 2022 1996 }; 2023 1997 2024 1998 static struct cipher_testvec tf_cbc_dec_tv_template[] = { 2025 1999 { /* Reverse of the first four above */ 2026 - .key = { [0 ... 15] = 0x00 }, 2000 + .key = zeroed_string, 2027 2001 .klen = 16, 2028 - .iv = { [0 ... 15] = 0x00 }, 2029 - .input = { 0x9f, 0x58, 0x9f, 0x5c, 0xf6, 0x12, 0x2c, 0x32, 2030 - 0xb6, 0xbf, 0xec, 0x2f, 0x2a, 0xe8, 0xc3, 0x5a }, 2002 + .iv = zeroed_string, 2003 + .input = "\x9f\x58\x9f\x5c\xf6\x12\x2c\x32" 2004 + "\xb6\xbf\xec\x2f\x2a\xe8\xc3\x5a", 2031 2005 .ilen = 16, 2032 - .result = { [0 ... 15] = 0x00 }, 2006 + .result = zeroed_string, 2033 2007 .rlen = 16, 2034 2008 }, { 2035 - .key = { [0 ... 15] = 0x00 }, 2009 + .key = zeroed_string, 2036 2010 .klen = 16, 2037 - .iv = { 0x9f, 0x58, 0x9f, 0x5c, 0xf6, 0x12, 0x2c, 0x32, 2038 - 0xb6, 0xbf, 0xec, 0x2f, 0x2a, 0xe8, 0xc3, 0x5a }, 2039 - .input = { 0xd4, 0x91, 0xdb, 0x16, 0xe7, 0xb1, 0xc3, 0x9e, 2040 - 0x86, 0xcb, 0x08, 0x6b, 0x78, 0x9f, 0x54, 0x19 }, 2011 + .iv = "\x9f\x58\x9f\x5c\xf6\x12\x2c\x32" 2012 + "\xb6\xbf\xec\x2f\x2a\xe8\xc3\x5a", 2013 + .input = "\xd4\x91\xdb\x16\xe7\xb1\xc3\x9e" 2014 + "\x86\xcb\x08\x6b\x78\x9f\x54\x19", 2041 2015 .ilen = 16, 2042 - .result = { [0 ... 15] = 0x00 }, 2016 + .result = zeroed_string, 2043 2017 .rlen = 16, 2044 2018 }, { 2045 - .key = { [0 ... 15] = 0x00 }, 2019 + .key = zeroed_string, 2046 2020 .klen = 16, 2047 - .iv = { 0xd4, 0x91, 0xdb, 0x16, 0xe7, 0xb1, 0xc3, 0x9e, 2048 - 0x86, 0xcb, 0x08, 0x6b, 0x78, 0x9f, 0x54, 0x19 }, 2049 - .input = { 0x05, 0xef, 0x8c, 0x61, 0xa8, 0x11, 0x58, 0x26, 2050 - 0x34, 0xba, 0x5c, 0xb7, 0x10, 0x6a, 0xa6, 0x41 }, 2021 + .iv = "\xd4\x91\xdb\x16\xe7\xb1\xc3\x9e" 2022 + "\x86\xcb\x08\x6b\x78\x9f\x54\x19", 2023 + .input = "\x05\xef\x8c\x61\xa8\x11\x58\x26" 2024 + "\x34\xba\x5c\xb7\x10\x6a\xa6\x41", 2051 2025 .ilen = 16, 2052 - .result = { [0 ... 15] = 0x00 }, 2026 + .result = zeroed_string, 2053 2027 .rlen = 16, 2054 2028 }, { 2055 - .key = { [0 ... 15] = 0x00 }, 2029 + .key = zeroed_string, 2056 2030 .klen = 16, 2057 - .iv = { [0 ... 15] = 0x00 }, 2058 - .input = { 0x9f, 0x58, 0x9f, 0x5c, 0xf6, 0x12, 0x2c, 0x32, 2059 - 0xb6, 0xbf, 0xec, 0x2f, 0x2a, 0xe8, 0xc3, 0x5a, 2060 - 0xd4, 0x91, 0xdb, 0x16, 0xe7, 0xb1, 0xc3, 0x9e, 2061 - 0x86, 0xcb, 0x08, 0x6b, 0x78, 0x9f, 0x54, 0x19, 2062 - 0x05, 0xef, 0x8c, 0x61, 0xa8, 0x11, 0x58, 0x26, 2063 - 0x34, 0xba, 0x5c, 0xb7, 0x10, 0x6a, 0xa6, 0x41 }, 2031 + .iv = zeroed_string, 2032 + .input = "\x9f\x58\x9f\x5c\xf6\x12\x2c\x32" 2033 + "\xb6\xbf\xec\x2f\x2a\xe8\xc3\x5a" 2034 + "\xd4\x91\xdb\x16\xe7\xb1\xc3\x9e" 2035 + "\x86\xcb\x08\x6b\x78\x9f\x54\x19" 2036 + "\x05\xef\x8c\x61\xa8\x11\x58\x26" 2037 + "\x34\xba\x5c\xb7\x10\x6a\xa6\x41", 2064 2038 .ilen = 48, 2065 - .result = { [0 ... 47] = 0x00 }, 2039 + .result = zeroed_string, 2066 2040 .rlen = 48, 2067 2041 }, 2068 2042 }; ··· 2079 2053 2080 2054 static struct cipher_testvec serpent_enc_tv_template[] = { 2081 2055 { 2082 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2083 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2056 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 2057 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2084 2058 .ilen = 16, 2085 - .result = { 0x12, 0x07, 0xfc, 0xce, 0x9b, 0xd0, 0xd6, 0x47, 2086 - 0x6a, 0xe9, 0x8f, 0xbe, 0xd1, 0x43, 0xa0, 0xe2 }, 2059 + .result = "\x12\x07\xfc\xce\x9b\xd0\xd6\x47" 2060 + "\x6a\xe9\x8f\xbe\xd1\x43\xa0\xe2", 2087 2061 .rlen = 16, 2088 2062 }, { 2089 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2090 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2063 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2064 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2091 2065 .klen = 16, 2092 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2093 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2066 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 2067 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2094 2068 .ilen = 16, 2095 - .result = { 0x4c, 0x7d, 0x8a, 0x32, 0x80, 0x72, 0xa2, 0x2c, 2096 - 0x82, 0x3e, 0x4a, 0x1f, 0x3a, 0xcd, 0xa1, 0x6d }, 2069 + .result = "\x4c\x7d\x8a\x32\x80\x72\xa2\x2c" 2070 + "\x82\x3e\x4a\x1f\x3a\xcd\xa1\x6d", 2097 2071 .rlen = 16, 2098 2072 }, { 2099 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2100 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2101 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 2102 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 2073 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2074 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2075 + "\x10\x11\x12\x13\x14\x15\x16\x17" 2076 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 2103 2077 .klen = 32, 2104 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2105 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2078 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 2079 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2106 2080 .ilen = 16, 2107 - .result = { 0xde, 0x26, 0x9f, 0xf8, 0x33, 0xe4, 0x32, 0xb8, 2108 - 0x5b, 0x2e, 0x88, 0xd2, 0x70, 0x1c, 0xe7, 0x5c }, 2081 + .result = "\xde\x26\x9f\xf8\x33\xe4\x32\xb8" 2082 + "\x5b\x2e\x88\xd2\x70\x1c\xe7\x5c", 2109 2083 .rlen = 16, 2110 2084 }, { 2111 - .key = { [15] = 0x80 }, 2085 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", 2112 2086 .klen = 16, 2113 - .input = { [0 ... 15] = 0x00 }, 2087 + .input = zeroed_string, 2114 2088 .ilen = 16, 2115 - .result = { 0xdd, 0xd2, 0x6b, 0x98, 0xa5, 0xff, 0xd8, 0x2c, 2116 - 0x05, 0x34, 0x5a, 0x9d, 0xad, 0xbf, 0xaf, 0x49}, 2089 + .result = "\xdd\xd2\x6b\x98\xa5\xff\xd8\x2c" 2090 + "\x05\x34\x5a\x9d\xad\xbf\xaf\x49", 2117 2091 .rlen = 16, 2118 2092 }, 2119 2093 }; 2120 2094 2121 2095 static struct cipher_testvec tnepres_enc_tv_template[] = { 2122 2096 { /* KeySize=128, PT=0, I=1 */ 2123 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2124 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2125 - .key = { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2126 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2097 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 2098 + "\x00\x00\x00\x00\x00\x00\x00\x00", 2099 + .key = "\x80\x00\x00\x00\x00\x00\x00\x00" 2100 + "\x00\x00\x00\x00\x00\x00\x00\x00", 2127 2101 .klen = 16, 2128 2102 .ilen = 16, 2129 - .result = { 0x49, 0xaf, 0xbf, 0xad, 0x9d, 0x5a, 0x34, 0x05, 2130 - 0x2c, 0xd8, 0xff, 0xa5, 0x98, 0x6b, 0xd2, 0xdd }, 2103 + .result = "\x49\xaf\xbf\xad\x9d\x5a\x34\x05" 2104 + "\x2c\xd8\xff\xa5\x98\x6b\xd2\xdd", 2131 2105 .rlen = 16, 2132 2106 }, { /* KeySize=192, PT=0, I=1 */ 2133 - .key = { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2134 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2135 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2107 + .key = "\x80\x00\x00\x00\x00\x00\x00\x00" 2108 + "\x00\x00\x00\x00\x00\x00\x00\x00" 2109 + "\x00\x00\x00\x00\x00\x00\x00\x00", 2136 2110 .klen = 24, 2137 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2138 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2111 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 2112 + "\x00\x00\x00\x00\x00\x00\x00\x00", 2139 2113 .ilen = 16, 2140 - .result = { 0xe7, 0x8e, 0x54, 0x02, 0xc7, 0x19, 0x55, 0x68, 2141 - 0xac, 0x36, 0x78, 0xf7, 0xa3, 0xf6, 0x0c, 0x66 }, 2114 + .result = "\xe7\x8e\x54\x02\xc7\x19\x55\x68" 2115 + "\xac\x36\x78\xf7\xa3\xf6\x0c\x66", 2142 2116 .rlen = 16, 2143 2117 }, { /* KeySize=256, PT=0, I=1 */ 2144 - .key = { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2145 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2146 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2147 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2118 + .key = "\x80\x00\x00\x00\x00\x00\x00\x00" 2119 + "\x00\x00\x00\x00\x00\x00\x00\x00" 2120 + "\x00\x00\x00\x00\x00\x00\x00\x00" 2121 + "\x00\x00\x00\x00\x00\x00\x00\x00", 2148 2122 .klen = 32, 2149 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2150 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 2123 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 2124 + "\x00\x00\x00\x00\x00\x00\x00\x00", 2151 2125 .ilen = 16, 2152 - .result = { 0xab, 0xed, 0x96, 0xe7, 0x66, 0xbf, 0x28, 0xcb, 2153 - 0xc0, 0xeb, 0xd2, 0x1a, 0x82, 0xef, 0x08, 0x19 }, 2126 + .result = "\xab\xed\x96\xe7\x66\xbf\x28\xcb" 2127 + "\xc0\xeb\xd2\x1a\x82\xef\x08\x19", 2154 2128 .rlen = 16, 2155 2129 }, { /* KeySize=256, I=257 */ 2156 - .key = { 0x1f, 0x1e, 0x1d, 0x1c, 0x1b, 0x1a, 0x19, 0x18, 2157 - 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 2158 - 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, 2159 - 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00 }, 2130 + .key = "\x1f\x1e\x1d\x1c\x1b\x1a\x19\x18" 2131 + "\x17\x16\x15\x14\x13\x12\x11\x10" 2132 + "\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08" 2133 + "\x07\x06\x05\x04\x03\x02\x01\x00", 2160 2134 .klen = 32, 2161 - .input = { 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, 2162 - 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00 }, 2135 + .input = "\x0f\x0e\x0d\x0c\x0b\x0a\x09\x08" 2136 + "\x07\x06\x05\x04\x03\x02\x01\x00", 2163 2137 .ilen = 16, 2164 - .result = { 0x5c, 0xe7, 0x1c, 0x70, 0xd2, 0x88, 0x2e, 0x5b, 2165 - 0xb8, 0x32, 0xe4, 0x33, 0xf8, 0x9f, 0x26, 0xde }, 2138 + .result = "\x5c\xe7\x1c\x70\xd2\x88\x2e\x5b" 2139 + "\xb8\x32\xe4\x33\xf8\x9f\x26\xde", 2166 2140 .rlen = 16, 2167 2141 }, 2168 2142 }; ··· 2170 2144 2171 2145 static struct cipher_testvec serpent_dec_tv_template[] = { 2172 2146 { 2173 - .input = { 0x12, 0x07, 0xfc, 0xce, 0x9b, 0xd0, 0xd6, 0x47, 2174 - 0x6a, 0xe9, 0x8f, 0xbe, 0xd1, 0x43, 0xa0, 0xe2 }, 2147 + .input = "\x12\x07\xfc\xce\x9b\xd0\xd6\x47" 2148 + "\x6a\xe9\x8f\xbe\xd1\x43\xa0\xe2", 2175 2149 .ilen = 16, 2176 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2177 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2150 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 2151 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2178 2152 .rlen = 16, 2179 2153 }, { 2180 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2181 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2154 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2155 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2182 2156 .klen = 16, 2183 - .input = { 0x4c, 0x7d, 0x8a, 0x32, 0x80, 0x72, 0xa2, 0x2c, 2184 - 0x82, 0x3e, 0x4a, 0x1f, 0x3a, 0xcd, 0xa1, 0x6d }, 2157 + .input = "\x4c\x7d\x8a\x32\x80\x72\xa2\x2c" 2158 + "\x82\x3e\x4a\x1f\x3a\xcd\xa1\x6d", 2185 2159 .ilen = 16, 2186 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2187 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2160 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 2161 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2188 2162 .rlen = 16, 2189 2163 }, { 2190 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2191 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2192 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 2193 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 2164 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2165 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2166 + "\x10\x11\x12\x13\x14\x15\x16\x17" 2167 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 2194 2168 .klen = 32, 2195 - .input = { 0xde, 0x26, 0x9f, 0xf8, 0x33, 0xe4, 0x32, 0xb8, 2196 - 0x5b, 0x2e, 0x88, 0xd2, 0x70, 0x1c, 0xe7, 0x5c }, 2169 + .input = "\xde\x26\x9f\xf8\x33\xe4\x32\xb8" 2170 + "\x5b\x2e\x88\xd2\x70\x1c\xe7\x5c", 2197 2171 .ilen = 16, 2198 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2199 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2172 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 2173 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2200 2174 .rlen = 16, 2201 2175 }, { 2202 - .key = { [15] = 0x80 }, 2176 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", 2203 2177 .klen = 16, 2204 - .input = { 0xdd, 0xd2, 0x6b, 0x98, 0xa5, 0xff, 0xd8, 0x2c, 2205 - 0x05, 0x34, 0x5a, 0x9d, 0xad, 0xbf, 0xaf, 0x49}, 2178 + .input = "\xdd\xd2\x6b\x98\xa5\xff\xd8\x2c" 2179 + "\x05\x34\x5a\x9d\xad\xbf\xaf\x49", 2206 2180 .ilen = 16, 2207 - .result = { [0 ... 15] = 0x00 }, 2181 + .result = zeroed_string, 2208 2182 .rlen = 16, 2209 2183 }, 2210 2184 }; 2211 2185 2212 2186 static struct cipher_testvec tnepres_dec_tv_template[] = { 2213 2187 { 2214 - .input = { 0x41, 0xcc, 0x6b, 0x31, 0x59, 0x31, 0x45, 0x97, 2215 - 0x6d, 0x6f, 0xbb, 0x38, 0x4b, 0x37, 0x21, 0x28 }, 2188 + .input = "\x41\xcc\x6b\x31\x59\x31\x45\x97" 2189 + "\x6d\x6f\xbb\x38\x4b\x37\x21\x28", 2216 2190 .ilen = 16, 2217 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2218 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2191 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 2192 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2219 2193 .rlen = 16, 2220 2194 }, { 2221 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2222 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2195 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2196 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2223 2197 .klen = 16, 2224 - .input = { 0xea, 0xf4, 0xd7, 0xfc, 0xd8, 0x01, 0x34, 0x47, 2225 - 0x81, 0x45, 0x0b, 0xfa, 0x0c, 0xd6, 0xad, 0x6e }, 2198 + .input = "\xea\xf4\xd7\xfc\xd8\x01\x34\x47" 2199 + "\x81\x45\x0b\xfa\x0c\xd6\xad\x6e", 2226 2200 .ilen = 16, 2227 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2228 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2201 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 2202 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2229 2203 .rlen = 16, 2230 2204 }, { 2231 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2232 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2233 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 2234 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 2205 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2206 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2207 + "\x10\x11\x12\x13\x14\x15\x16\x17" 2208 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 2235 2209 .klen = 32, 2236 - .input = { 0x64, 0xa9, 0x1a, 0x37, 0xed, 0x9f, 0xe7, 0x49, 2237 - 0xa8, 0x4e, 0x76, 0xd6, 0xf5, 0x0d, 0x78, 0xee }, 2210 + .input = "\x64\xa9\x1a\x37\xed\x9f\xe7\x49" 2211 + "\xa8\x4e\x76\xd6\xf5\x0d\x78\xee", 2238 2212 .ilen = 16, 2239 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2240 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2213 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 2214 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2241 2215 .rlen = 16, 2242 2216 }, { /* KeySize=128, I=121 */ 2243 - .key = { [15] = 0x80 }, 2217 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", 2244 2218 .klen = 16, 2245 - .input = { 0x3d, 0xda, 0xbf, 0xc0, 0x06, 0xda, 0xab, 0x06, 2246 - 0x46, 0x2a, 0xf4, 0xef, 0x81, 0x54, 0x4e, 0x26 }, 2219 + .input = "\x3d\xda\xbf\xc0\x06\xda\xab\x06" 2220 + "\x46\x2a\xf4\xef\x81\x54\x4e\x26", 2247 2221 .ilen = 16, 2248 - .result = { [0 ... 15] = 0x00 }, 2222 + .result = zeroed_string, 2249 2223 .rlen = 16, 2250 2224 }, 2251 2225 }; ··· 2257 2231 2258 2232 static struct cipher_testvec cast6_enc_tv_template[] = { 2259 2233 { 2260 - .key = { 0x23, 0x42, 0xbb, 0x9e, 0xfa, 0x38, 0x54, 0x2c, 2261 - 0x0a, 0xf7, 0x56, 0x47, 0xf2, 0x9f, 0x61, 0x5d }, 2234 + .key = "\x23\x42\xbb\x9e\xfa\x38\x54\x2c" 2235 + "\x0a\xf7\x56\x47\xf2\x9f\x61\x5d", 2262 2236 .klen = 16, 2263 - .input = { [0 ... 15] = 0x00 }, 2237 + .input = zeroed_string, 2264 2238 .ilen = 16, 2265 - .result = { 0xc8, 0x42, 0xa0, 0x89, 0x72, 0xb4, 0x3d, 0x20, 2266 - 0x83, 0x6c, 0x91, 0xd1, 0xb7, 0x53, 0x0f, 0x6b }, 2239 + .result = "\xc8\x42\xa0\x89\x72\xb4\x3d\x20" 2240 + "\x83\x6c\x91\xd1\xb7\x53\x0f\x6b", 2267 2241 .rlen = 16, 2268 2242 }, { 2269 - .key = { 0x23, 0x42, 0xbb, 0x9e, 0xfa, 0x38, 0x54, 0x2c, 2270 - 0xbe, 0xd0, 0xac, 0x83, 0x94, 0x0a, 0xc2, 0x98, 2271 - 0xba, 0xc7, 0x7a, 0x77, 0x17, 0x94, 0x28, 0x63 }, 2243 + .key = "\x23\x42\xbb\x9e\xfa\x38\x54\x2c" 2244 + "\xbe\xd0\xac\x83\x94\x0a\xc2\x98" 2245 + "\xba\xc7\x7a\x77\x17\x94\x28\x63", 2272 2246 .klen = 24, 2273 - .input = { [0 ... 15] = 0x00 }, 2247 + .input = zeroed_string, 2274 2248 .ilen = 16, 2275 - .result = { 0x1b, 0x38, 0x6c, 0x02, 0x10, 0xdc, 0xad, 0xcb, 2276 - 0xdd, 0x0e, 0x41, 0xaa, 0x08, 0xa7, 0xa7, 0xe8 }, 2249 + .result = "\x1b\x38\x6c\x02\x10\xdc\xad\xcb" 2250 + "\xdd\x0e\x41\xaa\x08\xa7\xa7\xe8", 2277 2251 .rlen = 16, 2278 2252 }, { 2279 - .key = { 0x23, 0x42, 0xbb, 0x9e, 0xfa, 0x38, 0x54, 0x2c, 2280 - 0xbe, 0xd0, 0xac, 0x83, 0x94, 0x0a, 0xc2, 0x98, 2281 - 0x8d, 0x7c, 0x47, 0xce, 0x26, 0x49, 0x08, 0x46, 2282 - 0x1c, 0xc1, 0xb5, 0x13, 0x7a, 0xe6, 0xb6, 0x04 }, 2253 + .key = "\x23\x42\xbb\x9e\xfa\x38\x54\x2c" 2254 + "\xbe\xd0\xac\x83\x94\x0a\xc2\x98" 2255 + "\x8d\x7c\x47\xce\x26\x49\x08\x46" 2256 + "\x1c\xc1\xb5\x13\x7a\xe6\xb6\x04", 2283 2257 .klen = 32, 2284 - .input = { [0 ... 15] = 0x00 }, 2258 + .input = zeroed_string, 2285 2259 .ilen = 16, 2286 - .result = { 0x4f, 0x6a, 0x20, 0x38, 0x28, 0x68, 0x97, 0xb9, 2287 - 0xc9, 0x87, 0x01, 0x36, 0x55, 0x33, 0x17, 0xfa }, 2260 + .result = "\x4f\x6a\x20\x38\x28\x68\x97\xb9" 2261 + "\xc9\x87\x01\x36\x55\x33\x17\xfa", 2288 2262 .rlen = 16, 2289 2263 }, 2290 2264 }; 2291 2265 2292 2266 static struct cipher_testvec cast6_dec_tv_template[] = { 2293 2267 { 2294 - .key = { 0x23, 0x42, 0xbb, 0x9e, 0xfa, 0x38, 0x54, 0x2c, 2295 - 0x0a, 0xf7, 0x56, 0x47, 0xf2, 0x9f, 0x61, 0x5d }, 2268 + .key = "\x23\x42\xbb\x9e\xfa\x38\x54\x2c" 2269 + "\x0a\xf7\x56\x47\xf2\x9f\x61\x5d", 2296 2270 .klen = 16, 2297 - .input = { 0xc8, 0x42, 0xa0, 0x89, 0x72, 0xb4, 0x3d, 0x20, 2298 - 0x83, 0x6c, 0x91, 0xd1, 0xb7, 0x53, 0x0f, 0x6b }, 2271 + .input = "\xc8\x42\xa0\x89\x72\xb4\x3d\x20" 2272 + "\x83\x6c\x91\xd1\xb7\x53\x0f\x6b", 2299 2273 .ilen = 16, 2300 - .result = { [0 ... 15] = 0x00 }, 2274 + .result = zeroed_string, 2301 2275 .rlen = 16, 2302 2276 }, { 2303 - .key = { 0x23, 0x42, 0xbb, 0x9e, 0xfa, 0x38, 0x54, 0x2c, 2304 - 0xbe, 0xd0, 0xac, 0x83, 0x94, 0x0a, 0xc2, 0x98, 2305 - 0xba, 0xc7, 0x7a, 0x77, 0x17, 0x94, 0x28, 0x63 }, 2277 + .key = "\x23\x42\xbb\x9e\xfa\x38\x54\x2c" 2278 + "\xbe\xd0\xac\x83\x94\x0a\xc2\x98" 2279 + "\xba\xc7\x7a\x77\x17\x94\x28\x63", 2306 2280 .klen = 24, 2307 - .input = { 0x1b, 0x38, 0x6c, 0x02, 0x10, 0xdc, 0xad, 0xcb, 2308 - 0xdd, 0x0e, 0x41, 0xaa, 0x08, 0xa7, 0xa7, 0xe8 }, 2281 + .input = "\x1b\x38\x6c\x02\x10\xdc\xad\xcb" 2282 + "\xdd\x0e\x41\xaa\x08\xa7\xa7\xe8", 2309 2283 .ilen = 16, 2310 - .result = { [0 ... 15] = 0x00 }, 2284 + .result = zeroed_string, 2311 2285 .rlen = 16, 2312 2286 }, { 2313 - .key = { 0x23, 0x42, 0xbb, 0x9e, 0xfa, 0x38, 0x54, 0x2c, 2314 - 0xbe, 0xd0, 0xac, 0x83, 0x94, 0x0a, 0xc2, 0x98, 2315 - 0x8d, 0x7c, 0x47, 0xce, 0x26, 0x49, 0x08, 0x46, 2316 - 0x1c, 0xc1, 0xb5, 0x13, 0x7a, 0xe6, 0xb6, 0x04 }, 2287 + .key = "\x23\x42\xbb\x9e\xfa\x38\x54\x2c" 2288 + "\xbe\xd0\xac\x83\x94\x0a\xc2\x98" 2289 + "\x8d\x7c\x47\xce\x26\x49\x08\x46" 2290 + "\x1c\xc1\xb5\x13\x7a\xe6\xb6\x04", 2317 2291 .klen = 32, 2318 - .input = { 0x4f, 0x6a, 0x20, 0x38, 0x28, 0x68, 0x97, 0xb9, 2319 - 0xc9, 0x87, 0x01, 0x36, 0x55, 0x33, 0x17, 0xfa }, 2292 + .input = "\x4f\x6a\x20\x38\x28\x68\x97\xb9" 2293 + "\xc9\x87\x01\x36\x55\x33\x17\xfa", 2320 2294 .ilen = 16, 2321 - .result = { [0 ... 15] = 0x00 }, 2295 + .result = zeroed_string, 2322 2296 .rlen = 16, 2323 2297 }, 2324 2298 }; ··· 2344 2318 2345 2319 static struct cipher_testvec aes_enc_tv_template[] = { 2346 2320 { /* From FIPS-197 */ 2347 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2348 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2321 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2322 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2349 2323 .klen = 16, 2350 - .input = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 2351 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 2324 + .input = "\x00\x11\x22\x33\x44\x55\x66\x77" 2325 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 2352 2326 .ilen = 16, 2353 - .result = { 0x69, 0xc4, 0xe0, 0xd8, 0x6a, 0x7b, 0x04, 0x30, 2354 - 0xd8, 0xcd, 0xb7, 0x80, 0x70, 0xb4, 0xc5, 0x5a }, 2327 + .result = "\x69\xc4\xe0\xd8\x6a\x7b\x04\x30" 2328 + "\xd8\xcd\xb7\x80\x70\xb4\xc5\x5a", 2355 2329 .rlen = 16, 2356 2330 }, { 2357 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2358 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2359 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 }, 2331 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2332 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2333 + "\x10\x11\x12\x13\x14\x15\x16\x17", 2360 2334 .klen = 24, 2361 - .input = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 2362 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 2335 + .input = "\x00\x11\x22\x33\x44\x55\x66\x77" 2336 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 2363 2337 .ilen = 16, 2364 - .result = { 0xdd, 0xa9, 0x7c, 0xa4, 0x86, 0x4c, 0xdf, 0xe0, 2365 - 0x6e, 0xaf, 0x70, 0xa0, 0xec, 0x0d, 0x71, 0x91 }, 2338 + .result = "\xdd\xa9\x7c\xa4\x86\x4c\xdf\xe0" 2339 + "\x6e\xaf\x70\xa0\xec\x0d\x71\x91", 2366 2340 .rlen = 16, 2367 2341 }, { 2368 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2369 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2370 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 2371 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 2342 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2343 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2344 + "\x10\x11\x12\x13\x14\x15\x16\x17" 2345 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 2372 2346 .klen = 32, 2373 - .input = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 2374 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 2347 + .input = "\x00\x11\x22\x33\x44\x55\x66\x77" 2348 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 2375 2349 .ilen = 16, 2376 - .result = { 0x8e, 0xa2, 0xb7, 0xca, 0x51, 0x67, 0x45, 0xbf, 2377 - 0xea, 0xfc, 0x49, 0x90, 0x4b, 0x49, 0x60, 0x89 }, 2350 + .result = "\x8e\xa2\xb7\xca\x51\x67\x45\xbf" 2351 + "\xea\xfc\x49\x90\x4b\x49\x60\x89", 2378 2352 .rlen = 16, 2379 2353 }, 2380 2354 }; 2381 2355 2382 2356 static struct cipher_testvec aes_dec_tv_template[] = { 2383 2357 { /* From FIPS-197 */ 2384 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2385 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2358 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2359 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2386 2360 .klen = 16, 2387 - .input = { 0x69, 0xc4, 0xe0, 0xd8, 0x6a, 0x7b, 0x04, 0x30, 2388 - 0xd8, 0xcd, 0xb7, 0x80, 0x70, 0xb4, 0xc5, 0x5a }, 2361 + .input = "\x69\xc4\xe0\xd8\x6a\x7b\x04\x30" 2362 + "\xd8\xcd\xb7\x80\x70\xb4\xc5\x5a", 2389 2363 .ilen = 16, 2390 - .result = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 2391 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 2364 + .result = "\x00\x11\x22\x33\x44\x55\x66\x77" 2365 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 2392 2366 .rlen = 16, 2393 2367 }, { 2394 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2395 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2396 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 }, 2368 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2369 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2370 + "\x10\x11\x12\x13\x14\x15\x16\x17", 2397 2371 .klen = 24, 2398 - .input = { 0xdd, 0xa9, 0x7c, 0xa4, 0x86, 0x4c, 0xdf, 0xe0, 2399 - 0x6e, 0xaf, 0x70, 0xa0, 0xec, 0x0d, 0x71, 0x91 }, 2372 + .input = "\xdd\xa9\x7c\xa4\x86\x4c\xdf\xe0" 2373 + "\x6e\xaf\x70\xa0\xec\x0d\x71\x91", 2400 2374 .ilen = 16, 2401 - .result = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 2402 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 2375 + .result = "\x00\x11\x22\x33\x44\x55\x66\x77" 2376 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 2403 2377 .rlen = 16, 2404 2378 }, { 2405 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2406 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2407 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 2408 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 2379 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 2380 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2381 + "\x10\x11\x12\x13\x14\x15\x16\x17" 2382 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 2409 2383 .klen = 32, 2410 - .input = { 0x8e, 0xa2, 0xb7, 0xca, 0x51, 0x67, 0x45, 0xbf, 2411 - 0xea, 0xfc, 0x49, 0x90, 0x4b, 0x49, 0x60, 0x89 }, 2384 + .input = "\x8e\xa2\xb7\xca\x51\x67\x45\xbf" 2385 + "\xea\xfc\x49\x90\x4b\x49\x60\x89", 2412 2386 .ilen = 16, 2413 - .result = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 2414 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 2387 + .result = "\x00\x11\x22\x33\x44\x55\x66\x77" 2388 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 2415 2389 .rlen = 16, 2416 2390 }, 2417 2391 }; 2418 2392 2419 2393 static struct cipher_testvec aes_cbc_enc_tv_template[] = { 2420 2394 { /* From RFC 3602 */ 2421 - .key = { 0x06, 0xa9, 0x21, 0x40, 0x36, 0xb8, 0xa1, 0x5b, 2422 - 0x51, 0x2e, 0x03, 0xd5, 0x34, 0x12, 0x00, 0x06 }, 2395 + .key = "\x06\xa9\x21\x40\x36\xb8\xa1\x5b" 2396 + "\x51\x2e\x03\xd5\x34\x12\x00\x06", 2423 2397 .klen = 16, 2424 - .iv = { 0x3d, 0xaf, 0xba, 0x42, 0x9d, 0x9e, 0xb4, 0x30, 2425 - 0xb4, 0x22, 0xda, 0x80, 0x2c, 0x9f, 0xac, 0x41 }, 2426 - .input = { "Single block msg" }, 2398 + .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30" 2399 + "\xb4\x22\xda\x80\x2c\x9f\xac\x41", 2400 + .input = "Single block msg", 2427 2401 .ilen = 16, 2428 - .result = { 0xe3, 0x53, 0x77, 0x9c, 0x10, 0x79, 0xae, 0xb8, 2429 - 0x27, 0x08, 0x94, 0x2d, 0xbe, 0x77, 0x18, 0x1a }, 2402 + .result = "\xe3\x53\x77\x9c\x10\x79\xae\xb8" 2403 + "\x27\x08\x94\x2d\xbe\x77\x18\x1a", 2430 2404 .rlen = 16, 2431 2405 }, { 2432 - .key = { 0xc2, 0x86, 0x69, 0x6d, 0x88, 0x7c, 0x9a, 0xa0, 2433 - 0x61, 0x1b, 0xbb, 0x3e, 0x20, 0x25, 0xa4, 0x5a }, 2406 + .key = "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0" 2407 + "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a", 2434 2408 .klen = 16, 2435 - .iv = { 0x56, 0x2e, 0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 2436 - 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58 }, 2437 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2438 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2439 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 2440 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 2409 + .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28" 2410 + "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58", 2411 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 2412 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2413 + "\x10\x11\x12\x13\x14\x15\x16\x17" 2414 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 2441 2415 .ilen = 32, 2442 - .result = { 0xd2, 0x96, 0xcd, 0x94, 0xc2, 0xcc, 0xcf, 0x8a, 2443 - 0x3a, 0x86, 0x30, 0x28, 0xb5, 0xe1, 0xdc, 0x0a, 2444 - 0x75, 0x86, 0x60, 0x2d, 0x25, 0x3c, 0xff, 0xf9, 2445 - 0x1b, 0x82, 0x66, 0xbe, 0xa6, 0xd6, 0x1a, 0xb1 }, 2416 + .result = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a" 2417 + "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a" 2418 + "\x75\x86\x60\x2d\x25\x3c\xff\xf9" 2419 + "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1", 2446 2420 .rlen = 32, 2447 2421 }, { /* From NIST SP800-38A */ 2448 - .key = { 0x8e, 0x73, 0xb0, 0xf7, 0xda, 0x0e, 0x64, 0x52, 2449 - 0xc8, 0x10, 0xf3, 0x2b, 0x80, 0x90, 0x79, 0xe5, 2450 - 0x62, 0xf8, 0xea, 0xd2, 0x52, 0x2c, 0x6b, 0x7b }, 2422 + .key = "\x8e\x73\xb0\xf7\xda\x0e\x64\x52" 2423 + "\xc8\x10\xf3\x2b\x80\x90\x79\xe5" 2424 + "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b", 2451 2425 .klen = 24, 2452 - .iv = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2453 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2454 - .input = { 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 2455 - 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, 2456 - 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 2457 - 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 2458 - 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 2459 - 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 2460 - 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 2461 - 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }, 2426 + .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" 2427 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2428 + .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" 2429 + "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" 2430 + "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" 2431 + "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" 2432 + "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" 2433 + "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" 2434 + "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" 2435 + "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", 2462 2436 .ilen = 64, 2463 - .result = { 0x4f, 0x02, 0x1d, 0xb2, 0x43, 0xbc, 0x63, 0x3d, 2464 - 0x71, 0x78, 0x18, 0x3a, 0x9f, 0xa0, 0x71, 0xe8, 2465 - 0xb4, 0xd9, 0xad, 0xa9, 0xad, 0x7d, 0xed, 0xf4, 2466 - 0xe5, 0xe7, 0x38, 0x76, 0x3f, 0x69, 0x14, 0x5a, 2467 - 0x57, 0x1b, 0x24, 0x20, 0x12, 0xfb, 0x7a, 0xe0, 2468 - 0x7f, 0xa9, 0xba, 0xac, 0x3d, 0xf1, 0x02, 0xe0, 2469 - 0x08, 0xb0, 0xe2, 0x79, 0x88, 0x59, 0x88, 0x81, 2470 - 0xd9, 0x20, 0xa9, 0xe6, 0x4f, 0x56, 0x15, 0xcd }, 2437 + .result = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d" 2438 + "\x71\x78\x18\x3a\x9f\xa0\x71\xe8" 2439 + "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4" 2440 + "\xe5\xe7\x38\x76\x3f\x69\x14\x5a" 2441 + "\x57\x1b\x24\x20\x12\xfb\x7a\xe0" 2442 + "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0" 2443 + "\x08\xb0\xe2\x79\x88\x59\x88\x81" 2444 + "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd", 2471 2445 .rlen = 64, 2472 2446 }, { 2473 - .key = { 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 2474 - 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81, 2475 - 0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 2476 - 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4 }, 2447 + .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe" 2448 + "\x2b\x73\xae\xf0\x85\x7d\x77\x81" 2449 + "\x1f\x35\x2c\x07\x3b\x61\x08\xd7" 2450 + "\x2d\x98\x10\xa3\x09\x14\xdf\xf4", 2477 2451 .klen = 32, 2478 - .iv = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2479 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2480 - .input = { 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 2481 - 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, 2482 - 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 2483 - 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 2484 - 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 2485 - 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 2486 - 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 2487 - 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }, 2452 + .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" 2453 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2454 + .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" 2455 + "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" 2456 + "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" 2457 + "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" 2458 + "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" 2459 + "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" 2460 + "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" 2461 + "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", 2488 2462 .ilen = 64, 2489 - .result = { 0xf5, 0x8c, 0x4c, 0x04, 0xd6, 0xe5, 0xf1, 0xba, 2490 - 0x77, 0x9e, 0xab, 0xfb, 0x5f, 0x7b, 0xfb, 0xd6, 2491 - 0x9c, 0xfc, 0x4e, 0x96, 0x7e, 0xdb, 0x80, 0x8d, 2492 - 0x67, 0x9f, 0x77, 0x7b, 0xc6, 0x70, 0x2c, 0x7d, 2493 - 0x39, 0xf2, 0x33, 0x69, 0xa9, 0xd9, 0xba, 0xcf, 2494 - 0xa5, 0x30, 0xe2, 0x63, 0x04, 0x23, 0x14, 0x61, 2495 - 0xb2, 0xeb, 0x05, 0xe2, 0xc3, 0x9b, 0xe9, 0xfc, 2496 - 0xda, 0x6c, 0x19, 0x07, 0x8c, 0x6a, 0x9d, 0x1b }, 2463 + .result = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba" 2464 + "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6" 2465 + "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d" 2466 + "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d" 2467 + "\x39\xf2\x33\x69\xa9\xd9\xba\xcf" 2468 + "\xa5\x30\xe2\x63\x04\x23\x14\x61" 2469 + "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc" 2470 + "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b", 2497 2471 .rlen = 64, 2498 2472 }, 2499 2473 }; 2500 2474 2501 2475 static struct cipher_testvec aes_cbc_dec_tv_template[] = { 2502 2476 { /* From RFC 3602 */ 2503 - .key = { 0x06, 0xa9, 0x21, 0x40, 0x36, 0xb8, 0xa1, 0x5b, 2504 - 0x51, 0x2e, 0x03, 0xd5, 0x34, 0x12, 0x00, 0x06 }, 2477 + .key = "\x06\xa9\x21\x40\x36\xb8\xa1\x5b" 2478 + "\x51\x2e\x03\xd5\x34\x12\x00\x06", 2505 2479 .klen = 16, 2506 - .iv = { 0x3d, 0xaf, 0xba, 0x42, 0x9d, 0x9e, 0xb4, 0x30, 2507 - 0xb4, 0x22, 0xda, 0x80, 0x2c, 0x9f, 0xac, 0x41 }, 2508 - .input = { 0xe3, 0x53, 0x77, 0x9c, 0x10, 0x79, 0xae, 0xb8, 2509 - 0x27, 0x08, 0x94, 0x2d, 0xbe, 0x77, 0x18, 0x1a }, 2480 + .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30" 2481 + "\xb4\x22\xda\x80\x2c\x9f\xac\x41", 2482 + .input = "\xe3\x53\x77\x9c\x10\x79\xae\xb8" 2483 + "\x27\x08\x94\x2d\xbe\x77\x18\x1a", 2510 2484 .ilen = 16, 2511 - .result = { "Single block msg" }, 2485 + .result = "Single block msg", 2512 2486 .rlen = 16, 2513 2487 }, { 2514 - .key = { 0xc2, 0x86, 0x69, 0x6d, 0x88, 0x7c, 0x9a, 0xa0, 2515 - 0x61, 0x1b, 0xbb, 0x3e, 0x20, 0x25, 0xa4, 0x5a }, 2488 + .key = "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0" 2489 + "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a", 2516 2490 .klen = 16, 2517 - .iv = { 0x56, 0x2e, 0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 2518 - 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58 }, 2519 - .input = { 0xd2, 0x96, 0xcd, 0x94, 0xc2, 0xcc, 0xcf, 0x8a, 2520 - 0x3a, 0x86, 0x30, 0x28, 0xb5, 0xe1, 0xdc, 0x0a, 2521 - 0x75, 0x86, 0x60, 0x2d, 0x25, 0x3c, 0xff, 0xf9, 2522 - 0x1b, 0x82, 0x66, 0xbe, 0xa6, 0xd6, 0x1a, 0xb1 }, 2491 + .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28" 2492 + "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58", 2493 + .input = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a" 2494 + "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a" 2495 + "\x75\x86\x60\x2d\x25\x3c\xff\xf9" 2496 + "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1", 2523 2497 .ilen = 32, 2524 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2525 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 2526 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 2527 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 2498 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 2499 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 2500 + "\x10\x11\x12\x13\x14\x15\x16\x17" 2501 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 2528 2502 .rlen = 32, 2529 2503 }, { /* From NIST SP800-38A */ 2530 - .key = { 0x8e, 0x73, 0xb0, 0xf7, 0xda, 0x0e, 0x64, 0x52, 2531 - 0xc8, 0x10, 0xf3, 0x2b, 0x80, 0x90, 0x79, 0xe5, 2532 - 0x62, 0xf8, 0xea, 0xd2, 0x52, 0x2c, 0x6b, 0x7b }, 2504 + .key = "\x8e\x73\xb0\xf7\xda\x0e\x64\x52" 2505 + "\xc8\x10\xf3\x2b\x80\x90\x79\xe5" 2506 + "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b", 2533 2507 .klen = 24, 2534 - .iv = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2535 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2536 - .input = { 0x4f, 0x02, 0x1d, 0xb2, 0x43, 0xbc, 0x63, 0x3d, 2537 - 0x71, 0x78, 0x18, 0x3a, 0x9f, 0xa0, 0x71, 0xe8, 2538 - 0xb4, 0xd9, 0xad, 0xa9, 0xad, 0x7d, 0xed, 0xf4, 2539 - 0xe5, 0xe7, 0x38, 0x76, 0x3f, 0x69, 0x14, 0x5a, 2540 - 0x57, 0x1b, 0x24, 0x20, 0x12, 0xfb, 0x7a, 0xe0, 2541 - 0x7f, 0xa9, 0xba, 0xac, 0x3d, 0xf1, 0x02, 0xe0, 2542 - 0x08, 0xb0, 0xe2, 0x79, 0x88, 0x59, 0x88, 0x81, 2543 - 0xd9, 0x20, 0xa9, 0xe6, 0x4f, 0x56, 0x15, 0xcd }, 2508 + .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" 2509 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2510 + .input = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d" 2511 + "\x71\x78\x18\x3a\x9f\xa0\x71\xe8" 2512 + "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4" 2513 + "\xe5\xe7\x38\x76\x3f\x69\x14\x5a" 2514 + "\x57\x1b\x24\x20\x12\xfb\x7a\xe0" 2515 + "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0" 2516 + "\x08\xb0\xe2\x79\x88\x59\x88\x81" 2517 + "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd", 2544 2518 .ilen = 64, 2545 - .result = { 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 2546 - 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, 2547 - 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 2548 - 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 2549 - 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 2550 - 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 2551 - 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 2552 - 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }, 2519 + .result = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" 2520 + "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" 2521 + "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" 2522 + "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" 2523 + "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" 2524 + "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" 2525 + "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" 2526 + "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", 2553 2527 .rlen = 64, 2554 2528 }, { 2555 - .key = { 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 2556 - 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81, 2557 - 0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 2558 - 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4 }, 2529 + .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe" 2530 + "\x2b\x73\xae\xf0\x85\x7d\x77\x81" 2531 + "\x1f\x35\x2c\x07\x3b\x61\x08\xd7" 2532 + "\x2d\x98\x10\xa3\x09\x14\xdf\xf4", 2559 2533 .klen = 32, 2560 - .iv = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 2561 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 2562 - .input = { 0xf5, 0x8c, 0x4c, 0x04, 0xd6, 0xe5, 0xf1, 0xba, 2563 - 0x77, 0x9e, 0xab, 0xfb, 0x5f, 0x7b, 0xfb, 0xd6, 2564 - 0x9c, 0xfc, 0x4e, 0x96, 0x7e, 0xdb, 0x80, 0x8d, 2565 - 0x67, 0x9f, 0x77, 0x7b, 0xc6, 0x70, 0x2c, 0x7d, 2566 - 0x39, 0xf2, 0x33, 0x69, 0xa9, 0xd9, 0xba, 0xcf, 2567 - 0xa5, 0x30, 0xe2, 0x63, 0x04, 0x23, 0x14, 0x61, 2568 - 0xb2, 0xeb, 0x05, 0xe2, 0xc3, 0x9b, 0xe9, 0xfc, 2569 - 0xda, 0x6c, 0x19, 0x07, 0x8c, 0x6a, 0x9d, 0x1b }, 2534 + .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" 2535 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 2536 + .input = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba" 2537 + "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6" 2538 + "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d" 2539 + "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d" 2540 + "\x39\xf2\x33\x69\xa9\xd9\xba\xcf" 2541 + "\xa5\x30\xe2\x63\x04\x23\x14\x61" 2542 + "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc" 2543 + "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b", 2570 2544 .ilen = 64, 2571 - .result = { 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 2572 - 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, 2573 - 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 2574 - 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 2575 - 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 2576 - 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 2577 - 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 2578 - 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 }, 2545 + .result = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" 2546 + "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" 2547 + "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" 2548 + "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" 2549 + "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" 2550 + "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" 2551 + "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" 2552 + "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", 2579 2553 .rlen = 64, 2580 2554 }, 2581 2555 }; ··· 2583 2557 static struct cipher_testvec aes_lrw_enc_tv_template[] = { 2584 2558 /* from http://grouper.ieee.org/groups/1619/email/pdf00017.pdf */ 2585 2559 { /* LRW-32-AES 1 */ 2586 - .key = { 0x45, 0x62, 0xac, 0x25, 0xf8, 0x28, 0x17, 0x6d, 2587 - 0x4c, 0x26, 0x84, 0x14, 0xb5, 0x68, 0x01, 0x85, 2588 - 0x25, 0x8e, 0x2a, 0x05, 0xe7, 0x3e, 0x9d, 0x03, 2589 - 0xee, 0x5a, 0x83, 0x0c, 0xcc, 0x09, 0x4c, 0x87 }, 2560 + .key = "\x45\x62\xac\x25\xf8\x28\x17\x6d" 2561 + "\x4c\x26\x84\x14\xb5\x68\x01\x85" 2562 + "\x25\x8e\x2a\x05\xe7\x3e\x9d\x03" 2563 + "\xee\x5a\x83\x0c\xcc\x09\x4c\x87", 2590 2564 .klen = 32, 2591 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2592 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, 2593 - .input = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2594 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2565 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2566 + "\x00\x00\x00\x00\x00\x00\x00\x01", 2567 + .input = "\x30\x31\x32\x33\x34\x35\x36\x37" 2568 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2595 2569 .ilen = 16, 2596 - .result = { 0xf1, 0xb2, 0x73, 0xcd, 0x65, 0xa3, 0xdf, 0x5f, 2597 - 0xe9, 0x5d, 0x48, 0x92, 0x54, 0x63, 0x4e, 0xb8 }, 2570 + .result = "\xf1\xb2\x73\xcd\x65\xa3\xdf\x5f" 2571 + "\xe9\x5d\x48\x92\x54\x63\x4e\xb8", 2598 2572 .rlen = 16, 2599 2573 }, { /* LRW-32-AES 2 */ 2600 - .key = { 0x59, 0x70, 0x47, 0x14, 0xf5, 0x57, 0x47, 0x8c, 2601 - 0xd7, 0x79, 0xe8, 0x0f, 0x54, 0x88, 0x79, 0x44, 2602 - 0x0d, 0x48, 0xf0, 0xb7, 0xb1, 0x5a, 0x53, 0xea, 2603 - 0x1c, 0xaa, 0x6b, 0x29, 0xc2, 0xca, 0xfb, 0xaf 2604 - }, 2574 + .key = "\x59\x70\x47\x14\xf5\x57\x47\x8c" 2575 + "\xd7\x79\xe8\x0f\x54\x88\x79\x44" 2576 + "\x0d\x48\xf0\xb7\xb1\x5a\x53\xea" 2577 + "\x1c\xaa\x6b\x29\xc2\xca\xfb\xaf", 2605 2578 .klen = 32, 2606 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2607 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }, 2608 - .input = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2609 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2579 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2580 + "\x00\x00\x00\x00\x00\x00\x00\x02", 2581 + .input = "\x30\x31\x32\x33\x34\x35\x36\x37" 2582 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2610 2583 .ilen = 16, 2611 - .result = { 0x00, 0xc8, 0x2b, 0xae, 0x95, 0xbb, 0xcd, 0xe5, 2612 - 0x27, 0x4f, 0x07, 0x69, 0xb2, 0x60, 0xe1, 0x36 }, 2584 + .result = "\x00\xc8\x2b\xae\x95\xbb\xcd\xe5" 2585 + "\x27\x4f\x07\x69\xb2\x60\xe1\x36", 2613 2586 .rlen = 16, 2614 2587 }, { /* LRW-32-AES 3 */ 2615 - .key = { 0xd8, 0x2a, 0x91, 0x34, 0xb2, 0x6a, 0x56, 0x50, 2616 - 0x30, 0xfe, 0x69, 0xe2, 0x37, 0x7f, 0x98, 0x47, 2617 - 0xcd, 0xf9, 0x0b, 0x16, 0x0c, 0x64, 0x8f, 0xb6, 2618 - 0xb0, 0x0d, 0x0d, 0x1b, 0xae, 0x85, 0x87, 0x1f }, 2588 + .key = "\xd8\x2a\x91\x34\xb2\x6a\x56\x50" 2589 + "\x30\xfe\x69\xe2\x37\x7f\x98\x47" 2590 + "\xcd\xf9\x0b\x16\x0c\x64\x8f\xb6" 2591 + "\xb0\x0d\x0d\x1b\xae\x85\x87\x1f", 2619 2592 .klen = 32, 2620 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2621 - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 }, 2622 - .input = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2623 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2593 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2594 + "\x00\x00\x00\x02\x00\x00\x00\x00", 2595 + .input = "\x30\x31\x32\x33\x34\x35\x36\x37" 2596 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2624 2597 .ilen = 16, 2625 - .result = { 0x76, 0x32, 0x21, 0x83, 0xed, 0x8f, 0xf1, 0x82, 2626 - 0xf9, 0x59, 0x62, 0x03, 0x69, 0x0e, 0x5e, 0x01 }, 2598 + .result = "\x76\x32\x21\x83\xed\x8f\xf1\x82" 2599 + "\xf9\x59\x62\x03\x69\x0e\x5e\x01", 2627 2600 .rlen = 16, 2628 2601 }, { /* LRW-32-AES 4 */ 2629 - .key = { 0x0f, 0x6a, 0xef, 0xf8, 0xd3, 0xd2, 0xbb, 0x15, 2630 - 0x25, 0x83, 0xf7, 0x3c, 0x1f, 0x01, 0x28, 0x74, 2631 - 0xca, 0xc6, 0xbc, 0x35, 0x4d, 0x4a, 0x65, 0x54, 2632 - 0x90, 0xae, 0x61, 0xcf, 0x7b, 0xae, 0xbd, 0xcc, 2633 - 0xad, 0xe4, 0x94, 0xc5, 0x4a, 0x29, 0xae, 0x70 }, 2602 + .key = "\x0f\x6a\xef\xf8\xd3\xd2\xbb\x15" 2603 + "\x25\x83\xf7\x3c\x1f\x01\x28\x74" 2604 + "\xca\xc6\xbc\x35\x4d\x4a\x65\x54" 2605 + "\x90\xae\x61\xcf\x7b\xae\xbd\xcc" 2606 + "\xad\xe4\x94\xc5\x4a\x29\xae\x70", 2634 2607 .klen = 40, 2635 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2636 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, 2637 - .input = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2638 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2608 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2609 + "\x00\x00\x00\x00\x00\x00\x00\x01", 2610 + .input = "\x30\x31\x32\x33\x34\x35\x36\x37" 2611 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2639 2612 .ilen = 16, 2640 - .result = { 0x9c, 0x0f, 0x15, 0x2f, 0x55, 0xa2, 0xd8, 0xf0, 2641 - 0xd6, 0x7b, 0x8f, 0x9e, 0x28, 0x22, 0xbc, 0x41 }, 2613 + .result = "\x9c\x0f\x15\x2f\x55\xa2\xd8\xf0" 2614 + "\xd6\x7b\x8f\x9e\x28\x22\xbc\x41", 2642 2615 .rlen = 16, 2643 2616 }, { /* LRW-32-AES 5 */ 2644 - .key = { 0x8a, 0xd4, 0xee, 0x10, 0x2f, 0xbd, 0x81, 0xff, 2645 - 0xf8, 0x86, 0xce, 0xac, 0x93, 0xc5, 0xad, 0xc6, 2646 - 0xa0, 0x19, 0x07, 0xc0, 0x9d, 0xf7, 0xbb, 0xdd, 2647 - 0x52, 0x13, 0xb2, 0xb7, 0xf0, 0xff, 0x11, 0xd8, 2648 - 0xd6, 0x08, 0xd0, 0xcd, 0x2e, 0xb1, 0x17, 0x6f }, 2617 + .key = "\x8a\xd4\xee\x10\x2f\xbd\x81\xff" 2618 + "\xf8\x86\xce\xac\x93\xc5\xad\xc6" 2619 + "\xa0\x19\x07\xc0\x9d\xf7\xbb\xdd" 2620 + "\x52\x13\xb2\xb7\xf0\xff\x11\xd8" 2621 + "\xd6\x08\xd0\xcd\x2e\xb1\x17\x6f", 2649 2622 .klen = 40, 2650 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2651 - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 }, 2652 - .input = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2653 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2623 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2624 + "\x00\x00\x00\x02\x00\x00\x00\x00", 2625 + .input = "\x30\x31\x32\x33\x34\x35\x36\x37" 2626 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2654 2627 .ilen = 16, 2655 - .result = { 0xd4, 0x27, 0x6a, 0x7f, 0x14, 0x91, 0x3d, 0x65, 2656 - 0xc8, 0x60, 0x48, 0x02, 0x87, 0xe3, 0x34, 0x06 }, 2628 + .result = "\xd4\x27\x6a\x7f\x14\x91\x3d\x65" 2629 + "\xc8\x60\x48\x02\x87\xe3\x34\x06", 2657 2630 .rlen = 16, 2658 2631 }, { /* LRW-32-AES 6 */ 2659 - .key = { 0xf8, 0xd4, 0x76, 0xff, 0xd6, 0x46, 0xee, 0x6c, 2660 - 0x23, 0x84, 0xcb, 0x1c, 0x77, 0xd6, 0x19, 0x5d, 2661 - 0xfe, 0xf1, 0xa9, 0xf3, 0x7b, 0xbc, 0x8d, 0x21, 2662 - 0xa7, 0x9c, 0x21, 0xf8, 0xcb, 0x90, 0x02, 0x89, 2663 - 0xa8, 0x45, 0x34, 0x8e, 0xc8, 0xc5, 0xb5, 0xf1, 2664 - 0x26, 0xf5, 0x0e, 0x76, 0xfe, 0xfd, 0x1b, 0x1e }, 2632 + .key = "\xf8\xd4\x76\xff\xd6\x46\xee\x6c" 2633 + "\x23\x84\xcb\x1c\x77\xd6\x19\x5d" 2634 + "\xfe\xf1\xa9\xf3\x7b\xbc\x8d\x21" 2635 + "\xa7\x9c\x21\xf8\xcb\x90\x02\x89" 2636 + "\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1" 2637 + "\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e", 2665 2638 .klen = 48, 2666 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2667 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, 2668 - .input = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2669 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2639 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2640 + "\x00\x00\x00\x00\x00\x00\x00\x01", 2641 + .input = "\x30\x31\x32\x33\x34\x35\x36\x37" 2642 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2670 2643 .ilen = 16, 2671 - .result = { 0xbd, 0x06, 0xb8, 0xe1, 0xdb, 0x98, 0x89, 0x9e, 2672 - 0xc4, 0x98, 0xe4, 0x91, 0xcf, 0x1c, 0x70, 0x2b }, 2644 + .result = "\xbd\x06\xb8\xe1\xdb\x98\x89\x9e" 2645 + "\xc4\x98\xe4\x91\xcf\x1c\x70\x2b", 2673 2646 .rlen = 16, 2674 2647 }, { /* LRW-32-AES 7 */ 2675 - .key = { 0xfb, 0x76, 0x15, 0xb2, 0x3d, 0x80, 0x89, 0x1d, 2676 - 0xd4, 0x70, 0x98, 0x0b, 0xc7, 0x95, 0x84, 0xc8, 2677 - 0xb2, 0xfb, 0x64, 0xce, 0x60, 0x97, 0x87, 0x8d, 2678 - 0x17, 0xfc, 0xe4, 0x5a, 0x49, 0xe8, 0x30, 0xb7, 2679 - 0x6e, 0x78, 0x17, 0xe7, 0x2d, 0x5e, 0x12, 0xd4, 2680 - 0x60, 0x64, 0x04, 0x7a, 0xf1, 0x2f, 0x9e, 0x0c }, 2648 + .key = "\xfb\x76\x15\xb2\x3d\x80\x89\x1d" 2649 + "\xd4\x70\x98\x0b\xc7\x95\x84\xc8" 2650 + "\xb2\xfb\x64\xce\x60\x97\x87\x8d" 2651 + "\x17\xfc\xe4\x5a\x49\xe8\x30\xb7" 2652 + "\x6e\x78\x17\xe7\x2d\x5e\x12\xd4" 2653 + "\x60\x64\x04\x7a\xf1\x2f\x9e\x0c", 2681 2654 .klen = 48, 2682 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2683 - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 }, 2684 - .input = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2685 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2655 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2656 + "\x00\x00\x00\x02\x00\x00\x00\x00", 2657 + .input = "\x30\x31\x32\x33\x34\x35\x36\x37" 2658 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2686 2659 .ilen = 16, 2687 - .result = { 0x5b, 0x90, 0x8e, 0xc1, 0xab, 0xdd, 0x67, 0x5f, 2688 - 0x3d, 0x69, 0x8a, 0x95, 0x53, 0xc8, 0x9c, 0xe5 }, 2660 + .result = "\x5b\x90\x8e\xc1\xab\xdd\x67\x5f" 2661 + "\x3d\x69\x8a\x95\x53\xc8\x9c\xe5", 2689 2662 .rlen = 16, 2690 2663 }, { 2691 2664 /* http://www.mail-archive.com/stds-p1619@listserv.ieee.org/msg00173.html */ 2692 - .key = { 0xf8, 0xd4, 0x76, 0xff, 0xd6, 0x46, 0xee, 0x6c, 2693 - 0x23, 0x84, 0xcb, 0x1c, 0x77, 0xd6, 0x19, 0x5d, 2694 - 0xfe, 0xf1, 0xa9, 0xf3, 0x7b, 0xbc, 0x8d, 0x21, 2695 - 0xa7, 0x9c, 0x21, 0xf8, 0xcb, 0x90, 0x02, 0x89, 2696 - 0xa8, 0x45, 0x34, 0x8e, 0xc8, 0xc5, 0xb5, 0xf1, 2697 - 0x26, 0xf5, 0x0e, 0x76, 0xfe, 0xfd, 0x1b, 0x1e }, 2665 + .key = "\xf8\xd4\x76\xff\xd6\x46\xee\x6c" 2666 + "\x23\x84\xcb\x1c\x77\xd6\x19\x5d" 2667 + "\xfe\xf1\xa9\xf3\x7b\xbc\x8d\x21" 2668 + "\xa7\x9c\x21\xf8\xcb\x90\x02\x89" 2669 + "\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1" 2670 + "\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e", 2698 2671 .klen = 48, 2699 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2700 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, 2701 - .input = { 0x05, 0x11, 0xb7, 0x18, 0xab, 0xc6, 0x2d, 0xac, 2702 - 0x70, 0x5d, 0xf6, 0x22, 0x94, 0xcd, 0xe5, 0x6c, 2703 - 0x17, 0x6b, 0xf6, 0x1c, 0xf0, 0xf3, 0x6e, 0xf8, 2704 - 0x50, 0x38, 0x1f, 0x71, 0x49, 0xb6, 0x57, 0xd6, 2705 - 0x8f, 0xcb, 0x8d, 0x6b, 0xe3, 0xa6, 0x29, 0x90, 2706 - 0xfe, 0x2a, 0x62, 0x82, 0xae, 0x6d, 0x8b, 0xf6, 2707 - 0xad, 0x1e, 0x9e, 0x20, 0x5f, 0x38, 0xbe, 0x04, 2708 - 0xda, 0x10, 0x8e, 0xed, 0xa2, 0xa4, 0x87, 0xab, 2709 - 0xda, 0x6b, 0xb4, 0x0c, 0x75, 0xba, 0xd3, 0x7c, 2710 - 0xc9, 0xac, 0x42, 0x31, 0x95, 0x7c, 0xc9, 0x04, 2711 - 0xeb, 0xd5, 0x6e, 0x32, 0x69, 0x8a, 0xdb, 0xa6, 2712 - 0x15, 0xd7, 0x3f, 0x4f, 0x2f, 0x66, 0x69, 0x03, 2713 - 0x9c, 0x1f, 0x54, 0x0f, 0xde, 0x1f, 0xf3, 0x65, 2714 - 0x4c, 0x96, 0x12, 0xed, 0x7c, 0x92, 0x03, 0x01, 2715 - 0x6f, 0xbc, 0x35, 0x93, 0xac, 0xf1, 0x27, 0xf1, 2716 - 0xb4, 0x96, 0x82, 0x5a, 0x5f, 0xb0, 0xa0, 0x50, 2717 - 0x89, 0xa4, 0x8e, 0x66, 0x44, 0x85, 0xcc, 0xfd, 2718 - 0x33, 0x14, 0x70, 0xe3, 0x96, 0xb2, 0xc3, 0xd3, 2719 - 0xbb, 0x54, 0x5a, 0x1a, 0xf9, 0x74, 0xa2, 0xc5, 2720 - 0x2d, 0x64, 0x75, 0xdd, 0xb4, 0x54, 0xe6, 0x74, 2721 - 0x8c, 0xd3, 0x9d, 0x9e, 0x86, 0xab, 0x51, 0x53, 2722 - 0xb7, 0x93, 0x3e, 0x6f, 0xd0, 0x4e, 0x2c, 0x40, 2723 - 0xf6, 0xa8, 0x2e, 0x3e, 0x9d, 0xf4, 0x66, 0xa5, 2724 - 0x76, 0x12, 0x73, 0x44, 0x1a, 0x56, 0xd7, 0x72, 2725 - 0x88, 0xcd, 0x21, 0x8c, 0x4c, 0x0f, 0xfe, 0xda, 2726 - 0x95, 0xe0, 0x3a, 0xa6, 0xa5, 0x84, 0x46, 0xcd, 2727 - 0xd5, 0x3e, 0x9d, 0x3a, 0xe2, 0x67, 0xe6, 0x60, 2728 - 0x1a, 0xe2, 0x70, 0x85, 0x58, 0xc2, 0x1b, 0x09, 2729 - 0xe1, 0xd7, 0x2c, 0xca, 0xad, 0xa8, 0x8f, 0xf9, 2730 - 0xac, 0xb3, 0x0e, 0xdb, 0xca, 0x2e, 0xe2, 0xb8, 2731 - 0x51, 0x71, 0xd9, 0x3c, 0x6c, 0xf1, 0x56, 0xf8, 2732 - 0xea, 0x9c, 0xf1, 0xfb, 0x0c, 0xe6, 0xb7, 0x10, 2733 - 0x1c, 0xf8, 0xa9, 0x7c, 0xe8, 0x53, 0x35, 0xc1, 2734 - 0x90, 0x3e, 0x76, 0x4a, 0x74, 0xa4, 0x21, 0x2c, 2735 - 0xf6, 0x2c, 0x4e, 0x0f, 0x94, 0x3a, 0x88, 0x2e, 2736 - 0x41, 0x09, 0x6a, 0x33, 0x7d, 0xf6, 0xdd, 0x3f, 2737 - 0x8d, 0x23, 0x31, 0x74, 0x84, 0xeb, 0x88, 0x6e, 2738 - 0xcc, 0xb9, 0xbc, 0x22, 0x83, 0x19, 0x07, 0x22, 2739 - 0xa5, 0x2d, 0xdf, 0xa5, 0xf3, 0x80, 0x85, 0x78, 2740 - 0x84, 0x39, 0x6a, 0x6d, 0x6a, 0x99, 0x4f, 0xa5, 2741 - 0x15, 0xfe, 0x46, 0xb0, 0xe4, 0x6c, 0xa5, 0x41, 2742 - 0x3c, 0xce, 0x8f, 0x42, 0x60, 0x71, 0xa7, 0x75, 2743 - 0x08, 0x40, 0x65, 0x8a, 0x82, 0xbf, 0xf5, 0x43, 2744 - 0x71, 0x96, 0xa9, 0x4d, 0x44, 0x8a, 0x20, 0xbe, 2745 - 0xfa, 0x4d, 0xbb, 0xc0, 0x7d, 0x31, 0x96, 0x65, 2746 - 0xe7, 0x75, 0xe5, 0x3e, 0xfd, 0x92, 0x3b, 0xc9, 2747 - 0x55, 0xbb, 0x16, 0x7e, 0xf7, 0xc2, 0x8c, 0xa4, 2748 - 0x40, 0x1d, 0xe5, 0xef, 0x0e, 0xdf, 0xe4, 0x9a, 2749 - 0x62, 0x73, 0x65, 0xfd, 0x46, 0x63, 0x25, 0x3d, 2750 - 0x2b, 0xaf, 0xe5, 0x64, 0xfe, 0xa5, 0x5c, 0xcf, 2751 - 0x24, 0xf3, 0xb4, 0xac, 0x64, 0xba, 0xdf, 0x4b, 2752 - 0xc6, 0x96, 0x7d, 0x81, 0x2d, 0x8d, 0x97, 0xf7, 2753 - 0xc5, 0x68, 0x77, 0x84, 0x32, 0x2b, 0xcc, 0x85, 2754 - 0x74, 0x96, 0xf0, 0x12, 0x77, 0x61, 0xb9, 0xeb, 2755 - 0x71, 0xaa, 0x82, 0xcb, 0x1c, 0xdb, 0x89, 0xc8, 2756 - 0xc6, 0xb5, 0xe3, 0x5c, 0x7d, 0x39, 0x07, 0x24, 2757 - 0xda, 0x39, 0x87, 0x45, 0xc0, 0x2b, 0xbb, 0x01, 2758 - 0xac, 0xbc, 0x2a, 0x5c, 0x7f, 0xfc, 0xe8, 0xce, 2759 - 0x6d, 0x9c, 0x6f, 0xed, 0xd3, 0xc1, 0xa1, 0xd6, 2760 - 0xc5, 0x55, 0xa9, 0x66, 0x2f, 0xe1, 0xc8, 0x32, 2761 - 0xa6, 0x5d, 0xa4, 0x3a, 0x98, 0x73, 0xe8, 0x45, 2762 - 0xa4, 0xc7, 0xa8, 0xb4, 0xf6, 0x13, 0x03, 0xf6, 2763 - 0xe9, 0x2e, 0xc4, 0x29, 0x0f, 0x84, 0xdb, 0xc4, 2764 - 0x21, 0xc4, 0xc2, 0x75, 0x67, 0x89, 0x37, 0x0a }, 2672 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2673 + "\x00\x00\x00\x00\x00\x00\x00\x01", 2674 + .input = "\x05\x11\xb7\x18\xab\xc6\x2d\xac" 2675 + "\x70\x5d\xf6\x22\x94\xcd\xe5\x6c" 2676 + "\x17\x6b\xf6\x1c\xf0\xf3\x6e\xf8" 2677 + "\x50\x38\x1f\x71\x49\xb6\x57\xd6" 2678 + "\x8f\xcb\x8d\x6b\xe3\xa6\x29\x90" 2679 + "\xfe\x2a\x62\x82\xae\x6d\x8b\xf6" 2680 + "\xad\x1e\x9e\x20\x5f\x38\xbe\x04" 2681 + "\xda\x10\x8e\xed\xa2\xa4\x87\xab" 2682 + "\xda\x6b\xb4\x0c\x75\xba\xd3\x7c" 2683 + "\xc9\xac\x42\x31\x95\x7c\xc9\x04" 2684 + "\xeb\xd5\x6e\x32\x69\x8a\xdb\xa6" 2685 + "\x15\xd7\x3f\x4f\x2f\x66\x69\x03" 2686 + "\x9c\x1f\x54\x0f\xde\x1f\xf3\x65" 2687 + "\x4c\x96\x12\xed\x7c\x92\x03\x01" 2688 + "\x6f\xbc\x35\x93\xac\xf1\x27\xf1" 2689 + "\xb4\x96\x82\x5a\x5f\xb0\xa0\x50" 2690 + "\x89\xa4\x8e\x66\x44\x85\xcc\xfd" 2691 + "\x33\x14\x70\xe3\x96\xb2\xc3\xd3" 2692 + "\xbb\x54\x5a\x1a\xf9\x74\xa2\xc5" 2693 + "\x2d\x64\x75\xdd\xb4\x54\xe6\x74" 2694 + "\x8c\xd3\x9d\x9e\x86\xab\x51\x53" 2695 + "\xb7\x93\x3e\x6f\xd0\x4e\x2c\x40" 2696 + "\xf6\xa8\x2e\x3e\x9d\xf4\x66\xa5" 2697 + "\x76\x12\x73\x44\x1a\x56\xd7\x72" 2698 + "\x88\xcd\x21\x8c\x4c\x0f\xfe\xda" 2699 + "\x95\xe0\x3a\xa6\xa5\x84\x46\xcd" 2700 + "\xd5\x3e\x9d\x3a\xe2\x67\xe6\x60" 2701 + "\x1a\xe2\x70\x85\x58\xc2\x1b\x09" 2702 + "\xe1\xd7\x2c\xca\xad\xa8\x8f\xf9" 2703 + "\xac\xb3\x0e\xdb\xca\x2e\xe2\xb8" 2704 + "\x51\x71\xd9\x3c\x6c\xf1\x56\xf8" 2705 + "\xea\x9c\xf1\xfb\x0c\xe6\xb7\x10" 2706 + "\x1c\xf8\xa9\x7c\xe8\x53\x35\xc1" 2707 + "\x90\x3e\x76\x4a\x74\xa4\x21\x2c" 2708 + "\xf6\x2c\x4e\x0f\x94\x3a\x88\x2e" 2709 + "\x41\x09\x6a\x33\x7d\xf6\xdd\x3f" 2710 + "\x8d\x23\x31\x74\x84\xeb\x88\x6e" 2711 + "\xcc\xb9\xbc\x22\x83\x19\x07\x22" 2712 + "\xa5\x2d\xdf\xa5\xf3\x80\x85\x78" 2713 + "\x84\x39\x6a\x6d\x6a\x99\x4f\xa5" 2714 + "\x15\xfe\x46\xb0\xe4\x6c\xa5\x41" 2715 + "\x3c\xce\x8f\x42\x60\x71\xa7\x75" 2716 + "\x08\x40\x65\x8a\x82\xbf\xf5\x43" 2717 + "\x71\x96\xa9\x4d\x44\x8a\x20\xbe" 2718 + "\xfa\x4d\xbb\xc0\x7d\x31\x96\x65" 2719 + "\xe7\x75\xe5\x3e\xfd\x92\x3b\xc9" 2720 + "\x55\xbb\x16\x7e\xf7\xc2\x8c\xa4" 2721 + "\x40\x1d\xe5\xef\x0e\xdf\xe4\x9a" 2722 + "\x62\x73\x65\xfd\x46\x63\x25\x3d" 2723 + "\x2b\xaf\xe5\x64\xfe\xa5\x5c\xcf" 2724 + "\x24\xf3\xb4\xac\x64\xba\xdf\x4b" 2725 + "\xc6\x96\x7d\x81\x2d\x8d\x97\xf7" 2726 + "\xc5\x68\x77\x84\x32\x2b\xcc\x85" 2727 + "\x74\x96\xf0\x12\x77\x61\xb9\xeb" 2728 + "\x71\xaa\x82\xcb\x1c\xdb\x89\xc8" 2729 + "\xc6\xb5\xe3\x5c\x7d\x39\x07\x24" 2730 + "\xda\x39\x87\x45\xc0\x2b\xbb\x01" 2731 + "\xac\xbc\x2a\x5c\x7f\xfc\xe8\xce" 2732 + "\x6d\x9c\x6f\xed\xd3\xc1\xa1\xd6" 2733 + "\xc5\x55\xa9\x66\x2f\xe1\xc8\x32" 2734 + "\xa6\x5d\xa4\x3a\x98\x73\xe8\x45" 2735 + "\xa4\xc7\xa8\xb4\xf6\x13\x03\xf6" 2736 + "\xe9\x2e\xc4\x29\x0f\x84\xdb\xc4" 2737 + "\x21\xc4\xc2\x75\x67\x89\x37\x0a", 2765 2738 .ilen = 512, 2766 - .result = { 0x1a, 0x1d, 0xa9, 0x30, 0xad, 0xf9, 0x2f, 0x9b, 2767 - 0xb6, 0x1d, 0xae, 0xef, 0xf0, 0x2f, 0xf8, 0x5a, 2768 - 0x39, 0x3c, 0xbf, 0x2a, 0xb2, 0x45, 0xb2, 0x23, 2769 - 0x1b, 0x63, 0x3c, 0xcf, 0xaa, 0xbe, 0xcf, 0x4e, 2770 - 0xfa, 0xe8, 0x29, 0xc2, 0x20, 0x68, 0x2b, 0x3c, 2771 - 0x2e, 0x8b, 0xf7, 0x6e, 0x25, 0xbd, 0xe3, 0x3d, 2772 - 0x66, 0x27, 0xd6, 0xaf, 0xd6, 0x64, 0x3e, 0xe3, 2773 - 0xe8, 0x58, 0x46, 0x97, 0x39, 0x51, 0x07, 0xde, 2774 - 0xcb, 0x37, 0xbc, 0xa9, 0xc0, 0x5f, 0x75, 0xc3, 2775 - 0x0e, 0x84, 0x23, 0x1d, 0x16, 0xd4, 0x1c, 0x59, 2776 - 0x9c, 0x1a, 0x02, 0x55, 0xab, 0x3a, 0x97, 0x1d, 2777 - 0xdf, 0xdd, 0xc7, 0x06, 0x51, 0xd7, 0x70, 0xae, 2778 - 0x23, 0xc6, 0x8c, 0xf5, 0x1e, 0xa0, 0xe5, 0x82, 2779 - 0xb8, 0xb2, 0xbf, 0x04, 0xa0, 0x32, 0x8e, 0x68, 2780 - 0xeb, 0xaf, 0x6e, 0x2d, 0x94, 0x22, 0x2f, 0xce, 2781 - 0x4c, 0xb5, 0x59, 0xe2, 0xa2, 0x2f, 0xa0, 0x98, 2782 - 0x1a, 0x97, 0xc6, 0xd4, 0xb5, 0x00, 0x59, 0xf2, 2783 - 0x84, 0x14, 0x72, 0xb1, 0x9a, 0x6e, 0xa3, 0x7f, 2784 - 0xea, 0x20, 0xe7, 0xcb, 0x65, 0x77, 0x3a, 0xdf, 2785 - 0xc8, 0x97, 0x67, 0x15, 0xc2, 0x2a, 0x27, 0xcc, 2786 - 0x18, 0x55, 0xa1, 0x24, 0x0b, 0x24, 0x24, 0xaf, 2787 - 0x5b, 0xec, 0x68, 0xb8, 0xc8, 0xf5, 0xba, 0x63, 2788 - 0xff, 0xed, 0x89, 0xce, 0xd5, 0x3d, 0x88, 0xf3, 2789 - 0x25, 0xef, 0x05, 0x7c, 0x3a, 0xef, 0xeb, 0xd8, 2790 - 0x7a, 0x32, 0x0d, 0xd1, 0x1e, 0x58, 0x59, 0x99, 2791 - 0x90, 0x25, 0xb5, 0x26, 0xb0, 0xe3, 0x2b, 0x6c, 2792 - 0x4c, 0xa9, 0x8b, 0x84, 0x4f, 0x5e, 0x01, 0x50, 2793 - 0x41, 0x30, 0x58, 0xc5, 0x62, 0x74, 0x52, 0x1d, 2794 - 0x45, 0x24, 0x6a, 0x42, 0x64, 0x4f, 0x97, 0x1c, 2795 - 0xa8, 0x66, 0xb5, 0x6d, 0x79, 0xd4, 0x0d, 0x48, 2796 - 0xc5, 0x5f, 0xf3, 0x90, 0x32, 0xdd, 0xdd, 0xe1, 2797 - 0xe4, 0xa9, 0x9f, 0xfc, 0xc3, 0x52, 0x5a, 0x46, 2798 - 0xe4, 0x81, 0x84, 0x95, 0x36, 0x59, 0x7a, 0x6b, 2799 - 0xaa, 0xb3, 0x60, 0xad, 0xce, 0x9f, 0x9f, 0x28, 2800 - 0xe0, 0x01, 0x75, 0x22, 0xc4, 0x4e, 0xa9, 0x62, 2801 - 0x5c, 0x62, 0x0d, 0x00, 0xcb, 0x13, 0xe8, 0x43, 2802 - 0x72, 0xd4, 0x2d, 0x53, 0x46, 0xb5, 0xd1, 0x16, 2803 - 0x22, 0x18, 0xdf, 0x34, 0x33, 0xf5, 0xd6, 0x1c, 2804 - 0xb8, 0x79, 0x78, 0x97, 0x94, 0xff, 0x72, 0x13, 2805 - 0x4c, 0x27, 0xfc, 0xcb, 0xbf, 0x01, 0x53, 0xa6, 2806 - 0xb4, 0x50, 0x6e, 0xde, 0xdf, 0xb5, 0x43, 0xa4, 2807 - 0x59, 0xdf, 0x52, 0xf9, 0x7c, 0xe0, 0x11, 0x6f, 2808 - 0x2d, 0x14, 0x8e, 0x24, 0x61, 0x2c, 0xe1, 0x17, 2809 - 0xcc, 0xce, 0x51, 0x0c, 0x19, 0x8a, 0x82, 0x30, 2810 - 0x94, 0xd5, 0x3d, 0x6a, 0x53, 0x06, 0x5e, 0xbd, 2811 - 0xb7, 0xeb, 0xfa, 0xfd, 0x27, 0x51, 0xde, 0x85, 2812 - 0x1e, 0x86, 0x53, 0x11, 0x53, 0x94, 0x00, 0xee, 2813 - 0x2b, 0x8c, 0x08, 0x2a, 0xbf, 0xdd, 0xae, 0x11, 2814 - 0xcb, 0x1e, 0xa2, 0x07, 0x9a, 0x80, 0xcf, 0x62, 2815 - 0x9b, 0x09, 0xdc, 0x95, 0x3c, 0x96, 0x8e, 0xb1, 2816 - 0x09, 0xbd, 0xe4, 0xeb, 0xdb, 0xca, 0x70, 0x7a, 2817 - 0x9e, 0xfa, 0x31, 0x18, 0x45, 0x3c, 0x21, 0x33, 2818 - 0xb0, 0xb3, 0x2b, 0xea, 0xf3, 0x71, 0x2d, 0xe1, 2819 - 0x03, 0xad, 0x1b, 0x48, 0xd4, 0x67, 0x27, 0xf0, 2820 - 0x62, 0xe4, 0x3d, 0xfb, 0x9b, 0x08, 0x76, 0xe7, 2821 - 0xdd, 0x2b, 0x01, 0x39, 0x04, 0x5a, 0x58, 0x7a, 2822 - 0xf7, 0x11, 0x90, 0xec, 0xbd, 0x51, 0x5c, 0x32, 2823 - 0x6b, 0xd7, 0x35, 0x39, 0x02, 0x6b, 0xf2, 0xa6, 2824 - 0xd0, 0x0d, 0x07, 0xe1, 0x06, 0xc4, 0x5b, 0x7d, 2825 - 0xe4, 0x6a, 0xd7, 0xee, 0x15, 0x1f, 0x83, 0xb4, 2826 - 0xa3, 0xa7, 0x5e, 0xc3, 0x90, 0xb7, 0xef, 0xd3, 2827 - 0xb7, 0x4f, 0xf8, 0x92, 0x4c, 0xb7, 0x3c, 0x29, 2828 - 0xcd, 0x7e, 0x2b, 0x5d, 0x43, 0xea, 0x42, 0xe7, 2829 - 0x74, 0x3f, 0x7d, 0x58, 0x88, 0x75, 0xde, 0x3e }, 2739 + .result = "\x1a\x1d\xa9\x30\xad\xf9\x2f\x9b" 2740 + "\xb6\x1d\xae\xef\xf0\x2f\xf8\x5a" 2741 + "\x39\x3c\xbf\x2a\xb2\x45\xb2\x23" 2742 + "\x1b\x63\x3c\xcf\xaa\xbe\xcf\x4e" 2743 + "\xfa\xe8\x29\xc2\x20\x68\x2b\x3c" 2744 + "\x2e\x8b\xf7\x6e\x25\xbd\xe3\x3d" 2745 + "\x66\x27\xd6\xaf\xd6\x64\x3e\xe3" 2746 + "\xe8\x58\x46\x97\x39\x51\x07\xde" 2747 + "\xcb\x37\xbc\xa9\xc0\x5f\x75\xc3" 2748 + "\x0e\x84\x23\x1d\x16\xd4\x1c\x59" 2749 + "\x9c\x1a\x02\x55\xab\x3a\x97\x1d" 2750 + "\xdf\xdd\xc7\x06\x51\xd7\x70\xae" 2751 + "\x23\xc6\x8c\xf5\x1e\xa0\xe5\x82" 2752 + "\xb8\xb2\xbf\x04\xa0\x32\x8e\x68" 2753 + "\xeb\xaf\x6e\x2d\x94\x22\x2f\xce" 2754 + "\x4c\xb5\x59\xe2\xa2\x2f\xa0\x98" 2755 + "\x1a\x97\xc6\xd4\xb5\x00\x59\xf2" 2756 + "\x84\x14\x72\xb1\x9a\x6e\xa3\x7f" 2757 + "\xea\x20\xe7\xcb\x65\x77\x3a\xdf" 2758 + "\xc8\x97\x67\x15\xc2\x2a\x27\xcc" 2759 + "\x18\x55\xa1\x24\x0b\x24\x24\xaf" 2760 + "\x5b\xec\x68\xb8\xc8\xf5\xba\x63" 2761 + "\xff\xed\x89\xce\xd5\x3d\x88\xf3" 2762 + "\x25\xef\x05\x7c\x3a\xef\xeb\xd8" 2763 + "\x7a\x32\x0d\xd1\x1e\x58\x59\x99" 2764 + "\x90\x25\xb5\x26\xb0\xe3\x2b\x6c" 2765 + "\x4c\xa9\x8b\x84\x4f\x5e\x01\x50" 2766 + "\x41\x30\x58\xc5\x62\x74\x52\x1d" 2767 + "\x45\x24\x6a\x42\x64\x4f\x97\x1c" 2768 + "\xa8\x66\xb5\x6d\x79\xd4\x0d\x48" 2769 + "\xc5\x5f\xf3\x90\x32\xdd\xdd\xe1" 2770 + "\xe4\xa9\x9f\xfc\xc3\x52\x5a\x46" 2771 + "\xe4\x81\x84\x95\x36\x59\x7a\x6b" 2772 + "\xaa\xb3\x60\xad\xce\x9f\x9f\x28" 2773 + "\xe0\x01\x75\x22\xc4\x4e\xa9\x62" 2774 + "\x5c\x62\x0d\x00\xcb\x13\xe8\x43" 2775 + "\x72\xd4\x2d\x53\x46\xb5\xd1\x16" 2776 + "\x22\x18\xdf\x34\x33\xf5\xd6\x1c" 2777 + "\xb8\x79\x78\x97\x94\xff\x72\x13" 2778 + "\x4c\x27\xfc\xcb\xbf\x01\x53\xa6" 2779 + "\xb4\x50\x6e\xde\xdf\xb5\x43\xa4" 2780 + "\x59\xdf\x52\xf9\x7c\xe0\x11\x6f" 2781 + "\x2d\x14\x8e\x24\x61\x2c\xe1\x17" 2782 + "\xcc\xce\x51\x0c\x19\x8a\x82\x30" 2783 + "\x94\xd5\x3d\x6a\x53\x06\x5e\xbd" 2784 + "\xb7\xeb\xfa\xfd\x27\x51\xde\x85" 2785 + "\x1e\x86\x53\x11\x53\x94\x00\xee" 2786 + "\x2b\x8c\x08\x2a\xbf\xdd\xae\x11" 2787 + "\xcb\x1e\xa2\x07\x9a\x80\xcf\x62" 2788 + "\x9b\x09\xdc\x95\x3c\x96\x8e\xb1" 2789 + "\x09\xbd\xe4\xeb\xdb\xca\x70\x7a" 2790 + "\x9e\xfa\x31\x18\x45\x3c\x21\x33" 2791 + "\xb0\xb3\x2b\xea\xf3\x71\x2d\xe1" 2792 + "\x03\xad\x1b\x48\xd4\x67\x27\xf0" 2793 + "\x62\xe4\x3d\xfb\x9b\x08\x76\xe7" 2794 + "\xdd\x2b\x01\x39\x04\x5a\x58\x7a" 2795 + "\xf7\x11\x90\xec\xbd\x51\x5c\x32" 2796 + "\x6b\xd7\x35\x39\x02\x6b\xf2\xa6" 2797 + "\xd0\x0d\x07\xe1\x06\xc4\x5b\x7d" 2798 + "\xe4\x6a\xd7\xee\x15\x1f\x83\xb4" 2799 + "\xa3\xa7\x5e\xc3\x90\xb7\xef\xd3" 2800 + "\xb7\x4f\xf8\x92\x4c\xb7\x3c\x29" 2801 + "\xcd\x7e\x2b\x5d\x43\xea\x42\xe7" 2802 + "\x74\x3f\x7d\x58\x88\x75\xde\x3e", 2830 2803 .rlen = 512, 2831 2804 } 2832 2805 }; ··· 2834 2809 /* from http://grouper.ieee.org/groups/1619/email/pdf00017.pdf */ 2835 2810 /* same as enc vectors with input and result reversed */ 2836 2811 { /* LRW-32-AES 1 */ 2837 - .key = { 0x45, 0x62, 0xac, 0x25, 0xf8, 0x28, 0x17, 0x6d, 2838 - 0x4c, 0x26, 0x84, 0x14, 0xb5, 0x68, 0x01, 0x85, 2839 - 0x25, 0x8e, 0x2a, 0x05, 0xe7, 0x3e, 0x9d, 0x03, 2840 - 0xee, 0x5a, 0x83, 0x0c, 0xcc, 0x09, 0x4c, 0x87 }, 2812 + .key = "\x45\x62\xac\x25\xf8\x28\x17\x6d" 2813 + "\x4c\x26\x84\x14\xb5\x68\x01\x85" 2814 + "\x25\x8e\x2a\x05\xe7\x3e\x9d\x03" 2815 + "\xee\x5a\x83\x0c\xcc\x09\x4c\x87", 2841 2816 .klen = 32, 2842 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2843 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, 2844 - .input = { 0xf1, 0xb2, 0x73, 0xcd, 0x65, 0xa3, 0xdf, 0x5f, 2845 - 0xe9, 0x5d, 0x48, 0x92, 0x54, 0x63, 0x4e, 0xb8 }, 2817 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2818 + "\x00\x00\x00\x00\x00\x00\x00\x01", 2819 + .input = "\xf1\xb2\x73\xcd\x65\xa3\xdf\x5f" 2820 + "\xe9\x5d\x48\x92\x54\x63\x4e\xb8", 2846 2821 .ilen = 16, 2847 - .result = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2848 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2822 + .result = "\x30\x31\x32\x33\x34\x35\x36\x37" 2823 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2849 2824 .rlen = 16, 2850 2825 }, { /* LRW-32-AES 2 */ 2851 - .key = { 0x59, 0x70, 0x47, 0x14, 0xf5, 0x57, 0x47, 0x8c, 2852 - 0xd7, 0x79, 0xe8, 0x0f, 0x54, 0x88, 0x79, 0x44, 2853 - 0x0d, 0x48, 0xf0, 0xb7, 0xb1, 0x5a, 0x53, 0xea, 2854 - 0x1c, 0xaa, 0x6b, 0x29, 0xc2, 0xca, 0xfb, 0xaf 2855 - }, 2826 + .key = "\x59\x70\x47\x14\xf5\x57\x47\x8c" 2827 + "\xd7\x79\xe8\x0f\x54\x88\x79\x44" 2828 + "\x0d\x48\xf0\xb7\xb1\x5a\x53\xea" 2829 + "\x1c\xaa\x6b\x29\xc2\xca\xfb\xaf", 2856 2830 .klen = 32, 2857 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }, 2859 - .input = { 0x00, 0xc8, 0x2b, 0xae, 0x95, 0xbb, 0xcd, 0xe5, 2860 - 0x27, 0x4f, 0x07, 0x69, 0xb2, 0x60, 0xe1, 0x36 }, 2831 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2832 + "\x00\x00\x00\x00\x00\x00\x00\x02", 2833 + .input = "\x00\xc8\x2b\xae\x95\xbb\xcd\xe5" 2834 + "\x27\x4f\x07\x69\xb2\x60\xe1\x36", 2861 2835 .ilen = 16, 2862 - .result = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2863 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2836 + .result = "\x30\x31\x32\x33\x34\x35\x36\x37" 2837 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2864 2838 .rlen = 16, 2865 2839 }, { /* LRW-32-AES 3 */ 2866 - .key = { 0xd8, 0x2a, 0x91, 0x34, 0xb2, 0x6a, 0x56, 0x50, 2867 - 0x30, 0xfe, 0x69, 0xe2, 0x37, 0x7f, 0x98, 0x47, 2868 - 0xcd, 0xf9, 0x0b, 0x16, 0x0c, 0x64, 0x8f, 0xb6, 2869 - 0xb0, 0x0d, 0x0d, 0x1b, 0xae, 0x85, 0x87, 0x1f }, 2840 + .key = "\xd8\x2a\x91\x34\xb2\x6a\x56\x50" 2841 + "\x30\xfe\x69\xe2\x37\x7f\x98\x47" 2842 + "\xcd\xf9\x0b\x16\x0c\x64\x8f\xb6" 2843 + "\xb0\x0d\x0d\x1b\xae\x85\x87\x1f", 2870 2844 .klen = 32, 2871 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2872 - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 }, 2873 - .input = { 0x76, 0x32, 0x21, 0x83, 0xed, 0x8f, 0xf1, 0x82, 2874 - 0xf9, 0x59, 0x62, 0x03, 0x69, 0x0e, 0x5e, 0x01 }, 2845 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2846 + "\x00\x00\x00\x02\x00\x00\x00\x00", 2847 + .input = "\x76\x32\x21\x83\xed\x8f\xf1\x82" 2848 + "\xf9\x59\x62\x03\x69\x0e\x5e\x01", 2875 2849 .ilen = 16, 2876 - .result = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2877 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2850 + .result = "\x30\x31\x32\x33\x34\x35\x36\x37" 2851 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2878 2852 .rlen = 16, 2879 2853 }, { /* LRW-32-AES 4 */ 2880 - .key = { 0x0f, 0x6a, 0xef, 0xf8, 0xd3, 0xd2, 0xbb, 0x15, 2881 - 0x25, 0x83, 0xf7, 0x3c, 0x1f, 0x01, 0x28, 0x74, 2882 - 0xca, 0xc6, 0xbc, 0x35, 0x4d, 0x4a, 0x65, 0x54, 2883 - 0x90, 0xae, 0x61, 0xcf, 0x7b, 0xae, 0xbd, 0xcc, 2884 - 0xad, 0xe4, 0x94, 0xc5, 0x4a, 0x29, 0xae, 0x70 }, 2854 + .key = "\x0f\x6a\xef\xf8\xd3\xd2\xbb\x15" 2855 + "\x25\x83\xf7\x3c\x1f\x01\x28\x74" 2856 + "\xca\xc6\xbc\x35\x4d\x4a\x65\x54" 2857 + "\x90\xae\x61\xcf\x7b\xae\xbd\xcc" 2858 + "\xad\xe4\x94\xc5\x4a\x29\xae\x70", 2885 2859 .klen = 40, 2886 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2887 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, 2888 - .input = { 0x9c, 0x0f, 0x15, 0x2f, 0x55, 0xa2, 0xd8, 0xf0, 2889 - 0xd6, 0x7b, 0x8f, 0x9e, 0x28, 0x22, 0xbc, 0x41 }, 2860 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2861 + "\x00\x00\x00\x00\x00\x00\x00\x01", 2862 + .input = "\x9c\x0f\x15\x2f\x55\xa2\xd8\xf0" 2863 + "\xd6\x7b\x8f\x9e\x28\x22\xbc\x41", 2890 2864 .ilen = 16, 2891 - .result = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2892 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2865 + .result = "\x30\x31\x32\x33\x34\x35\x36\x37" 2866 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2893 2867 .rlen = 16, 2894 2868 }, { /* LRW-32-AES 5 */ 2895 - .key = { 0x8a, 0xd4, 0xee, 0x10, 0x2f, 0xbd, 0x81, 0xff, 2896 - 0xf8, 0x86, 0xce, 0xac, 0x93, 0xc5, 0xad, 0xc6, 2897 - 0xa0, 0x19, 0x07, 0xc0, 0x9d, 0xf7, 0xbb, 0xdd, 2898 - 0x52, 0x13, 0xb2, 0xb7, 0xf0, 0xff, 0x11, 0xd8, 2899 - 0xd6, 0x08, 0xd0, 0xcd, 0x2e, 0xb1, 0x17, 0x6f }, 2869 + .key = "\x8a\xd4\xee\x10\x2f\xbd\x81\xff" 2870 + "\xf8\x86\xce\xac\x93\xc5\xad\xc6" 2871 + "\xa0\x19\x07\xc0\x9d\xf7\xbb\xdd" 2872 + "\x52\x13\xb2\xb7\xf0\xff\x11\xd8" 2873 + "\xd6\x08\xd0\xcd\x2e\xb1\x17\x6f", 2900 2874 .klen = 40, 2901 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2902 - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 }, 2903 - .input = { 0xd4, 0x27, 0x6a, 0x7f, 0x14, 0x91, 0x3d, 0x65, 2904 - 0xc8, 0x60, 0x48, 0x02, 0x87, 0xe3, 0x34, 0x06 }, 2875 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2876 + "\x00\x00\x00\x02\x00\x00\x00\x00", 2877 + .input = "\xd4\x27\x6a\x7f\x14\x91\x3d\x65" 2878 + "\xc8\x60\x48\x02\x87\xe3\x34\x06", 2905 2879 .ilen = 16, 2906 - .result = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2907 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2880 + .result = "\x30\x31\x32\x33\x34\x35\x36\x37" 2881 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2908 2882 .rlen = 16, 2909 2883 }, { /* LRW-32-AES 6 */ 2910 - .key = { 0xf8, 0xd4, 0x76, 0xff, 0xd6, 0x46, 0xee, 0x6c, 2911 - 0x23, 0x84, 0xcb, 0x1c, 0x77, 0xd6, 0x19, 0x5d, 2912 - 0xfe, 0xf1, 0xa9, 0xf3, 0x7b, 0xbc, 0x8d, 0x21, 2913 - 0xa7, 0x9c, 0x21, 0xf8, 0xcb, 0x90, 0x02, 0x89, 2914 - 0xa8, 0x45, 0x34, 0x8e, 0xc8, 0xc5, 0xb5, 0xf1, 2915 - 0x26, 0xf5, 0x0e, 0x76, 0xfe, 0xfd, 0x1b, 0x1e }, 2884 + .key = "\xf8\xd4\x76\xff\xd6\x46\xee\x6c" 2885 + "\x23\x84\xcb\x1c\x77\xd6\x19\x5d" 2886 + "\xfe\xf1\xa9\xf3\x7b\xbc\x8d\x21" 2887 + "\xa7\x9c\x21\xf8\xcb\x90\x02\x89" 2888 + "\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1" 2889 + "\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e", 2916 2890 .klen = 48, 2917 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2918 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, 2919 - .input = { 0xbd, 0x06, 0xb8, 0xe1, 0xdb, 0x98, 0x89, 0x9e, 2920 - 0xc4, 0x98, 0xe4, 0x91, 0xcf, 0x1c, 0x70, 0x2b }, 2891 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2892 + "\x00\x00\x00\x00\x00\x00\x00\x01", 2893 + .input = "\xbd\x06\xb8\xe1\xdb\x98\x89\x9e" 2894 + "\xc4\x98\xe4\x91\xcf\x1c\x70\x2b", 2921 2895 .ilen = 16, 2922 - .result = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2923 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2896 + .result = "\x30\x31\x32\x33\x34\x35\x36\x37" 2897 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2924 2898 .rlen = 16, 2925 2899 }, { /* LRW-32-AES 7 */ 2926 - .key = { 0xfb, 0x76, 0x15, 0xb2, 0x3d, 0x80, 0x89, 0x1d, 2927 - 0xd4, 0x70, 0x98, 0x0b, 0xc7, 0x95, 0x84, 0xc8, 2928 - 0xb2, 0xfb, 0x64, 0xce, 0x60, 0x97, 0x87, 0x8d, 2929 - 0x17, 0xfc, 0xe4, 0x5a, 0x49, 0xe8, 0x30, 0xb7, 2930 - 0x6e, 0x78, 0x17, 0xe7, 0x2d, 0x5e, 0x12, 0xd4, 2931 - 0x60, 0x64, 0x04, 0x7a, 0xf1, 0x2f, 0x9e, 0x0c }, 2900 + .key = "\xfb\x76\x15\xb2\x3d\x80\x89\x1d" 2901 + "\xd4\x70\x98\x0b\xc7\x95\x84\xc8" 2902 + "\xb2\xfb\x64\xce\x60\x97\x87\x8d" 2903 + "\x17\xfc\xe4\x5a\x49\xe8\x30\xb7" 2904 + "\x6e\x78\x17\xe7\x2d\x5e\x12\xd4" 2905 + "\x60\x64\x04\x7a\xf1\x2f\x9e\x0c", 2932 2906 .klen = 48, 2933 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2934 - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 }, 2935 - .input = { 0x5b, 0x90, 0x8e, 0xc1, 0xab, 0xdd, 0x67, 0x5f, 2936 - 0x3d, 0x69, 0x8a, 0x95, 0x53, 0xc8, 0x9c, 0xe5 }, 2907 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2908 + "\x00\x00\x00\x02\x00\x00\x00\x00", 2909 + .input = "\x5b\x90\x8e\xc1\xab\xdd\x67\x5f" 2910 + "\x3d\x69\x8a\x95\x53\xc8\x9c\xe5", 2937 2911 .ilen = 16, 2938 - .result = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 2939 - 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 }, 2912 + .result = "\x30\x31\x32\x33\x34\x35\x36\x37" 2913 + "\x38\x39\x41\x42\x43\x44\x45\x46", 2940 2914 .rlen = 16, 2941 2915 }, { 2942 2916 /* http://www.mail-archive.com/stds-p1619@listserv.ieee.org/msg00173.html */ 2943 - .key = { 0xf8, 0xd4, 0x76, 0xff, 0xd6, 0x46, 0xee, 0x6c, 2944 - 0x23, 0x84, 0xcb, 0x1c, 0x77, 0xd6, 0x19, 0x5d, 2945 - 0xfe, 0xf1, 0xa9, 0xf3, 0x7b, 0xbc, 0x8d, 0x21, 2946 - 0xa7, 0x9c, 0x21, 0xf8, 0xcb, 0x90, 0x02, 0x89, 2947 - 0xa8, 0x45, 0x34, 0x8e, 0xc8, 0xc5, 0xb5, 0xf1, 2948 - 0x26, 0xf5, 0x0e, 0x76, 0xfe, 0xfd, 0x1b, 0x1e }, 2917 + .key = "\xf8\xd4\x76\xff\xd6\x46\xee\x6c" 2918 + "\x23\x84\xcb\x1c\x77\xd6\x19\x5d" 2919 + "\xfe\xf1\xa9\xf3\x7b\xbc\x8d\x21" 2920 + "\xa7\x9c\x21\xf8\xcb\x90\x02\x89" 2921 + "\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1" 2922 + "\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e", 2949 2923 .klen = 48, 2950 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2951 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }, 2952 - .input = { 0x1a, 0x1d, 0xa9, 0x30, 0xad, 0xf9, 0x2f, 0x9b, 2953 - 0xb6, 0x1d, 0xae, 0xef, 0xf0, 0x2f, 0xf8, 0x5a, 2954 - 0x39, 0x3c, 0xbf, 0x2a, 0xb2, 0x45, 0xb2, 0x23, 2955 - 0x1b, 0x63, 0x3c, 0xcf, 0xaa, 0xbe, 0xcf, 0x4e, 2956 - 0xfa, 0xe8, 0x29, 0xc2, 0x20, 0x68, 0x2b, 0x3c, 2957 - 0x2e, 0x8b, 0xf7, 0x6e, 0x25, 0xbd, 0xe3, 0x3d, 2958 - 0x66, 0x27, 0xd6, 0xaf, 0xd6, 0x64, 0x3e, 0xe3, 2959 - 0xe8, 0x58, 0x46, 0x97, 0x39, 0x51, 0x07, 0xde, 2960 - 0xcb, 0x37, 0xbc, 0xa9, 0xc0, 0x5f, 0x75, 0xc3, 2961 - 0x0e, 0x84, 0x23, 0x1d, 0x16, 0xd4, 0x1c, 0x59, 2962 - 0x9c, 0x1a, 0x02, 0x55, 0xab, 0x3a, 0x97, 0x1d, 2963 - 0xdf, 0xdd, 0xc7, 0x06, 0x51, 0xd7, 0x70, 0xae, 2964 - 0x23, 0xc6, 0x8c, 0xf5, 0x1e, 0xa0, 0xe5, 0x82, 2965 - 0xb8, 0xb2, 0xbf, 0x04, 0xa0, 0x32, 0x8e, 0x68, 2966 - 0xeb, 0xaf, 0x6e, 0x2d, 0x94, 0x22, 0x2f, 0xce, 2967 - 0x4c, 0xb5, 0x59, 0xe2, 0xa2, 0x2f, 0xa0, 0x98, 2968 - 0x1a, 0x97, 0xc6, 0xd4, 0xb5, 0x00, 0x59, 0xf2, 2969 - 0x84, 0x14, 0x72, 0xb1, 0x9a, 0x6e, 0xa3, 0x7f, 2970 - 0xea, 0x20, 0xe7, 0xcb, 0x65, 0x77, 0x3a, 0xdf, 2971 - 0xc8, 0x97, 0x67, 0x15, 0xc2, 0x2a, 0x27, 0xcc, 2972 - 0x18, 0x55, 0xa1, 0x24, 0x0b, 0x24, 0x24, 0xaf, 2973 - 0x5b, 0xec, 0x68, 0xb8, 0xc8, 0xf5, 0xba, 0x63, 2974 - 0xff, 0xed, 0x89, 0xce, 0xd5, 0x3d, 0x88, 0xf3, 2975 - 0x25, 0xef, 0x05, 0x7c, 0x3a, 0xef, 0xeb, 0xd8, 2976 - 0x7a, 0x32, 0x0d, 0xd1, 0x1e, 0x58, 0x59, 0x99, 2977 - 0x90, 0x25, 0xb5, 0x26, 0xb0, 0xe3, 0x2b, 0x6c, 2978 - 0x4c, 0xa9, 0x8b, 0x84, 0x4f, 0x5e, 0x01, 0x50, 2979 - 0x41, 0x30, 0x58, 0xc5, 0x62, 0x74, 0x52, 0x1d, 2980 - 0x45, 0x24, 0x6a, 0x42, 0x64, 0x4f, 0x97, 0x1c, 2981 - 0xa8, 0x66, 0xb5, 0x6d, 0x79, 0xd4, 0x0d, 0x48, 2982 - 0xc5, 0x5f, 0xf3, 0x90, 0x32, 0xdd, 0xdd, 0xe1, 2983 - 0xe4, 0xa9, 0x9f, 0xfc, 0xc3, 0x52, 0x5a, 0x46, 2984 - 0xe4, 0x81, 0x84, 0x95, 0x36, 0x59, 0x7a, 0x6b, 2985 - 0xaa, 0xb3, 0x60, 0xad, 0xce, 0x9f, 0x9f, 0x28, 2986 - 0xe0, 0x01, 0x75, 0x22, 0xc4, 0x4e, 0xa9, 0x62, 2987 - 0x5c, 0x62, 0x0d, 0x00, 0xcb, 0x13, 0xe8, 0x43, 2988 - 0x72, 0xd4, 0x2d, 0x53, 0x46, 0xb5, 0xd1, 0x16, 2989 - 0x22, 0x18, 0xdf, 0x34, 0x33, 0xf5, 0xd6, 0x1c, 2990 - 0xb8, 0x79, 0x78, 0x97, 0x94, 0xff, 0x72, 0x13, 2991 - 0x4c, 0x27, 0xfc, 0xcb, 0xbf, 0x01, 0x53, 0xa6, 2992 - 0xb4, 0x50, 0x6e, 0xde, 0xdf, 0xb5, 0x43, 0xa4, 2993 - 0x59, 0xdf, 0x52, 0xf9, 0x7c, 0xe0, 0x11, 0x6f, 2994 - 0x2d, 0x14, 0x8e, 0x24, 0x61, 0x2c, 0xe1, 0x17, 2995 - 0xcc, 0xce, 0x51, 0x0c, 0x19, 0x8a, 0x82, 0x30, 2996 - 0x94, 0xd5, 0x3d, 0x6a, 0x53, 0x06, 0x5e, 0xbd, 2997 - 0xb7, 0xeb, 0xfa, 0xfd, 0x27, 0x51, 0xde, 0x85, 2998 - 0x1e, 0x86, 0x53, 0x11, 0x53, 0x94, 0x00, 0xee, 2999 - 0x2b, 0x8c, 0x08, 0x2a, 0xbf, 0xdd, 0xae, 0x11, 3000 - 0xcb, 0x1e, 0xa2, 0x07, 0x9a, 0x80, 0xcf, 0x62, 3001 - 0x9b, 0x09, 0xdc, 0x95, 0x3c, 0x96, 0x8e, 0xb1, 3002 - 0x09, 0xbd, 0xe4, 0xeb, 0xdb, 0xca, 0x70, 0x7a, 3003 - 0x9e, 0xfa, 0x31, 0x18, 0x45, 0x3c, 0x21, 0x33, 3004 - 0xb0, 0xb3, 0x2b, 0xea, 0xf3, 0x71, 0x2d, 0xe1, 3005 - 0x03, 0xad, 0x1b, 0x48, 0xd4, 0x67, 0x27, 0xf0, 3006 - 0x62, 0xe4, 0x3d, 0xfb, 0x9b, 0x08, 0x76, 0xe7, 3007 - 0xdd, 0x2b, 0x01, 0x39, 0x04, 0x5a, 0x58, 0x7a, 3008 - 0xf7, 0x11, 0x90, 0xec, 0xbd, 0x51, 0x5c, 0x32, 3009 - 0x6b, 0xd7, 0x35, 0x39, 0x02, 0x6b, 0xf2, 0xa6, 3010 - 0xd0, 0x0d, 0x07, 0xe1, 0x06, 0xc4, 0x5b, 0x7d, 3011 - 0xe4, 0x6a, 0xd7, 0xee, 0x15, 0x1f, 0x83, 0xb4, 3012 - 0xa3, 0xa7, 0x5e, 0xc3, 0x90, 0xb7, 0xef, 0xd3, 3013 - 0xb7, 0x4f, 0xf8, 0x92, 0x4c, 0xb7, 0x3c, 0x29, 3014 - 0xcd, 0x7e, 0x2b, 0x5d, 0x43, 0xea, 0x42, 0xe7, 3015 - 0x74, 0x3f, 0x7d, 0x58, 0x88, 0x75, 0xde, 0x3e }, 2924 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 2925 + "\x00\x00\x00\x00\x00\x00\x00\x01", 2926 + .input = "\x1a\x1d\xa9\x30\xad\xf9\x2f\x9b" 2927 + "\xb6\x1d\xae\xef\xf0\x2f\xf8\x5a" 2928 + "\x39\x3c\xbf\x2a\xb2\x45\xb2\x23" 2929 + "\x1b\x63\x3c\xcf\xaa\xbe\xcf\x4e" 2930 + "\xfa\xe8\x29\xc2\x20\x68\x2b\x3c" 2931 + "\x2e\x8b\xf7\x6e\x25\xbd\xe3\x3d" 2932 + "\x66\x27\xd6\xaf\xd6\x64\x3e\xe3" 2933 + "\xe8\x58\x46\x97\x39\x51\x07\xde" 2934 + "\xcb\x37\xbc\xa9\xc0\x5f\x75\xc3" 2935 + "\x0e\x84\x23\x1d\x16\xd4\x1c\x59" 2936 + "\x9c\x1a\x02\x55\xab\x3a\x97\x1d" 2937 + "\xdf\xdd\xc7\x06\x51\xd7\x70\xae" 2938 + "\x23\xc6\x8c\xf5\x1e\xa0\xe5\x82" 2939 + "\xb8\xb2\xbf\x04\xa0\x32\x8e\x68" 2940 + "\xeb\xaf\x6e\x2d\x94\x22\x2f\xce" 2941 + "\x4c\xb5\x59\xe2\xa2\x2f\xa0\x98" 2942 + "\x1a\x97\xc6\xd4\xb5\x00\x59\xf2" 2943 + "\x84\x14\x72\xb1\x9a\x6e\xa3\x7f" 2944 + "\xea\x20\xe7\xcb\x65\x77\x3a\xdf" 2945 + "\xc8\x97\x67\x15\xc2\x2a\x27\xcc" 2946 + "\x18\x55\xa1\x24\x0b\x24\x24\xaf" 2947 + "\x5b\xec\x68\xb8\xc8\xf5\xba\x63" 2948 + "\xff\xed\x89\xce\xd5\x3d\x88\xf3" 2949 + "\x25\xef\x05\x7c\x3a\xef\xeb\xd8" 2950 + "\x7a\x32\x0d\xd1\x1e\x58\x59\x99" 2951 + "\x90\x25\xb5\x26\xb0\xe3\x2b\x6c" 2952 + "\x4c\xa9\x8b\x84\x4f\x5e\x01\x50" 2953 + "\x41\x30\x58\xc5\x62\x74\x52\x1d" 2954 + "\x45\x24\x6a\x42\x64\x4f\x97\x1c" 2955 + "\xa8\x66\xb5\x6d\x79\xd4\x0d\x48" 2956 + "\xc5\x5f\xf3\x90\x32\xdd\xdd\xe1" 2957 + "\xe4\xa9\x9f\xfc\xc3\x52\x5a\x46" 2958 + "\xe4\x81\x84\x95\x36\x59\x7a\x6b" 2959 + "\xaa\xb3\x60\xad\xce\x9f\x9f\x28" 2960 + "\xe0\x01\x75\x22\xc4\x4e\xa9\x62" 2961 + "\x5c\x62\x0d\x00\xcb\x13\xe8\x43" 2962 + "\x72\xd4\x2d\x53\x46\xb5\xd1\x16" 2963 + "\x22\x18\xdf\x34\x33\xf5\xd6\x1c" 2964 + "\xb8\x79\x78\x97\x94\xff\x72\x13" 2965 + "\x4c\x27\xfc\xcb\xbf\x01\x53\xa6" 2966 + "\xb4\x50\x6e\xde\xdf\xb5\x43\xa4" 2967 + "\x59\xdf\x52\xf9\x7c\xe0\x11\x6f" 2968 + "\x2d\x14\x8e\x24\x61\x2c\xe1\x17" 2969 + "\xcc\xce\x51\x0c\x19\x8a\x82\x30" 2970 + "\x94\xd5\x3d\x6a\x53\x06\x5e\xbd" 2971 + "\xb7\xeb\xfa\xfd\x27\x51\xde\x85" 2972 + "\x1e\x86\x53\x11\x53\x94\x00\xee" 2973 + "\x2b\x8c\x08\x2a\xbf\xdd\xae\x11" 2974 + "\xcb\x1e\xa2\x07\x9a\x80\xcf\x62" 2975 + "\x9b\x09\xdc\x95\x3c\x96\x8e\xb1" 2976 + "\x09\xbd\xe4\xeb\xdb\xca\x70\x7a" 2977 + "\x9e\xfa\x31\x18\x45\x3c\x21\x33" 2978 + "\xb0\xb3\x2b\xea\xf3\x71\x2d\xe1" 2979 + "\x03\xad\x1b\x48\xd4\x67\x27\xf0" 2980 + "\x62\xe4\x3d\xfb\x9b\x08\x76\xe7" 2981 + "\xdd\x2b\x01\x39\x04\x5a\x58\x7a" 2982 + "\xf7\x11\x90\xec\xbd\x51\x5c\x32" 2983 + "\x6b\xd7\x35\x39\x02\x6b\xf2\xa6" 2984 + "\xd0\x0d\x07\xe1\x06\xc4\x5b\x7d" 2985 + "\xe4\x6a\xd7\xee\x15\x1f\x83\xb4" 2986 + "\xa3\xa7\x5e\xc3\x90\xb7\xef\xd3" 2987 + "\xb7\x4f\xf8\x92\x4c\xb7\x3c\x29" 2988 + "\xcd\x7e\x2b\x5d\x43\xea\x42\xe7" 2989 + "\x74\x3f\x7d\x58\x88\x75\xde\x3e", 3016 2990 .ilen = 512, 3017 - .result = { 0x05, 0x11, 0xb7, 0x18, 0xab, 0xc6, 0x2d, 0xac, 3018 - 0x70, 0x5d, 0xf6, 0x22, 0x94, 0xcd, 0xe5, 0x6c, 3019 - 0x17, 0x6b, 0xf6, 0x1c, 0xf0, 0xf3, 0x6e, 0xf8, 3020 - 0x50, 0x38, 0x1f, 0x71, 0x49, 0xb6, 0x57, 0xd6, 3021 - 0x8f, 0xcb, 0x8d, 0x6b, 0xe3, 0xa6, 0x29, 0x90, 3022 - 0xfe, 0x2a, 0x62, 0x82, 0xae, 0x6d, 0x8b, 0xf6, 3023 - 0xad, 0x1e, 0x9e, 0x20, 0x5f, 0x38, 0xbe, 0x04, 3024 - 0xda, 0x10, 0x8e, 0xed, 0xa2, 0xa4, 0x87, 0xab, 3025 - 0xda, 0x6b, 0xb4, 0x0c, 0x75, 0xba, 0xd3, 0x7c, 3026 - 0xc9, 0xac, 0x42, 0x31, 0x95, 0x7c, 0xc9, 0x04, 3027 - 0xeb, 0xd5, 0x6e, 0x32, 0x69, 0x8a, 0xdb, 0xa6, 3028 - 0x15, 0xd7, 0x3f, 0x4f, 0x2f, 0x66, 0x69, 0x03, 3029 - 0x9c, 0x1f, 0x54, 0x0f, 0xde, 0x1f, 0xf3, 0x65, 3030 - 0x4c, 0x96, 0x12, 0xed, 0x7c, 0x92, 0x03, 0x01, 3031 - 0x6f, 0xbc, 0x35, 0x93, 0xac, 0xf1, 0x27, 0xf1, 3032 - 0xb4, 0x96, 0x82, 0x5a, 0x5f, 0xb0, 0xa0, 0x50, 3033 - 0x89, 0xa4, 0x8e, 0x66, 0x44, 0x85, 0xcc, 0xfd, 3034 - 0x33, 0x14, 0x70, 0xe3, 0x96, 0xb2, 0xc3, 0xd3, 3035 - 0xbb, 0x54, 0x5a, 0x1a, 0xf9, 0x74, 0xa2, 0xc5, 3036 - 0x2d, 0x64, 0x75, 0xdd, 0xb4, 0x54, 0xe6, 0x74, 3037 - 0x8c, 0xd3, 0x9d, 0x9e, 0x86, 0xab, 0x51, 0x53, 3038 - 0xb7, 0x93, 0x3e, 0x6f, 0xd0, 0x4e, 0x2c, 0x40, 3039 - 0xf6, 0xa8, 0x2e, 0x3e, 0x9d, 0xf4, 0x66, 0xa5, 3040 - 0x76, 0x12, 0x73, 0x44, 0x1a, 0x56, 0xd7, 0x72, 3041 - 0x88, 0xcd, 0x21, 0x8c, 0x4c, 0x0f, 0xfe, 0xda, 3042 - 0x95, 0xe0, 0x3a, 0xa6, 0xa5, 0x84, 0x46, 0xcd, 3043 - 0xd5, 0x3e, 0x9d, 0x3a, 0xe2, 0x67, 0xe6, 0x60, 3044 - 0x1a, 0xe2, 0x70, 0x85, 0x58, 0xc2, 0x1b, 0x09, 3045 - 0xe1, 0xd7, 0x2c, 0xca, 0xad, 0xa8, 0x8f, 0xf9, 3046 - 0xac, 0xb3, 0x0e, 0xdb, 0xca, 0x2e, 0xe2, 0xb8, 3047 - 0x51, 0x71, 0xd9, 0x3c, 0x6c, 0xf1, 0x56, 0xf8, 3048 - 0xea, 0x9c, 0xf1, 0xfb, 0x0c, 0xe6, 0xb7, 0x10, 3049 - 0x1c, 0xf8, 0xa9, 0x7c, 0xe8, 0x53, 0x35, 0xc1, 3050 - 0x90, 0x3e, 0x76, 0x4a, 0x74, 0xa4, 0x21, 0x2c, 3051 - 0xf6, 0x2c, 0x4e, 0x0f, 0x94, 0x3a, 0x88, 0x2e, 3052 - 0x41, 0x09, 0x6a, 0x33, 0x7d, 0xf6, 0xdd, 0x3f, 3053 - 0x8d, 0x23, 0x31, 0x74, 0x84, 0xeb, 0x88, 0x6e, 3054 - 0xcc, 0xb9, 0xbc, 0x22, 0x83, 0x19, 0x07, 0x22, 3055 - 0xa5, 0x2d, 0xdf, 0xa5, 0xf3, 0x80, 0x85, 0x78, 3056 - 0x84, 0x39, 0x6a, 0x6d, 0x6a, 0x99, 0x4f, 0xa5, 3057 - 0x15, 0xfe, 0x46, 0xb0, 0xe4, 0x6c, 0xa5, 0x41, 3058 - 0x3c, 0xce, 0x8f, 0x42, 0x60, 0x71, 0xa7, 0x75, 3059 - 0x08, 0x40, 0x65, 0x8a, 0x82, 0xbf, 0xf5, 0x43, 3060 - 0x71, 0x96, 0xa9, 0x4d, 0x44, 0x8a, 0x20, 0xbe, 3061 - 0xfa, 0x4d, 0xbb, 0xc0, 0x7d, 0x31, 0x96, 0x65, 3062 - 0xe7, 0x75, 0xe5, 0x3e, 0xfd, 0x92, 0x3b, 0xc9, 3063 - 0x55, 0xbb, 0x16, 0x7e, 0xf7, 0xc2, 0x8c, 0xa4, 3064 - 0x40, 0x1d, 0xe5, 0xef, 0x0e, 0xdf, 0xe4, 0x9a, 3065 - 0x62, 0x73, 0x65, 0xfd, 0x46, 0x63, 0x25, 0x3d, 3066 - 0x2b, 0xaf, 0xe5, 0x64, 0xfe, 0xa5, 0x5c, 0xcf, 3067 - 0x24, 0xf3, 0xb4, 0xac, 0x64, 0xba, 0xdf, 0x4b, 3068 - 0xc6, 0x96, 0x7d, 0x81, 0x2d, 0x8d, 0x97, 0xf7, 3069 - 0xc5, 0x68, 0x77, 0x84, 0x32, 0x2b, 0xcc, 0x85, 3070 - 0x74, 0x96, 0xf0, 0x12, 0x77, 0x61, 0xb9, 0xeb, 3071 - 0x71, 0xaa, 0x82, 0xcb, 0x1c, 0xdb, 0x89, 0xc8, 3072 - 0xc6, 0xb5, 0xe3, 0x5c, 0x7d, 0x39, 0x07, 0x24, 3073 - 0xda, 0x39, 0x87, 0x45, 0xc0, 0x2b, 0xbb, 0x01, 3074 - 0xac, 0xbc, 0x2a, 0x5c, 0x7f, 0xfc, 0xe8, 0xce, 3075 - 0x6d, 0x9c, 0x6f, 0xed, 0xd3, 0xc1, 0xa1, 0xd6, 3076 - 0xc5, 0x55, 0xa9, 0x66, 0x2f, 0xe1, 0xc8, 0x32, 3077 - 0xa6, 0x5d, 0xa4, 0x3a, 0x98, 0x73, 0xe8, 0x45, 3078 - 0xa4, 0xc7, 0xa8, 0xb4, 0xf6, 0x13, 0x03, 0xf6, 3079 - 0xe9, 0x2e, 0xc4, 0x29, 0x0f, 0x84, 0xdb, 0xc4, 3080 - 0x21, 0xc4, 0xc2, 0x75, 0x67, 0x89, 0x37, 0x0a }, 2991 + .result = "\x05\x11\xb7\x18\xab\xc6\x2d\xac" 2992 + "\x70\x5d\xf6\x22\x94\xcd\xe5\x6c" 2993 + "\x17\x6b\xf6\x1c\xf0\xf3\x6e\xf8" 2994 + "\x50\x38\x1f\x71\x49\xb6\x57\xd6" 2995 + "\x8f\xcb\x8d\x6b\xe3\xa6\x29\x90" 2996 + "\xfe\x2a\x62\x82\xae\x6d\x8b\xf6" 2997 + "\xad\x1e\x9e\x20\x5f\x38\xbe\x04" 2998 + "\xda\x10\x8e\xed\xa2\xa4\x87\xab" 2999 + "\xda\x6b\xb4\x0c\x75\xba\xd3\x7c" 3000 + "\xc9\xac\x42\x31\x95\x7c\xc9\x04" 3001 + "\xeb\xd5\x6e\x32\x69\x8a\xdb\xa6" 3002 + "\x15\xd7\x3f\x4f\x2f\x66\x69\x03" 3003 + "\x9c\x1f\x54\x0f\xde\x1f\xf3\x65" 3004 + "\x4c\x96\x12\xed\x7c\x92\x03\x01" 3005 + "\x6f\xbc\x35\x93\xac\xf1\x27\xf1" 3006 + "\xb4\x96\x82\x5a\x5f\xb0\xa0\x50" 3007 + "\x89\xa4\x8e\x66\x44\x85\xcc\xfd" 3008 + "\x33\x14\x70\xe3\x96\xb2\xc3\xd3" 3009 + "\xbb\x54\x5a\x1a\xf9\x74\xa2\xc5" 3010 + "\x2d\x64\x75\xdd\xb4\x54\xe6\x74" 3011 + "\x8c\xd3\x9d\x9e\x86\xab\x51\x53" 3012 + "\xb7\x93\x3e\x6f\xd0\x4e\x2c\x40" 3013 + "\xf6\xa8\x2e\x3e\x9d\xf4\x66\xa5" 3014 + "\x76\x12\x73\x44\x1a\x56\xd7\x72" 3015 + "\x88\xcd\x21\x8c\x4c\x0f\xfe\xda" 3016 + "\x95\xe0\x3a\xa6\xa5\x84\x46\xcd" 3017 + "\xd5\x3e\x9d\x3a\xe2\x67\xe6\x60" 3018 + "\x1a\xe2\x70\x85\x58\xc2\x1b\x09" 3019 + "\xe1\xd7\x2c\xca\xad\xa8\x8f\xf9" 3020 + "\xac\xb3\x0e\xdb\xca\x2e\xe2\xb8" 3021 + "\x51\x71\xd9\x3c\x6c\xf1\x56\xf8" 3022 + "\xea\x9c\xf1\xfb\x0c\xe6\xb7\x10" 3023 + "\x1c\xf8\xa9\x7c\xe8\x53\x35\xc1" 3024 + "\x90\x3e\x76\x4a\x74\xa4\x21\x2c" 3025 + "\xf6\x2c\x4e\x0f\x94\x3a\x88\x2e" 3026 + "\x41\x09\x6a\x33\x7d\xf6\xdd\x3f" 3027 + "\x8d\x23\x31\x74\x84\xeb\x88\x6e" 3028 + "\xcc\xb9\xbc\x22\x83\x19\x07\x22" 3029 + "\xa5\x2d\xdf\xa5\xf3\x80\x85\x78" 3030 + "\x84\x39\x6a\x6d\x6a\x99\x4f\xa5" 3031 + "\x15\xfe\x46\xb0\xe4\x6c\xa5\x41" 3032 + "\x3c\xce\x8f\x42\x60\x71\xa7\x75" 3033 + "\x08\x40\x65\x8a\x82\xbf\xf5\x43" 3034 + "\x71\x96\xa9\x4d\x44\x8a\x20\xbe" 3035 + "\xfa\x4d\xbb\xc0\x7d\x31\x96\x65" 3036 + "\xe7\x75\xe5\x3e\xfd\x92\x3b\xc9" 3037 + "\x55\xbb\x16\x7e\xf7\xc2\x8c\xa4" 3038 + "\x40\x1d\xe5\xef\x0e\xdf\xe4\x9a" 3039 + "\x62\x73\x65\xfd\x46\x63\x25\x3d" 3040 + "\x2b\xaf\xe5\x64\xfe\xa5\x5c\xcf" 3041 + "\x24\xf3\xb4\xac\x64\xba\xdf\x4b" 3042 + "\xc6\x96\x7d\x81\x2d\x8d\x97\xf7" 3043 + "\xc5\x68\x77\x84\x32\x2b\xcc\x85" 3044 + "\x74\x96\xf0\x12\x77\x61\xb9\xeb" 3045 + "\x71\xaa\x82\xcb\x1c\xdb\x89\xc8" 3046 + "\xc6\xb5\xe3\x5c\x7d\x39\x07\x24" 3047 + "\xda\x39\x87\x45\xc0\x2b\xbb\x01" 3048 + "\xac\xbc\x2a\x5c\x7f\xfc\xe8\xce" 3049 + "\x6d\x9c\x6f\xed\xd3\xc1\xa1\xd6" 3050 + "\xc5\x55\xa9\x66\x2f\xe1\xc8\x32" 3051 + "\xa6\x5d\xa4\x3a\x98\x73\xe8\x45" 3052 + "\xa4\xc7\xa8\xb4\xf6\x13\x03\xf6" 3053 + "\xe9\x2e\xc4\x29\x0f\x84\xdb\xc4" 3054 + "\x21\xc4\xc2\x75\x67\x89\x37\x0a", 3081 3055 .rlen = 512, 3082 3056 } 3083 3057 }; ··· 3084 3060 static struct cipher_testvec aes_xts_enc_tv_template[] = { 3085 3061 /* http://grouper.ieee.org/groups/1619/email/pdf00086.pdf */ 3086 3062 { /* XTS-AES 1 */ 3087 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3088 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3089 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3090 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3063 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00" 3064 + "\x00\x00\x00\x00\x00\x00\x00\x00" 3065 + "\x00\x00\x00\x00\x00\x00\x00\x00" 3066 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3091 3067 .klen = 32, 3092 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3093 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3094 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3095 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3096 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3097 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3068 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 3069 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3070 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 3071 + "\x00\x00\x00\x00\x00\x00\x00\x00" 3072 + "\x00\x00\x00\x00\x00\x00\x00\x00" 3073 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3098 3074 .ilen = 32, 3099 - .result = { 0x91, 0x7c, 0xf6, 0x9e, 0xbd, 0x68, 0xb2, 0xec, 3100 - 0x9b, 0x9f, 0xe9, 0xa3, 0xea, 0xdd, 0xa6, 0x92, 3101 - 0xcd, 0x43, 0xd2, 0xf5, 0x95, 0x98, 0xed, 0x85, 3102 - 0x8c, 0x02, 0xc2, 0x65, 0x2f, 0xbf, 0x92, 0x2e }, 3075 + .result = "\x91\x7c\xf6\x9e\xbd\x68\xb2\xec" 3076 + "\x9b\x9f\xe9\xa3\xea\xdd\xa6\x92" 3077 + "\xcd\x43\xd2\xf5\x95\x98\xed\x85" 3078 + "\x8c\x02\xc2\x65\x2f\xbf\x92\x2e", 3103 3079 .rlen = 32, 3104 3080 }, { /* XTS-AES 2 */ 3105 - .key = { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 3106 - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 3107 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 3108 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22 }, 3081 + .key = "\x11\x11\x11\x11\x11\x11\x11\x11" 3082 + "\x11\x11\x11\x11\x11\x11\x11\x11" 3083 + "\x22\x22\x22\x22\x22\x22\x22\x22" 3084 + "\x22\x22\x22\x22\x22\x22\x22\x22", 3109 3085 .klen = 32, 3110 - .iv = { 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 3111 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3112 - .input = { 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3113 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3114 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3115 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44 }, 3086 + .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" 3087 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3088 + .input = "\x44\x44\x44\x44\x44\x44\x44\x44" 3089 + "\x44\x44\x44\x44\x44\x44\x44\x44" 3090 + "\x44\x44\x44\x44\x44\x44\x44\x44" 3091 + "\x44\x44\x44\x44\x44\x44\x44\x44", 3116 3092 .ilen = 32, 3117 - .result = { 0xc4, 0x54, 0x18, 0x5e, 0x6a, 0x16, 0x93, 0x6e, 3118 - 0x39, 0x33, 0x40, 0x38, 0xac, 0xef, 0x83, 0x8b, 3119 - 0xfb, 0x18, 0x6f, 0xff, 0x74, 0x80, 0xad, 0xc4, 3120 - 0x28, 0x93, 0x82, 0xec, 0xd6, 0xd3, 0x94, 0xf0 }, 3093 + .result = "\xc4\x54\x18\x5e\x6a\x16\x93\x6e" 3094 + "\x39\x33\x40\x38\xac\xef\x83\x8b" 3095 + "\xfb\x18\x6f\xff\x74\x80\xad\xc4" 3096 + "\x28\x93\x82\xec\xd6\xd3\x94\xf0", 3121 3097 .rlen = 32, 3122 3098 }, { /* XTS-AES 3 */ 3123 - .key = { 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 3124 - 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 3125 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 3126 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22 }, 3099 + .key = "\xff\xfe\xfd\xfc\xfb\xfa\xf9\xf8" 3100 + "\xf7\xf6\xf5\xf4\xf3\xf2\xf1\xf0" 3101 + "\x22\x22\x22\x22\x22\x22\x22\x22" 3102 + "\x22\x22\x22\x22\x22\x22\x22\x22", 3127 3103 .klen = 32, 3128 - .iv = { 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 3129 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3130 - .input = { 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3131 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3132 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3133 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44 }, 3104 + .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" 3105 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3106 + .input = "\x44\x44\x44\x44\x44\x44\x44\x44" 3107 + "\x44\x44\x44\x44\x44\x44\x44\x44" 3108 + "\x44\x44\x44\x44\x44\x44\x44\x44" 3109 + "\x44\x44\x44\x44\x44\x44\x44\x44", 3134 3110 .ilen = 32, 3135 - .result = { 0xaf, 0x85, 0x33, 0x6b, 0x59, 0x7a, 0xfc, 0x1a, 3136 - 0x90, 0x0b, 0x2e, 0xb2, 0x1e, 0xc9, 0x49, 0xd2, 3137 - 0x92, 0xdf, 0x4c, 0x04, 0x7e, 0x0b, 0x21, 0x53, 3138 - 0x21, 0x86, 0xa5, 0x97, 0x1a, 0x22, 0x7a, 0x89 }, 3111 + .result = "\xaf\x85\x33\x6b\x59\x7a\xfc\x1a" 3112 + "\x90\x0b\x2e\xb2\x1e\xc9\x49\xd2" 3113 + "\x92\xdf\x4c\x04\x7e\x0b\x21\x53" 3114 + "\x21\x86\xa5\x97\x1a\x22\x7a\x89", 3139 3115 .rlen = 32, 3140 3116 }, { /* XTS-AES 4 */ 3141 - .key = { 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, 3142 - 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, 3143 - 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, 3144 - 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95 }, 3117 + .key = "\x27\x18\x28\x18\x28\x45\x90\x45" 3118 + "\x23\x53\x60\x28\x74\x71\x35\x26" 3119 + "\x31\x41\x59\x26\x53\x58\x97\x93" 3120 + "\x23\x84\x62\x64\x33\x83\x27\x95", 3145 3121 .klen = 32, 3146 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3147 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3148 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3149 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3150 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3151 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 3152 - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 3153 - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 3154 - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 3155 - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 3156 - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 3157 - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 3158 - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 3159 - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 3160 - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 3161 - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 3162 - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 3163 - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 3164 - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 3165 - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 3166 - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 3167 - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 3168 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 3169 - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 3170 - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 3171 - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 3172 - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 3173 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 3174 - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 3175 - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 3176 - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 3177 - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 3178 - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 3179 - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 3180 - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3181 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3182 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3183 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 3184 - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 3185 - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 3186 - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 3187 - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 3188 - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 3189 - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 3190 - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 3191 - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 3192 - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 3193 - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 3194 - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 3195 - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 3196 - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 3197 - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 3198 - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 3199 - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 3200 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 3201 - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 3202 - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 3203 - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 3204 - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 3205 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 3206 - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 3207 - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 3208 - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 3209 - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 3210 - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 3211 - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }, 3122 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 3123 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3124 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 3125 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3126 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3127 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 3128 + "\x20\x21\x22\x23\x24\x25\x26\x27" 3129 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" 3130 + "\x30\x31\x32\x33\x34\x35\x36\x37" 3131 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" 3132 + "\x40\x41\x42\x43\x44\x45\x46\x47" 3133 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" 3134 + "\x50\x51\x52\x53\x54\x55\x56\x57" 3135 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" 3136 + "\x60\x61\x62\x63\x64\x65\x66\x67" 3137 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" 3138 + "\x70\x71\x72\x73\x74\x75\x76\x77" 3139 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" 3140 + "\x80\x81\x82\x83\x84\x85\x86\x87" 3141 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" 3142 + "\x90\x91\x92\x93\x94\x95\x96\x97" 3143 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" 3144 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" 3145 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" 3146 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" 3147 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" 3148 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 3149 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" 3150 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" 3151 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" 3152 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" 3153 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" 3154 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" 3155 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" 3156 + "\x00\x01\x02\x03\x04\x05\x06\x07" 3157 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3158 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3159 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 3160 + "\x20\x21\x22\x23\x24\x25\x26\x27" 3161 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" 3162 + "\x30\x31\x32\x33\x34\x35\x36\x37" 3163 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" 3164 + "\x40\x41\x42\x43\x44\x45\x46\x47" 3165 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" 3166 + "\x50\x51\x52\x53\x54\x55\x56\x57" 3167 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" 3168 + "\x60\x61\x62\x63\x64\x65\x66\x67" 3169 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" 3170 + "\x70\x71\x72\x73\x74\x75\x76\x77" 3171 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" 3172 + "\x80\x81\x82\x83\x84\x85\x86\x87" 3173 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" 3174 + "\x90\x91\x92\x93\x94\x95\x96\x97" 3175 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" 3176 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" 3177 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" 3178 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" 3179 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" 3180 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 3181 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" 3182 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" 3183 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" 3184 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" 3185 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" 3186 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" 3187 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", 3212 3188 .ilen = 512, 3213 - .result = { 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76, 3214 - 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2, 3215 - 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25, 3216 - 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c, 3217 - 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f, 3218 - 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00, 3219 - 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad, 3220 - 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12, 3221 - 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5, 3222 - 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5, 3223 - 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc, 3224 - 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce, 3225 - 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4, 3226 - 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84, 3227 - 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a, 3228 - 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65, 3229 - 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89, 3230 - 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51, 3231 - 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15, 3232 - 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8, 3233 - 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed, 3234 - 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91, 3235 - 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e, 3236 - 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34, 3237 - 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b, 3238 - 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5, 3239 - 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4, 3240 - 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c, 3241 - 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd, 3242 - 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3, 3243 - 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f, 3244 - 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e, 3245 - 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91, 3246 - 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19, 3247 - 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1, 3248 - 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc, 3249 - 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed, 3250 - 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde, 3251 - 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98, 3252 - 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3, 3253 - 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca, 3254 - 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6, 3255 - 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc, 3256 - 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44, 3257 - 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0, 3258 - 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95, 3259 - 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4, 3260 - 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd, 3261 - 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13, 3262 - 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7, 3263 - 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a, 3264 - 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52, 3265 - 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a, 3266 - 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38, 3267 - 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e, 3268 - 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e, 3269 - 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad, 3270 - 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8, 3271 - 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c, 3272 - 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d, 3273 - 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f, 3274 - 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2, 3275 - 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea, 3276 - 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68 }, 3189 + .result = "\x27\xa7\x47\x9b\xef\xa1\xd4\x76" 3190 + "\x48\x9f\x30\x8c\xd4\xcf\xa6\xe2" 3191 + "\xa9\x6e\x4b\xbe\x32\x08\xff\x25" 3192 + "\x28\x7d\xd3\x81\x96\x16\xe8\x9c" 3193 + "\xc7\x8c\xf7\xf5\xe5\x43\x44\x5f" 3194 + "\x83\x33\xd8\xfa\x7f\x56\x00\x00" 3195 + "\x05\x27\x9f\xa5\xd8\xb5\xe4\xad" 3196 + "\x40\xe7\x36\xdd\xb4\xd3\x54\x12" 3197 + "\x32\x80\x63\xfd\x2a\xab\x53\xe5" 3198 + "\xea\x1e\x0a\x9f\x33\x25\x00\xa5" 3199 + "\xdf\x94\x87\xd0\x7a\x5c\x92\xcc" 3200 + "\x51\x2c\x88\x66\xc7\xe8\x60\xce" 3201 + "\x93\xfd\xf1\x66\xa2\x49\x12\xb4" 3202 + "\x22\x97\x61\x46\xae\x20\xce\x84" 3203 + "\x6b\xb7\xdc\x9b\xa9\x4a\x76\x7a" 3204 + "\xae\xf2\x0c\x0d\x61\xad\x02\x65" 3205 + "\x5e\xa9\x2d\xc4\xc4\xe4\x1a\x89" 3206 + "\x52\xc6\x51\xd3\x31\x74\xbe\x51" 3207 + "\xa1\x0c\x42\x11\x10\xe6\xd8\x15" 3208 + "\x88\xed\xe8\x21\x03\xa2\x52\xd8" 3209 + "\xa7\x50\xe8\x76\x8d\xef\xff\xed" 3210 + "\x91\x22\x81\x0a\xae\xb9\x9f\x91" 3211 + "\x72\xaf\x82\xb6\x04\xdc\x4b\x8e" 3212 + "\x51\xbc\xb0\x82\x35\xa6\xf4\x34" 3213 + "\x13\x32\xe4\xca\x60\x48\x2a\x4b" 3214 + "\xa1\xa0\x3b\x3e\x65\x00\x8f\xc5" 3215 + "\xda\x76\xb7\x0b\xf1\x69\x0d\xb4" 3216 + "\xea\xe2\x9c\x5f\x1b\xad\xd0\x3c" 3217 + "\x5c\xcf\x2a\x55\xd7\x05\xdd\xcd" 3218 + "\x86\xd4\x49\x51\x1c\xeb\x7e\xc3" 3219 + "\x0b\xf1\x2b\x1f\xa3\x5b\x91\x3f" 3220 + "\x9f\x74\x7a\x8a\xfd\x1b\x13\x0e" 3221 + "\x94\xbf\xf9\x4e\xff\xd0\x1a\x91" 3222 + "\x73\x5c\xa1\x72\x6a\xcd\x0b\x19" 3223 + "\x7c\x4e\x5b\x03\x39\x36\x97\xe1" 3224 + "\x26\x82\x6f\xb6\xbb\xde\x8e\xcc" 3225 + "\x1e\x08\x29\x85\x16\xe2\xc9\xed" 3226 + "\x03\xff\x3c\x1b\x78\x60\xf6\xde" 3227 + "\x76\xd4\xce\xcd\x94\xc8\x11\x98" 3228 + "\x55\xef\x52\x97\xca\x67\xe9\xf3" 3229 + "\xe7\xff\x72\xb1\xe9\x97\x85\xca" 3230 + "\x0a\x7e\x77\x20\xc5\xb3\x6d\xc6" 3231 + "\xd7\x2c\xac\x95\x74\xc8\xcb\xbc" 3232 + "\x2f\x80\x1e\x23\xe5\x6f\xd3\x44" 3233 + "\xb0\x7f\x22\x15\x4b\xeb\xa0\xf0" 3234 + "\x8c\xe8\x89\x1e\x64\x3e\xd9\x95" 3235 + "\xc9\x4d\x9a\x69\xc9\xf1\xb5\xf4" 3236 + "\x99\x02\x7a\x78\x57\x2a\xee\xbd" 3237 + "\x74\xd2\x0c\xc3\x98\x81\xc2\x13" 3238 + "\xee\x77\x0b\x10\x10\xe4\xbe\xa7" 3239 + "\x18\x84\x69\x77\xae\x11\x9f\x7a" 3240 + "\x02\x3a\xb5\x8c\xca\x0a\xd7\x52" 3241 + "\xaf\xe6\x56\xbb\x3c\x17\x25\x6a" 3242 + "\x9f\x6e\x9b\xf1\x9f\xdd\x5a\x38" 3243 + "\xfc\x82\xbb\xe8\x72\xc5\x53\x9e" 3244 + "\xdb\x60\x9e\xf4\xf7\x9c\x20\x3e" 3245 + "\xbb\x14\x0f\x2e\x58\x3c\xb2\xad" 3246 + "\x15\xb4\xaa\x5b\x65\x50\x16\xa8" 3247 + "\x44\x92\x77\xdb\xd4\x77\xef\x2c" 3248 + "\x8d\x6c\x01\x7d\xb7\x38\xb1\x8d" 3249 + "\xeb\x4a\x42\x7d\x19\x23\xce\x3f" 3250 + "\xf2\x62\x73\x57\x79\xa4\x18\xf2" 3251 + "\x0a\x28\x2d\xf9\x20\x14\x7b\xea" 3252 + "\xbe\x42\x1e\xe5\x31\x9d\x05\x68", 3277 3253 .rlen = 512, 3278 3254 } 3279 3255 }; ··· 3281 3257 static struct cipher_testvec aes_xts_dec_tv_template[] = { 3282 3258 /* http://grouper.ieee.org/groups/1619/email/pdf00086.pdf */ 3283 3259 { /* XTS-AES 1 */ 3284 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3285 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3286 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3287 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3260 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00" 3261 + "\x00\x00\x00\x00\x00\x00\x00\x00" 3262 + "\x00\x00\x00\x00\x00\x00\x00\x00" 3263 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3288 3264 .klen = 32, 3289 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3290 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3291 - .input = { 0x91, 0x7c, 0xf6, 0x9e, 0xbd, 0x68, 0xb2, 0xec, 3292 - 0x9b, 0x9f, 0xe9, 0xa3, 0xea, 0xdd, 0xa6, 0x92, 3293 - 0xcd, 0x43, 0xd2, 0xf5, 0x95, 0x98, 0xed, 0x85, 3294 - 0x8c, 0x02, 0xc2, 0x65, 0x2f, 0xbf, 0x92, 0x2e }, 3265 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 3266 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3267 + .input = "\x91\x7c\xf6\x9e\xbd\x68\xb2\xec" 3268 + "\x9b\x9f\xe9\xa3\xea\xdd\xa6\x92" 3269 + "\xcd\x43\xd2\xf5\x95\x98\xed\x85" 3270 + "\x8c\x02\xc2\x65\x2f\xbf\x92\x2e", 3295 3271 .ilen = 32, 3296 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3297 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3298 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3299 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3272 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00" 3273 + "\x00\x00\x00\x00\x00\x00\x00\x00" 3274 + "\x00\x00\x00\x00\x00\x00\x00\x00" 3275 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3300 3276 .rlen = 32, 3301 3277 }, { /* XTS-AES 2 */ 3302 - .key = { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 3303 - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 3304 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 3305 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22 }, 3278 + .key = "\x11\x11\x11\x11\x11\x11\x11\x11" 3279 + "\x11\x11\x11\x11\x11\x11\x11\x11" 3280 + "\x22\x22\x22\x22\x22\x22\x22\x22" 3281 + "\x22\x22\x22\x22\x22\x22\x22\x22", 3306 3282 .klen = 32, 3307 - .iv = { 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 3308 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3309 - .input = { 0xc4, 0x54, 0x18, 0x5e, 0x6a, 0x16, 0x93, 0x6e, 3310 - 0x39, 0x33, 0x40, 0x38, 0xac, 0xef, 0x83, 0x8b, 3311 - 0xfb, 0x18, 0x6f, 0xff, 0x74, 0x80, 0xad, 0xc4, 3312 - 0x28, 0x93, 0x82, 0xec, 0xd6, 0xd3, 0x94, 0xf0 }, 3283 + .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" 3284 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3285 + .input = "\xc4\x54\x18\x5e\x6a\x16\x93\x6e" 3286 + "\x39\x33\x40\x38\xac\xef\x83\x8b" 3287 + "\xfb\x18\x6f\xff\x74\x80\xad\xc4" 3288 + "\x28\x93\x82\xec\xd6\xd3\x94\xf0", 3313 3289 .ilen = 32, 3314 - .result = { 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3315 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3316 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3317 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44 }, 3290 + .result = "\x44\x44\x44\x44\x44\x44\x44\x44" 3291 + "\x44\x44\x44\x44\x44\x44\x44\x44" 3292 + "\x44\x44\x44\x44\x44\x44\x44\x44" 3293 + "\x44\x44\x44\x44\x44\x44\x44\x44", 3318 3294 .rlen = 32, 3319 3295 }, { /* XTS-AES 3 */ 3320 - .key = { 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 3321 - 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 3322 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 3323 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22 }, 3296 + .key = "\xff\xfe\xfd\xfc\xfb\xfa\xf9\xf8" 3297 + "\xf7\xf6\xf5\xf4\xf3\xf2\xf1\xf0" 3298 + "\x22\x22\x22\x22\x22\x22\x22\x22" 3299 + "\x22\x22\x22\x22\x22\x22\x22\x22", 3324 3300 .klen = 32, 3325 - .iv = { 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 3326 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3327 - .input = { 0xaf, 0x85, 0x33, 0x6b, 0x59, 0x7a, 0xfc, 0x1a, 3328 - 0x90, 0x0b, 0x2e, 0xb2, 0x1e, 0xc9, 0x49, 0xd2, 3329 - 0x92, 0xdf, 0x4c, 0x04, 0x7e, 0x0b, 0x21, 0x53, 3330 - 0x21, 0x86, 0xa5, 0x97, 0x1a, 0x22, 0x7a, 0x89 }, 3301 + .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" 3302 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3303 + .input = "\xaf\x85\x33\x6b\x59\x7a\xfc\x1a" 3304 + "\x90\x0b\x2e\xb2\x1e\xc9\x49\xd2" 3305 + "\x92\xdf\x4c\x04\x7e\x0b\x21\x53" 3306 + "\x21\x86\xa5\x97\x1a\x22\x7a\x89", 3331 3307 .ilen = 32, 3332 - .result = { 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3333 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3334 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 3335 - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44 }, 3308 + .result = "\x44\x44\x44\x44\x44\x44\x44\x44" 3309 + "\x44\x44\x44\x44\x44\x44\x44\x44" 3310 + "\x44\x44\x44\x44\x44\x44\x44\x44" 3311 + "\x44\x44\x44\x44\x44\x44\x44\x44", 3336 3312 .rlen = 32, 3337 3313 }, { /* XTS-AES 4 */ 3338 - .key = { 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, 3339 - 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, 3340 - 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, 3341 - 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95 }, 3314 + .key = "\x27\x18\x28\x18\x28\x45\x90\x45" 3315 + "\x23\x53\x60\x28\x74\x71\x35\x26" 3316 + "\x31\x41\x59\x26\x53\x58\x97\x93" 3317 + "\x23\x84\x62\x64\x33\x83\x27\x95", 3342 3318 .klen = 32, 3343 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3344 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3345 - .input = { 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76, 3346 - 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2, 3347 - 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25, 3348 - 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c, 3349 - 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f, 3350 - 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00, 3351 - 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad, 3352 - 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12, 3353 - 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5, 3354 - 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5, 3355 - 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc, 3356 - 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce, 3357 - 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4, 3358 - 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84, 3359 - 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a, 3360 - 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65, 3361 - 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89, 3362 - 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51, 3363 - 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15, 3364 - 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8, 3365 - 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed, 3366 - 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91, 3367 - 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e, 3368 - 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34, 3369 - 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b, 3370 - 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5, 3371 - 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4, 3372 - 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c, 3373 - 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd, 3374 - 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3, 3375 - 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f, 3376 - 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e, 3377 - 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91, 3378 - 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19, 3379 - 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1, 3380 - 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc, 3381 - 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed, 3382 - 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde, 3383 - 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98, 3384 - 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3, 3385 - 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca, 3386 - 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6, 3387 - 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc, 3388 - 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44, 3389 - 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0, 3390 - 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95, 3391 - 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4, 3392 - 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd, 3393 - 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13, 3394 - 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7, 3395 - 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a, 3396 - 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52, 3397 - 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a, 3398 - 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38, 3399 - 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e, 3400 - 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e, 3401 - 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad, 3402 - 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8, 3403 - 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c, 3404 - 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d, 3405 - 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f, 3406 - 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2, 3407 - 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea, 3408 - 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68 }, 3319 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 3320 + "\x00\x00\x00\x00\x00\x00\x00\x00", 3321 + .input = "\x27\xa7\x47\x9b\xef\xa1\xd4\x76" 3322 + "\x48\x9f\x30\x8c\xd4\xcf\xa6\xe2" 3323 + "\xa9\x6e\x4b\xbe\x32\x08\xff\x25" 3324 + "\x28\x7d\xd3\x81\x96\x16\xe8\x9c" 3325 + "\xc7\x8c\xf7\xf5\xe5\x43\x44\x5f" 3326 + "\x83\x33\xd8\xfa\x7f\x56\x00\x00" 3327 + "\x05\x27\x9f\xa5\xd8\xb5\xe4\xad" 3328 + "\x40\xe7\x36\xdd\xb4\xd3\x54\x12" 3329 + "\x32\x80\x63\xfd\x2a\xab\x53\xe5" 3330 + "\xea\x1e\x0a\x9f\x33\x25\x00\xa5" 3331 + "\xdf\x94\x87\xd0\x7a\x5c\x92\xcc" 3332 + "\x51\x2c\x88\x66\xc7\xe8\x60\xce" 3333 + "\x93\xfd\xf1\x66\xa2\x49\x12\xb4" 3334 + "\x22\x97\x61\x46\xae\x20\xce\x84" 3335 + "\x6b\xb7\xdc\x9b\xa9\x4a\x76\x7a" 3336 + "\xae\xf2\x0c\x0d\x61\xad\x02\x65" 3337 + "\x5e\xa9\x2d\xc4\xc4\xe4\x1a\x89" 3338 + "\x52\xc6\x51\xd3\x31\x74\xbe\x51" 3339 + "\xa1\x0c\x42\x11\x10\xe6\xd8\x15" 3340 + "\x88\xed\xe8\x21\x03\xa2\x52\xd8" 3341 + "\xa7\x50\xe8\x76\x8d\xef\xff\xed" 3342 + "\x91\x22\x81\x0a\xae\xb9\x9f\x91" 3343 + "\x72\xaf\x82\xb6\x04\xdc\x4b\x8e" 3344 + "\x51\xbc\xb0\x82\x35\xa6\xf4\x34" 3345 + "\x13\x32\xe4\xca\x60\x48\x2a\x4b" 3346 + "\xa1\xa0\x3b\x3e\x65\x00\x8f\xc5" 3347 + "\xda\x76\xb7\x0b\xf1\x69\x0d\xb4" 3348 + "\xea\xe2\x9c\x5f\x1b\xad\xd0\x3c" 3349 + "\x5c\xcf\x2a\x55\xd7\x05\xdd\xcd" 3350 + "\x86\xd4\x49\x51\x1c\xeb\x7e\xc3" 3351 + "\x0b\xf1\x2b\x1f\xa3\x5b\x91\x3f" 3352 + "\x9f\x74\x7a\x8a\xfd\x1b\x13\x0e" 3353 + "\x94\xbf\xf9\x4e\xff\xd0\x1a\x91" 3354 + "\x73\x5c\xa1\x72\x6a\xcd\x0b\x19" 3355 + "\x7c\x4e\x5b\x03\x39\x36\x97\xe1" 3356 + "\x26\x82\x6f\xb6\xbb\xde\x8e\xcc" 3357 + "\x1e\x08\x29\x85\x16\xe2\xc9\xed" 3358 + "\x03\xff\x3c\x1b\x78\x60\xf6\xde" 3359 + "\x76\xd4\xce\xcd\x94\xc8\x11\x98" 3360 + "\x55\xef\x52\x97\xca\x67\xe9\xf3" 3361 + "\xe7\xff\x72\xb1\xe9\x97\x85\xca" 3362 + "\x0a\x7e\x77\x20\xc5\xb3\x6d\xc6" 3363 + "\xd7\x2c\xac\x95\x74\xc8\xcb\xbc" 3364 + "\x2f\x80\x1e\x23\xe5\x6f\xd3\x44" 3365 + "\xb0\x7f\x22\x15\x4b\xeb\xa0\xf0" 3366 + "\x8c\xe8\x89\x1e\x64\x3e\xd9\x95" 3367 + "\xc9\x4d\x9a\x69\xc9\xf1\xb5\xf4" 3368 + "\x99\x02\x7a\x78\x57\x2a\xee\xbd" 3369 + "\x74\xd2\x0c\xc3\x98\x81\xc2\x13" 3370 + "\xee\x77\x0b\x10\x10\xe4\xbe\xa7" 3371 + "\x18\x84\x69\x77\xae\x11\x9f\x7a" 3372 + "\x02\x3a\xb5\x8c\xca\x0a\xd7\x52" 3373 + "\xaf\xe6\x56\xbb\x3c\x17\x25\x6a" 3374 + "\x9f\x6e\x9b\xf1\x9f\xdd\x5a\x38" 3375 + "\xfc\x82\xbb\xe8\x72\xc5\x53\x9e" 3376 + "\xdb\x60\x9e\xf4\xf7\x9c\x20\x3e" 3377 + "\xbb\x14\x0f\x2e\x58\x3c\xb2\xad" 3378 + "\x15\xb4\xaa\x5b\x65\x50\x16\xa8" 3379 + "\x44\x92\x77\xdb\xd4\x77\xef\x2c" 3380 + "\x8d\x6c\x01\x7d\xb7\x38\xb1\x8d" 3381 + "\xeb\x4a\x42\x7d\x19\x23\xce\x3f" 3382 + "\xf2\x62\x73\x57\x79\xa4\x18\xf2" 3383 + "\x0a\x28\x2d\xf9\x20\x14\x7b\xea" 3384 + "\xbe\x42\x1e\xe5\x31\x9d\x05\x68", 3409 3385 .ilen = 512, 3410 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3411 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3412 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3413 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 3414 - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 3415 - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 3416 - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 3417 - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 3418 - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 3419 - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 3420 - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 3421 - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 3422 - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 3423 - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 3424 - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 3425 - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 3426 - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 3427 - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 3428 - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 3429 - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 3430 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 3431 - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 3432 - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 3433 - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 3434 - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 3435 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 3436 - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 3437 - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 3438 - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 3439 - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 3440 - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 3441 - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 3442 - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3443 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3444 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3445 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 3446 - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 3447 - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 3448 - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 3449 - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 3450 - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 3451 - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 3452 - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 3453 - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 3454 - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 3455 - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 3456 - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 3457 - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 3458 - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 3459 - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 3460 - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 3461 - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 3462 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 3463 - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 3464 - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 3465 - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 3466 - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 3467 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 3468 - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 3469 - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 3470 - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 3471 - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 3472 - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 3473 - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }, 3386 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 3387 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3388 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3389 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 3390 + "\x20\x21\x22\x23\x24\x25\x26\x27" 3391 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" 3392 + "\x30\x31\x32\x33\x34\x35\x36\x37" 3393 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" 3394 + "\x40\x41\x42\x43\x44\x45\x46\x47" 3395 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" 3396 + "\x50\x51\x52\x53\x54\x55\x56\x57" 3397 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" 3398 + "\x60\x61\x62\x63\x64\x65\x66\x67" 3399 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" 3400 + "\x70\x71\x72\x73\x74\x75\x76\x77" 3401 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" 3402 + "\x80\x81\x82\x83\x84\x85\x86\x87" 3403 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" 3404 + "\x90\x91\x92\x93\x94\x95\x96\x97" 3405 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" 3406 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" 3407 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" 3408 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" 3409 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" 3410 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 3411 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" 3412 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" 3413 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" 3414 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" 3415 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" 3416 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" 3417 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" 3418 + "\x00\x01\x02\x03\x04\x05\x06\x07" 3419 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3420 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3421 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 3422 + "\x20\x21\x22\x23\x24\x25\x26\x27" 3423 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" 3424 + "\x30\x31\x32\x33\x34\x35\x36\x37" 3425 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" 3426 + "\x40\x41\x42\x43\x44\x45\x46\x47" 3427 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" 3428 + "\x50\x51\x52\x53\x54\x55\x56\x57" 3429 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" 3430 + "\x60\x61\x62\x63\x64\x65\x66\x67" 3431 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" 3432 + "\x70\x71\x72\x73\x74\x75\x76\x77" 3433 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" 3434 + "\x80\x81\x82\x83\x84\x85\x86\x87" 3435 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" 3436 + "\x90\x91\x92\x93\x94\x95\x96\x97" 3437 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" 3438 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" 3439 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" 3440 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" 3441 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" 3442 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 3443 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" 3444 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" 3445 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" 3446 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" 3447 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" 3448 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" 3449 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", 3474 3450 .rlen = 512, 3475 3451 } 3476 3452 }; ··· 3478 3454 3479 3455 static struct cipher_testvec aes_ctr_enc_tv_template[] = { 3480 3456 { /* From RFC 3686 */ 3481 - .key = { 0xae, 0x68, 0x52, 0xf8, 0x12, 0x10, 0x67, 0xcc, 3482 - 0x4b, 0xf7, 0xa5, 0x76, 0x55, 0x77, 0xf3, 0x9e, 3483 - 0x00, 0x00, 0x00, 0x30 }, 3457 + .key = "\xae\x68\x52\xf8\x12\x10\x67\xcc" 3458 + "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e" 3459 + "\x00\x00\x00\x30", 3484 3460 .klen = 20, 3485 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 3486 - .input = { "Single block msg" }, 3461 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 3462 + .input = "Single block msg", 3487 3463 .ilen = 16, 3488 - .result = { 0xe4, 0x09, 0x5d, 0x4f, 0xb7, 0xa7, 0xb3, 0x79, 3489 - 0x2d, 0x61, 0x75, 0xa3, 0x26, 0x13, 0x11, 0xb8 }, 3464 + .result = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79" 3465 + "\x2d\x61\x75\xa3\x26\x13\x11\xb8", 3490 3466 .rlen = 16, 3491 3467 }, { 3492 - .key = { 0x7e, 0x24, 0x06, 0x78, 0x17, 0xfa, 0xe0, 0xd7, 3493 - 0x43, 0xd6, 0xce, 0x1f, 0x32, 0x53, 0x91, 0x63, 3494 - 0x00, 0x6c, 0xb6, 0xdb }, 3468 + .key = "\x7e\x24\x06\x78\x17\xfa\xe0\xd7" 3469 + "\x43\xd6\xce\x1f\x32\x53\x91\x63" 3470 + "\x00\x6c\xb6\xdb", 3495 3471 .klen = 20, 3496 - .iv = { 0xc0, 0x54, 0x3b, 0x59, 0xda, 0x48, 0xd9, 0x0b }, 3497 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3498 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3499 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3500 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 3501 - .ilen = 32, 3502 - .result = { 0x51, 0x04, 0xa1, 0x06, 0x16, 0x8a, 0x72, 0xd9, 3503 - 0x79, 0x0d, 0x41, 0xee, 0x8e, 0xda, 0xd3, 0x88, 3504 - 0xeb, 0x2e, 0x1e, 0xfc, 0x46, 0xda, 0x57, 0xc8, 3505 - 0xfc, 0xe6, 0x30, 0xdf, 0x91, 0x41, 0xbe, 0x28 }, 3472 + .iv = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b", 3473 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 3474 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3475 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3476 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 3477 + .ilen = 32, 3478 + .result = "\x51\x04\xa1\x06\x16\x8a\x72\xd9" 3479 + "\x79\x0d\x41\xee\x8e\xda\xd3\x88" 3480 + "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8" 3481 + "\xfc\xe6\x30\xdf\x91\x41\xbe\x28", 3506 3482 .rlen = 32, 3507 3483 }, { 3508 - .key = { 0x16, 0xaf, 0x5b, 0x14, 0x5f, 0xc9, 0xf5, 0x79, 3509 - 0xc1, 0x75, 0xf9, 0x3e, 0x3b, 0xfb, 0x0e, 0xed, 3510 - 0x86, 0x3d, 0x06, 0xcc, 0xfd, 0xb7, 0x85, 0x15, 3511 - 0x00, 0x00, 0x00, 0x48 }, 3512 - .klen = 28, 3513 - .iv = { 0x36, 0x73, 0x3c, 0x14, 0x7d, 0x6d, 0x93, 0xcb }, 3514 - .input = { "Single block msg" }, 3515 - .ilen = 16, 3516 - .result = { 0x4b, 0x55, 0x38, 0x4f, 0xe2, 0x59, 0xc9, 0xc8, 3517 - 0x4e, 0x79, 0x35, 0xa0, 0x03, 0xcb, 0xe9, 0x28 }, 3484 + .key = "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79" 3485 + "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed" 3486 + "\x86\x3d\x06\xcc\xfd\xb7\x85\x15" 3487 + "\x00\x00\x00\x48", 3488 + .klen = 28, 3489 + .iv = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb", 3490 + .input = "Single block msg", 3491 + .ilen = 16, 3492 + .result = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8" 3493 + "\x4e\x79\x35\xa0\x03\xcb\xe9\x28", 3518 3494 .rlen = 16, 3519 3495 }, { 3520 - .key = { 0x7c, 0x5c, 0xb2, 0x40, 0x1b, 0x3d, 0xc3, 0x3c, 3521 - 0x19, 0xe7, 0x34, 0x08, 0x19, 0xe0, 0xf6, 0x9c, 3522 - 0x67, 0x8c, 0x3d, 0xb8, 0xe6, 0xf6, 0xa9, 0x1a, 3523 - 0x00, 0x96, 0xb0, 0x3b }, 3496 + .key = "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c" 3497 + "\x19\xe7\x34\x08\x19\xe0\xf6\x9c" 3498 + "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a" 3499 + "\x00\x96\xb0\x3b", 3524 3500 .klen = 28, 3525 - .iv = { 0x02, 0x0c, 0x6e, 0xad, 0xc2, 0xcb, 0x50, 0x0d }, 3526 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3527 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3528 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3529 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 3501 + .iv = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d", 3502 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 3503 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3504 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3505 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 3530 3506 .ilen = 32, 3531 - .result = { 0x45, 0x32, 0x43, 0xfc, 0x60, 0x9b, 0x23, 0x32, 3532 - 0x7e, 0xdf, 0xaa, 0xfa, 0x71, 0x31, 0xcd, 0x9f, 3533 - 0x84, 0x90, 0x70, 0x1c, 0x5a, 0xd4, 0xa7, 0x9c, 3534 - 0xfc, 0x1f, 0xe0, 0xff, 0x42, 0xf4, 0xfb, 0x00 }, 3535 - .rlen = 32, 3507 + .result = "\x45\x32\x43\xfc\x60\x9b\x23\x32" 3508 + "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f" 3509 + "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c" 3510 + "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00", 3511 + .rlen = 32, 3536 3512 }, { 3537 - .key = { 0x77, 0x6b, 0xef, 0xf2, 0x85, 0x1d, 0xb0, 0x6f, 3538 - 0x4c, 0x8a, 0x05, 0x42, 0xc8, 0x69, 0x6f, 0x6c, 3539 - 0x6a, 0x81, 0xaf, 0x1e, 0xec, 0x96, 0xb4, 0xd3, 3540 - 0x7f, 0xc1, 0xd6, 0x89, 0xe6, 0xc1, 0xc1, 0x04, 3541 - 0x00, 0x00, 0x00, 0x60 }, 3513 + .key = "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f" 3514 + "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c" 3515 + "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3" 3516 + "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04" 3517 + "\x00\x00\x00\x60", 3542 3518 .klen = 36, 3543 - .iv = { 0xdb, 0x56, 0x72, 0xc9, 0x7a, 0xa8, 0xf0, 0xb2 }, 3544 - .input = { "Single block msg" }, 3519 + .iv = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2", 3520 + .input = "Single block msg", 3545 3521 .ilen = 16, 3546 - .result = { 0x14, 0x5a, 0xd0, 0x1d, 0xbf, 0x82, 0x4e, 0xc7, 3547 - 0x56, 0x08, 0x63, 0xdc, 0x71, 0xe3, 0xe0, 0xc0 }, 3548 - .rlen = 16, 3522 + .result = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7" 3523 + "\x56\x08\x63\xdc\x71\xe3\xe0\xc0", 3524 + .rlen = 16, 3549 3525 }, { 3550 - .key = { 0xf6, 0xd6, 0x6d, 0x6b, 0xd5, 0x2d, 0x59, 0xbb, 3551 - 0x07, 0x96, 0x36, 0x58, 0x79, 0xef, 0xf8, 0x86, 3552 - 0xc6, 0x6d, 0xd5, 0x1a, 0x5b, 0x6a, 0x99, 0x74, 3553 - 0x4b, 0x50, 0x59, 0x0c, 0x87, 0xa2, 0x38, 0x84, 3554 - 0x00, 0xfa, 0xac, 0x24 }, 3555 - .klen = 36, 3556 - .iv = { 0xc1, 0x58, 0x5e, 0xf1, 0x5a, 0x43, 0xd8, 0x75 }, 3557 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3558 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3559 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3560 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 3526 + .key = "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb" 3527 + "\x07\x96\x36\x58\x79\xef\xf8\x86" 3528 + "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74" 3529 + "\x4b\x50\x59\x0c\x87\xa2\x38\x84" 3530 + "\x00\xfa\xac\x24", 3531 + .klen = 36, 3532 + .iv = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75", 3533 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 3534 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3535 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3536 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 3561 3537 .ilen = 32, 3562 - .result = { 0xf0, 0x5e, 0x23, 0x1b, 0x38, 0x94, 0x61, 0x2c, 3563 - 0x49, 0xee, 0x00, 0x0b, 0x80, 0x4e, 0xb2, 0xa9, 3564 - 0xb8, 0x30, 0x6b, 0x50, 0x8f, 0x83, 0x9d, 0x6a, 3565 - 0x55, 0x30, 0x83, 0x1d, 0x93, 0x44, 0xaf, 0x1c }, 3538 + .result = "\xf0\x5e\x23\x1b\x38\x94\x61\x2c" 3539 + "\x49\xee\x00\x0b\x80\x4e\xb2\xa9" 3540 + "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a" 3541 + "\x55\x30\x83\x1d\x93\x44\xaf\x1c", 3566 3542 .rlen = 32, 3567 3543 }, { 3568 3544 // generated using Crypto++ 3569 - .key = { 3570 - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3571 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3572 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3573 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 3574 - 0x00, 0x00, 0x00, 0x00, 3575 - }, 3545 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 3546 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3547 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3548 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 3549 + "\x00\x00\x00\x00", 3576 3550 .klen = 32 + 4, 3577 - .iv = { 3578 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3579 - }, 3580 - .input = { 3581 - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 3582 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 3583 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 3584 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 3585 - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 3586 - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 3587 - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 3588 - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 3589 - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 3590 - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 3591 - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 3592 - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 3593 - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 3594 - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 3595 - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 3596 - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 3597 - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 3598 - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 3599 - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 3600 - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 3601 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 3602 - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 3603 - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 3604 - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 3605 - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 3606 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 3607 - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 3608 - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 3609 - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 3610 - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 3611 - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 3612 - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 3613 - 0x00, 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 3614 - 0x18, 0x1b, 0x1e, 0x21, 0x24, 0x27, 0x2a, 0x2d, 3615 - 0x30, 0x33, 0x36, 0x39, 0x3c, 0x3f, 0x42, 0x45, 3616 - 0x48, 0x4b, 0x4e, 0x51, 0x54, 0x57, 0x5a, 0x5d, 3617 - 0x60, 0x63, 0x66, 0x69, 0x6c, 0x6f, 0x72, 0x75, 3618 - 0x78, 0x7b, 0x7e, 0x81, 0x84, 0x87, 0x8a, 0x8d, 3619 - 0x90, 0x93, 0x96, 0x99, 0x9c, 0x9f, 0xa2, 0xa5, 3620 - 0xa8, 0xab, 0xae, 0xb1, 0xb4, 0xb7, 0xba, 0xbd, 3621 - 0xc0, 0xc3, 0xc6, 0xc9, 0xcc, 0xcf, 0xd2, 0xd5, 3622 - 0xd8, 0xdb, 0xde, 0xe1, 0xe4, 0xe7, 0xea, 0xed, 3623 - 0xf0, 0xf3, 0xf6, 0xf9, 0xfc, 0xff, 0x02, 0x05, 3624 - 0x08, 0x0b, 0x0e, 0x11, 0x14, 0x17, 0x1a, 0x1d, 3625 - 0x20, 0x23, 0x26, 0x29, 0x2c, 0x2f, 0x32, 0x35, 3626 - 0x38, 0x3b, 0x3e, 0x41, 0x44, 0x47, 0x4a, 0x4d, 3627 - 0x50, 0x53, 0x56, 0x59, 0x5c, 0x5f, 0x62, 0x65, 3628 - 0x68, 0x6b, 0x6e, 0x71, 0x74, 0x77, 0x7a, 0x7d, 3629 - 0x80, 0x83, 0x86, 0x89, 0x8c, 0x8f, 0x92, 0x95, 3630 - 0x98, 0x9b, 0x9e, 0xa1, 0xa4, 0xa7, 0xaa, 0xad, 3631 - 0xb0, 0xb3, 0xb6, 0xb9, 0xbc, 0xbf, 0xc2, 0xc5, 3632 - 0xc8, 0xcb, 0xce, 0xd1, 0xd4, 0xd7, 0xda, 0xdd, 3633 - 0xe0, 0xe3, 0xe6, 0xe9, 0xec, 0xef, 0xf2, 0xf5, 3634 - 0xf8, 0xfb, 0xfe, 0x01, 0x04, 0x07, 0x0a, 0x0d, 3635 - 0x10, 0x13, 0x16, 0x19, 0x1c, 0x1f, 0x22, 0x25, 3636 - 0x28, 0x2b, 0x2e, 0x31, 0x34, 0x37, 0x3a, 0x3d, 3637 - 0x40, 0x43, 0x46, 0x49, 0x4c, 0x4f, 0x52, 0x55, 3638 - 0x58, 0x5b, 0x5e, 0x61, 0x64, 0x67, 0x6a, 0x6d, 3639 - 0x70, 0x73, 0x76, 0x79, 0x7c, 0x7f, 0x82, 0x85, 3640 - 0x88, 0x8b, 0x8e, 0x91, 0x94, 0x97, 0x9a, 0x9d, 3641 - 0xa0, 0xa3, 0xa6, 0xa9, 0xac, 0xaf, 0xb2, 0xb5, 3642 - 0xb8, 0xbb, 0xbe, 0xc1, 0xc4, 0xc7, 0xca, 0xcd, 3643 - 0xd0, 0xd3, 0xd6, 0xd9, 0xdc, 0xdf, 0xe2, 0xe5, 3644 - 0xe8, 0xeb, 0xee, 0xf1, 0xf4, 0xf7, 0xfa, 0xfd, 3645 - 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x19, 0x1e, 0x23, 3646 - 0x28, 0x2d, 0x32, 0x37, 0x3c, 0x41, 0x46, 0x4b, 3647 - 0x50, 0x55, 0x5a, 0x5f, 0x64, 0x69, 0x6e, 0x73, 3648 - 0x78, 0x7d, 0x82, 0x87, 0x8c, 0x91, 0x96, 0x9b, 3649 - 0xa0, 0xa5, 0xaa, 0xaf, 0xb4, 0xb9, 0xbe, 0xc3, 3650 - 0xc8, 0xcd, 0xd2, 0xd7, 0xdc, 0xe1, 0xe6, 0xeb, 3651 - 0xf0, 0xf5, 0xfa, 0xff, 0x04, 0x09, 0x0e, 0x13, 3652 - 0x18, 0x1d, 0x22, 0x27, 0x2c, 0x31, 0x36, 0x3b, 3653 - 0x40, 0x45, 0x4a, 0x4f, 0x54, 0x59, 0x5e, 0x63, 3654 - 0x68, 0x6d, 0x72, 0x77, 0x7c, 0x81, 0x86, 0x8b, 3655 - 0x90, 0x95, 0x9a, 0x9f, 0xa4, 0xa9, 0xae, 0xb3, 3656 - 0xb8, 0xbd, 0xc2, 0xc7, 0xcc, 0xd1, 0xd6, 0xdb, 3657 - 0xe0, 0xe5, 0xea, 0xef, 0xf4, 0xf9, 0xfe, 0x03, 3658 - 0x08, 0x0d, 0x12, 0x17, 0x1c, 0x21, 0x26, 0x2b, 3659 - 0x30, 0x35, 0x3a, 0x3f, 0x44, 0x49, 0x4e, 0x53, 3660 - 0x58, 0x5d, 0x62, 0x67, 0x6c, 0x71, 0x76, 0x7b, 3661 - 0x80, 0x85, 0x8a, 0x8f, 0x94, 0x99, 0x9e, 0xa3, 3662 - 0xa8, 0xad, 0xb2, 0xb7, 0xbc, 0xc1, 0xc6, 0xcb, 3663 - 0xd0, 0xd5, 0xda, 0xdf, 0xe4, 0xe9, 0xee, 0xf3, 3664 - 0xf8, 0xfd, 0x02, 0x07, 0x0c, 0x11, 0x16, 0x1b, 3665 - 0x20, 0x25, 0x2a, 0x2f, 0x34, 0x39, 0x3e, 0x43, 3666 - 0x48, 0x4d, 0x52, 0x57, 0x5c, 0x61, 0x66, 0x6b, 3667 - 0x70, 0x75, 0x7a, 0x7f, 0x84, 0x89, 0x8e, 0x93, 3668 - 0x98, 0x9d, 0xa2, 0xa7, 0xac, 0xb1, 0xb6, 0xbb, 3669 - 0xc0, 0xc5, 0xca, 0xcf, 0xd4, 0xd9, 0xde, 0xe3, 3670 - 0xe8, 0xed, 0xf2, 0xf7, 0xfc, 0x01, 0x06, 0x0b, 3671 - 0x10, 0x15, 0x1a, 0x1f, 0x24, 0x29, 0x2e, 0x33, 3672 - 0x38, 0x3d, 0x42, 0x47, 0x4c, 0x51, 0x56, 0x5b, 3673 - 0x60, 0x65, 0x6a, 0x6f, 0x74, 0x79, 0x7e, 0x83, 3674 - 0x88, 0x8d, 0x92, 0x97, 0x9c, 0xa1, 0xa6, 0xab, 3675 - 0xb0, 0xb5, 0xba, 0xbf, 0xc4, 0xc9, 0xce, 0xd3, 3676 - 0xd8, 0xdd, 0xe2, 0xe7, 0xec, 0xf1, 0xf6, 0xfb, 3677 - 0x00, 0x07, 0x0e, 0x15, 0x1c, 0x23, 0x2a, 0x31, 3678 - 0x38, 0x3f, 0x46, 0x4d, 0x54, 0x5b, 0x62, 0x69, 3679 - 0x70, 0x77, 0x7e, 0x85, 0x8c, 0x93, 0x9a, 0xa1, 3680 - 0xa8, 0xaf, 0xb6, 0xbd, 0xc4, 0xcb, 0xd2, 0xd9, 3681 - 0xe0, 0xe7, 0xee, 0xf5, 0xfc, 0x03, 0x0a, 0x11, 3682 - 0x18, 0x1f, 0x26, 0x2d, 0x34, 0x3b, 0x42, 0x49, 3683 - 0x50, 0x57, 0x5e, 0x65, 0x6c, 0x73, 0x7a, 0x81, 3684 - 0x88, 0x8f, 0x96, 0x9d, 0xa4, 0xab, 0xb2, 0xb9, 3685 - 0xc0, 0xc7, 0xce, 0xd5, 0xdc, 0xe3, 0xea, 0xf1, 3686 - 0xf8, 0xff, 0x06, 0x0d, 0x14, 0x1b, 0x22, 0x29, 3687 - 0x30, 0x37, 0x3e, 0x45, 0x4c, 0x53, 0x5a, 0x61, 3688 - 0x68, 0x6f, 0x76, 0x7d, 0x84, 0x8b, 0x92, 0x99, 3689 - 0xa0, 0xa7, 0xae, 0xb5, 0xbc, 0xc3, 0xca, 0xd1, 3690 - 0xd8, 0xdf, 0xe6, 0xed, 0xf4, 0xfb, 0x02, 0x09, 3691 - 0x10, 0x17, 0x1e, 0x25, 0x2c, 0x33, 0x3a, 0x41, 3692 - 0x48, 0x4f, 0x56, 0x5d, 0x64, 0x6b, 0x72, 0x79, 3693 - 0x80, 0x87, 0x8e, 0x95, 0x9c, 0xa3, 0xaa, 0xb1, 3694 - 0xb8, 0xbf, 0xc6, 0xcd, 0xd4, 0xdb, 0xe2, 0xe9, 3695 - 0xf0, 0xf7, 0xfe, 0x05, 0x0c, 0x13, 0x1a, 0x21, 3696 - 0x28, 0x2f, 0x36, 0x3d, 0x44, 0x4b, 0x52, 0x59, 3697 - 0x60, 0x67, 0x6e, 0x75, 0x7c, 0x83, 0x8a, 0x91, 3698 - 0x98, 0x9f, 0xa6, 0xad, 0xb4, 0xbb, 0xc2, 0xc9, 3699 - 0xd0, 0xd7, 0xde, 0xe5, 0xec, 0xf3, 0xfa, 0x01, 3700 - 0x08, 0x0f, 0x16, 0x1d, 0x24, 0x2b, 0x32, 0x39, 3701 - 0x40, 0x47, 0x4e, 0x55, 0x5c, 0x63, 0x6a, 0x71, 3702 - 0x78, 0x7f, 0x86, 0x8d, 0x94, 0x9b, 0xa2, 0xa9, 3703 - 0xb0, 0xb7, 0xbe, 0xc5, 0xcc, 0xd3, 0xda, 0xe1, 3704 - 0xe8, 0xef, 0xf6, 0xfd, 0x04, 0x0b, 0x12, 0x19, 3705 - 0x20, 0x27, 0x2e, 0x35, 0x3c, 0x43, 0x4a, 0x51, 3706 - 0x58, 0x5f, 0x66, 0x6d, 0x74, 0x7b, 0x82, 0x89, 3707 - 0x90, 0x97, 0x9e, 0xa5, 0xac, 0xb3, 0xba, 0xc1, 3708 - 0xc8, 0xcf, 0xd6, 0xdd, 0xe4, 0xeb, 0xf2, 0xf9, 3709 - 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 3710 - 0x48, 0x51, 0x5a, 0x63, 0x6c, 0x75, 0x7e, 0x87, 3711 - 0x90, 0x99, 0xa2, 0xab, 0xb4, 0xbd, 0xc6, 0xcf, 3712 - 0xd8, 0xe1, 0xea, 0xf3, 0xfc, 0x05, 0x0e, 0x17, 3713 - 0x20, 0x29, 0x32, 0x3b, 0x44, 0x4d, 0x56, 0x5f, 3714 - 0x68, 0x71, 0x7a, 0x83, 0x8c, 0x95, 0x9e, 0xa7, 3715 - 0xb0, 0xb9, 0xc2, 0xcb, 0xd4, 0xdd, 0xe6, 0xef, 3716 - 0xf8, 0x01, 0x0a, 0x13, 0x1c, 0x25, 0x2e, 0x37, 3717 - 0x40, 0x49, 0x52, 0x5b, 0x64, 0x6d, 0x76, 0x7f, 3718 - 0x88, 0x91, 0x9a, 0xa3, 0xac, 0xb5, 0xbe, 0xc7, 3719 - 0xd0, 0xd9, 0xe2, 0xeb, 0xf4, 0xfd, 0x06, 0x0f, 3720 - 0x18, 0x21, 0x2a, 0x33, 0x3c, 0x45, 0x4e, 0x57, 3721 - 0x60, 0x69, 0x72, 0x7b, 0x84, 0x8d, 0x96, 0x9f, 3722 - 0xa8, 0xb1, 0xba, 0xc3, 0xcc, 0xd5, 0xde, 0xe7, 3723 - 0xf0, 0xf9, 0x02, 0x0b, 0x14, 0x1d, 0x26, 0x2f, 3724 - 0x38, 0x41, 0x4a, 0x53, 0x5c, 0x65, 0x6e, 0x77, 3725 - 0x80, 0x89, 0x92, 0x9b, 0xa4, 0xad, 0xb6, 0xbf, 3726 - 0xc8, 0xd1, 0xda, 0xe3, 0xec, 0xf5, 0xfe, 0x07, 3727 - 0x10, 0x19, 0x22, 0x2b, 0x34, 0x3d, 0x46, 0x4f, 3728 - 0x58, 0x61, 0x6a, 0x73, 0x7c, 0x85, 0x8e, 0x97, 3729 - 0xa0, 0xa9, 0xb2, 0xbb, 0xc4, 0xcd, 0xd6, 0xdf, 3730 - 0xe8, 0xf1, 0xfa, 0x03, 0x0c, 0x15, 0x1e, 0x27, 3731 - 0x30, 0x39, 0x42, 0x4b, 0x54, 0x5d, 0x66, 0x6f, 3732 - 0x78, 0x81, 0x8a, 0x93, 0x9c, 0xa5, 0xae, 0xb7, 3733 - 0xc0, 0xc9, 0xd2, 0xdb, 0xe4, 0xed, 0xf6, 0xff, 3734 - 0x08, 0x11, 0x1a, 0x23, 0x2c, 0x35, 0x3e, 0x47, 3735 - 0x50, 0x59, 0x62, 0x6b, 0x74, 0x7d, 0x86, 0x8f, 3736 - 0x98, 0xa1, 0xaa, 0xb3, 0xbc, 0xc5, 0xce, 0xd7, 3737 - 0xe0, 0xe9, 0xf2, 0xfb, 0x04, 0x0d, 0x16, 0x1f, 3738 - 0x28, 0x31, 0x3a, 0x43, 0x4c, 0x55, 0x5e, 0x67, 3739 - 0x70, 0x79, 0x82, 0x8b, 0x94, 0x9d, 0xa6, 0xaf, 3740 - 0xb8, 0xc1, 0xca, 0xd3, 0xdc, 0xe5, 0xee, 0xf7, 3741 - 0x00, 0x0b, 0x16, 0x21, 0x2c, 0x37, 0x42, 0x4d, 3742 - 0x58, 0x63, 0x6e, 0x79, 0x84, 0x8f, 0x9a, 0xa5, 3743 - 0xb0, 0xbb, 0xc6, 0xd1, 0xdc, 0xe7, 0xf2, 0xfd, 3744 - 0x08, 0x13, 0x1e, 0x29, 0x34, 0x3f, 0x4a, 0x55, 3745 - 0x60, 0x6b, 0x76, 0x81, 0x8c, 0x97, 0xa2, 0xad, 3746 - 0xb8, 0xc3, 0xce, 0xd9, 0xe4, 0xef, 0xfa, 0x05, 3747 - 0x10, 0x1b, 0x26, 0x31, 0x3c, 0x47, 0x52, 0x5d, 3748 - 0x68, 0x73, 0x7e, 0x89, 0x94, 0x9f, 0xaa, 0xb5, 3749 - 0xc0, 0xcb, 0xd6, 0xe1, 0xec, 0xf7, 0x02, 0x0d, 3750 - 0x18, 0x23, 0x2e, 0x39, 0x44, 0x4f, 0x5a, 0x65, 3751 - 0x70, 0x7b, 0x86, 0x91, 0x9c, 0xa7, 0xb2, 0xbd, 3752 - 0xc8, 0xd3, 0xde, 0xe9, 0xf4, 0xff, 0x0a, 0x15, 3753 - 0x20, 0x2b, 0x36, 0x41, 0x4c, 0x57, 0x62, 0x6d, 3754 - 0x78, 0x83, 0x8e, 0x99, 0xa4, 0xaf, 0xba, 0xc5, 3755 - 0xd0, 0xdb, 0xe6, 0xf1, 0xfc, 0x07, 0x12, 0x1d, 3756 - 0x28, 0x33, 0x3e, 0x49, 0x54, 0x5f, 0x6a, 0x75, 3757 - 0x80, 0x8b, 0x96, 0xa1, 0xac, 0xb7, 0xc2, 0xcd, 3758 - 0xd8, 0xe3, 0xee, 0xf9, 0x04, 0x0f, 0x1a, 0x25, 3759 - 0x30, 0x3b, 0x46, 0x51, 0x5c, 0x67, 0x72, 0x7d, 3760 - 0x88, 0x93, 0x9e, 0xa9, 0xb4, 0xbf, 0xca, 0xd5, 3761 - 0xe0, 0xeb, 0xf6, 0x01, 0x0c, 0x17, 0x22, 0x2d, 3762 - 0x38, 0x43, 0x4e, 0x59, 0x64, 0x6f, 0x7a, 0x85, 3763 - 0x90, 0x9b, 0xa6, 0xb1, 0xbc, 0xc7, 0xd2, 0xdd, 3764 - 0xe8, 0xf3, 0xfe, 0x09, 0x14, 0x1f, 0x2a, 0x35, 3765 - 0x40, 0x4b, 0x56, 0x61, 0x6c, 0x77, 0x82, 0x8d, 3766 - 0x98, 0xa3, 0xae, 0xb9, 0xc4, 0xcf, 0xda, 0xe5, 3767 - 0xf0, 0xfb, 0x06, 0x11, 0x1c, 0x27, 0x32, 0x3d, 3768 - 0x48, 0x53, 0x5e, 0x69, 0x74, 0x7f, 0x8a, 0x95, 3769 - 0xa0, 0xab, 0xb6, 0xc1, 0xcc, 0xd7, 0xe2, 0xed, 3770 - 0xf8, 0x03, 0x0e, 0x19, 0x24, 0x2f, 0x3a, 0x45, 3771 - 0x50, 0x5b, 0x66, 0x71, 0x7c, 0x87, 0x92, 0x9d, 3772 - 0xa8, 0xb3, 0xbe, 0xc9, 0xd4, 0xdf, 0xea, 0xf5, 3773 - 0x00, 0x0d, 0x1a, 0x27, 0x34, 0x41, 0x4e, 0x5b, 3774 - 0x68, 0x75, 0x82, 0x8f, 0x9c, 0xa9, 0xb6, 0xc3, 3775 - 0xd0, 0xdd, 0xea, 0xf7, 0x04, 0x11, 0x1e, 0x2b, 3776 - 0x38, 0x45, 0x52, 0x5f, 0x6c, 0x79, 0x86, 0x93, 3777 - 0xa0, 0xad, 0xba, 0xc7, 0xd4, 0xe1, 0xee, 0xfb, 3778 - 0x08, 0x15, 0x22, 0x2f, 0x3c, 0x49, 0x56, 0x63, 3779 - 0x70, 0x7d, 0x8a, 0x97, 0xa4, 0xb1, 0xbe, 0xcb, 3780 - 0xd8, 0xe5, 0xf2, 0xff, 0x0c, 0x19, 0x26, 0x33, 3781 - 0x40, 0x4d, 0x5a, 0x67, 0x74, 0x81, 0x8e, 0x9b, 3782 - 0xa8, 0xb5, 0xc2, 0xcf, 0xdc, 0xe9, 0xf6, 0x03, 3783 - 0x10, 0x1d, 0x2a, 0x37, 0x44, 0x51, 0x5e, 0x6b, 3784 - 0x78, 0x85, 0x92, 0x9f, 0xac, 0xb9, 0xc6, 0xd3, 3785 - 0xe0, 0xed, 0xfa, 0x07, 0x14, 0x21, 0x2e, 0x3b, 3786 - 0x48, 0x55, 0x62, 0x6f, 0x7c, 0x89, 0x96, 0xa3, 3787 - 0xb0, 0xbd, 0xca, 0xd7, 0xe4, 0xf1, 0xfe, 0x0b, 3788 - 0x18, 0x25, 0x32, 0x3f, 0x4c, 0x59, 0x66, 0x73, 3789 - 0x80, 0x8d, 0x9a, 0xa7, 0xb4, 0xc1, 0xce, 0xdb, 3790 - 0xe8, 0xf5, 0x02, 0x0f, 0x1c, 0x29, 0x36, 0x43, 3791 - 0x50, 0x5d, 0x6a, 0x77, 0x84, 0x91, 0x9e, 0xab, 3792 - 0xb8, 0xc5, 0xd2, 0xdf, 0xec, 0xf9, 0x06, 0x13, 3793 - 0x20, 0x2d, 0x3a, 0x47, 0x54, 0x61, 0x6e, 0x7b, 3794 - 0x88, 0x95, 0xa2, 0xaf, 0xbc, 0xc9, 0xd6, 0xe3, 3795 - 0xf0, 0xfd, 0x0a, 0x17, 0x24, 0x31, 0x3e, 0x4b, 3796 - 0x58, 0x65, 0x72, 0x7f, 0x8c, 0x99, 0xa6, 0xb3, 3797 - 0xc0, 0xcd, 0xda, 0xe7, 0xf4, 0x01, 0x0e, 0x1b, 3798 - 0x28, 0x35, 0x42, 0x4f, 0x5c, 0x69, 0x76, 0x83, 3799 - 0x90, 0x9d, 0xaa, 0xb7, 0xc4, 0xd1, 0xde, 0xeb, 3800 - 0xf8, 0x05, 0x12, 0x1f, 0x2c, 0x39, 0x46, 0x53, 3801 - 0x60, 0x6d, 0x7a, 0x87, 0x94, 0xa1, 0xae, 0xbb, 3802 - 0xc8, 0xd5, 0xe2, 0xef, 0xfc, 0x09, 0x16, 0x23, 3803 - 0x30, 0x3d, 0x4a, 0x57, 0x64, 0x71, 0x7e, 0x8b, 3804 - 0x98, 0xa5, 0xb2, 0xbf, 0xcc, 0xd9, 0xe6, 0xf3, 3805 - 0x00, 0x0f, 0x1e, 0x2d, 0x3c, 0x4b, 0x5a, 0x69, 3806 - 0x78, 0x87, 0x96, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 3807 - 0xf0, 0xff, 0x0e, 0x1d, 0x2c, 0x3b, 0x4a, 0x59, 3808 - 0x68, 0x77, 0x86, 0x95, 0xa4, 0xb3, 0xc2, 0xd1, 3809 - 0xe0, 0xef, 0xfe, 0x0d, 0x1c, 0x2b, 0x3a, 0x49, 3810 - 0x58, 0x67, 0x76, 0x85, 0x94, 0xa3, 0xb2, 0xc1, 3811 - 0xd0, 0xdf, 0xee, 0xfd, 0x0c, 0x1b, 0x2a, 0x39, 3812 - 0x48, 0x57, 0x66, 0x75, 0x84, 0x93, 0xa2, 0xb1, 3813 - 0xc0, 0xcf, 0xde, 0xed, 0xfc, 0x0b, 0x1a, 0x29, 3814 - 0x38, 0x47, 0x56, 0x65, 0x74, 0x83, 0x92, 0xa1, 3815 - 0xb0, 0xbf, 0xce, 0xdd, 0xec, 0xfb, 0x0a, 0x19, 3816 - 0x28, 0x37, 0x46, 0x55, 0x64, 0x73, 0x82, 0x91, 3817 - 0xa0, 0xaf, 0xbe, 0xcd, 0xdc, 0xeb, 0xfa, 0x09, 3818 - 0x18, 0x27, 0x36, 0x45, 0x54, 0x63, 0x72, 0x81, 3819 - 0x90, 0x9f, 0xae, 0xbd, 0xcc, 0xdb, 0xea, 0xf9, 3820 - 0x08, 0x17, 0x26, 0x35, 0x44, 0x53, 0x62, 0x71, 3821 - 0x80, 0x8f, 0x9e, 0xad, 0xbc, 0xcb, 0xda, 0xe9, 3822 - 0xf8, 0x07, 0x16, 0x25, 0x34, 0x43, 0x52, 0x61, 3823 - 0x70, 0x7f, 0x8e, 0x9d, 0xac, 0xbb, 0xca, 0xd9, 3824 - 0xe8, 0xf7, 0x06, 0x15, 0x24, 0x33, 0x42, 0x51, 3825 - 0x60, 0x6f, 0x7e, 0x8d, 0x9c, 0xab, 0xba, 0xc9, 3826 - 0xd8, 0xe7, 0xf6, 0x05, 0x14, 0x23, 0x32, 0x41, 3827 - 0x50, 0x5f, 0x6e, 0x7d, 0x8c, 0x9b, 0xaa, 0xb9, 3828 - 0xc8, 0xd7, 0xe6, 0xf5, 0x04, 0x13, 0x22, 0x31, 3829 - 0x40, 0x4f, 0x5e, 0x6d, 0x7c, 0x8b, 0x9a, 0xa9, 3830 - 0xb8, 0xc7, 0xd6, 0xe5, 0xf4, 0x03, 0x12, 0x21, 3831 - 0x30, 0x3f, 0x4e, 0x5d, 0x6c, 0x7b, 0x8a, 0x99, 3832 - 0xa8, 0xb7, 0xc6, 0xd5, 0xe4, 0xf3, 0x02, 0x11, 3833 - 0x20, 0x2f, 0x3e, 0x4d, 0x5c, 0x6b, 0x7a, 0x89, 3834 - 0x98, 0xa7, 0xb6, 0xc5, 0xd4, 0xe3, 0xf2, 0x01, 3835 - 0x10, 0x1f, 0x2e, 0x3d, 0x4c, 0x5b, 0x6a, 0x79, 3836 - 0x88, 0x97, 0xa6, 0xb5, 0xc4, 0xd3, 0xe2, 0xf1, 3837 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 3838 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 3839 - 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 3840 - 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, 3841 - 0x20, 0x31, 0x42, 0x53, 0x64, 0x75, 0x86, 0x97, 3842 - 0xa8, 0xb9, 0xca, 0xdb, 0xec, 0xfd, 0x0e, 0x1f, 3843 - 0x30, 0x41, 0x52, 0x63, 0x74, 0x85, 0x96, 0xa7, 3844 - 0xb8, 0xc9, 0xda, 0xeb, 0xfc, 0x0d, 0x1e, 0x2f, 3845 - 0x40, 0x51, 0x62, 0x73, 0x84, 0x95, 0xa6, 0xb7, 3846 - 0xc8, 0xd9, 0xea, 0xfb, 0x0c, 0x1d, 0x2e, 0x3f, 3847 - 0x50, 0x61, 0x72, 0x83, 0x94, 0xa5, 0xb6, 0xc7, 3848 - 0xd8, 0xe9, 0xfa, 0x0b, 0x1c, 0x2d, 0x3e, 0x4f, 3849 - 0x60, 0x71, 0x82, 0x93, 0xa4, 0xb5, 0xc6, 0xd7, 3850 - 0xe8, 0xf9, 0x0a, 0x1b, 0x2c, 0x3d, 0x4e, 0x5f, 3851 - 0x70, 0x81, 0x92, 0xa3, 0xb4, 0xc5, 0xd6, 0xe7, 3852 - 0xf8, 0x09, 0x1a, 0x2b, 0x3c, 0x4d, 0x5e, 0x6f, 3853 - 0x80, 0x91, 0xa2, 0xb3, 0xc4, 0xd5, 0xe6, 0xf7, 3854 - 0x08, 0x19, 0x2a, 0x3b, 0x4c, 0x5d, 0x6e, 0x7f, 3855 - 0x90, 0xa1, 0xb2, 0xc3, 0xd4, 0xe5, 0xf6, 0x07, 3856 - 0x18, 0x29, 0x3a, 0x4b, 0x5c, 0x6d, 0x7e, 0x8f, 3857 - 0xa0, 0xb1, 0xc2, 0xd3, 0xe4, 0xf5, 0x06, 0x17, 3858 - 0x28, 0x39, 0x4a, 0x5b, 0x6c, 0x7d, 0x8e, 0x9f, 3859 - 0xb0, 0xc1, 0xd2, 0xe3, 0xf4, 0x05, 0x16, 0x27, 3860 - 0x38, 0x49, 0x5a, 0x6b, 0x7c, 0x8d, 0x9e, 0xaf, 3861 - 0xc0, 0xd1, 0xe2, 0xf3, 0x04, 0x15, 0x26, 0x37, 3862 - 0x48, 0x59, 0x6a, 0x7b, 0x8c, 0x9d, 0xae, 0xbf, 3863 - 0xd0, 0xe1, 0xf2, 0x03, 0x14, 0x25, 0x36, 0x47, 3864 - 0x58, 0x69, 0x7a, 0x8b, 0x9c, 0xad, 0xbe, 0xcf, 3865 - 0xe0, 0xf1, 0x02, 0x13, 0x24, 0x35, 0x46, 0x57, 3866 - 0x68, 0x79, 0x8a, 0x9b, 0xac, 0xbd, 0xce, 0xdf, 3867 - 0xf0, 0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 3868 - 0x78, 0x89, 0x9a, 0xab, 0xbc, 0xcd, 0xde, 0xef, 3869 - 0x00, 0x13, 0x26, 0x39, 0x4c, 0x5f, 0x72, 0x85, 3870 - 0x98, 0xab, 0xbe, 0xd1, 0xe4, 0xf7, 0x0a, 0x1d, 3871 - 0x30, 0x43, 0x56, 0x69, 0x7c, 0x8f, 0xa2, 0xb5, 3872 - 0xc8, 0xdb, 0xee, 0x01, 0x14, 0x27, 0x3a, 0x4d, 3873 - 0x60, 0x73, 0x86, 0x99, 0xac, 0xbf, 0xd2, 0xe5, 3874 - 0xf8, 0x0b, 0x1e, 0x31, 0x44, 0x57, 0x6a, 0x7d, 3875 - 0x90, 0xa3, 0xb6, 0xc9, 0xdc, 0xef, 0x02, 0x15, 3876 - 0x28, 0x3b, 0x4e, 0x61, 0x74, 0x87, 0x9a, 0xad, 3877 - 0xc0, 0xd3, 0xe6, 0xf9, 0x0c, 0x1f, 0x32, 0x45, 3878 - 0x58, 0x6b, 0x7e, 0x91, 0xa4, 0xb7, 0xca, 0xdd, 3879 - 0xf0, 0x03, 0x16, 0x29, 0x3c, 0x4f, 0x62, 0x75, 3880 - 0x88, 0x9b, 0xae, 0xc1, 0xd4, 0xe7, 0xfa, 0x0d, 3881 - 0x20, 0x33, 0x46, 0x59, 0x6c, 0x7f, 0x92, 0xa5, 3882 - 0xb8, 0xcb, 0xde, 0xf1, 0x04, 0x17, 0x2a, 0x3d, 3883 - 0x50, 0x63, 0x76, 0x89, 0x9c, 0xaf, 0xc2, 0xd5, 3884 - 0xe8, 0xfb, 0x0e, 0x21, 0x34, 0x47, 0x5a, 0x6d, 3885 - 0x80, 0x93, 0xa6, 0xb9, 0xcc, 0xdf, 0xf2, 0x05, 3886 - 0x18, 0x2b, 0x3e, 0x51, 0x64, 0x77, 0x8a, 0x9d, 3887 - 0xb0, 0xc3, 0xd6, 0xe9, 0xfc, 0x0f, 0x22, 0x35, 3888 - 0x48, 0x5b, 0x6e, 0x81, 0x94, 0xa7, 0xba, 0xcd, 3889 - 0xe0, 0xf3, 0x06, 0x19, 0x2c, 0x3f, 0x52, 0x65, 3890 - 0x78, 0x8b, 0x9e, 0xb1, 0xc4, 0xd7, 0xea, 0xfd, 3891 - 0x10, 0x23, 0x36, 0x49, 0x5c, 0x6f, 0x82, 0x95, 3892 - 0xa8, 0xbb, 0xce, 0xe1, 0xf4, 0x07, 0x1a, 0x2d, 3893 - 0x40, 0x53, 0x66, 0x79, 0x8c, 0x9f, 0xb2, 0xc5, 3894 - 0xd8, 0xeb, 0xfe, 0x11, 0x24, 0x37, 0x4a, 0x5d, 3895 - 0x70, 0x83, 0x96, 0xa9, 0xbc, 0xcf, 0xe2, 0xf5, 3896 - 0x08, 0x1b, 0x2e, 0x41, 0x54, 0x67, 0x7a, 0x8d, 3897 - 0xa0, 0xb3, 0xc6, 0xd9, 0xec, 0xff, 0x12, 0x25, 3898 - 0x38, 0x4b, 0x5e, 0x71, 0x84, 0x97, 0xaa, 0xbd, 3899 - 0xd0, 0xe3, 0xf6, 0x09, 0x1c, 0x2f, 0x42, 0x55, 3900 - 0x68, 0x7b, 0x8e, 0xa1, 0xb4, 0xc7, 0xda, 0xed, 3901 - 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x69, 0x7e, 0x93, 3902 - 0xa8, 0xbd, 0xd2, 0xe7, 0xfc, 0x11, 0x26, 0x3b, 3903 - 0x50, 0x65, 0x7a, 0x8f, 0xa4, 0xb9, 0xce, 0xe3, 3904 - 0xf8, 0x0d, 0x22, 0x37, 0x4c, 0x61, 0x76, 0x8b, 3905 - 0xa0, 0xb5, 0xca, 0xdf, 0xf4, 0x09, 0x1e, 0x33, 3906 - 0x48, 0x5d, 0x72, 0x87, 0x9c, 0xb1, 0xc6, 0xdb, 3907 - 0xf0, 0x05, 0x1a, 0x2f, 0x44, 0x59, 0x6e, 0x83, 3908 - 0x98, 0xad, 0xc2, 0xd7, 0xec, 0x01, 0x16, 0x2b, 3909 - 0x40, 0x55, 0x6a, 0x7f, 0x94, 0xa9, 0xbe, 0xd3, 3910 - 0xe8, 0xfd, 0x12, 0x27, 0x3c, 0x51, 0x66, 0x7b, 3911 - 0x90, 0xa5, 0xba, 0xcf, 0xe4, 0xf9, 0x0e, 0x23, 3912 - 0x38, 0x4d, 0x62, 0x77, 0x8c, 0xa1, 0xb6, 0xcb, 3913 - 0xe0, 0xf5, 0x0a, 0x1f, 0x34, 0x49, 0x5e, 0x73, 3914 - 0x88, 0x9d, 0xb2, 0xc7, 0xdc, 0xf1, 0x06, 0x1b, 3915 - 0x30, 0x45, 0x5a, 0x6f, 0x84, 0x99, 0xae, 0xc3, 3916 - 0xd8, 0xed, 0x02, 0x17, 0x2c, 0x41, 0x56, 0x6b, 3917 - 0x80, 0x95, 0xaa, 0xbf, 0xd4, 0xe9, 0xfe, 0x13, 3918 - 0x28, 0x3d, 0x52, 0x67, 0x7c, 0x91, 0xa6, 0xbb, 3919 - 0xd0, 0xe5, 0xfa, 0x0f, 0x24, 0x39, 0x4e, 0x63, 3920 - 0x78, 0x8d, 0xa2, 0xb7, 0xcc, 0xe1, 0xf6, 0x0b, 3921 - 0x20, 0x35, 0x4a, 0x5f, 0x74, 0x89, 0x9e, 0xb3, 3922 - 0xc8, 0xdd, 0xf2, 0x07, 0x1c, 0x31, 0x46, 0x5b, 3923 - 0x70, 0x85, 0x9a, 0xaf, 0xc4, 0xd9, 0xee, 0x03, 3924 - 0x18, 0x2d, 0x42, 0x57, 0x6c, 0x81, 0x96, 0xab, 3925 - 0xc0, 0xd5, 0xea, 0xff, 0x14, 0x29, 0x3e, 0x53, 3926 - 0x68, 0x7d, 0x92, 0xa7, 0xbc, 0xd1, 0xe6, 0xfb, 3927 - 0x10, 0x25, 0x3a, 0x4f, 0x64, 0x79, 0x8e, 0xa3, 3928 - 0xb8, 0xcd, 0xe2, 0xf7, 0x0c, 0x21, 0x36, 0x4b, 3929 - 0x60, 0x75, 0x8a, 0x9f, 0xb4, 0xc9, 0xde, 0xf3, 3930 - 0x08, 0x1d, 0x32, 0x47, 0x5c, 0x71, 0x86, 0x9b, 3931 - 0xb0, 0xc5, 0xda, 0xef, 0x04, 0x19, 0x2e, 0x43, 3932 - 0x58, 0x6d, 0x82, 0x97, 0xac, 0xc1, 0xd6, 0xeb, 3933 - 0x00, 0x17, 0x2e, 0x45, 0x5c, 0x73, 0x8a, 0xa1, 3934 - 0xb8, 0xcf, 0xe6, 0xfd, 0x14, 0x2b, 0x42, 0x59, 3935 - 0x70, 0x87, 0x9e, 0xb5, 0xcc, 0xe3, 0xfa, 0x11, 3936 - 0x28, 0x3f, 0x56, 0x6d, 0x84, 0x9b, 0xb2, 0xc9, 3937 - 0xe0, 0xf7, 0x0e, 0x25, 0x3c, 0x53, 0x6a, 0x81, 3938 - 0x98, 0xaf, 0xc6, 0xdd, 0xf4, 0x0b, 0x22, 0x39, 3939 - 0x50, 0x67, 0x7e, 0x95, 0xac, 0xc3, 0xda, 0xf1, 3940 - 0x08, 0x1f, 0x36, 0x4d, 0x64, 0x7b, 0x92, 0xa9, 3941 - 0xc0, 0xd7, 0xee, 0x05, 0x1c, 0x33, 0x4a, 0x61, 3942 - 0x78, 0x8f, 0xa6, 0xbd, 0xd4, 0xeb, 0x02, 0x19, 3943 - 0x30, 0x47, 0x5e, 0x75, 0x8c, 0xa3, 0xba, 0xd1, 3944 - 0xe8, 0xff, 0x16, 0x2d, 0x44, 0x5b, 0x72, 0x89, 3945 - 0xa0, 0xb7, 0xce, 0xe5, 0xfc, 0x13, 0x2a, 0x41, 3946 - 0x58, 0x6f, 0x86, 0x9d, 0xb4, 0xcb, 0xe2, 0xf9, 3947 - 0x10, 0x27, 0x3e, 0x55, 0x6c, 0x83, 0x9a, 0xb1, 3948 - 0xc8, 0xdf, 0xf6, 0x0d, 0x24, 0x3b, 0x52, 0x69, 3949 - 0x80, 0x97, 0xae, 0xc5, 0xdc, 0xf3, 0x0a, 0x21, 3950 - 0x38, 0x4f, 0x66, 0x7d, 0x94, 0xab, 0xc2, 0xd9, 3951 - 0xf0, 0x07, 0x1e, 0x35, 0x4c, 0x63, 0x7a, 0x91, 3952 - 0xa8, 0xbf, 0xd6, 0xed, 0x04, 0x1b, 0x32, 0x49, 3953 - 0x60, 0x77, 0x8e, 0xa5, 0xbc, 0xd3, 0xea, 0x01, 3954 - 0x18, 0x2f, 0x46, 0x5d, 0x74, 0x8b, 0xa2, 0xb9, 3955 - 0xd0, 0xe7, 0xfe, 0x15, 0x2c, 0x43, 0x5a, 0x71, 3956 - 0x88, 0x9f, 0xb6, 0xcd, 0xe4, 0xfb, 0x12, 0x29, 3957 - 0x40, 0x57, 0x6e, 0x85, 0x9c, 0xb3, 0xca, 0xe1, 3958 - 0xf8, 0x0f, 0x26, 0x3d, 0x54, 0x6b, 0x82, 0x99, 3959 - 0xb0, 0xc7, 0xde, 0xf5, 0x0c, 0x23, 0x3a, 0x51, 3960 - 0x68, 0x7f, 0x96, 0xad, 0xc4, 0xdb, 0xf2, 0x09, 3961 - 0x20, 0x37, 0x4e, 0x65, 0x7c, 0x93, 0xaa, 0xc1, 3962 - 0xd8, 0xef, 0x06, 0x1d, 0x34, 0x4b, 0x62, 0x79, 3963 - 0x90, 0xa7, 0xbe, 0xd5, 0xec, 0x03, 0x1a, 0x31, 3964 - 0x48, 0x5f, 0x76, 0x8d, 0xa4, 0xbb, 0xd2, 0xe9, 3965 - 0x00, 0x19, 0x32, 0x4b, 0x64, 0x7d, 0x96, 0xaf, 3966 - 0xc8, 0xe1, 0xfa, 0x13, 0x2c, 0x45, 0x5e, 0x77, 3967 - 0x90, 0xa9, 0xc2, 0xdb, 0xf4, 0x0d, 0x26, 0x3f, 3968 - 0x58, 0x71, 0x8a, 0xa3, 0xbc, 0xd5, 0xee, 0x07, 3969 - 0x20, 0x39, 0x52, 0x6b, 0x84, 0x9d, 0xb6, 0xcf, 3970 - 0xe8, 0x01, 0x1a, 0x33, 0x4c, 0x65, 0x7e, 0x97, 3971 - 0xb0, 0xc9, 0xe2, 0xfb, 0x14, 0x2d, 0x46, 0x5f, 3972 - 0x78, 0x91, 0xaa, 0xc3, 0xdc, 0xf5, 0x0e, 0x27, 3973 - 0x40, 0x59, 0x72, 0x8b, 0xa4, 0xbd, 0xd6, 0xef, 3974 - 0x08, 0x21, 0x3a, 0x53, 0x6c, 0x85, 0x9e, 0xb7, 3975 - 0xd0, 0xe9, 0x02, 0x1b, 0x34, 0x4d, 0x66, 0x7f, 3976 - 0x98, 0xb1, 0xca, 0xe3, 0xfc, 0x15, 0x2e, 0x47, 3977 - 0x60, 0x79, 0x92, 0xab, 0xc4, 0xdd, 0xf6, 0x0f, 3978 - 0x28, 0x41, 0x5a, 0x73, 0x8c, 0xa5, 0xbe, 0xd7, 3979 - 0xf0, 0x09, 0x22, 0x3b, 0x54, 0x6d, 0x86, 0x9f, 3980 - 0xb8, 0xd1, 0xea, 0x03, 0x1c, 0x35, 0x4e, 0x67, 3981 - 0x80, 0x99, 0xb2, 0xcb, 0xe4, 0xfd, 0x16, 0x2f, 3982 - 0x48, 0x61, 0x7a, 0x93, 0xac, 0xc5, 0xde, 0xf7, 3983 - 0x10, 0x29, 0x42, 0x5b, 0x74, 0x8d, 0xa6, 0xbf, 3984 - 0xd8, 0xf1, 0x0a, 0x23, 0x3c, 0x55, 0x6e, 0x87, 3985 - 0xa0, 0xb9, 0xd2, 0xeb, 0x04, 0x1d, 0x36, 0x4f, 3986 - 0x68, 0x81, 0x9a, 0xb3, 0xcc, 0xe5, 0xfe, 0x17, 3987 - 0x30, 0x49, 0x62, 0x7b, 0x94, 0xad, 0xc6, 0xdf, 3988 - 0xf8, 0x11, 0x2a, 0x43, 0x5c, 0x75, 0x8e, 0xa7, 3989 - 0xc0, 0xd9, 0xf2, 0x0b, 0x24, 0x3d, 0x56, 0x6f, 3990 - 0x88, 0xa1, 0xba, 0xd3, 0xec, 0x05, 0x1e, 0x37, 3991 - 0x50, 0x69, 0x82, 0x9b, 0xb4, 0xcd, 0xe6, 0xff, 3992 - 0x18, 0x31, 0x4a, 0x63, 0x7c, 0x95, 0xae, 0xc7, 3993 - 0xe0, 0xf9, 0x12, 0x2b, 0x44, 0x5d, 0x76, 0x8f, 3994 - 0xa8, 0xc1, 0xda, 0xf3, 0x0c, 0x25, 0x3e, 0x57, 3995 - 0x70, 0x89, 0xa2, 0xbb, 0xd4, 0xed, 0x06, 0x1f, 3996 - 0x38, 0x51, 0x6a, 0x83, 0x9c, 0xb5, 0xce, 0xe7, 3997 - 0x00, 0x1b, 0x36, 0x51, 0x6c, 0x87, 0xa2, 0xbd, 3998 - 0xd8, 0xf3, 0x0e, 0x29, 0x44, 0x5f, 0x7a, 0x95, 3999 - 0xb0, 0xcb, 0xe6, 0x01, 0x1c, 0x37, 0x52, 0x6d, 4000 - 0x88, 0xa3, 0xbe, 0xd9, 0xf4, 0x0f, 0x2a, 0x45, 4001 - 0x60, 0x7b, 0x96, 0xb1, 0xcc, 0xe7, 0x02, 0x1d, 4002 - 0x38, 0x53, 0x6e, 0x89, 0xa4, 0xbf, 0xda, 0xf5, 4003 - 0x10, 0x2b, 0x46, 0x61, 0x7c, 0x97, 0xb2, 0xcd, 4004 - 0xe8, 0x03, 0x1e, 0x39, 0x54, 0x6f, 0x8a, 0xa5, 4005 - 0xc0, 0xdb, 0xf6, 0x11, 0x2c, 0x47, 0x62, 0x7d, 4006 - 0x98, 0xb3, 0xce, 0xe9, 0x04, 0x1f, 0x3a, 0x55, 4007 - 0x70, 0x8b, 0xa6, 0xc1, 0xdc, 0xf7, 0x12, 0x2d, 4008 - 0x48, 0x63, 0x7e, 0x99, 0xb4, 0xcf, 0xea, 0x05, 4009 - 0x20, 0x3b, 0x56, 0x71, 0x8c, 0xa7, 0xc2, 0xdd, 4010 - 0xf8, 0x13, 0x2e, 0x49, 0x64, 0x7f, 0x9a, 0xb5, 4011 - 0xd0, 0xeb, 0x06, 0x21, 0x3c, 0x57, 0x72, 0x8d, 4012 - 0xa8, 0xc3, 0xde, 0xf9, 0x14, 0x2f, 0x4a, 0x65, 4013 - 0x80, 0x9b, 0xb6, 0xd1, 0xec, 0x07, 0x22, 0x3d, 4014 - 0x58, 0x73, 0x8e, 0xa9, 0xc4, 0xdf, 0xfa, 0x15, 4015 - 0x30, 0x4b, 0x66, 0x81, 0x9c, 0xb7, 0xd2, 0xed, 4016 - 0x08, 0x23, 0x3e, 0x59, 0x74, 0x8f, 0xaa, 0xc5, 4017 - 0xe0, 0xfb, 0x16, 0x31, 0x4c, 0x67, 0x82, 0x9d, 4018 - 0xb8, 0xd3, 0xee, 0x09, 0x24, 0x3f, 0x5a, 0x75, 4019 - 0x90, 0xab, 0xc6, 0xe1, 0xfc, 0x17, 0x32, 0x4d, 4020 - 0x68, 0x83, 0x9e, 0xb9, 0xd4, 0xef, 0x0a, 0x25, 4021 - 0x40, 0x5b, 0x76, 0x91, 0xac, 0xc7, 0xe2, 0xfd, 4022 - 0x18, 0x33, 0x4e, 0x69, 0x84, 0x9f, 0xba, 0xd5, 4023 - 0xf0, 0x0b, 0x26, 0x41, 0x5c, 0x77, 0x92, 0xad, 4024 - 0xc8, 0xe3, 0xfe, 0x19, 0x34, 0x4f, 0x6a, 0x85, 4025 - 0xa0, 0xbb, 0xd6, 0xf1, 0x0c, 0x27, 0x42, 0x5d, 4026 - 0x78, 0x93, 0xae, 0xc9, 0xe4, 0xff, 0x1a, 0x35, 4027 - 0x50, 0x6b, 0x86, 0xa1, 0xbc, 0xd7, 0xf2, 0x0d, 4028 - 0x28, 0x43, 0x5e, 0x79, 0x94, 0xaf, 0xca, 0xe5, 4029 - 0x00, 0x1d, 0x3a, 0x57, 0x74, 0x91, 0xae, 0xcb, 4030 - 0xe8, 0x05, 0x22, 0x3f, 0x5c, 0x79, 0x96, 0xb3, 4031 - 0xd0, 0xed, 0x0a, 0x27, 0x44, 0x61, 0x7e, 0x9b, 4032 - 0xb8, 0xd5, 0xf2, 0x0f, 0x2c, 0x49, 0x66, 0x83, 4033 - 0xa0, 0xbd, 0xda, 0xf7, 0x14, 0x31, 0x4e, 0x6b, 4034 - 0x88, 0xa5, 0xc2, 0xdf, 0xfc, 0x19, 0x36, 0x53, 4035 - 0x70, 0x8d, 0xaa, 0xc7, 0xe4, 0x01, 0x1e, 0x3b, 4036 - 0x58, 0x75, 0x92, 0xaf, 0xcc, 0xe9, 0x06, 0x23, 4037 - 0x40, 0x5d, 0x7a, 0x97, 0xb4, 0xd1, 0xee, 0x0b, 4038 - 0x28, 0x45, 0x62, 0x7f, 0x9c, 0xb9, 0xd6, 0xf3, 4039 - 0x10, 0x2d, 0x4a, 0x67, 0x84, 0xa1, 0xbe, 0xdb, 4040 - 0xf8, 0x15, 0x32, 0x4f, 0x6c, 0x89, 0xa6, 0xc3, 4041 - 0xe0, 0xfd, 0x1a, 0x37, 0x54, 0x71, 0x8e, 0xab, 4042 - 0xc8, 0xe5, 0x02, 0x1f, 0x3c, 0x59, 0x76, 0x93, 4043 - 0xb0, 0xcd, 0xea, 0x07, 0x24, 0x41, 0x5e, 0x7b, 4044 - 0x98, 0xb5, 0xd2, 0xef, 0x0c, 0x29, 0x46, 0x63, 4045 - 0x80, 0x9d, 0xba, 0xd7, 0xf4, 0x11, 0x2e, 0x4b, 4046 - 0x68, 0x85, 0xa2, 0xbf, 0xdc, 0xf9, 0x16, 0x33, 4047 - 0x50, 0x6d, 0x8a, 0xa7, 0xc4, 0xe1, 0xfe, 0x1b, 4048 - 0x38, 0x55, 0x72, 0x8f, 0xac, 0xc9, 0xe6, 0x03, 4049 - 0x20, 0x3d, 0x5a, 0x77, 0x94, 0xb1, 0xce, 0xeb, 4050 - 0x08, 0x25, 0x42, 0x5f, 0x7c, 0x99, 0xb6, 0xd3, 4051 - 0xf0, 0x0d, 0x2a, 0x47, 0x64, 0x81, 0x9e, 0xbb, 4052 - 0xd8, 0xf5, 0x12, 0x2f, 0x4c, 0x69, 0x86, 0xa3, 4053 - 0xc0, 0xdd, 0xfa, 0x17, 0x34, 0x51, 0x6e, 0x8b, 4054 - 0xa8, 0xc5, 0xe2, 0xff, 0x1c, 0x39, 0x56, 0x73, 4055 - 0x90, 0xad, 0xca, 0xe7, 0x04, 0x21, 0x3e, 0x5b, 4056 - 0x78, 0x95, 0xb2, 0xcf, 0xec, 0x09, 0x26, 0x43, 4057 - 0x60, 0x7d, 0x9a, 0xb7, 0xd4, 0xf1, 0x0e, 0x2b, 4058 - 0x48, 0x65, 0x82, 0x9f, 0xbc, 0xd9, 0xf6, 0x13, 4059 - 0x30, 0x4d, 0x6a, 0x87, 0xa4, 0xc1, 0xde, 0xfb, 4060 - 0x18, 0x35, 0x52, 0x6f, 0x8c, 0xa9, 0xc6, 0xe3, 4061 - 0x00, 0x1f, 0x3e, 0x5d, 0x7c, 0x9b, 0xba, 0xd9, 4062 - 0xf8, 0x17, 0x36, 0x55, 0x74, 0x93, 0xb2, 0xd1, 4063 - 0xf0, 0x0f, 0x2e, 0x4d, 0x6c, 0x8b, 0xaa, 0xc9, 4064 - 0xe8, 0x07, 0x26, 0x45, 0x64, 0x83, 0xa2, 0xc1, 4065 - 0xe0, 0xff, 0x1e, 0x3d, 0x5c, 0x7b, 0x9a, 0xb9, 4066 - 0xd8, 0xf7, 0x16, 0x35, 0x54, 0x73, 0x92, 0xb1, 4067 - 0xd0, 0xef, 0x0e, 0x2d, 0x4c, 0x6b, 0x8a, 0xa9, 4068 - 0xc8, 0xe7, 0x06, 0x25, 0x44, 0x63, 0x82, 0xa1, 4069 - 0xc0, 0xdf, 0xfe, 0x1d, 0x3c, 0x5b, 0x7a, 0x99, 4070 - 0xb8, 0xd7, 0xf6, 0x15, 0x34, 0x53, 0x72, 0x91, 4071 - 0xb0, 0xcf, 0xee, 0x0d, 0x2c, 0x4b, 0x6a, 0x89, 4072 - 0xa8, 0xc7, 0xe6, 0x05, 0x24, 0x43, 0x62, 0x81, 4073 - 0xa0, 0xbf, 0xde, 0xfd, 0x1c, 0x3b, 0x5a, 0x79, 4074 - 0x98, 0xb7, 0xd6, 0xf5, 0x14, 0x33, 0x52, 0x71, 4075 - 0x90, 0xaf, 0xce, 0xed, 0x0c, 0x2b, 0x4a, 0x69, 4076 - 0x88, 0xa7, 0xc6, 0xe5, 0x04, 0x23, 0x42, 0x61, 4077 - 0x80, 0x9f, 0xbe, 0xdd, 0xfc, 0x1b, 0x3a, 0x59, 4078 - 0x78, 0x97, 0xb6, 0xd5, 0xf4, 0x13, 0x32, 0x51, 4079 - 0x70, 0x8f, 0xae, 0xcd, 0xec, 0x0b, 0x2a, 0x49, 4080 - 0x68, 0x87, 0xa6, 0xc5, 0xe4, 0x03, 0x22, 0x41, 4081 - 0x60, 0x7f, 0x9e, 0xbd, 0xdc, 0xfb, 0x1a, 0x39, 4082 - 0x58, 0x77, 0x96, 0xb5, 0xd4, 0xf3, 0x12, 0x31, 4083 - 0x50, 0x6f, 0x8e, 0xad, 0xcc, 0xeb, 0x0a, 0x29, 4084 - 0x48, 0x67, 0x86, 0xa5, 0xc4, 0xe3, 0x02, 0x21, 4085 - 0x40, 0x5f, 0x7e, 0x9d, 0xbc, 0xdb, 0xfa, 0x19, 4086 - 0x38, 0x57, 0x76, 0x95, 0xb4, 0xd3, 0xf2, 0x11, 4087 - 0x30, 0x4f, 0x6e, 0x8d, 0xac, 0xcb, 0xea, 0x09, 4088 - 0x28, 0x47, 0x66, 0x85, 0xa4, 0xc3, 0xe2, 0x01, 4089 - 0x20, 0x3f, 0x5e, 0x7d, 0x9c, 0xbb, 0xda, 0xf9, 4090 - 0x18, 0x37, 0x56, 0x75, 0x94, 0xb3, 0xd2, 0xf1, 4091 - 0x10, 0x2f, 0x4e, 0x6d, 0x8c, 0xab, 0xca, 0xe9, 4092 - 0x08, 0x27, 0x46, 0x65, 0x84, 0xa3, 0xc2, 0xe1, 4093 - 0x00, 0x21, 0x42, 0x63, 4094 - }, 3551 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 3552 + .input = 3553 + "\x00\x01\x02\x03\x04\x05\x06\x07" 3554 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 3555 + "\x10\x11\x12\x13\x14\x15\x16\x17" 3556 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 3557 + "\x20\x21\x22\x23\x24\x25\x26\x27" 3558 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" 3559 + "\x30\x31\x32\x33\x34\x35\x36\x37" 3560 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" 3561 + "\x40\x41\x42\x43\x44\x45\x46\x47" 3562 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" 3563 + "\x50\x51\x52\x53\x54\x55\x56\x57" 3564 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" 3565 + "\x60\x61\x62\x63\x64\x65\x66\x67" 3566 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" 3567 + "\x70\x71\x72\x73\x74\x75\x76\x77" 3568 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" 3569 + "\x80\x81\x82\x83\x84\x85\x86\x87" 3570 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" 3571 + "\x90\x91\x92\x93\x94\x95\x96\x97" 3572 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" 3573 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" 3574 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" 3575 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" 3576 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" 3577 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 3578 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" 3579 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" 3580 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" 3581 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" 3582 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" 3583 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" 3584 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" 3585 + "\x00\x03\x06\x09\x0c\x0f\x12\x15" 3586 + "\x18\x1b\x1e\x21\x24\x27\x2a\x2d" 3587 + "\x30\x33\x36\x39\x3c\x3f\x42\x45" 3588 + "\x48\x4b\x4e\x51\x54\x57\x5a\x5d" 3589 + "\x60\x63\x66\x69\x6c\x6f\x72\x75" 3590 + "\x78\x7b\x7e\x81\x84\x87\x8a\x8d" 3591 + "\x90\x93\x96\x99\x9c\x9f\xa2\xa5" 3592 + "\xa8\xab\xae\xb1\xb4\xb7\xba\xbd" 3593 + "\xc0\xc3\xc6\xc9\xcc\xcf\xd2\xd5" 3594 + "\xd8\xdb\xde\xe1\xe4\xe7\xea\xed" 3595 + "\xf0\xf3\xf6\xf9\xfc\xff\x02\x05" 3596 + "\x08\x0b\x0e\x11\x14\x17\x1a\x1d" 3597 + "\x20\x23\x26\x29\x2c\x2f\x32\x35" 3598 + "\x38\x3b\x3e\x41\x44\x47\x4a\x4d" 3599 + "\x50\x53\x56\x59\x5c\x5f\x62\x65" 3600 + "\x68\x6b\x6e\x71\x74\x77\x7a\x7d" 3601 + "\x80\x83\x86\x89\x8c\x8f\x92\x95" 3602 + "\x98\x9b\x9e\xa1\xa4\xa7\xaa\xad" 3603 + "\xb0\xb3\xb6\xb9\xbc\xbf\xc2\xc5" 3604 + "\xc8\xcb\xce\xd1\xd4\xd7\xda\xdd" 3605 + "\xe0\xe3\xe6\xe9\xec\xef\xf2\xf5" 3606 + "\xf8\xfb\xfe\x01\x04\x07\x0a\x0d" 3607 + "\x10\x13\x16\x19\x1c\x1f\x22\x25" 3608 + "\x28\x2b\x2e\x31\x34\x37\x3a\x3d" 3609 + "\x40\x43\x46\x49\x4c\x4f\x52\x55" 3610 + "\x58\x5b\x5e\x61\x64\x67\x6a\x6d" 3611 + "\x70\x73\x76\x79\x7c\x7f\x82\x85" 3612 + "\x88\x8b\x8e\x91\x94\x97\x9a\x9d" 3613 + "\xa0\xa3\xa6\xa9\xac\xaf\xb2\xb5" 3614 + "\xb8\xbb\xbe\xc1\xc4\xc7\xca\xcd" 3615 + "\xd0\xd3\xd6\xd9\xdc\xdf\xe2\xe5" 3616 + "\xe8\xeb\xee\xf1\xf4\xf7\xfa\xfd" 3617 + "\x00\x05\x0a\x0f\x14\x19\x1e\x23" 3618 + "\x28\x2d\x32\x37\x3c\x41\x46\x4b" 3619 + "\x50\x55\x5a\x5f\x64\x69\x6e\x73" 3620 + "\x78\x7d\x82\x87\x8c\x91\x96\x9b" 3621 + "\xa0\xa5\xaa\xaf\xb4\xb9\xbe\xc3" 3622 + "\xc8\xcd\xd2\xd7\xdc\xe1\xe6\xeb" 3623 + "\xf0\xf5\xfa\xff\x04\x09\x0e\x13" 3624 + "\x18\x1d\x22\x27\x2c\x31\x36\x3b" 3625 + "\x40\x45\x4a\x4f\x54\x59\x5e\x63" 3626 + "\x68\x6d\x72\x77\x7c\x81\x86\x8b" 3627 + "\x90\x95\x9a\x9f\xa4\xa9\xae\xb3" 3628 + "\xb8\xbd\xc2\xc7\xcc\xd1\xd6\xdb" 3629 + "\xe0\xe5\xea\xef\xf4\xf9\xfe\x03" 3630 + "\x08\x0d\x12\x17\x1c\x21\x26\x2b" 3631 + "\x30\x35\x3a\x3f\x44\x49\x4e\x53" 3632 + "\x58\x5d\x62\x67\x6c\x71\x76\x7b" 3633 + "\x80\x85\x8a\x8f\x94\x99\x9e\xa3" 3634 + "\xa8\xad\xb2\xb7\xbc\xc1\xc6\xcb" 3635 + "\xd0\xd5\xda\xdf\xe4\xe9\xee\xf3" 3636 + "\xf8\xfd\x02\x07\x0c\x11\x16\x1b" 3637 + "\x20\x25\x2a\x2f\x34\x39\x3e\x43" 3638 + "\x48\x4d\x52\x57\x5c\x61\x66\x6b" 3639 + "\x70\x75\x7a\x7f\x84\x89\x8e\x93" 3640 + "\x98\x9d\xa2\xa7\xac\xb1\xb6\xbb" 3641 + "\xc0\xc5\xca\xcf\xd4\xd9\xde\xe3" 3642 + "\xe8\xed\xf2\xf7\xfc\x01\x06\x0b" 3643 + "\x10\x15\x1a\x1f\x24\x29\x2e\x33" 3644 + "\x38\x3d\x42\x47\x4c\x51\x56\x5b" 3645 + "\x60\x65\x6a\x6f\x74\x79\x7e\x83" 3646 + "\x88\x8d\x92\x97\x9c\xa1\xa6\xab" 3647 + "\xb0\xb5\xba\xbf\xc4\xc9\xce\xd3" 3648 + "\xd8\xdd\xe2\xe7\xec\xf1\xf6\xfb" 3649 + "\x00\x07\x0e\x15\x1c\x23\x2a\x31" 3650 + "\x38\x3f\x46\x4d\x54\x5b\x62\x69" 3651 + "\x70\x77\x7e\x85\x8c\x93\x9a\xa1" 3652 + "\xa8\xaf\xb6\xbd\xc4\xcb\xd2\xd9" 3653 + "\xe0\xe7\xee\xf5\xfc\x03\x0a\x11" 3654 + "\x18\x1f\x26\x2d\x34\x3b\x42\x49" 3655 + "\x50\x57\x5e\x65\x6c\x73\x7a\x81" 3656 + "\x88\x8f\x96\x9d\xa4\xab\xb2\xb9" 3657 + "\xc0\xc7\xce\xd5\xdc\xe3\xea\xf1" 3658 + "\xf8\xff\x06\x0d\x14\x1b\x22\x29" 3659 + "\x30\x37\x3e\x45\x4c\x53\x5a\x61" 3660 + "\x68\x6f\x76\x7d\x84\x8b\x92\x99" 3661 + "\xa0\xa7\xae\xb5\xbc\xc3\xca\xd1" 3662 + "\xd8\xdf\xe6\xed\xf4\xfb\x02\x09" 3663 + "\x10\x17\x1e\x25\x2c\x33\x3a\x41" 3664 + "\x48\x4f\x56\x5d\x64\x6b\x72\x79" 3665 + "\x80\x87\x8e\x95\x9c\xa3\xaa\xb1" 3666 + "\xb8\xbf\xc6\xcd\xd4\xdb\xe2\xe9" 3667 + "\xf0\xf7\xfe\x05\x0c\x13\x1a\x21" 3668 + "\x28\x2f\x36\x3d\x44\x4b\x52\x59" 3669 + "\x60\x67\x6e\x75\x7c\x83\x8a\x91" 3670 + "\x98\x9f\xa6\xad\xb4\xbb\xc2\xc9" 3671 + "\xd0\xd7\xde\xe5\xec\xf3\xfa\x01" 3672 + "\x08\x0f\x16\x1d\x24\x2b\x32\x39" 3673 + "\x40\x47\x4e\x55\x5c\x63\x6a\x71" 3674 + "\x78\x7f\x86\x8d\x94\x9b\xa2\xa9" 3675 + "\xb0\xb7\xbe\xc5\xcc\xd3\xda\xe1" 3676 + "\xe8\xef\xf6\xfd\x04\x0b\x12\x19" 3677 + "\x20\x27\x2e\x35\x3c\x43\x4a\x51" 3678 + "\x58\x5f\x66\x6d\x74\x7b\x82\x89" 3679 + "\x90\x97\x9e\xa5\xac\xb3\xba\xc1" 3680 + "\xc8\xcf\xd6\xdd\xe4\xeb\xf2\xf9" 3681 + "\x00\x09\x12\x1b\x24\x2d\x36\x3f" 3682 + "\x48\x51\x5a\x63\x6c\x75\x7e\x87" 3683 + "\x90\x99\xa2\xab\xb4\xbd\xc6\xcf" 3684 + "\xd8\xe1\xea\xf3\xfc\x05\x0e\x17" 3685 + "\x20\x29\x32\x3b\x44\x4d\x56\x5f" 3686 + "\x68\x71\x7a\x83\x8c\x95\x9e\xa7" 3687 + "\xb0\xb9\xc2\xcb\xd4\xdd\xe6\xef" 3688 + "\xf8\x01\x0a\x13\x1c\x25\x2e\x37" 3689 + "\x40\x49\x52\x5b\x64\x6d\x76\x7f" 3690 + "\x88\x91\x9a\xa3\xac\xb5\xbe\xc7" 3691 + "\xd0\xd9\xe2\xeb\xf4\xfd\x06\x0f" 3692 + "\x18\x21\x2a\x33\x3c\x45\x4e\x57" 3693 + "\x60\x69\x72\x7b\x84\x8d\x96\x9f" 3694 + "\xa8\xb1\xba\xc3\xcc\xd5\xde\xe7" 3695 + "\xf0\xf9\x02\x0b\x14\x1d\x26\x2f" 3696 + "\x38\x41\x4a\x53\x5c\x65\x6e\x77" 3697 + "\x80\x89\x92\x9b\xa4\xad\xb6\xbf" 3698 + "\xc8\xd1\xda\xe3\xec\xf5\xfe\x07" 3699 + "\x10\x19\x22\x2b\x34\x3d\x46\x4f" 3700 + "\x58\x61\x6a\x73\x7c\x85\x8e\x97" 3701 + "\xa0\xa9\xb2\xbb\xc4\xcd\xd6\xdf" 3702 + "\xe8\xf1\xfa\x03\x0c\x15\x1e\x27" 3703 + "\x30\x39\x42\x4b\x54\x5d\x66\x6f" 3704 + "\x78\x81\x8a\x93\x9c\xa5\xae\xb7" 3705 + "\xc0\xc9\xd2\xdb\xe4\xed\xf6\xff" 3706 + "\x08\x11\x1a\x23\x2c\x35\x3e\x47" 3707 + "\x50\x59\x62\x6b\x74\x7d\x86\x8f" 3708 + "\x98\xa1\xaa\xb3\xbc\xc5\xce\xd7" 3709 + "\xe0\xe9\xf2\xfb\x04\x0d\x16\x1f" 3710 + "\x28\x31\x3a\x43\x4c\x55\x5e\x67" 3711 + "\x70\x79\x82\x8b\x94\x9d\xa6\xaf" 3712 + "\xb8\xc1\xca\xd3\xdc\xe5\xee\xf7" 3713 + "\x00\x0b\x16\x21\x2c\x37\x42\x4d" 3714 + "\x58\x63\x6e\x79\x84\x8f\x9a\xa5" 3715 + "\xb0\xbb\xc6\xd1\xdc\xe7\xf2\xfd" 3716 + "\x08\x13\x1e\x29\x34\x3f\x4a\x55" 3717 + "\x60\x6b\x76\x81\x8c\x97\xa2\xad" 3718 + "\xb8\xc3\xce\xd9\xe4\xef\xfa\x05" 3719 + "\x10\x1b\x26\x31\x3c\x47\x52\x5d" 3720 + "\x68\x73\x7e\x89\x94\x9f\xaa\xb5" 3721 + "\xc0\xcb\xd6\xe1\xec\xf7\x02\x0d" 3722 + "\x18\x23\x2e\x39\x44\x4f\x5a\x65" 3723 + "\x70\x7b\x86\x91\x9c\xa7\xb2\xbd" 3724 + "\xc8\xd3\xde\xe9\xf4\xff\x0a\x15" 3725 + "\x20\x2b\x36\x41\x4c\x57\x62\x6d" 3726 + "\x78\x83\x8e\x99\xa4\xaf\xba\xc5" 3727 + "\xd0\xdb\xe6\xf1\xfc\x07\x12\x1d" 3728 + "\x28\x33\x3e\x49\x54\x5f\x6a\x75" 3729 + "\x80\x8b\x96\xa1\xac\xb7\xc2\xcd" 3730 + "\xd8\xe3\xee\xf9\x04\x0f\x1a\x25" 3731 + "\x30\x3b\x46\x51\x5c\x67\x72\x7d" 3732 + "\x88\x93\x9e\xa9\xb4\xbf\xca\xd5" 3733 + "\xe0\xeb\xf6\x01\x0c\x17\x22\x2d" 3734 + "\x38\x43\x4e\x59\x64\x6f\x7a\x85" 3735 + "\x90\x9b\xa6\xb1\xbc\xc7\xd2\xdd" 3736 + "\xe8\xf3\xfe\x09\x14\x1f\x2a\x35" 3737 + "\x40\x4b\x56\x61\x6c\x77\x82\x8d" 3738 + "\x98\xa3\xae\xb9\xc4\xcf\xda\xe5" 3739 + "\xf0\xfb\x06\x11\x1c\x27\x32\x3d" 3740 + "\x48\x53\x5e\x69\x74\x7f\x8a\x95" 3741 + "\xa0\xab\xb6\xc1\xcc\xd7\xe2\xed" 3742 + "\xf8\x03\x0e\x19\x24\x2f\x3a\x45" 3743 + "\x50\x5b\x66\x71\x7c\x87\x92\x9d" 3744 + "\xa8\xb3\xbe\xc9\xd4\xdf\xea\xf5" 3745 + "\x00\x0d\x1a\x27\x34\x41\x4e\x5b" 3746 + "\x68\x75\x82\x8f\x9c\xa9\xb6\xc3" 3747 + "\xd0\xdd\xea\xf7\x04\x11\x1e\x2b" 3748 + "\x38\x45\x52\x5f\x6c\x79\x86\x93" 3749 + "\xa0\xad\xba\xc7\xd4\xe1\xee\xfb" 3750 + "\x08\x15\x22\x2f\x3c\x49\x56\x63" 3751 + "\x70\x7d\x8a\x97\xa4\xb1\xbe\xcb" 3752 + "\xd8\xe5\xf2\xff\x0c\x19\x26\x33" 3753 + "\x40\x4d\x5a\x67\x74\x81\x8e\x9b" 3754 + "\xa8\xb5\xc2\xcf\xdc\xe9\xf6\x03" 3755 + "\x10\x1d\x2a\x37\x44\x51\x5e\x6b" 3756 + "\x78\x85\x92\x9f\xac\xb9\xc6\xd3" 3757 + "\xe0\xed\xfa\x07\x14\x21\x2e\x3b" 3758 + "\x48\x55\x62\x6f\x7c\x89\x96\xa3" 3759 + "\xb0\xbd\xca\xd7\xe4\xf1\xfe\x0b" 3760 + "\x18\x25\x32\x3f\x4c\x59\x66\x73" 3761 + "\x80\x8d\x9a\xa7\xb4\xc1\xce\xdb" 3762 + "\xe8\xf5\x02\x0f\x1c\x29\x36\x43" 3763 + "\x50\x5d\x6a\x77\x84\x91\x9e\xab" 3764 + "\xb8\xc5\xd2\xdf\xec\xf9\x06\x13" 3765 + "\x20\x2d\x3a\x47\x54\x61\x6e\x7b" 3766 + "\x88\x95\xa2\xaf\xbc\xc9\xd6\xe3" 3767 + "\xf0\xfd\x0a\x17\x24\x31\x3e\x4b" 3768 + "\x58\x65\x72\x7f\x8c\x99\xa6\xb3" 3769 + "\xc0\xcd\xda\xe7\xf4\x01\x0e\x1b" 3770 + "\x28\x35\x42\x4f\x5c\x69\x76\x83" 3771 + "\x90\x9d\xaa\xb7\xc4\xd1\xde\xeb" 3772 + "\xf8\x05\x12\x1f\x2c\x39\x46\x53" 3773 + "\x60\x6d\x7a\x87\x94\xa1\xae\xbb" 3774 + "\xc8\xd5\xe2\xef\xfc\x09\x16\x23" 3775 + "\x30\x3d\x4a\x57\x64\x71\x7e\x8b" 3776 + "\x98\xa5\xb2\xbf\xcc\xd9\xe6\xf3" 3777 + "\x00\x0f\x1e\x2d\x3c\x4b\x5a\x69" 3778 + "\x78\x87\x96\xa5\xb4\xc3\xd2\xe1" 3779 + "\xf0\xff\x0e\x1d\x2c\x3b\x4a\x59" 3780 + "\x68\x77\x86\x95\xa4\xb3\xc2\xd1" 3781 + "\xe0\xef\xfe\x0d\x1c\x2b\x3a\x49" 3782 + "\x58\x67\x76\x85\x94\xa3\xb2\xc1" 3783 + "\xd0\xdf\xee\xfd\x0c\x1b\x2a\x39" 3784 + "\x48\x57\x66\x75\x84\x93\xa2\xb1" 3785 + "\xc0\xcf\xde\xed\xfc\x0b\x1a\x29" 3786 + "\x38\x47\x56\x65\x74\x83\x92\xa1" 3787 + "\xb0\xbf\xce\xdd\xec\xfb\x0a\x19" 3788 + "\x28\x37\x46\x55\x64\x73\x82\x91" 3789 + "\xa0\xaf\xbe\xcd\xdc\xeb\xfa\x09" 3790 + "\x18\x27\x36\x45\x54\x63\x72\x81" 3791 + "\x90\x9f\xae\xbd\xcc\xdb\xea\xf9" 3792 + "\x08\x17\x26\x35\x44\x53\x62\x71" 3793 + "\x80\x8f\x9e\xad\xbc\xcb\xda\xe9" 3794 + "\xf8\x07\x16\x25\x34\x43\x52\x61" 3795 + "\x70\x7f\x8e\x9d\xac\xbb\xca\xd9" 3796 + "\xe8\xf7\x06\x15\x24\x33\x42\x51" 3797 + "\x60\x6f\x7e\x8d\x9c\xab\xba\xc9" 3798 + "\xd8\xe7\xf6\x05\x14\x23\x32\x41" 3799 + "\x50\x5f\x6e\x7d\x8c\x9b\xaa\xb9" 3800 + "\xc8\xd7\xe6\xf5\x04\x13\x22\x31" 3801 + "\x40\x4f\x5e\x6d\x7c\x8b\x9a\xa9" 3802 + "\xb8\xc7\xd6\xe5\xf4\x03\x12\x21" 3803 + "\x30\x3f\x4e\x5d\x6c\x7b\x8a\x99" 3804 + "\xa8\xb7\xc6\xd5\xe4\xf3\x02\x11" 3805 + "\x20\x2f\x3e\x4d\x5c\x6b\x7a\x89" 3806 + "\x98\xa7\xb6\xc5\xd4\xe3\xf2\x01" 3807 + "\x10\x1f\x2e\x3d\x4c\x5b\x6a\x79" 3808 + "\x88\x97\xa6\xb5\xc4\xd3\xe2\xf1" 3809 + "\x00\x11\x22\x33\x44\x55\x66\x77" 3810 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff" 3811 + "\x10\x21\x32\x43\x54\x65\x76\x87" 3812 + "\x98\xa9\xba\xcb\xdc\xed\xfe\x0f" 3813 + "\x20\x31\x42\x53\x64\x75\x86\x97" 3814 + "\xa8\xb9\xca\xdb\xec\xfd\x0e\x1f" 3815 + "\x30\x41\x52\x63\x74\x85\x96\xa7" 3816 + "\xb8\xc9\xda\xeb\xfc\x0d\x1e\x2f" 3817 + "\x40\x51\x62\x73\x84\x95\xa6\xb7" 3818 + "\xc8\xd9\xea\xfb\x0c\x1d\x2e\x3f" 3819 + "\x50\x61\x72\x83\x94\xa5\xb6\xc7" 3820 + "\xd8\xe9\xfa\x0b\x1c\x2d\x3e\x4f" 3821 + "\x60\x71\x82\x93\xa4\xb5\xc6\xd7" 3822 + "\xe8\xf9\x0a\x1b\x2c\x3d\x4e\x5f" 3823 + "\x70\x81\x92\xa3\xb4\xc5\xd6\xe7" 3824 + "\xf8\x09\x1a\x2b\x3c\x4d\x5e\x6f" 3825 + "\x80\x91\xa2\xb3\xc4\xd5\xe6\xf7" 3826 + "\x08\x19\x2a\x3b\x4c\x5d\x6e\x7f" 3827 + "\x90\xa1\xb2\xc3\xd4\xe5\xf6\x07" 3828 + "\x18\x29\x3a\x4b\x5c\x6d\x7e\x8f" 3829 + "\xa0\xb1\xc2\xd3\xe4\xf5\x06\x17" 3830 + "\x28\x39\x4a\x5b\x6c\x7d\x8e\x9f" 3831 + "\xb0\xc1\xd2\xe3\xf4\x05\x16\x27" 3832 + "\x38\x49\x5a\x6b\x7c\x8d\x9e\xaf" 3833 + "\xc0\xd1\xe2\xf3\x04\x15\x26\x37" 3834 + "\x48\x59\x6a\x7b\x8c\x9d\xae\xbf" 3835 + "\xd0\xe1\xf2\x03\x14\x25\x36\x47" 3836 + "\x58\x69\x7a\x8b\x9c\xad\xbe\xcf" 3837 + "\xe0\xf1\x02\x13\x24\x35\x46\x57" 3838 + "\x68\x79\x8a\x9b\xac\xbd\xce\xdf" 3839 + "\xf0\x01\x12\x23\x34\x45\x56\x67" 3840 + "\x78\x89\x9a\xab\xbc\xcd\xde\xef" 3841 + "\x00\x13\x26\x39\x4c\x5f\x72\x85" 3842 + "\x98\xab\xbe\xd1\xe4\xf7\x0a\x1d" 3843 + "\x30\x43\x56\x69\x7c\x8f\xa2\xb5" 3844 + "\xc8\xdb\xee\x01\x14\x27\x3a\x4d" 3845 + "\x60\x73\x86\x99\xac\xbf\xd2\xe5" 3846 + "\xf8\x0b\x1e\x31\x44\x57\x6a\x7d" 3847 + "\x90\xa3\xb6\xc9\xdc\xef\x02\x15" 3848 + "\x28\x3b\x4e\x61\x74\x87\x9a\xad" 3849 + "\xc0\xd3\xe6\xf9\x0c\x1f\x32\x45" 3850 + "\x58\x6b\x7e\x91\xa4\xb7\xca\xdd" 3851 + "\xf0\x03\x16\x29\x3c\x4f\x62\x75" 3852 + "\x88\x9b\xae\xc1\xd4\xe7\xfa\x0d" 3853 + "\x20\x33\x46\x59\x6c\x7f\x92\xa5" 3854 + "\xb8\xcb\xde\xf1\x04\x17\x2a\x3d" 3855 + "\x50\x63\x76\x89\x9c\xaf\xc2\xd5" 3856 + "\xe8\xfb\x0e\x21\x34\x47\x5a\x6d" 3857 + "\x80\x93\xa6\xb9\xcc\xdf\xf2\x05" 3858 + "\x18\x2b\x3e\x51\x64\x77\x8a\x9d" 3859 + "\xb0\xc3\xd6\xe9\xfc\x0f\x22\x35" 3860 + "\x48\x5b\x6e\x81\x94\xa7\xba\xcd" 3861 + "\xe0\xf3\x06\x19\x2c\x3f\x52\x65" 3862 + "\x78\x8b\x9e\xb1\xc4\xd7\xea\xfd" 3863 + "\x10\x23\x36\x49\x5c\x6f\x82\x95" 3864 + "\xa8\xbb\xce\xe1\xf4\x07\x1a\x2d" 3865 + "\x40\x53\x66\x79\x8c\x9f\xb2\xc5" 3866 + "\xd8\xeb\xfe\x11\x24\x37\x4a\x5d" 3867 + "\x70\x83\x96\xa9\xbc\xcf\xe2\xf5" 3868 + "\x08\x1b\x2e\x41\x54\x67\x7a\x8d" 3869 + "\xa0\xb3\xc6\xd9\xec\xff\x12\x25" 3870 + "\x38\x4b\x5e\x71\x84\x97\xaa\xbd" 3871 + "\xd0\xe3\xf6\x09\x1c\x2f\x42\x55" 3872 + "\x68\x7b\x8e\xa1\xb4\xc7\xda\xed" 3873 + "\x00\x15\x2a\x3f\x54\x69\x7e\x93" 3874 + "\xa8\xbd\xd2\xe7\xfc\x11\x26\x3b" 3875 + "\x50\x65\x7a\x8f\xa4\xb9\xce\xe3" 3876 + "\xf8\x0d\x22\x37\x4c\x61\x76\x8b" 3877 + "\xa0\xb5\xca\xdf\xf4\x09\x1e\x33" 3878 + "\x48\x5d\x72\x87\x9c\xb1\xc6\xdb" 3879 + "\xf0\x05\x1a\x2f\x44\x59\x6e\x83" 3880 + "\x98\xad\xc2\xd7\xec\x01\x16\x2b" 3881 + "\x40\x55\x6a\x7f\x94\xa9\xbe\xd3" 3882 + "\xe8\xfd\x12\x27\x3c\x51\x66\x7b" 3883 + "\x90\xa5\xba\xcf\xe4\xf9\x0e\x23" 3884 + "\x38\x4d\x62\x77\x8c\xa1\xb6\xcb" 3885 + "\xe0\xf5\x0a\x1f\x34\x49\x5e\x73" 3886 + "\x88\x9d\xb2\xc7\xdc\xf1\x06\x1b" 3887 + "\x30\x45\x5a\x6f\x84\x99\xae\xc3" 3888 + "\xd8\xed\x02\x17\x2c\x41\x56\x6b" 3889 + "\x80\x95\xaa\xbf\xd4\xe9\xfe\x13" 3890 + "\x28\x3d\x52\x67\x7c\x91\xa6\xbb" 3891 + "\xd0\xe5\xfa\x0f\x24\x39\x4e\x63" 3892 + "\x78\x8d\xa2\xb7\xcc\xe1\xf6\x0b" 3893 + "\x20\x35\x4a\x5f\x74\x89\x9e\xb3" 3894 + "\xc8\xdd\xf2\x07\x1c\x31\x46\x5b" 3895 + "\x70\x85\x9a\xaf\xc4\xd9\xee\x03" 3896 + "\x18\x2d\x42\x57\x6c\x81\x96\xab" 3897 + "\xc0\xd5\xea\xff\x14\x29\x3e\x53" 3898 + "\x68\x7d\x92\xa7\xbc\xd1\xe6\xfb" 3899 + "\x10\x25\x3a\x4f\x64\x79\x8e\xa3" 3900 + "\xb8\xcd\xe2\xf7\x0c\x21\x36\x4b" 3901 + "\x60\x75\x8a\x9f\xb4\xc9\xde\xf3" 3902 + "\x08\x1d\x32\x47\x5c\x71\x86\x9b" 3903 + "\xb0\xc5\xda\xef\x04\x19\x2e\x43" 3904 + "\x58\x6d\x82\x97\xac\xc1\xd6\xeb" 3905 + "\x00\x17\x2e\x45\x5c\x73\x8a\xa1" 3906 + "\xb8\xcf\xe6\xfd\x14\x2b\x42\x59" 3907 + "\x70\x87\x9e\xb5\xcc\xe3\xfa\x11" 3908 + "\x28\x3f\x56\x6d\x84\x9b\xb2\xc9" 3909 + "\xe0\xf7\x0e\x25\x3c\x53\x6a\x81" 3910 + "\x98\xaf\xc6\xdd\xf4\x0b\x22\x39" 3911 + "\x50\x67\x7e\x95\xac\xc3\xda\xf1" 3912 + "\x08\x1f\x36\x4d\x64\x7b\x92\xa9" 3913 + "\xc0\xd7\xee\x05\x1c\x33\x4a\x61" 3914 + "\x78\x8f\xa6\xbd\xd4\xeb\x02\x19" 3915 + "\x30\x47\x5e\x75\x8c\xa3\xba\xd1" 3916 + "\xe8\xff\x16\x2d\x44\x5b\x72\x89" 3917 + "\xa0\xb7\xce\xe5\xfc\x13\x2a\x41" 3918 + "\x58\x6f\x86\x9d\xb4\xcb\xe2\xf9" 3919 + "\x10\x27\x3e\x55\x6c\x83\x9a\xb1" 3920 + "\xc8\xdf\xf6\x0d\x24\x3b\x52\x69" 3921 + "\x80\x97\xae\xc5\xdc\xf3\x0a\x21" 3922 + "\x38\x4f\x66\x7d\x94\xab\xc2\xd9" 3923 + "\xf0\x07\x1e\x35\x4c\x63\x7a\x91" 3924 + "\xa8\xbf\xd6\xed\x04\x1b\x32\x49" 3925 + "\x60\x77\x8e\xa5\xbc\xd3\xea\x01" 3926 + "\x18\x2f\x46\x5d\x74\x8b\xa2\xb9" 3927 + "\xd0\xe7\xfe\x15\x2c\x43\x5a\x71" 3928 + "\x88\x9f\xb6\xcd\xe4\xfb\x12\x29" 3929 + "\x40\x57\x6e\x85\x9c\xb3\xca\xe1" 3930 + "\xf8\x0f\x26\x3d\x54\x6b\x82\x99" 3931 + "\xb0\xc7\xde\xf5\x0c\x23\x3a\x51" 3932 + "\x68\x7f\x96\xad\xc4\xdb\xf2\x09" 3933 + "\x20\x37\x4e\x65\x7c\x93\xaa\xc1" 3934 + "\xd8\xef\x06\x1d\x34\x4b\x62\x79" 3935 + "\x90\xa7\xbe\xd5\xec\x03\x1a\x31" 3936 + "\x48\x5f\x76\x8d\xa4\xbb\xd2\xe9" 3937 + "\x00\x19\x32\x4b\x64\x7d\x96\xaf" 3938 + "\xc8\xe1\xfa\x13\x2c\x45\x5e\x77" 3939 + "\x90\xa9\xc2\xdb\xf4\x0d\x26\x3f" 3940 + "\x58\x71\x8a\xa3\xbc\xd5\xee\x07" 3941 + "\x20\x39\x52\x6b\x84\x9d\xb6\xcf" 3942 + "\xe8\x01\x1a\x33\x4c\x65\x7e\x97" 3943 + "\xb0\xc9\xe2\xfb\x14\x2d\x46\x5f" 3944 + "\x78\x91\xaa\xc3\xdc\xf5\x0e\x27" 3945 + "\x40\x59\x72\x8b\xa4\xbd\xd6\xef" 3946 + "\x08\x21\x3a\x53\x6c\x85\x9e\xb7" 3947 + "\xd0\xe9\x02\x1b\x34\x4d\x66\x7f" 3948 + "\x98\xb1\xca\xe3\xfc\x15\x2e\x47" 3949 + "\x60\x79\x92\xab\xc4\xdd\xf6\x0f" 3950 + "\x28\x41\x5a\x73\x8c\xa5\xbe\xd7" 3951 + "\xf0\x09\x22\x3b\x54\x6d\x86\x9f" 3952 + "\xb8\xd1\xea\x03\x1c\x35\x4e\x67" 3953 + "\x80\x99\xb2\xcb\xe4\xfd\x16\x2f" 3954 + "\x48\x61\x7a\x93\xac\xc5\xde\xf7" 3955 + "\x10\x29\x42\x5b\x74\x8d\xa6\xbf" 3956 + "\xd8\xf1\x0a\x23\x3c\x55\x6e\x87" 3957 + "\xa0\xb9\xd2\xeb\x04\x1d\x36\x4f" 3958 + "\x68\x81\x9a\xb3\xcc\xe5\xfe\x17" 3959 + "\x30\x49\x62\x7b\x94\xad\xc6\xdf" 3960 + "\xf8\x11\x2a\x43\x5c\x75\x8e\xa7" 3961 + "\xc0\xd9\xf2\x0b\x24\x3d\x56\x6f" 3962 + "\x88\xa1\xba\xd3\xec\x05\x1e\x37" 3963 + "\x50\x69\x82\x9b\xb4\xcd\xe6\xff" 3964 + "\x18\x31\x4a\x63\x7c\x95\xae\xc7" 3965 + "\xe0\xf9\x12\x2b\x44\x5d\x76\x8f" 3966 + "\xa8\xc1\xda\xf3\x0c\x25\x3e\x57" 3967 + "\x70\x89\xa2\xbb\xd4\xed\x06\x1f" 3968 + "\x38\x51\x6a\x83\x9c\xb5\xce\xe7" 3969 + "\x00\x1b\x36\x51\x6c\x87\xa2\xbd" 3970 + "\xd8\xf3\x0e\x29\x44\x5f\x7a\x95" 3971 + "\xb0\xcb\xe6\x01\x1c\x37\x52\x6d" 3972 + "\x88\xa3\xbe\xd9\xf4\x0f\x2a\x45" 3973 + "\x60\x7b\x96\xb1\xcc\xe7\x02\x1d" 3974 + "\x38\x53\x6e\x89\xa4\xbf\xda\xf5" 3975 + "\x10\x2b\x46\x61\x7c\x97\xb2\xcd" 3976 + "\xe8\x03\x1e\x39\x54\x6f\x8a\xa5" 3977 + "\xc0\xdb\xf6\x11\x2c\x47\x62\x7d" 3978 + "\x98\xb3\xce\xe9\x04\x1f\x3a\x55" 3979 + "\x70\x8b\xa6\xc1\xdc\xf7\x12\x2d" 3980 + "\x48\x63\x7e\x99\xb4\xcf\xea\x05" 3981 + "\x20\x3b\x56\x71\x8c\xa7\xc2\xdd" 3982 + "\xf8\x13\x2e\x49\x64\x7f\x9a\xb5" 3983 + "\xd0\xeb\x06\x21\x3c\x57\x72\x8d" 3984 + "\xa8\xc3\xde\xf9\x14\x2f\x4a\x65" 3985 + "\x80\x9b\xb6\xd1\xec\x07\x22\x3d" 3986 + "\x58\x73\x8e\xa9\xc4\xdf\xfa\x15" 3987 + "\x30\x4b\x66\x81\x9c\xb7\xd2\xed" 3988 + "\x08\x23\x3e\x59\x74\x8f\xaa\xc5" 3989 + "\xe0\xfb\x16\x31\x4c\x67\x82\x9d" 3990 + "\xb8\xd3\xee\x09\x24\x3f\x5a\x75" 3991 + "\x90\xab\xc6\xe1\xfc\x17\x32\x4d" 3992 + "\x68\x83\x9e\xb9\xd4\xef\x0a\x25" 3993 + "\x40\x5b\x76\x91\xac\xc7\xe2\xfd" 3994 + "\x18\x33\x4e\x69\x84\x9f\xba\xd5" 3995 + "\xf0\x0b\x26\x41\x5c\x77\x92\xad" 3996 + "\xc8\xe3\xfe\x19\x34\x4f\x6a\x85" 3997 + "\xa0\xbb\xd6\xf1\x0c\x27\x42\x5d" 3998 + "\x78\x93\xae\xc9\xe4\xff\x1a\x35" 3999 + "\x50\x6b\x86\xa1\xbc\xd7\xf2\x0d" 4000 + "\x28\x43\x5e\x79\x94\xaf\xca\xe5" 4001 + "\x00\x1d\x3a\x57\x74\x91\xae\xcb" 4002 + "\xe8\x05\x22\x3f\x5c\x79\x96\xb3" 4003 + "\xd0\xed\x0a\x27\x44\x61\x7e\x9b" 4004 + "\xb8\xd5\xf2\x0f\x2c\x49\x66\x83" 4005 + "\xa0\xbd\xda\xf7\x14\x31\x4e\x6b" 4006 + "\x88\xa5\xc2\xdf\xfc\x19\x36\x53" 4007 + "\x70\x8d\xaa\xc7\xe4\x01\x1e\x3b" 4008 + "\x58\x75\x92\xaf\xcc\xe9\x06\x23" 4009 + "\x40\x5d\x7a\x97\xb4\xd1\xee\x0b" 4010 + "\x28\x45\x62\x7f\x9c\xb9\xd6\xf3" 4011 + "\x10\x2d\x4a\x67\x84\xa1\xbe\xdb" 4012 + "\xf8\x15\x32\x4f\x6c\x89\xa6\xc3" 4013 + "\xe0\xfd\x1a\x37\x54\x71\x8e\xab" 4014 + "\xc8\xe5\x02\x1f\x3c\x59\x76\x93" 4015 + "\xb0\xcd\xea\x07\x24\x41\x5e\x7b" 4016 + "\x98\xb5\xd2\xef\x0c\x29\x46\x63" 4017 + "\x80\x9d\xba\xd7\xf4\x11\x2e\x4b" 4018 + "\x68\x85\xa2\xbf\xdc\xf9\x16\x33" 4019 + "\x50\x6d\x8a\xa7\xc4\xe1\xfe\x1b" 4020 + "\x38\x55\x72\x8f\xac\xc9\xe6\x03" 4021 + "\x20\x3d\x5a\x77\x94\xb1\xce\xeb" 4022 + "\x08\x25\x42\x5f\x7c\x99\xb6\xd3" 4023 + "\xf0\x0d\x2a\x47\x64\x81\x9e\xbb" 4024 + "\xd8\xf5\x12\x2f\x4c\x69\x86\xa3" 4025 + "\xc0\xdd\xfa\x17\x34\x51\x6e\x8b" 4026 + "\xa8\xc5\xe2\xff\x1c\x39\x56\x73" 4027 + "\x90\xad\xca\xe7\x04\x21\x3e\x5b" 4028 + "\x78\x95\xb2\xcf\xec\x09\x26\x43" 4029 + "\x60\x7d\x9a\xb7\xd4\xf1\x0e\x2b" 4030 + "\x48\x65\x82\x9f\xbc\xd9\xf6\x13" 4031 + "\x30\x4d\x6a\x87\xa4\xc1\xde\xfb" 4032 + "\x18\x35\x52\x6f\x8c\xa9\xc6\xe3" 4033 + "\x00\x1f\x3e\x5d\x7c\x9b\xba\xd9" 4034 + "\xf8\x17\x36\x55\x74\x93\xb2\xd1" 4035 + "\xf0\x0f\x2e\x4d\x6c\x8b\xaa\xc9" 4036 + "\xe8\x07\x26\x45\x64\x83\xa2\xc1" 4037 + "\xe0\xff\x1e\x3d\x5c\x7b\x9a\xb9" 4038 + "\xd8\xf7\x16\x35\x54\x73\x92\xb1" 4039 + "\xd0\xef\x0e\x2d\x4c\x6b\x8a\xa9" 4040 + "\xc8\xe7\x06\x25\x44\x63\x82\xa1" 4041 + "\xc0\xdf\xfe\x1d\x3c\x5b\x7a\x99" 4042 + "\xb8\xd7\xf6\x15\x34\x53\x72\x91" 4043 + "\xb0\xcf\xee\x0d\x2c\x4b\x6a\x89" 4044 + "\xa8\xc7\xe6\x05\x24\x43\x62\x81" 4045 + "\xa0\xbf\xde\xfd\x1c\x3b\x5a\x79" 4046 + "\x98\xb7\xd6\xf5\x14\x33\x52\x71" 4047 + "\x90\xaf\xce\xed\x0c\x2b\x4a\x69" 4048 + "\x88\xa7\xc6\xe5\x04\x23\x42\x61" 4049 + "\x80\x9f\xbe\xdd\xfc\x1b\x3a\x59" 4050 + "\x78\x97\xb6\xd5\xf4\x13\x32\x51" 4051 + "\x70\x8f\xae\xcd\xec\x0b\x2a\x49" 4052 + "\x68\x87\xa6\xc5\xe4\x03\x22\x41" 4053 + "\x60\x7f\x9e\xbd\xdc\xfb\x1a\x39" 4054 + "\x58\x77\x96\xb5\xd4\xf3\x12\x31" 4055 + "\x50\x6f\x8e\xad\xcc\xeb\x0a\x29" 4056 + "\x48\x67\x86\xa5\xc4\xe3\x02\x21" 4057 + "\x40\x5f\x7e\x9d\xbc\xdb\xfa\x19" 4058 + "\x38\x57\x76\x95\xb4\xd3\xf2\x11" 4059 + "\x30\x4f\x6e\x8d\xac\xcb\xea\x09" 4060 + "\x28\x47\x66\x85\xa4\xc3\xe2\x01" 4061 + "\x20\x3f\x5e\x7d\x9c\xbb\xda\xf9" 4062 + "\x18\x37\x56\x75\x94\xb3\xd2\xf1" 4063 + "\x10\x2f\x4e\x6d\x8c\xab\xca\xe9" 4064 + "\x08\x27\x46\x65\x84\xa3\xc2\xe1" 4065 + "\x00\x21\x42\x63", 4095 4066 .ilen = 4100, 4096 - .result = { 4097 - 0xf0, 0x5c, 0x74, 0xad, 0x4e, 0xbc, 0x99, 0xe2, 4098 - 0xae, 0xff, 0x91, 0x3a, 0x44, 0xcf, 0x38, 0x32, 4099 - 0x1e, 0xad, 0xa7, 0xcd, 0xa1, 0x39, 0x95, 0xaa, 4100 - 0x10, 0xb1, 0xb3, 0x2e, 0x04, 0x31, 0x8f, 0x86, 4101 - 0xf2, 0x62, 0x74, 0x70, 0x0c, 0xa4, 0x46, 0x08, 4102 - 0xa8, 0xb7, 0x99, 0xa8, 0xe9, 0xd2, 0x73, 0x79, 4103 - 0x7e, 0x6e, 0xd4, 0x8f, 0x1e, 0xc7, 0x8e, 0x31, 4104 - 0x0b, 0xfa, 0x4b, 0xce, 0xfd, 0xf3, 0x57, 0x71, 4105 - 0xe9, 0x46, 0x03, 0xa5, 0x3d, 0x34, 0x00, 0xe2, 4106 - 0x18, 0xff, 0x75, 0x6d, 0x06, 0x2d, 0x00, 0xab, 4107 - 0xb9, 0x3e, 0x6c, 0x59, 0xc5, 0x84, 0x06, 0xb5, 4108 - 0x8b, 0xd0, 0x89, 0x9c, 0x4a, 0x79, 0x16, 0xc6, 4109 - 0x3d, 0x74, 0x54, 0xfa, 0x44, 0xcd, 0x23, 0x26, 4110 - 0x5c, 0xcf, 0x7e, 0x28, 0x92, 0x32, 0xbf, 0xdf, 4111 - 0xa7, 0x20, 0x3c, 0x74, 0x58, 0x2a, 0x9a, 0xde, 4112 - 0x61, 0x00, 0x1c, 0x4f, 0xff, 0x59, 0xc4, 0x22, 4113 - 0xac, 0x3c, 0xd0, 0xe8, 0x6c, 0xf9, 0x97, 0x1b, 4114 - 0x58, 0x9b, 0xad, 0x71, 0xe8, 0xa9, 0xb5, 0x0d, 4115 - 0xee, 0x2f, 0x04, 0x1f, 0x7f, 0xbc, 0x99, 0xee, 4116 - 0x84, 0xff, 0x42, 0x60, 0xdc, 0x3a, 0x18, 0xa5, 4117 - 0x81, 0xf9, 0xef, 0xdc, 0x7a, 0x0f, 0x65, 0x41, 4118 - 0x2f, 0xa3, 0xd3, 0xf9, 0xc2, 0xcb, 0xc0, 0x4d, 4119 - 0x8f, 0xd3, 0x76, 0x96, 0xad, 0x49, 0x6d, 0x38, 4120 - 0x3d, 0x39, 0x0b, 0x6c, 0x80, 0xb7, 0x54, 0x69, 4121 - 0xf0, 0x2c, 0x90, 0x02, 0x29, 0x0d, 0x1c, 0x12, 4122 - 0xad, 0x55, 0xc3, 0x8b, 0x68, 0xd9, 0xcc, 0xb3, 4123 - 0xb2, 0x64, 0x33, 0x90, 0x5e, 0xca, 0x4b, 0xe2, 4124 - 0xfb, 0x75, 0xdc, 0x63, 0xf7, 0x9f, 0x82, 0x74, 4125 - 0xf0, 0xc9, 0xaa, 0x7f, 0xe9, 0x2a, 0x9b, 0x33, 4126 - 0xbc, 0x88, 0x00, 0x7f, 0xca, 0xb2, 0x1f, 0x14, 4127 - 0xdb, 0xc5, 0x8e, 0x7b, 0x11, 0x3c, 0x3e, 0x08, 4128 - 0xf3, 0x83, 0xe8, 0xe0, 0x94, 0x86, 0x2e, 0x92, 4129 - 0x78, 0x6b, 0x01, 0xc9, 0xc7, 0x83, 0xba, 0x21, 4130 - 0x6a, 0x25, 0x15, 0x33, 0x4e, 0x45, 0x08, 0xec, 4131 - 0x35, 0xdb, 0xe0, 0x6e, 0x31, 0x51, 0x79, 0xa9, 4132 - 0x42, 0x44, 0x65, 0xc1, 0xa0, 0xf1, 0xf9, 0x2a, 4133 - 0x70, 0xd5, 0xb6, 0xc6, 0xc1, 0x8c, 0x39, 0xfc, 4134 - 0x25, 0xa6, 0x55, 0xd9, 0xdd, 0x2d, 0x4c, 0xec, 4135 - 0x49, 0xc6, 0xeb, 0x0e, 0xa8, 0x25, 0x2a, 0x16, 4136 - 0x1b, 0x66, 0x84, 0xda, 0xe2, 0x92, 0xe5, 0xc0, 4137 - 0xc8, 0x53, 0x07, 0xaf, 0x80, 0x84, 0xec, 0xfd, 4138 - 0xcd, 0xd1, 0x6e, 0xcd, 0x6f, 0x6a, 0xf5, 0x36, 4139 - 0xc5, 0x15, 0xe5, 0x25, 0x7d, 0x77, 0xd1, 0x1a, 4140 - 0x93, 0x36, 0xa9, 0xcf, 0x7c, 0xa4, 0x54, 0x4a, 4141 - 0x06, 0x51, 0x48, 0x4e, 0xf6, 0x59, 0x87, 0xd2, 4142 - 0x04, 0x02, 0xef, 0xd3, 0x44, 0xde, 0x76, 0x31, 4143 - 0xb3, 0x34, 0x17, 0x1b, 0x9d, 0x66, 0x11, 0x9f, 4144 - 0x1e, 0xcc, 0x17, 0xe9, 0xc7, 0x3c, 0x1b, 0xe7, 4145 - 0xcb, 0x50, 0x08, 0xfc, 0xdc, 0x2b, 0x24, 0xdb, 4146 - 0x65, 0x83, 0xd0, 0x3b, 0xe3, 0x30, 0xea, 0x94, 4147 - 0x6c, 0xe7, 0xe8, 0x35, 0x32, 0xc7, 0xdb, 0x64, 4148 - 0xb4, 0x01, 0xab, 0x36, 0x2c, 0x77, 0x13, 0xaf, 4149 - 0xf8, 0x2b, 0x88, 0x3f, 0x54, 0x39, 0xc4, 0x44, 4150 - 0xfe, 0xef, 0x6f, 0x68, 0x34, 0xbe, 0x0f, 0x05, 4151 - 0x16, 0x6d, 0xf6, 0x0a, 0x30, 0xe7, 0xe3, 0xed, 4152 - 0xc4, 0xde, 0x3c, 0x1b, 0x13, 0xd8, 0xdb, 0xfe, 4153 - 0x41, 0x62, 0xe5, 0x28, 0xd4, 0x8d, 0xa3, 0xc7, 4154 - 0x93, 0x97, 0xc6, 0x48, 0x45, 0x1d, 0x9f, 0x83, 4155 - 0xdf, 0x4b, 0x40, 0x3e, 0x42, 0x25, 0x87, 0x80, 4156 - 0x4c, 0x7d, 0xa8, 0xd4, 0x98, 0x23, 0x95, 0x75, 4157 - 0x41, 0x8c, 0xda, 0x41, 0x9b, 0xd4, 0xa7, 0x06, 4158 - 0xb5, 0xf1, 0x71, 0x09, 0x53, 0xbe, 0xca, 0xbf, 4159 - 0x32, 0x03, 0xed, 0xf0, 0x50, 0x1c, 0x56, 0x39, 4160 - 0x5b, 0xa4, 0x75, 0x18, 0xf7, 0x9b, 0x58, 0xef, 4161 - 0x53, 0xfc, 0x2a, 0x38, 0x23, 0x15, 0x75, 0xcd, 4162 - 0x45, 0xe5, 0x5a, 0x82, 0x55, 0xba, 0x21, 0xfa, 4163 - 0xd4, 0xbd, 0xc6, 0x94, 0x7c, 0xc5, 0x80, 0x12, 4164 - 0xf7, 0x4b, 0x32, 0xc4, 0x9a, 0x82, 0xd8, 0x28, 4165 - 0x8f, 0xd9, 0xc2, 0x0f, 0x60, 0x03, 0xbe, 0x5e, 4166 - 0x21, 0xd6, 0x5f, 0x58, 0xbf, 0x5c, 0xb1, 0x32, 4167 - 0x82, 0x8d, 0xa9, 0xe5, 0xf2, 0x66, 0x1a, 0xc0, 4168 - 0xa0, 0xbc, 0x58, 0x2f, 0x71, 0xf5, 0x2f, 0xed, 4169 - 0xd1, 0x26, 0xb9, 0xd8, 0x49, 0x5a, 0x07, 0x19, 4170 - 0x01, 0x7c, 0x59, 0xb0, 0xf8, 0xa4, 0xb7, 0xd3, 4171 - 0x7b, 0x1a, 0x8c, 0x38, 0xf4, 0x50, 0xa4, 0x59, 4172 - 0xb0, 0xcc, 0x41, 0x0b, 0x88, 0x7f, 0xe5, 0x31, 4173 - 0xb3, 0x42, 0xba, 0xa2, 0x7e, 0xd4, 0x32, 0x71, 4174 - 0x45, 0x87, 0x48, 0xa9, 0xc2, 0xf2, 0x89, 0xb3, 4175 - 0xe4, 0xa7, 0x7e, 0x52, 0x15, 0x61, 0xfa, 0xfe, 4176 - 0xc9, 0xdd, 0x81, 0xeb, 0x13, 0xab, 0xab, 0xc3, 4177 - 0x98, 0x59, 0xd8, 0x16, 0x3d, 0x14, 0x7a, 0x1c, 4178 - 0x3c, 0x41, 0x9a, 0x16, 0x16, 0x9b, 0xd2, 0xd2, 4179 - 0x69, 0x3a, 0x29, 0x23, 0xac, 0x86, 0x32, 0xa5, 4180 - 0x48, 0x9c, 0x9e, 0xf3, 0x47, 0x77, 0x81, 0x70, 4181 - 0x24, 0xe8, 0x85, 0xd2, 0xf5, 0xb5, 0xfa, 0xff, 4182 - 0x59, 0x6a, 0xd3, 0x50, 0x59, 0x43, 0x59, 0xde, 4183 - 0xd9, 0xf1, 0x55, 0xa5, 0x0c, 0xc3, 0x1a, 0x1a, 4184 - 0x18, 0x34, 0x0d, 0x1a, 0x63, 0x33, 0xed, 0x10, 4185 - 0xe0, 0x1d, 0x2a, 0x18, 0xd2, 0xc0, 0x54, 0xa8, 4186 - 0xca, 0xb5, 0x9a, 0xd3, 0xdd, 0xca, 0x45, 0x84, 4187 - 0x50, 0xe7, 0x0f, 0xfe, 0xa4, 0x99, 0x5a, 0xbe, 4188 - 0x43, 0x2d, 0x9a, 0xcb, 0x92, 0x3f, 0x5a, 0x1d, 4189 - 0x85, 0xd8, 0xc9, 0xdf, 0x68, 0xc9, 0x12, 0x80, 4190 - 0x56, 0x0c, 0xdc, 0x00, 0xdc, 0x3a, 0x7d, 0x9d, 4191 - 0xa3, 0xa2, 0xe8, 0x4d, 0xbf, 0xf9, 0x70, 0xa0, 4192 - 0xa4, 0x13, 0x4f, 0x6b, 0xaf, 0x0a, 0x89, 0x7f, 4193 - 0xda, 0xf0, 0xbf, 0x9b, 0xc8, 0x1d, 0xe5, 0xf8, 4194 - 0x2e, 0x8b, 0x07, 0xb5, 0x73, 0x1b, 0xcc, 0xa2, 4195 - 0xa6, 0xad, 0x30, 0xbc, 0x78, 0x3c, 0x5b, 0x10, 4196 - 0xfa, 0x5e, 0x62, 0x2d, 0x9e, 0x64, 0xb3, 0x33, 4197 - 0xce, 0xf9, 0x1f, 0x86, 0xe7, 0x8b, 0xa2, 0xb8, 4198 - 0xe8, 0x99, 0x57, 0x8c, 0x11, 0xed, 0x66, 0xd9, 4199 - 0x3c, 0x72, 0xb9, 0xc3, 0xe6, 0x4e, 0x17, 0x3a, 4200 - 0x6a, 0xcb, 0x42, 0x24, 0x06, 0xed, 0x3e, 0x4e, 4201 - 0xa3, 0xe8, 0x6a, 0x94, 0xda, 0x0d, 0x4e, 0xd5, 4202 - 0x14, 0x19, 0xcf, 0xb6, 0x26, 0xd8, 0x2e, 0xcc, 4203 - 0x64, 0x76, 0x38, 0x49, 0x4d, 0xfe, 0x30, 0x6d, 4204 - 0xe4, 0xc8, 0x8c, 0x7b, 0xc4, 0xe0, 0x35, 0xba, 4205 - 0x22, 0x6e, 0x76, 0xe1, 0x1a, 0xf2, 0x53, 0xc3, 4206 - 0x28, 0xa2, 0x82, 0x1f, 0x61, 0x69, 0xad, 0xc1, 4207 - 0x7b, 0x28, 0x4b, 0x1e, 0x6c, 0x85, 0x95, 0x9b, 4208 - 0x51, 0xb5, 0x17, 0x7f, 0x12, 0x69, 0x8c, 0x24, 4209 - 0xd5, 0xc7, 0x5a, 0x5a, 0x11, 0x54, 0xff, 0x5a, 4210 - 0xf7, 0x16, 0xc3, 0x91, 0xa6, 0xf0, 0xdc, 0x0a, 4211 - 0xb6, 0xa7, 0x4a, 0x0d, 0x7a, 0x58, 0xfe, 0xa5, 4212 - 0xf5, 0xcb, 0x8f, 0x7b, 0x0e, 0xea, 0x57, 0xe7, 4213 - 0xbd, 0x79, 0xd6, 0x1c, 0x88, 0x23, 0x6c, 0xf2, 4214 - 0x4d, 0x29, 0x77, 0x53, 0x35, 0x6a, 0x00, 0x8d, 4215 - 0xcd, 0xa3, 0x58, 0xbe, 0x77, 0x99, 0x18, 0xf8, 4216 - 0xe6, 0xe1, 0x8f, 0xe9, 0x37, 0x8f, 0xe3, 0xe2, 4217 - 0x5a, 0x8a, 0x93, 0x25, 0xaf, 0xf3, 0x78, 0x80, 4218 - 0xbe, 0xa6, 0x1b, 0xc6, 0xac, 0x8b, 0x1c, 0x91, 4219 - 0x58, 0xe1, 0x9f, 0x89, 0x35, 0x9d, 0x1d, 0x21, 4220 - 0x29, 0x9f, 0xf4, 0x99, 0x02, 0x27, 0x0f, 0xa8, 4221 - 0x4f, 0x79, 0x94, 0x2b, 0x33, 0x2c, 0xda, 0xa2, 4222 - 0x26, 0x39, 0x83, 0x94, 0xef, 0x27, 0xd8, 0x53, 4223 - 0x8f, 0x66, 0x0d, 0xe4, 0x41, 0x7d, 0x34, 0xcd, 4224 - 0x43, 0x7c, 0x95, 0x0a, 0x53, 0xef, 0x66, 0xda, 4225 - 0x7e, 0x9b, 0xf3, 0x93, 0xaf, 0xd0, 0x73, 0x71, 4226 - 0xba, 0x40, 0x9b, 0x74, 0xf8, 0xd7, 0xd7, 0x41, 4227 - 0x6d, 0xaf, 0x72, 0x9c, 0x8d, 0x21, 0x87, 0x3c, 4228 - 0xfd, 0x0a, 0x90, 0xa9, 0x47, 0x96, 0x9e, 0xd3, 4229 - 0x88, 0xee, 0x73, 0xcf, 0x66, 0x2f, 0x52, 0x56, 4230 - 0x6d, 0xa9, 0x80, 0x4c, 0xe2, 0x6f, 0x62, 0x88, 4231 - 0x3f, 0x0e, 0x54, 0x17, 0x48, 0x80, 0x5d, 0xd3, 4232 - 0xc3, 0xda, 0x25, 0x3d, 0xa1, 0xc8, 0xcb, 0x9f, 4233 - 0x9b, 0x70, 0xb3, 0xa1, 0xeb, 0x04, 0x52, 0xa1, 4234 - 0xf2, 0x22, 0x0f, 0xfc, 0xc8, 0x18, 0xfa, 0xf9, 4235 - 0x85, 0x9c, 0xf1, 0xac, 0xeb, 0x0c, 0x02, 0x46, 4236 - 0x75, 0xd2, 0xf5, 0x2c, 0xe3, 0xd2, 0x59, 0x94, 4237 - 0x12, 0xf3, 0x3c, 0xfc, 0xd7, 0x92, 0xfa, 0x36, 4238 - 0xba, 0x61, 0x34, 0x38, 0x7c, 0xda, 0x48, 0x3e, 4239 - 0x08, 0xc9, 0x39, 0x23, 0x5e, 0x02, 0x2c, 0x1a, 4240 - 0x18, 0x7e, 0xb4, 0xd9, 0xfd, 0x9e, 0x40, 0x02, 4241 - 0xb1, 0x33, 0x37, 0x32, 0xe7, 0xde, 0xd6, 0xd0, 4242 - 0x7c, 0x58, 0x65, 0x4b, 0xf8, 0x34, 0x27, 0x9c, 4243 - 0x44, 0xb4, 0xbd, 0xe9, 0xe9, 0x4c, 0x78, 0x7d, 4244 - 0x4b, 0x9f, 0xce, 0xb1, 0xcd, 0x47, 0xa5, 0x37, 4245 - 0xe5, 0x6d, 0xbd, 0xb9, 0x43, 0x94, 0x0a, 0xd4, 4246 - 0xd6, 0xf9, 0x04, 0x5f, 0xb5, 0x66, 0x6c, 0x1a, 4247 - 0x35, 0x12, 0xe3, 0x36, 0x28, 0x27, 0x36, 0x58, 4248 - 0x01, 0x2b, 0x79, 0xe4, 0xba, 0x6d, 0x10, 0x7d, 4249 - 0x65, 0xdf, 0x84, 0x95, 0xf4, 0xd5, 0xb6, 0x8f, 4250 - 0x2b, 0x9f, 0x96, 0x00, 0x86, 0x60, 0xf0, 0x21, 4251 - 0x76, 0xa8, 0x6a, 0x8c, 0x28, 0x1c, 0xb3, 0x6b, 4252 - 0x97, 0xd7, 0xb6, 0x53, 0x2a, 0xcc, 0xab, 0x40, 4253 - 0x9d, 0x62, 0x79, 0x58, 0x52, 0xe6, 0x65, 0xb7, 4254 - 0xab, 0x55, 0x67, 0x9c, 0x89, 0x7c, 0x03, 0xb0, 4255 - 0x73, 0x59, 0xc5, 0x81, 0xf5, 0x18, 0x17, 0x5c, 4256 - 0x89, 0xf3, 0x78, 0x35, 0x44, 0x62, 0x78, 0x72, 4257 - 0xd0, 0x96, 0xeb, 0x31, 0xe7, 0x87, 0x77, 0x14, 4258 - 0x99, 0x51, 0xf2, 0x59, 0x26, 0x9e, 0xb5, 0xa6, 4259 - 0x45, 0xfe, 0x6e, 0xbd, 0x07, 0x4c, 0x94, 0x5a, 4260 - 0xa5, 0x7d, 0xfc, 0xf1, 0x2b, 0x77, 0xe2, 0xfe, 4261 - 0x17, 0xd4, 0x84, 0xa0, 0xac, 0xb5, 0xc7, 0xda, 4262 - 0xa9, 0x1a, 0xb6, 0xf3, 0x74, 0x11, 0xb4, 0x9d, 4263 - 0xfb, 0x79, 0x2e, 0x04, 0x2d, 0x50, 0x28, 0x83, 4264 - 0xbf, 0xc6, 0x52, 0xd3, 0x34, 0xd6, 0xe8, 0x7a, 4265 - 0xb6, 0xea, 0xe7, 0xa8, 0x6c, 0x15, 0x1e, 0x2c, 4266 - 0x57, 0xbc, 0x48, 0x4e, 0x5f, 0x5c, 0xb6, 0x92, 4267 - 0xd2, 0x49, 0x77, 0x81, 0x6d, 0x90, 0x70, 0xae, 4268 - 0x98, 0xa1, 0x03, 0x0d, 0x6b, 0xb9, 0x77, 0x14, 4269 - 0xf1, 0x4e, 0x23, 0xd3, 0xf8, 0x68, 0xbd, 0xc2, 4270 - 0xfe, 0x04, 0xb7, 0x5c, 0xc5, 0x17, 0x60, 0x8f, 4271 - 0x65, 0x54, 0xa4, 0x7a, 0x42, 0xdc, 0x18, 0x0d, 4272 - 0xb5, 0xcf, 0x0f, 0xd3, 0xc7, 0x91, 0x66, 0x1b, 4273 - 0x45, 0x42, 0x27, 0x75, 0x50, 0xe5, 0xee, 0xb8, 4274 - 0x7f, 0x33, 0x2c, 0xba, 0x4a, 0x92, 0x4d, 0x2c, 4275 - 0x3c, 0xe3, 0x0d, 0x80, 0x01, 0xba, 0x0d, 0x29, 4276 - 0xd8, 0x3c, 0xe9, 0x13, 0x16, 0x57, 0xe6, 0xea, 4277 - 0x94, 0x52, 0xe7, 0x00, 0x4d, 0x30, 0xb0, 0x0f, 4278 - 0x35, 0xb8, 0xb8, 0xa7, 0xb1, 0xb5, 0x3b, 0x44, 4279 - 0xe1, 0x2f, 0xfd, 0x88, 0xed, 0x43, 0xe7, 0x52, 4280 - 0x10, 0x93, 0xb3, 0x8a, 0x30, 0x6b, 0x0a, 0xf7, 4281 - 0x23, 0xc6, 0x50, 0x9d, 0x4a, 0xb0, 0xde, 0xc3, 4282 - 0xdc, 0x9b, 0x2f, 0x01, 0x56, 0x36, 0x09, 0xc5, 4283 - 0x2f, 0x6b, 0xfe, 0xf1, 0xd8, 0x27, 0x45, 0x03, 4284 - 0x30, 0x5e, 0x5c, 0x5b, 0xb4, 0x62, 0x0e, 0x1a, 4285 - 0xa9, 0x21, 0x2b, 0x92, 0x94, 0x87, 0x62, 0x57, 4286 - 0x4c, 0x10, 0x74, 0x1a, 0xf1, 0x0a, 0xc5, 0x84, 4287 - 0x3b, 0x9e, 0x72, 0x02, 0xd7, 0xcc, 0x09, 0x56, 4288 - 0xbd, 0x54, 0xc1, 0xf0, 0xc3, 0xe3, 0xb3, 0xf8, 4289 - 0xd2, 0x0d, 0x61, 0xcb, 0xef, 0xce, 0x0d, 0x05, 4290 - 0xb0, 0x98, 0xd9, 0x8e, 0x4f, 0xf9, 0xbc, 0x93, 4291 - 0xa6, 0xea, 0xc8, 0xcf, 0x10, 0x53, 0x4b, 0xf1, 4292 - 0xec, 0xfc, 0x89, 0xf9, 0x64, 0xb0, 0x22, 0xbf, 4293 - 0x9e, 0x55, 0x46, 0x9f, 0x7c, 0x50, 0x8e, 0x84, 4294 - 0x54, 0x20, 0x98, 0xd7, 0x6c, 0x40, 0x1e, 0xdb, 4295 - 0x69, 0x34, 0x78, 0x61, 0x24, 0x21, 0x9c, 0x8a, 4296 - 0xb3, 0x62, 0x31, 0x8b, 0x6e, 0xf5, 0x2a, 0x35, 4297 - 0x86, 0x13, 0xb1, 0x6c, 0x64, 0x2e, 0x41, 0xa5, 4298 - 0x05, 0xf2, 0x42, 0xba, 0xd2, 0x3a, 0x0d, 0x8e, 4299 - 0x8a, 0x59, 0x94, 0x3c, 0xcf, 0x36, 0x27, 0x82, 4300 - 0xc2, 0x45, 0xee, 0x58, 0xcd, 0x88, 0xb4, 0xec, 4301 - 0xde, 0xb2, 0x96, 0x0a, 0xaf, 0x38, 0x6f, 0x88, 4302 - 0xd7, 0xd8, 0xe1, 0xdf, 0xb9, 0x96, 0xa9, 0x0a, 4303 - 0xb1, 0x95, 0x28, 0x86, 0x20, 0xe9, 0x17, 0x49, 4304 - 0xa2, 0x29, 0x38, 0xaa, 0xa5, 0xe9, 0x6e, 0xf1, 4305 - 0x19, 0x27, 0xc0, 0xd5, 0x2a, 0x22, 0xc3, 0x0b, 4306 - 0xdb, 0x7c, 0x73, 0x10, 0xb9, 0xba, 0x89, 0x76, 4307 - 0x54, 0xae, 0x7d, 0x71, 0xb3, 0x93, 0xf6, 0x32, 4308 - 0xe6, 0x47, 0x43, 0x55, 0xac, 0xa0, 0x0d, 0xc2, 4309 - 0x93, 0x27, 0x4a, 0x8e, 0x0e, 0x74, 0x15, 0xc7, 4310 - 0x0b, 0x85, 0xd9, 0x0c, 0xa9, 0x30, 0x7a, 0x3e, 4311 - 0xea, 0x8f, 0x85, 0x6d, 0x3a, 0x12, 0x4f, 0x72, 4312 - 0x69, 0x58, 0x7a, 0x80, 0xbb, 0xb5, 0x97, 0xf3, 4313 - 0xcf, 0x70, 0xd2, 0x5d, 0xdd, 0x4d, 0x21, 0x79, 4314 - 0x54, 0x4d, 0xe4, 0x05, 0xe8, 0xbd, 0xc2, 0x62, 4315 - 0xb1, 0x3b, 0x77, 0x1c, 0xd6, 0x5c, 0xf3, 0xa0, 4316 - 0x79, 0x00, 0xa8, 0x6c, 0x29, 0xd9, 0x18, 0x24, 4317 - 0x36, 0xa2, 0x46, 0xc0, 0x96, 0x65, 0x7f, 0xbd, 4318 - 0x2a, 0xed, 0x36, 0x16, 0x0c, 0xaa, 0x9f, 0xf4, 4319 - 0xc5, 0xb4, 0xe2, 0x12, 0xed, 0x69, 0xed, 0x4f, 4320 - 0x26, 0x2c, 0x39, 0x52, 0x89, 0x98, 0xe7, 0x2c, 4321 - 0x99, 0xa4, 0x9e, 0xa3, 0x9b, 0x99, 0x46, 0x7a, 4322 - 0x3a, 0xdc, 0xa8, 0x59, 0xa3, 0xdb, 0xc3, 0x3b, 4323 - 0x95, 0x0d, 0x3b, 0x09, 0x6e, 0xee, 0x83, 0x5d, 4324 - 0x32, 0x4d, 0xed, 0xab, 0xfa, 0x98, 0x14, 0x4e, 4325 - 0xc3, 0x15, 0x45, 0x53, 0x61, 0xc4, 0x93, 0xbd, 4326 - 0x90, 0xf4, 0x99, 0x95, 0x4c, 0xe6, 0x76, 0x92, 4327 - 0x29, 0x90, 0x46, 0x30, 0x92, 0x69, 0x7d, 0x13, 4328 - 0xf2, 0xa5, 0xcd, 0x69, 0x49, 0x44, 0xb2, 0x0f, 4329 - 0x63, 0x40, 0x36, 0x5f, 0x09, 0xe2, 0x78, 0xf8, 4330 - 0x91, 0xe3, 0xe2, 0xfa, 0x10, 0xf7, 0xc8, 0x24, 4331 - 0xa8, 0x89, 0x32, 0x5c, 0x37, 0x25, 0x1d, 0xb2, 4332 - 0xea, 0x17, 0x8a, 0x0a, 0xa9, 0x64, 0xc3, 0x7c, 4333 - 0x3c, 0x7c, 0xbd, 0xc6, 0x79, 0x34, 0xe7, 0xe2, 4334 - 0x85, 0x8e, 0xbf, 0xf8, 0xde, 0x92, 0xa0, 0xae, 4335 - 0x20, 0xc4, 0xf6, 0xbb, 0x1f, 0x38, 0x19, 0x0e, 4336 - 0xe8, 0x79, 0x9c, 0xa1, 0x23, 0xe9, 0x54, 0x7e, 4337 - 0x37, 0x2f, 0xe2, 0x94, 0x32, 0xaf, 0xa0, 0x23, 4338 - 0x49, 0xe4, 0xc0, 0xb3, 0xac, 0x00, 0x8f, 0x36, 4339 - 0x05, 0xc4, 0xa6, 0x96, 0xec, 0x05, 0x98, 0x4f, 4340 - 0x96, 0x67, 0x57, 0x1f, 0x20, 0x86, 0x1b, 0x2d, 4341 - 0x69, 0xe4, 0x29, 0x93, 0x66, 0x5f, 0xaf, 0x6b, 4342 - 0x88, 0x26, 0x2c, 0x67, 0x02, 0x4b, 0x52, 0xd0, 4343 - 0x83, 0x7a, 0x43, 0x1f, 0xc0, 0x71, 0x15, 0x25, 4344 - 0x77, 0x65, 0x08, 0x60, 0x11, 0x76, 0x4c, 0x8d, 4345 - 0xed, 0xa9, 0x27, 0xc6, 0xb1, 0x2a, 0x2c, 0x6a, 4346 - 0x4a, 0x97, 0xf5, 0xc6, 0xb7, 0x70, 0x42, 0xd3, 4347 - 0x03, 0xd1, 0x24, 0x95, 0xec, 0x6d, 0xab, 0x38, 4348 - 0x72, 0xce, 0xe2, 0x8b, 0x33, 0xd7, 0x51, 0x09, 4349 - 0xdc, 0x45, 0xe0, 0x09, 0x96, 0x32, 0xf3, 0xc4, 4350 - 0x84, 0xdc, 0x73, 0x73, 0x2d, 0x1b, 0x11, 0x98, 4351 - 0xc5, 0x0e, 0x69, 0x28, 0x94, 0xc7, 0xb5, 0x4d, 4352 - 0xc8, 0x8a, 0xd0, 0xaa, 0x13, 0x2e, 0x18, 0x74, 4353 - 0xdd, 0xd1, 0x1e, 0xf3, 0x90, 0xe8, 0xfc, 0x9a, 4354 - 0x72, 0x4a, 0x0e, 0xd1, 0xe4, 0xfb, 0x0d, 0x96, 4355 - 0xd1, 0x0c, 0x79, 0x85, 0x1b, 0x1c, 0xfe, 0xe1, 4356 - 0x62, 0x8f, 0x7a, 0x73, 0x32, 0xab, 0xc8, 0x18, 4357 - 0x69, 0xe3, 0x34, 0x30, 0xdf, 0x13, 0xa6, 0xe5, 4358 - 0xe8, 0x0e, 0x67, 0x7f, 0x81, 0x11, 0xb4, 0x60, 4359 - 0xc7, 0xbd, 0x79, 0x65, 0x50, 0xdc, 0xc4, 0x5b, 4360 - 0xde, 0x39, 0xa4, 0x01, 0x72, 0x63, 0xf3, 0xd1, 4361 - 0x64, 0x4e, 0xdf, 0xfc, 0x27, 0x92, 0x37, 0x0d, 4362 - 0x57, 0xcd, 0x11, 0x4f, 0x11, 0x04, 0x8e, 0x1d, 4363 - 0x16, 0xf7, 0xcd, 0x92, 0x9a, 0x99, 0x30, 0x14, 4364 - 0xf1, 0x7c, 0x67, 0x1b, 0x1f, 0x41, 0x0b, 0xe8, 4365 - 0x32, 0xe8, 0xb8, 0xc1, 0x4f, 0x54, 0x86, 0x4f, 4366 - 0xe5, 0x79, 0x81, 0x73, 0xcd, 0x43, 0x59, 0x68, 4367 - 0x73, 0x02, 0x3b, 0x78, 0x21, 0x72, 0x43, 0x00, 4368 - 0x49, 0x17, 0xf7, 0x00, 0xaf, 0x68, 0x24, 0x53, 4369 - 0x05, 0x0a, 0xc3, 0x33, 0xe0, 0x33, 0x3f, 0x69, 4370 - 0xd2, 0x84, 0x2f, 0x0b, 0xed, 0xde, 0x04, 0xf4, 4371 - 0x11, 0x94, 0x13, 0x69, 0x51, 0x09, 0x28, 0xde, 4372 - 0x57, 0x5c, 0xef, 0xdc, 0x9a, 0x49, 0x1c, 0x17, 4373 - 0x97, 0xf3, 0x96, 0xc1, 0x7f, 0x5d, 0x2e, 0x7d, 4374 - 0x55, 0xb8, 0xb3, 0x02, 0x09, 0xb3, 0x1f, 0xe7, 4375 - 0xc9, 0x8d, 0xa3, 0x36, 0x34, 0x8a, 0x77, 0x13, 4376 - 0x30, 0x63, 0x4c, 0xa5, 0xcd, 0xc3, 0xe0, 0x7e, 4377 - 0x05, 0xa1, 0x7b, 0x0c, 0xcb, 0x74, 0x47, 0x31, 4378 - 0x62, 0x03, 0x43, 0xf1, 0x87, 0xb4, 0xb0, 0x85, 4379 - 0x87, 0x8e, 0x4b, 0x25, 0xc7, 0xcf, 0xae, 0x4b, 4380 - 0x36, 0x46, 0x3e, 0x62, 0xbc, 0x6f, 0xeb, 0x5f, 4381 - 0x73, 0xac, 0xe6, 0x07, 0xee, 0xc1, 0xa1, 0xd6, 4382 - 0xc4, 0xab, 0xc9, 0xd6, 0x89, 0x45, 0xe1, 0xf1, 4383 - 0x04, 0x4e, 0x1a, 0x6f, 0xbb, 0x4f, 0x3a, 0xa3, 4384 - 0xa0, 0xcb, 0xa3, 0x0a, 0xd8, 0x71, 0x35, 0x55, 4385 - 0xe4, 0xbc, 0x2e, 0x04, 0x06, 0xe6, 0xff, 0x5b, 4386 - 0x1c, 0xc0, 0x11, 0x7c, 0xc5, 0x17, 0xf3, 0x38, 4387 - 0xcf, 0xe9, 0xba, 0x0f, 0x0e, 0xef, 0x02, 0xc2, 4388 - 0x8d, 0xc6, 0xbc, 0x4b, 0x67, 0x20, 0x95, 0xd7, 4389 - 0x2c, 0x45, 0x5b, 0x86, 0x44, 0x8c, 0x6f, 0x2e, 4390 - 0x7e, 0x9f, 0x1c, 0x77, 0xba, 0x6b, 0x0e, 0xa3, 4391 - 0x69, 0xdc, 0xab, 0x24, 0x57, 0x60, 0x47, 0xc1, 4392 - 0xd1, 0xa5, 0x9d, 0x23, 0xe6, 0xb1, 0x37, 0xfe, 4393 - 0x93, 0xd2, 0x4c, 0x46, 0xf9, 0x0c, 0xc6, 0xfb, 4394 - 0xd6, 0x9d, 0x99, 0x69, 0xab, 0x7a, 0x07, 0x0c, 4395 - 0x65, 0xe7, 0xc4, 0x08, 0x96, 0xe2, 0xa5, 0x01, 4396 - 0x3f, 0x46, 0x07, 0x05, 0x7e, 0xe8, 0x9a, 0x90, 4397 - 0x50, 0xdc, 0xe9, 0x7a, 0xea, 0xa1, 0x39, 0x6e, 4398 - 0x66, 0xe4, 0x6f, 0xa5, 0x5f, 0xb2, 0xd9, 0x5b, 4399 - 0xf5, 0xdb, 0x2a, 0x32, 0xf0, 0x11, 0x6f, 0x7c, 4400 - 0x26, 0x10, 0x8f, 0x3d, 0x80, 0xe9, 0x58, 0xf7, 4401 - 0xe0, 0xa8, 0x57, 0xf8, 0xdb, 0x0e, 0xce, 0x99, 4402 - 0x63, 0x19, 0x3d, 0xd5, 0xec, 0x1b, 0x77, 0x69, 4403 - 0x98, 0xf6, 0xe4, 0x5f, 0x67, 0x17, 0x4b, 0x09, 4404 - 0x85, 0x62, 0x82, 0x70, 0x18, 0xe2, 0x9a, 0x78, 4405 - 0xe2, 0x62, 0xbd, 0xb4, 0xf1, 0x42, 0xc6, 0xfb, 4406 - 0x08, 0xd0, 0xbd, 0xeb, 0x4e, 0x09, 0xf2, 0xc8, 4407 - 0x1e, 0xdc, 0x3d, 0x32, 0x21, 0x56, 0x9c, 0x4f, 4408 - 0x35, 0xf3, 0x61, 0x06, 0x72, 0x84, 0xc4, 0x32, 4409 - 0xf2, 0xf1, 0xfa, 0x0b, 0x2f, 0xc3, 0xdb, 0x02, 4410 - 0x04, 0xc2, 0xde, 0x57, 0x64, 0x60, 0x8d, 0xcf, 4411 - 0xcb, 0x86, 0x5d, 0x97, 0x3e, 0xb1, 0x9c, 0x01, 4412 - 0xd6, 0x28, 0x8f, 0x99, 0xbc, 0x46, 0xeb, 0x05, 4413 - 0xaf, 0x7e, 0xb8, 0x21, 0x2a, 0x56, 0x85, 0x1c, 4414 - 0xb3, 0x71, 0xa0, 0xde, 0xca, 0x96, 0xf1, 0x78, 4415 - 0x49, 0xa2, 0x99, 0x81, 0x80, 0x5c, 0x01, 0xf5, 4416 - 0xa0, 0xa2, 0x56, 0x63, 0xe2, 0x70, 0x07, 0xa5, 4417 - 0x95, 0xd6, 0x85, 0xeb, 0x36, 0x9e, 0xa9, 0x51, 4418 - 0x66, 0x56, 0x5f, 0x1d, 0x02, 0x19, 0xe2, 0xf6, 4419 - 0x4f, 0x73, 0x38, 0x09, 0x75, 0x64, 0x48, 0xe0, 4420 - 0xf1, 0x7e, 0x0e, 0xe8, 0x9d, 0xf9, 0xed, 0x94, 4421 - 0xfe, 0x16, 0x26, 0x62, 0x49, 0x74, 0xf4, 0xb0, 4422 - 0xd4, 0xa9, 0x6c, 0xb0, 0xfd, 0x53, 0xe9, 0x81, 4423 - 0xe0, 0x7a, 0xbf, 0xcf, 0xb5, 0xc4, 0x01, 0x81, 4424 - 0x79, 0x99, 0x77, 0x01, 0x3b, 0xe9, 0xa2, 0xb6, 4425 - 0xe6, 0x6a, 0x8a, 0x9e, 0x56, 0x1c, 0x8d, 0x1e, 4426 - 0x8f, 0x06, 0x55, 0x2c, 0x6c, 0xdc, 0x92, 0x87, 4427 - 0x64, 0x3b, 0x4b, 0x19, 0xa1, 0x13, 0x64, 0x1d, 4428 - 0x4a, 0xe9, 0xc0, 0x00, 0xb8, 0x95, 0xef, 0x6b, 4429 - 0x1a, 0x86, 0x6d, 0x37, 0x52, 0x02, 0xc2, 0xe0, 4430 - 0xc8, 0xbb, 0x42, 0x0c, 0x02, 0x21, 0x4a, 0xc9, 4431 - 0xef, 0xa0, 0x54, 0xe4, 0x5e, 0x16, 0x53, 0x81, 4432 - 0x70, 0x62, 0x10, 0xaf, 0xde, 0xb8, 0xb5, 0xd3, 4433 - 0xe8, 0x5e, 0x6c, 0xc3, 0x8a, 0x3e, 0x18, 0x07, 4434 - 0xf2, 0x2f, 0x7d, 0xa7, 0xe1, 0x3d, 0x4e, 0xb4, 4435 - 0x26, 0xa7, 0xa3, 0x93, 0x86, 0xb2, 0x04, 0x1e, 4436 - 0x53, 0x5d, 0x86, 0xd6, 0xde, 0x65, 0xca, 0xe3, 4437 - 0x4e, 0xc1, 0xcf, 0xef, 0xc8, 0x70, 0x1b, 0x83, 4438 - 0x13, 0xdd, 0x18, 0x8b, 0x0d, 0x76, 0xd2, 0xf6, 4439 - 0x37, 0x7a, 0x93, 0x7a, 0x50, 0x11, 0x9f, 0x96, 4440 - 0x86, 0x25, 0xfd, 0xac, 0xdc, 0xbe, 0x18, 0x93, 4441 - 0x19, 0x6b, 0xec, 0x58, 0x4f, 0xb9, 0x75, 0xa7, 4442 - 0xdd, 0x3f, 0x2f, 0xec, 0xc8, 0x5a, 0x84, 0xab, 4443 - 0xd5, 0xe4, 0x8a, 0x07, 0xf6, 0x4d, 0x23, 0xd6, 4444 - 0x03, 0xfb, 0x03, 0x6a, 0xea, 0x66, 0xbf, 0xd4, 4445 - 0xb1, 0x34, 0xfb, 0x78, 0xe9, 0x55, 0xdc, 0x7c, 4446 - 0x3d, 0x9c, 0xe5, 0x9a, 0xac, 0xc3, 0x7a, 0x80, 4447 - 0x24, 0x6d, 0xa0, 0xef, 0x25, 0x7c, 0xb7, 0xea, 4448 - 0xce, 0x4d, 0x5f, 0x18, 0x60, 0xce, 0x87, 0x22, 4449 - 0x66, 0x2f, 0xd5, 0xdd, 0xdd, 0x02, 0x21, 0x75, 4450 - 0x82, 0xa0, 0x1f, 0x58, 0xc6, 0xd3, 0x62, 0xf7, 4451 - 0x32, 0xd8, 0xaf, 0x1e, 0x07, 0x77, 0x51, 0x96, 4452 - 0xd5, 0x6b, 0x1e, 0x7e, 0x80, 0x02, 0xe8, 0x67, 4453 - 0xea, 0x17, 0x0b, 0x10, 0xd2, 0x3f, 0x28, 0x25, 4454 - 0x4f, 0x05, 0x77, 0x02, 0x14, 0x69, 0xf0, 0x2c, 4455 - 0xbe, 0x0c, 0xf1, 0x74, 0x30, 0xd1, 0xb9, 0x9b, 4456 - 0xfc, 0x8c, 0xbb, 0x04, 0x16, 0xd9, 0xba, 0xc3, 4457 - 0xbc, 0x91, 0x8a, 0xc4, 0x30, 0xa4, 0xb0, 0x12, 4458 - 0x4c, 0x21, 0x87, 0xcb, 0xc9, 0x1d, 0x16, 0x96, 4459 - 0x07, 0x6f, 0x23, 0x54, 0xb9, 0x6f, 0x79, 0xe5, 4460 - 0x64, 0xc0, 0x64, 0xda, 0xb1, 0xae, 0xdd, 0x60, 4461 - 0x6c, 0x1a, 0x9d, 0xd3, 0x04, 0x8e, 0x45, 0xb0, 4462 - 0x92, 0x61, 0xd0, 0x48, 0x81, 0xed, 0x5e, 0x1d, 4463 - 0xa0, 0xc9, 0xa4, 0x33, 0xc7, 0x13, 0x51, 0x5d, 4464 - 0x7f, 0x83, 0x73, 0xb6, 0x70, 0x18, 0x65, 0x3e, 4465 - 0x2f, 0x0e, 0x7a, 0x12, 0x39, 0x98, 0xab, 0xd8, 4466 - 0x7e, 0x6f, 0xa3, 0xd1, 0xba, 0x56, 0xad, 0xbd, 4467 - 0xf0, 0x03, 0x01, 0x1c, 0x85, 0x35, 0x9f, 0xeb, 4468 - 0x19, 0x63, 0xa1, 0xaf, 0xfe, 0x2d, 0x35, 0x50, 4469 - 0x39, 0xa0, 0x65, 0x7c, 0x95, 0x7e, 0x6b, 0xfe, 4470 - 0xc1, 0xac, 0x07, 0x7c, 0x98, 0x4f, 0xbe, 0x57, 4471 - 0xa7, 0x22, 0xec, 0xe2, 0x7e, 0x29, 0x09, 0x53, 4472 - 0xe8, 0xbf, 0xb4, 0x7e, 0x3f, 0x8f, 0xfc, 0x14, 4473 - 0xce, 0x54, 0xf9, 0x18, 0x58, 0xb5, 0xff, 0x44, 4474 - 0x05, 0x9d, 0xce, 0x1b, 0xb6, 0x82, 0x23, 0xc8, 4475 - 0x2e, 0xbc, 0x69, 0xbb, 0x4a, 0x29, 0x0f, 0x65, 4476 - 0x94, 0xf0, 0x63, 0x06, 0x0e, 0xef, 0x8c, 0xbd, 4477 - 0xff, 0xfd, 0xb0, 0x21, 0x6e, 0x57, 0x05, 0x75, 4478 - 0xda, 0xd5, 0xc4, 0xeb, 0x8d, 0x32, 0xf7, 0x50, 4479 - 0xd3, 0x6f, 0x22, 0xed, 0x5f, 0x8e, 0xa2, 0x5b, 4480 - 0x80, 0x8c, 0xc8, 0x78, 0x40, 0x24, 0x4b, 0x89, 4481 - 0x30, 0xce, 0x7a, 0x97, 0x0e, 0xc4, 0xaf, 0xef, 4482 - 0x9b, 0xb4, 0xcd, 0x66, 0x74, 0x14, 0x04, 0x2b, 4483 - 0xf7, 0xce, 0x0b, 0x1c, 0x6e, 0xc2, 0x78, 0x8c, 4484 - 0xca, 0xc5, 0xd0, 0x1c, 0x95, 0x4a, 0x91, 0x2d, 4485 - 0xa7, 0x20, 0xeb, 0x86, 0x52, 0xb7, 0x67, 0xd8, 4486 - 0x0c, 0xd6, 0x04, 0x14, 0xde, 0x51, 0x74, 0x75, 4487 - 0xe7, 0x11, 0xb4, 0x87, 0xa3, 0x3d, 0x2d, 0xad, 4488 - 0x4f, 0xef, 0xa0, 0x0f, 0x70, 0x00, 0x6d, 0x13, 4489 - 0x19, 0x1d, 0x41, 0x50, 0xe9, 0xd8, 0xf0, 0x32, 4490 - 0x71, 0xbc, 0xd3, 0x11, 0xf2, 0xac, 0xbe, 0xaf, 4491 - 0x75, 0x46, 0x65, 0x4e, 0x07, 0x34, 0x37, 0xa3, 4492 - 0x89, 0xfe, 0x75, 0xd4, 0x70, 0x4c, 0xc6, 0x3f, 4493 - 0x69, 0x24, 0x0e, 0x38, 0x67, 0x43, 0x8c, 0xde, 4494 - 0x06, 0xb5, 0xb8, 0xe7, 0xc4, 0xf0, 0x41, 0x8f, 4495 - 0xf0, 0xbd, 0x2f, 0x0b, 0xb9, 0x18, 0xf8, 0xde, 4496 - 0x64, 0xb1, 0xdb, 0xee, 0x00, 0x50, 0x77, 0xe1, 4497 - 0xc7, 0xff, 0xa6, 0xfa, 0xdd, 0x70, 0xf4, 0xe3, 4498 - 0x93, 0xe9, 0x77, 0x35, 0x3d, 0x4b, 0x2f, 0x2b, 4499 - 0x6d, 0x55, 0xf0, 0xfc, 0x88, 0x54, 0x4e, 0x89, 4500 - 0xc1, 0x8a, 0x23, 0x31, 0x2d, 0x14, 0x2a, 0xb8, 4501 - 0x1b, 0x15, 0xdd, 0x9e, 0x6e, 0x7b, 0xda, 0x05, 4502 - 0x91, 0x7d, 0x62, 0x64, 0x96, 0x72, 0xde, 0xfc, 4503 - 0xc1, 0xec, 0xf0, 0x23, 0x51, 0x6f, 0xdb, 0x5b, 4504 - 0x1d, 0x08, 0x57, 0xce, 0x09, 0xb8, 0xf6, 0xcd, 4505 - 0x8d, 0x95, 0xf2, 0x20, 0xbf, 0x0f, 0x20, 0x57, 4506 - 0x98, 0x81, 0x84, 0x4f, 0x15, 0x5c, 0x76, 0xe7, 4507 - 0x3e, 0x0a, 0x3a, 0x6c, 0xc4, 0x8a, 0xbe, 0x78, 4508 - 0x74, 0x77, 0xc3, 0x09, 0x4b, 0x5d, 0x48, 0xe4, 4509 - 0xc8, 0xcb, 0x0b, 0xea, 0x17, 0x28, 0xcf, 0xcf, 4510 - 0x31, 0x32, 0x44, 0xa4, 0xe5, 0x0e, 0x1a, 0x98, 4511 - 0x94, 0xc4, 0xf0, 0xff, 0xae, 0x3e, 0x44, 0xe8, 4512 - 0xa5, 0xb3, 0xb5, 0x37, 0x2f, 0xe8, 0xaf, 0x6f, 4513 - 0x28, 0xc1, 0x37, 0x5f, 0x31, 0xd2, 0xb9, 0x33, 4514 - 0xb1, 0xb2, 0x52, 0x94, 0x75, 0x2c, 0x29, 0x59, 4515 - 0x06, 0xc2, 0x25, 0xe8, 0x71, 0x65, 0x4e, 0xed, 4516 - 0xc0, 0x9c, 0xb1, 0xbb, 0x25, 0xdc, 0x6c, 0xe7, 4517 - 0x4b, 0xa5, 0x7a, 0x54, 0x7a, 0x60, 0xff, 0x7a, 4518 - 0xe0, 0x50, 0x40, 0x96, 0x35, 0x63, 0xe4, 0x0b, 4519 - 0x76, 0xbd, 0xa4, 0x65, 0x00, 0x1b, 0x57, 0x88, 4520 - 0xae, 0xed, 0x39, 0x88, 0x42, 0x11, 0x3c, 0xed, 4521 - 0x85, 0x67, 0x7d, 0xb9, 0x68, 0x82, 0xe9, 0x43, 4522 - 0x3c, 0x47, 0x53, 0xfa, 0xe8, 0xf8, 0x9f, 0x1f, 4523 - 0x9f, 0xef, 0x0f, 0xf7, 0x30, 0xd9, 0x30, 0x0e, 4524 - 0xb9, 0x9f, 0x69, 0x18, 0x2f, 0x7e, 0xf8, 0xf8, 4525 - 0xf8, 0x8c, 0x0f, 0xd4, 0x02, 0x4d, 0xea, 0xcd, 4526 - 0x0a, 0x9c, 0x6f, 0x71, 0x6d, 0x5a, 0x4c, 0x60, 4527 - 0xce, 0x20, 0x56, 0x32, 0xc6, 0xc5, 0x99, 0x1f, 4528 - 0x09, 0xe6, 0x4e, 0x18, 0x1a, 0x15, 0x13, 0xa8, 4529 - 0x7d, 0xb1, 0x6b, 0xc0, 0xb2, 0x6d, 0xf8, 0x26, 4530 - 0x66, 0xf8, 0x3d, 0x18, 0x74, 0x70, 0x66, 0x7a, 4531 - 0x34, 0x17, 0xde, 0xba, 0x47, 0xf1, 0x06, 0x18, 4532 - 0xcb, 0xaf, 0xeb, 0x4a, 0x1e, 0x8f, 0xa7, 0x77, 4533 - 0xe0, 0x3b, 0x78, 0x62, 0x66, 0xc9, 0x10, 0xea, 4534 - 0x1f, 0xb7, 0x29, 0x0a, 0x45, 0xa1, 0x1d, 0x1e, 4535 - 0x1d, 0xe2, 0x65, 0x61, 0x50, 0x9c, 0xd7, 0x05, 4536 - 0xf2, 0x0b, 0x5b, 0x12, 0x61, 0x02, 0xc8, 0xe5, 4537 - 0x63, 0x4f, 0x20, 0x0c, 0x07, 0x17, 0x33, 0x5e, 4538 - 0x03, 0x9a, 0x53, 0x0f, 0x2e, 0x55, 0xfe, 0x50, 4539 - 0x43, 0x7d, 0xd0, 0xb6, 0x7e, 0x5a, 0xda, 0xae, 4540 - 0x58, 0xef, 0x15, 0xa9, 0x83, 0xd9, 0x46, 0xb1, 4541 - 0x42, 0xaa, 0xf5, 0x02, 0x6c, 0xce, 0x92, 0x06, 4542 - 0x1b, 0xdb, 0x66, 0x45, 0x91, 0x79, 0xc2, 0x2d, 4543 - 0xe6, 0x53, 0xd3, 0x14, 0xfd, 0xbb, 0x44, 0x63, 4544 - 0xc6, 0xd7, 0x3d, 0x7a, 0x0c, 0x75, 0x78, 0x9d, 4545 - 0x5c, 0xa6, 0x39, 0xb3, 0xe5, 0x63, 0xca, 0x8b, 4546 - 0xfe, 0xd3, 0xef, 0x60, 0x83, 0xf6, 0x8e, 0x70, 4547 - 0xb6, 0x67, 0xc7, 0x77, 0xed, 0x23, 0xef, 0x4c, 4548 - 0xf0, 0xed, 0x2d, 0x07, 0x59, 0x6f, 0xc1, 0x01, 4549 - 0x34, 0x37, 0x08, 0xab, 0xd9, 0x1f, 0x09, 0xb1, 4550 - 0xce, 0x5b, 0x17, 0xff, 0x74, 0xf8, 0x9c, 0xd5, 4551 - 0x2c, 0x56, 0x39, 0x79, 0x0f, 0x69, 0x44, 0x75, 4552 - 0x58, 0x27, 0x01, 0xc4, 0xbf, 0xa7, 0xa1, 0x1d, 4553 - 0x90, 0x17, 0x77, 0x86, 0x5a, 0x3f, 0xd9, 0xd1, 4554 - 0x0e, 0xa0, 0x10, 0xf8, 0xec, 0x1e, 0xa5, 0x7f, 4555 - 0x5e, 0x36, 0xd1, 0xe3, 0x04, 0x2c, 0x70, 0xf7, 4556 - 0x8e, 0xc0, 0x98, 0x2f, 0x6c, 0x94, 0x2b, 0x41, 4557 - 0xb7, 0x60, 0x00, 0xb7, 0x2e, 0xb8, 0x02, 0x8d, 4558 - 0xb8, 0xb0, 0xd3, 0x86, 0xba, 0x1d, 0xd7, 0x90, 4559 - 0xd6, 0xb6, 0xe1, 0xfc, 0xd7, 0xd8, 0x28, 0x06, 4560 - 0x63, 0x9b, 0xce, 0x61, 0x24, 0x79, 0xc0, 0x70, 4561 - 0x52, 0xd0, 0xb6, 0xd4, 0x28, 0x95, 0x24, 0x87, 4562 - 0x03, 0x1f, 0xb7, 0x9a, 0xda, 0xa3, 0xfb, 0x52, 4563 - 0x5b, 0x68, 0xe7, 0x4c, 0x8c, 0x24, 0xe1, 0x42, 4564 - 0xf7, 0xd5, 0xfd, 0xad, 0x06, 0x32, 0x9f, 0xba, 4565 - 0xc1, 0xfc, 0xdd, 0xc6, 0xfc, 0xfc, 0xb3, 0x38, 4566 - 0x74, 0x56, 0x58, 0x40, 0x02, 0x37, 0x52, 0x2c, 4567 - 0x55, 0xcc, 0xb3, 0x9e, 0x7a, 0xe9, 0xd4, 0x38, 4568 - 0x41, 0x5e, 0x0c, 0x35, 0xe2, 0x11, 0xd1, 0x13, 4569 - 0xf8, 0xb7, 0x8d, 0x72, 0x6b, 0x22, 0x2a, 0xb0, 4570 - 0xdb, 0x08, 0xba, 0x35, 0xb9, 0x3f, 0xc8, 0xd3, 4571 - 0x24, 0x90, 0xec, 0x58, 0xd2, 0x09, 0xc7, 0x2d, 4572 - 0xed, 0x38, 0x80, 0x36, 0x72, 0x43, 0x27, 0x49, 4573 - 0x4a, 0x80, 0x8a, 0xa2, 0xe8, 0xd3, 0xda, 0x30, 4574 - 0x7d, 0xb6, 0x82, 0x37, 0x86, 0x92, 0x86, 0x3e, 4575 - 0x08, 0xb2, 0x28, 0x5a, 0x55, 0x44, 0x24, 0x7d, 4576 - 0x40, 0x48, 0x8a, 0xb6, 0x89, 0x58, 0x08, 0xa0, 4577 - 0xd6, 0x6d, 0x3a, 0x17, 0xbf, 0xf6, 0x54, 0xa2, 4578 - 0xf5, 0xd3, 0x8c, 0x0f, 0x78, 0x12, 0x57, 0x8b, 4579 - 0xd5, 0xc2, 0xfd, 0x58, 0x5b, 0x7f, 0x38, 0xe3, 4580 - 0xcc, 0xb7, 0x7c, 0x48, 0xb3, 0x20, 0xe8, 0x81, 4581 - 0x14, 0x32, 0x45, 0x05, 0xe0, 0xdb, 0x9f, 0x75, 4582 - 0x85, 0xb4, 0x6a, 0xfc, 0x95, 0xe3, 0x54, 0x22, 4583 - 0x12, 0xee, 0x30, 0xfe, 0xd8, 0x30, 0xef, 0x34, 4584 - 0x50, 0xab, 0x46, 0x30, 0x98, 0x2f, 0xb7, 0xc0, 4585 - 0x15, 0xa2, 0x83, 0xb6, 0xf2, 0x06, 0x21, 0xa2, 4586 - 0xc3, 0x26, 0x37, 0x14, 0xd1, 0x4d, 0xb5, 0x10, 4587 - 0x52, 0x76, 0x4d, 0x6a, 0xee, 0xb5, 0x2b, 0x15, 4588 - 0xb7, 0xf9, 0x51, 0xe8, 0x2a, 0xaf, 0xc7, 0xfa, 4589 - 0x77, 0xaf, 0xb0, 0x05, 0x4d, 0xd1, 0x68, 0x8e, 4590 - 0x74, 0x05, 0x9f, 0x9d, 0x93, 0xa5, 0x3e, 0x7f, 4591 - 0x4e, 0x5f, 0x9d, 0xcb, 0x09, 0xc7, 0x83, 0xe3, 4592 - 0x02, 0x9d, 0x27, 0x1f, 0xef, 0x85, 0x05, 0x8d, 4593 - 0xec, 0x55, 0x88, 0x0f, 0x0d, 0x7c, 0x4c, 0xe8, 4594 - 0xa1, 0x75, 0xa0, 0xd8, 0x06, 0x47, 0x14, 0xef, 4595 - 0xaa, 0x61, 0xcf, 0x26, 0x15, 0xad, 0xd8, 0xa3, 4596 - 0xaa, 0x75, 0xf2, 0x78, 0x4a, 0x5a, 0x61, 0xdf, 4597 - 0x8b, 0xc7, 0x04, 0xbc, 0xb2, 0x32, 0xd2, 0x7e, 4598 - 0x42, 0xee, 0xb4, 0x2f, 0x51, 0xff, 0x7b, 0x2e, 4599 - 0xd3, 0x02, 0xe8, 0xdc, 0x5d, 0x0d, 0x50, 0xdc, 4600 - 0xae, 0xb7, 0x46, 0xf9, 0xa8, 0xe6, 0xd0, 0x16, 4601 - 0xcc, 0xe6, 0x2c, 0x81, 0xc7, 0xad, 0xe9, 0xf0, 4602 - 0x05, 0x72, 0x6d, 0x3d, 0x0a, 0x7a, 0xa9, 0x02, 4603 - 0xac, 0x82, 0x93, 0x6e, 0xb6, 0x1c, 0x28, 0xfc, 4604 - 0x44, 0x12, 0xfb, 0x73, 0x77, 0xd4, 0x13, 0x39, 4605 - 0x29, 0x88, 0x8a, 0xf3, 0x5c, 0xa6, 0x36, 0xa0, 4606 - 0x2a, 0xed, 0x7e, 0xb1, 0x1d, 0xd6, 0x4c, 0x6b, 4607 - 0x41, 0x01, 0x18, 0x5d, 0x5d, 0x07, 0x97, 0xa6, 4608 - 0x4b, 0xef, 0x31, 0x18, 0xea, 0xac, 0xb1, 0x84, 4609 - 0x21, 0xed, 0xda, 0x86, 4610 - }, 4067 + .result = 4068 + "\xf0\x5c\x74\xad\x4e\xbc\x99\xe2" 4069 + "\xae\xff\x91\x3a\x44\xcf\x38\x32" 4070 + "\x1e\xad\xa7\xcd\xa1\x39\x95\xaa" 4071 + "\x10\xb1\xb3\x2e\x04\x31\x8f\x86" 4072 + "\xf2\x62\x74\x70\x0c\xa4\x46\x08" 4073 + "\xa8\xb7\x99\xa8\xe9\xd2\x73\x79" 4074 + "\x7e\x6e\xd4\x8f\x1e\xc7\x8e\x31" 4075 + "\x0b\xfa\x4b\xce\xfd\xf3\x57\x71" 4076 + "\xe9\x46\x03\xa5\x3d\x34\x00\xe2" 4077 + "\x18\xff\x75\x6d\x06\x2d\x00\xab" 4078 + "\xb9\x3e\x6c\x59\xc5\x84\x06\xb5" 4079 + "\x8b\xd0\x89\x9c\x4a\x79\x16\xc6" 4080 + "\x3d\x74\x54\xfa\x44\xcd\x23\x26" 4081 + "\x5c\xcf\x7e\x28\x92\x32\xbf\xdf" 4082 + "\xa7\x20\x3c\x74\x58\x2a\x9a\xde" 4083 + "\x61\x00\x1c\x4f\xff\x59\xc4\x22" 4084 + "\xac\x3c\xd0\xe8\x6c\xf9\x97\x1b" 4085 + "\x58\x9b\xad\x71\xe8\xa9\xb5\x0d" 4086 + "\xee\x2f\x04\x1f\x7f\xbc\x99\xee" 4087 + "\x84\xff\x42\x60\xdc\x3a\x18\xa5" 4088 + "\x81\xf9\xef\xdc\x7a\x0f\x65\x41" 4089 + "\x2f\xa3\xd3\xf9\xc2\xcb\xc0\x4d" 4090 + "\x8f\xd3\x76\x96\xad\x49\x6d\x38" 4091 + "\x3d\x39\x0b\x6c\x80\xb7\x54\x69" 4092 + "\xf0\x2c\x90\x02\x29\x0d\x1c\x12" 4093 + "\xad\x55\xc3\x8b\x68\xd9\xcc\xb3" 4094 + "\xb2\x64\x33\x90\x5e\xca\x4b\xe2" 4095 + "\xfb\x75\xdc\x63\xf7\x9f\x82\x74" 4096 + "\xf0\xc9\xaa\x7f\xe9\x2a\x9b\x33" 4097 + "\xbc\x88\x00\x7f\xca\xb2\x1f\x14" 4098 + "\xdb\xc5\x8e\x7b\x11\x3c\x3e\x08" 4099 + "\xf3\x83\xe8\xe0\x94\x86\x2e\x92" 4100 + "\x78\x6b\x01\xc9\xc7\x83\xba\x21" 4101 + "\x6a\x25\x15\x33\x4e\x45\x08\xec" 4102 + "\x35\xdb\xe0\x6e\x31\x51\x79\xa9" 4103 + "\x42\x44\x65\xc1\xa0\xf1\xf9\x2a" 4104 + "\x70\xd5\xb6\xc6\xc1\x8c\x39\xfc" 4105 + "\x25\xa6\x55\xd9\xdd\x2d\x4c\xec" 4106 + "\x49\xc6\xeb\x0e\xa8\x25\x2a\x16" 4107 + "\x1b\x66\x84\xda\xe2\x92\xe5\xc0" 4108 + "\xc8\x53\x07\xaf\x80\x84\xec\xfd" 4109 + "\xcd\xd1\x6e\xcd\x6f\x6a\xf5\x36" 4110 + "\xc5\x15\xe5\x25\x7d\x77\xd1\x1a" 4111 + "\x93\x36\xa9\xcf\x7c\xa4\x54\x4a" 4112 + "\x06\x51\x48\x4e\xf6\x59\x87\xd2" 4113 + "\x04\x02\xef\xd3\x44\xde\x76\x31" 4114 + "\xb3\x34\x17\x1b\x9d\x66\x11\x9f" 4115 + "\x1e\xcc\x17\xe9\xc7\x3c\x1b\xe7" 4116 + "\xcb\x50\x08\xfc\xdc\x2b\x24\xdb" 4117 + "\x65\x83\xd0\x3b\xe3\x30\xea\x94" 4118 + "\x6c\xe7\xe8\x35\x32\xc7\xdb\x64" 4119 + "\xb4\x01\xab\x36\x2c\x77\x13\xaf" 4120 + "\xf8\x2b\x88\x3f\x54\x39\xc4\x44" 4121 + "\xfe\xef\x6f\x68\x34\xbe\x0f\x05" 4122 + "\x16\x6d\xf6\x0a\x30\xe7\xe3\xed" 4123 + "\xc4\xde\x3c\x1b\x13\xd8\xdb\xfe" 4124 + "\x41\x62\xe5\x28\xd4\x8d\xa3\xc7" 4125 + "\x93\x97\xc6\x48\x45\x1d\x9f\x83" 4126 + "\xdf\x4b\x40\x3e\x42\x25\x87\x80" 4127 + "\x4c\x7d\xa8\xd4\x98\x23\x95\x75" 4128 + "\x41\x8c\xda\x41\x9b\xd4\xa7\x06" 4129 + "\xb5\xf1\x71\x09\x53\xbe\xca\xbf" 4130 + "\x32\x03\xed\xf0\x50\x1c\x56\x39" 4131 + "\x5b\xa4\x75\x18\xf7\x9b\x58\xef" 4132 + "\x53\xfc\x2a\x38\x23\x15\x75\xcd" 4133 + "\x45\xe5\x5a\x82\x55\xba\x21\xfa" 4134 + "\xd4\xbd\xc6\x94\x7c\xc5\x80\x12" 4135 + "\xf7\x4b\x32\xc4\x9a\x82\xd8\x28" 4136 + "\x8f\xd9\xc2\x0f\x60\x03\xbe\x5e" 4137 + "\x21\xd6\x5f\x58\xbf\x5c\xb1\x32" 4138 + "\x82\x8d\xa9\xe5\xf2\x66\x1a\xc0" 4139 + "\xa0\xbc\x58\x2f\x71\xf5\x2f\xed" 4140 + "\xd1\x26\xb9\xd8\x49\x5a\x07\x19" 4141 + "\x01\x7c\x59\xb0\xf8\xa4\xb7\xd3" 4142 + "\x7b\x1a\x8c\x38\xf4\x50\xa4\x59" 4143 + "\xb0\xcc\x41\x0b\x88\x7f\xe5\x31" 4144 + "\xb3\x42\xba\xa2\x7e\xd4\x32\x71" 4145 + "\x45\x87\x48\xa9\xc2\xf2\x89\xb3" 4146 + "\xe4\xa7\x7e\x52\x15\x61\xfa\xfe" 4147 + "\xc9\xdd\x81\xeb\x13\xab\xab\xc3" 4148 + "\x98\x59\xd8\x16\x3d\x14\x7a\x1c" 4149 + "\x3c\x41\x9a\x16\x16\x9b\xd2\xd2" 4150 + "\x69\x3a\x29\x23\xac\x86\x32\xa5" 4151 + "\x48\x9c\x9e\xf3\x47\x77\x81\x70" 4152 + "\x24\xe8\x85\xd2\xf5\xb5\xfa\xff" 4153 + "\x59\x6a\xd3\x50\x59\x43\x59\xde" 4154 + "\xd9\xf1\x55\xa5\x0c\xc3\x1a\x1a" 4155 + "\x18\x34\x0d\x1a\x63\x33\xed\x10" 4156 + "\xe0\x1d\x2a\x18\xd2\xc0\x54\xa8" 4157 + "\xca\xb5\x9a\xd3\xdd\xca\x45\x84" 4158 + "\x50\xe7\x0f\xfe\xa4\x99\x5a\xbe" 4159 + "\x43\x2d\x9a\xcb\x92\x3f\x5a\x1d" 4160 + "\x85\xd8\xc9\xdf\x68\xc9\x12\x80" 4161 + "\x56\x0c\xdc\x00\xdc\x3a\x7d\x9d" 4162 + "\xa3\xa2\xe8\x4d\xbf\xf9\x70\xa0" 4163 + "\xa4\x13\x4f\x6b\xaf\x0a\x89\x7f" 4164 + "\xda\xf0\xbf\x9b\xc8\x1d\xe5\xf8" 4165 + "\x2e\x8b\x07\xb5\x73\x1b\xcc\xa2" 4166 + "\xa6\xad\x30\xbc\x78\x3c\x5b\x10" 4167 + "\xfa\x5e\x62\x2d\x9e\x64\xb3\x33" 4168 + "\xce\xf9\x1f\x86\xe7\x8b\xa2\xb8" 4169 + "\xe8\x99\x57\x8c\x11\xed\x66\xd9" 4170 + "\x3c\x72\xb9\xc3\xe6\x4e\x17\x3a" 4171 + "\x6a\xcb\x42\x24\x06\xed\x3e\x4e" 4172 + "\xa3\xe8\x6a\x94\xda\x0d\x4e\xd5" 4173 + "\x14\x19\xcf\xb6\x26\xd8\x2e\xcc" 4174 + "\x64\x76\x38\x49\x4d\xfe\x30\x6d" 4175 + "\xe4\xc8\x8c\x7b\xc4\xe0\x35\xba" 4176 + "\x22\x6e\x76\xe1\x1a\xf2\x53\xc3" 4177 + "\x28\xa2\x82\x1f\x61\x69\xad\xc1" 4178 + "\x7b\x28\x4b\x1e\x6c\x85\x95\x9b" 4179 + "\x51\xb5\x17\x7f\x12\x69\x8c\x24" 4180 + "\xd5\xc7\x5a\x5a\x11\x54\xff\x5a" 4181 + "\xf7\x16\xc3\x91\xa6\xf0\xdc\x0a" 4182 + "\xb6\xa7\x4a\x0d\x7a\x58\xfe\xa5" 4183 + "\xf5\xcb\x8f\x7b\x0e\xea\x57\xe7" 4184 + "\xbd\x79\xd6\x1c\x88\x23\x6c\xf2" 4185 + "\x4d\x29\x77\x53\x35\x6a\x00\x8d" 4186 + "\xcd\xa3\x58\xbe\x77\x99\x18\xf8" 4187 + "\xe6\xe1\x8f\xe9\x37\x8f\xe3\xe2" 4188 + "\x5a\x8a\x93\x25\xaf\xf3\x78\x80" 4189 + "\xbe\xa6\x1b\xc6\xac\x8b\x1c\x91" 4190 + "\x58\xe1\x9f\x89\x35\x9d\x1d\x21" 4191 + "\x29\x9f\xf4\x99\x02\x27\x0f\xa8" 4192 + "\x4f\x79\x94\x2b\x33\x2c\xda\xa2" 4193 + "\x26\x39\x83\x94\xef\x27\xd8\x53" 4194 + "\x8f\x66\x0d\xe4\x41\x7d\x34\xcd" 4195 + "\x43\x7c\x95\x0a\x53\xef\x66\xda" 4196 + "\x7e\x9b\xf3\x93\xaf\xd0\x73\x71" 4197 + "\xba\x40\x9b\x74\xf8\xd7\xd7\x41" 4198 + "\x6d\xaf\x72\x9c\x8d\x21\x87\x3c" 4199 + "\xfd\x0a\x90\xa9\x47\x96\x9e\xd3" 4200 + "\x88\xee\x73\xcf\x66\x2f\x52\x56" 4201 + "\x6d\xa9\x80\x4c\xe2\x6f\x62\x88" 4202 + "\x3f\x0e\x54\x17\x48\x80\x5d\xd3" 4203 + "\xc3\xda\x25\x3d\xa1\xc8\xcb\x9f" 4204 + "\x9b\x70\xb3\xa1\xeb\x04\x52\xa1" 4205 + "\xf2\x22\x0f\xfc\xc8\x18\xfa\xf9" 4206 + "\x85\x9c\xf1\xac\xeb\x0c\x02\x46" 4207 + "\x75\xd2\xf5\x2c\xe3\xd2\x59\x94" 4208 + "\x12\xf3\x3c\xfc\xd7\x92\xfa\x36" 4209 + "\xba\x61\x34\x38\x7c\xda\x48\x3e" 4210 + "\x08\xc9\x39\x23\x5e\x02\x2c\x1a" 4211 + "\x18\x7e\xb4\xd9\xfd\x9e\x40\x02" 4212 + "\xb1\x33\x37\x32\xe7\xde\xd6\xd0" 4213 + "\x7c\x58\x65\x4b\xf8\x34\x27\x9c" 4214 + "\x44\xb4\xbd\xe9\xe9\x4c\x78\x7d" 4215 + "\x4b\x9f\xce\xb1\xcd\x47\xa5\x37" 4216 + "\xe5\x6d\xbd\xb9\x43\x94\x0a\xd4" 4217 + "\xd6\xf9\x04\x5f\xb5\x66\x6c\x1a" 4218 + "\x35\x12\xe3\x36\x28\x27\x36\x58" 4219 + "\x01\x2b\x79\xe4\xba\x6d\x10\x7d" 4220 + "\x65\xdf\x84\x95\xf4\xd5\xb6\x8f" 4221 + "\x2b\x9f\x96\x00\x86\x60\xf0\x21" 4222 + "\x76\xa8\x6a\x8c\x28\x1c\xb3\x6b" 4223 + "\x97\xd7\xb6\x53\x2a\xcc\xab\x40" 4224 + "\x9d\x62\x79\x58\x52\xe6\x65\xb7" 4225 + "\xab\x55\x67\x9c\x89\x7c\x03\xb0" 4226 + "\x73\x59\xc5\x81\xf5\x18\x17\x5c" 4227 + "\x89\xf3\x78\x35\x44\x62\x78\x72" 4228 + "\xd0\x96\xeb\x31\xe7\x87\x77\x14" 4229 + "\x99\x51\xf2\x59\x26\x9e\xb5\xa6" 4230 + "\x45\xfe\x6e\xbd\x07\x4c\x94\x5a" 4231 + "\xa5\x7d\xfc\xf1\x2b\x77\xe2\xfe" 4232 + "\x17\xd4\x84\xa0\xac\xb5\xc7\xda" 4233 + "\xa9\x1a\xb6\xf3\x74\x11\xb4\x9d" 4234 + "\xfb\x79\x2e\x04\x2d\x50\x28\x83" 4235 + "\xbf\xc6\x52\xd3\x34\xd6\xe8\x7a" 4236 + "\xb6\xea\xe7\xa8\x6c\x15\x1e\x2c" 4237 + "\x57\xbc\x48\x4e\x5f\x5c\xb6\x92" 4238 + "\xd2\x49\x77\x81\x6d\x90\x70\xae" 4239 + "\x98\xa1\x03\x0d\x6b\xb9\x77\x14" 4240 + "\xf1\x4e\x23\xd3\xf8\x68\xbd\xc2" 4241 + "\xfe\x04\xb7\x5c\xc5\x17\x60\x8f" 4242 + "\x65\x54\xa4\x7a\x42\xdc\x18\x0d" 4243 + "\xb5\xcf\x0f\xd3\xc7\x91\x66\x1b" 4244 + "\x45\x42\x27\x75\x50\xe5\xee\xb8" 4245 + "\x7f\x33\x2c\xba\x4a\x92\x4d\x2c" 4246 + "\x3c\xe3\x0d\x80\x01\xba\x0d\x29" 4247 + "\xd8\x3c\xe9\x13\x16\x57\xe6\xea" 4248 + "\x94\x52\xe7\x00\x4d\x30\xb0\x0f" 4249 + "\x35\xb8\xb8\xa7\xb1\xb5\x3b\x44" 4250 + "\xe1\x2f\xfd\x88\xed\x43\xe7\x52" 4251 + "\x10\x93\xb3\x8a\x30\x6b\x0a\xf7" 4252 + "\x23\xc6\x50\x9d\x4a\xb0\xde\xc3" 4253 + "\xdc\x9b\x2f\x01\x56\x36\x09\xc5" 4254 + "\x2f\x6b\xfe\xf1\xd8\x27\x45\x03" 4255 + "\x30\x5e\x5c\x5b\xb4\x62\x0e\x1a" 4256 + "\xa9\x21\x2b\x92\x94\x87\x62\x57" 4257 + "\x4c\x10\x74\x1a\xf1\x0a\xc5\x84" 4258 + "\x3b\x9e\x72\x02\xd7\xcc\x09\x56" 4259 + "\xbd\x54\xc1\xf0\xc3\xe3\xb3\xf8" 4260 + "\xd2\x0d\x61\xcb\xef\xce\x0d\x05" 4261 + "\xb0\x98\xd9\x8e\x4f\xf9\xbc\x93" 4262 + "\xa6\xea\xc8\xcf\x10\x53\x4b\xf1" 4263 + "\xec\xfc\x89\xf9\x64\xb0\x22\xbf" 4264 + "\x9e\x55\x46\x9f\x7c\x50\x8e\x84" 4265 + "\x54\x20\x98\xd7\x6c\x40\x1e\xdb" 4266 + "\x69\x34\x78\x61\x24\x21\x9c\x8a" 4267 + "\xb3\x62\x31\x8b\x6e\xf5\x2a\x35" 4268 + "\x86\x13\xb1\x6c\x64\x2e\x41\xa5" 4269 + "\x05\xf2\x42\xba\xd2\x3a\x0d\x8e" 4270 + "\x8a\x59\x94\x3c\xcf\x36\x27\x82" 4271 + "\xc2\x45\xee\x58\xcd\x88\xb4\xec" 4272 + "\xde\xb2\x96\x0a\xaf\x38\x6f\x88" 4273 + "\xd7\xd8\xe1\xdf\xb9\x96\xa9\x0a" 4274 + "\xb1\x95\x28\x86\x20\xe9\x17\x49" 4275 + "\xa2\x29\x38\xaa\xa5\xe9\x6e\xf1" 4276 + "\x19\x27\xc0\xd5\x2a\x22\xc3\x0b" 4277 + "\xdb\x7c\x73\x10\xb9\xba\x89\x76" 4278 + "\x54\xae\x7d\x71\xb3\x93\xf6\x32" 4279 + "\xe6\x47\x43\x55\xac\xa0\x0d\xc2" 4280 + "\x93\x27\x4a\x8e\x0e\x74\x15\xc7" 4281 + "\x0b\x85\xd9\x0c\xa9\x30\x7a\x3e" 4282 + "\xea\x8f\x85\x6d\x3a\x12\x4f\x72" 4283 + "\x69\x58\x7a\x80\xbb\xb5\x97\xf3" 4284 + "\xcf\x70\xd2\x5d\xdd\x4d\x21\x79" 4285 + "\x54\x4d\xe4\x05\xe8\xbd\xc2\x62" 4286 + "\xb1\x3b\x77\x1c\xd6\x5c\xf3\xa0" 4287 + "\x79\x00\xa8\x6c\x29\xd9\x18\x24" 4288 + "\x36\xa2\x46\xc0\x96\x65\x7f\xbd" 4289 + "\x2a\xed\x36\x16\x0c\xaa\x9f\xf4" 4290 + "\xc5\xb4\xe2\x12\xed\x69\xed\x4f" 4291 + "\x26\x2c\x39\x52\x89\x98\xe7\x2c" 4292 + "\x99\xa4\x9e\xa3\x9b\x99\x46\x7a" 4293 + "\x3a\xdc\xa8\x59\xa3\xdb\xc3\x3b" 4294 + "\x95\x0d\x3b\x09\x6e\xee\x83\x5d" 4295 + "\x32\x4d\xed\xab\xfa\x98\x14\x4e" 4296 + "\xc3\x15\x45\x53\x61\xc4\x93\xbd" 4297 + "\x90\xf4\x99\x95\x4c\xe6\x76\x92" 4298 + "\x29\x90\x46\x30\x92\x69\x7d\x13" 4299 + "\xf2\xa5\xcd\x69\x49\x44\xb2\x0f" 4300 + "\x63\x40\x36\x5f\x09\xe2\x78\xf8" 4301 + "\x91\xe3\xe2\xfa\x10\xf7\xc8\x24" 4302 + "\xa8\x89\x32\x5c\x37\x25\x1d\xb2" 4303 + "\xea\x17\x8a\x0a\xa9\x64\xc3\x7c" 4304 + "\x3c\x7c\xbd\xc6\x79\x34\xe7\xe2" 4305 + "\x85\x8e\xbf\xf8\xde\x92\xa0\xae" 4306 + "\x20\xc4\xf6\xbb\x1f\x38\x19\x0e" 4307 + "\xe8\x79\x9c\xa1\x23\xe9\x54\x7e" 4308 + "\x37\x2f\xe2\x94\x32\xaf\xa0\x23" 4309 + "\x49\xe4\xc0\xb3\xac\x00\x8f\x36" 4310 + "\x05\xc4\xa6\x96\xec\x05\x98\x4f" 4311 + "\x96\x67\x57\x1f\x20\x86\x1b\x2d" 4312 + "\x69\xe4\x29\x93\x66\x5f\xaf\x6b" 4313 + "\x88\x26\x2c\x67\x02\x4b\x52\xd0" 4314 + "\x83\x7a\x43\x1f\xc0\x71\x15\x25" 4315 + "\x77\x65\x08\x60\x11\x76\x4c\x8d" 4316 + "\xed\xa9\x27\xc6\xb1\x2a\x2c\x6a" 4317 + "\x4a\x97\xf5\xc6\xb7\x70\x42\xd3" 4318 + "\x03\xd1\x24\x95\xec\x6d\xab\x38" 4319 + "\x72\xce\xe2\x8b\x33\xd7\x51\x09" 4320 + "\xdc\x45\xe0\x09\x96\x32\xf3\xc4" 4321 + "\x84\xdc\x73\x73\x2d\x1b\x11\x98" 4322 + "\xc5\x0e\x69\x28\x94\xc7\xb5\x4d" 4323 + "\xc8\x8a\xd0\xaa\x13\x2e\x18\x74" 4324 + "\xdd\xd1\x1e\xf3\x90\xe8\xfc\x9a" 4325 + "\x72\x4a\x0e\xd1\xe4\xfb\x0d\x96" 4326 + "\xd1\x0c\x79\x85\x1b\x1c\xfe\xe1" 4327 + "\x62\x8f\x7a\x73\x32\xab\xc8\x18" 4328 + "\x69\xe3\x34\x30\xdf\x13\xa6\xe5" 4329 + "\xe8\x0e\x67\x7f\x81\x11\xb4\x60" 4330 + "\xc7\xbd\x79\x65\x50\xdc\xc4\x5b" 4331 + "\xde\x39\xa4\x01\x72\x63\xf3\xd1" 4332 + "\x64\x4e\xdf\xfc\x27\x92\x37\x0d" 4333 + "\x57\xcd\x11\x4f\x11\x04\x8e\x1d" 4334 + "\x16\xf7\xcd\x92\x9a\x99\x30\x14" 4335 + "\xf1\x7c\x67\x1b\x1f\x41\x0b\xe8" 4336 + "\x32\xe8\xb8\xc1\x4f\x54\x86\x4f" 4337 + "\xe5\x79\x81\x73\xcd\x43\x59\x68" 4338 + "\x73\x02\x3b\x78\x21\x72\x43\x00" 4339 + "\x49\x17\xf7\x00\xaf\x68\x24\x53" 4340 + "\x05\x0a\xc3\x33\xe0\x33\x3f\x69" 4341 + "\xd2\x84\x2f\x0b\xed\xde\x04\xf4" 4342 + "\x11\x94\x13\x69\x51\x09\x28\xde" 4343 + "\x57\x5c\xef\xdc\x9a\x49\x1c\x17" 4344 + "\x97\xf3\x96\xc1\x7f\x5d\x2e\x7d" 4345 + "\x55\xb8\xb3\x02\x09\xb3\x1f\xe7" 4346 + "\xc9\x8d\xa3\x36\x34\x8a\x77\x13" 4347 + "\x30\x63\x4c\xa5\xcd\xc3\xe0\x7e" 4348 + "\x05\xa1\x7b\x0c\xcb\x74\x47\x31" 4349 + "\x62\x03\x43\xf1\x87\xb4\xb0\x85" 4350 + "\x87\x8e\x4b\x25\xc7\xcf\xae\x4b" 4351 + "\x36\x46\x3e\x62\xbc\x6f\xeb\x5f" 4352 + "\x73\xac\xe6\x07\xee\xc1\xa1\xd6" 4353 + "\xc4\xab\xc9\xd6\x89\x45\xe1\xf1" 4354 + "\x04\x4e\x1a\x6f\xbb\x4f\x3a\xa3" 4355 + "\xa0\xcb\xa3\x0a\xd8\x71\x35\x55" 4356 + "\xe4\xbc\x2e\x04\x06\xe6\xff\x5b" 4357 + "\x1c\xc0\x11\x7c\xc5\x17\xf3\x38" 4358 + "\xcf\xe9\xba\x0f\x0e\xef\x02\xc2" 4359 + "\x8d\xc6\xbc\x4b\x67\x20\x95\xd7" 4360 + "\x2c\x45\x5b\x86\x44\x8c\x6f\x2e" 4361 + "\x7e\x9f\x1c\x77\xba\x6b\x0e\xa3" 4362 + "\x69\xdc\xab\x24\x57\x60\x47\xc1" 4363 + "\xd1\xa5\x9d\x23\xe6\xb1\x37\xfe" 4364 + "\x93\xd2\x4c\x46\xf9\x0c\xc6\xfb" 4365 + "\xd6\x9d\x99\x69\xab\x7a\x07\x0c" 4366 + "\x65\xe7\xc4\x08\x96\xe2\xa5\x01" 4367 + "\x3f\x46\x07\x05\x7e\xe8\x9a\x90" 4368 + "\x50\xdc\xe9\x7a\xea\xa1\x39\x6e" 4369 + "\x66\xe4\x6f\xa5\x5f\xb2\xd9\x5b" 4370 + "\xf5\xdb\x2a\x32\xf0\x11\x6f\x7c" 4371 + "\x26\x10\x8f\x3d\x80\xe9\x58\xf7" 4372 + "\xe0\xa8\x57\xf8\xdb\x0e\xce\x99" 4373 + "\x63\x19\x3d\xd5\xec\x1b\x77\x69" 4374 + "\x98\xf6\xe4\x5f\x67\x17\x4b\x09" 4375 + "\x85\x62\x82\x70\x18\xe2\x9a\x78" 4376 + "\xe2\x62\xbd\xb4\xf1\x42\xc6\xfb" 4377 + "\x08\xd0\xbd\xeb\x4e\x09\xf2\xc8" 4378 + "\x1e\xdc\x3d\x32\x21\x56\x9c\x4f" 4379 + "\x35\xf3\x61\x06\x72\x84\xc4\x32" 4380 + "\xf2\xf1\xfa\x0b\x2f\xc3\xdb\x02" 4381 + "\x04\xc2\xde\x57\x64\x60\x8d\xcf" 4382 + "\xcb\x86\x5d\x97\x3e\xb1\x9c\x01" 4383 + "\xd6\x28\x8f\x99\xbc\x46\xeb\x05" 4384 + "\xaf\x7e\xb8\x21\x2a\x56\x85\x1c" 4385 + "\xb3\x71\xa0\xde\xca\x96\xf1\x78" 4386 + "\x49\xa2\x99\x81\x80\x5c\x01\xf5" 4387 + "\xa0\xa2\x56\x63\xe2\x70\x07\xa5" 4388 + "\x95\xd6\x85\xeb\x36\x9e\xa9\x51" 4389 + "\x66\x56\x5f\x1d\x02\x19\xe2\xf6" 4390 + "\x4f\x73\x38\x09\x75\x64\x48\xe0" 4391 + "\xf1\x7e\x0e\xe8\x9d\xf9\xed\x94" 4392 + "\xfe\x16\x26\x62\x49\x74\xf4\xb0" 4393 + "\xd4\xa9\x6c\xb0\xfd\x53\xe9\x81" 4394 + "\xe0\x7a\xbf\xcf\xb5\xc4\x01\x81" 4395 + "\x79\x99\x77\x01\x3b\xe9\xa2\xb6" 4396 + "\xe6\x6a\x8a\x9e\x56\x1c\x8d\x1e" 4397 + "\x8f\x06\x55\x2c\x6c\xdc\x92\x87" 4398 + "\x64\x3b\x4b\x19\xa1\x13\x64\x1d" 4399 + "\x4a\xe9\xc0\x00\xb8\x95\xef\x6b" 4400 + "\x1a\x86\x6d\x37\x52\x02\xc2\xe0" 4401 + "\xc8\xbb\x42\x0c\x02\x21\x4a\xc9" 4402 + "\xef\xa0\x54\xe4\x5e\x16\x53\x81" 4403 + "\x70\x62\x10\xaf\xde\xb8\xb5\xd3" 4404 + "\xe8\x5e\x6c\xc3\x8a\x3e\x18\x07" 4405 + "\xf2\x2f\x7d\xa7\xe1\x3d\x4e\xb4" 4406 + "\x26\xa7\xa3\x93\x86\xb2\x04\x1e" 4407 + "\x53\x5d\x86\xd6\xde\x65\xca\xe3" 4408 + "\x4e\xc1\xcf\xef\xc8\x70\x1b\x83" 4409 + "\x13\xdd\x18\x8b\x0d\x76\xd2\xf6" 4410 + "\x37\x7a\x93\x7a\x50\x11\x9f\x96" 4411 + "\x86\x25\xfd\xac\xdc\xbe\x18\x93" 4412 + "\x19\x6b\xec\x58\x4f\xb9\x75\xa7" 4413 + "\xdd\x3f\x2f\xec\xc8\x5a\x84\xab" 4414 + "\xd5\xe4\x8a\x07\xf6\x4d\x23\xd6" 4415 + "\x03\xfb\x03\x6a\xea\x66\xbf\xd4" 4416 + "\xb1\x34\xfb\x78\xe9\x55\xdc\x7c" 4417 + "\x3d\x9c\xe5\x9a\xac\xc3\x7a\x80" 4418 + "\x24\x6d\xa0\xef\x25\x7c\xb7\xea" 4419 + "\xce\x4d\x5f\x18\x60\xce\x87\x22" 4420 + "\x66\x2f\xd5\xdd\xdd\x02\x21\x75" 4421 + "\x82\xa0\x1f\x58\xc6\xd3\x62\xf7" 4422 + "\x32\xd8\xaf\x1e\x07\x77\x51\x96" 4423 + "\xd5\x6b\x1e\x7e\x80\x02\xe8\x67" 4424 + "\xea\x17\x0b\x10\xd2\x3f\x28\x25" 4425 + "\x4f\x05\x77\x02\x14\x69\xf0\x2c" 4426 + "\xbe\x0c\xf1\x74\x30\xd1\xb9\x9b" 4427 + "\xfc\x8c\xbb\x04\x16\xd9\xba\xc3" 4428 + "\xbc\x91\x8a\xc4\x30\xa4\xb0\x12" 4429 + "\x4c\x21\x87\xcb\xc9\x1d\x16\x96" 4430 + "\x07\x6f\x23\x54\xb9\x6f\x79\xe5" 4431 + "\x64\xc0\x64\xda\xb1\xae\xdd\x60" 4432 + "\x6c\x1a\x9d\xd3\x04\x8e\x45\xb0" 4433 + "\x92\x61\xd0\x48\x81\xed\x5e\x1d" 4434 + "\xa0\xc9\xa4\x33\xc7\x13\x51\x5d" 4435 + "\x7f\x83\x73\xb6\x70\x18\x65\x3e" 4436 + "\x2f\x0e\x7a\x12\x39\x98\xab\xd8" 4437 + "\x7e\x6f\xa3\xd1\xba\x56\xad\xbd" 4438 + "\xf0\x03\x01\x1c\x85\x35\x9f\xeb" 4439 + "\x19\x63\xa1\xaf\xfe\x2d\x35\x50" 4440 + "\x39\xa0\x65\x7c\x95\x7e\x6b\xfe" 4441 + "\xc1\xac\x07\x7c\x98\x4f\xbe\x57" 4442 + "\xa7\x22\xec\xe2\x7e\x29\x09\x53" 4443 + "\xe8\xbf\xb4\x7e\x3f\x8f\xfc\x14" 4444 + "\xce\x54\xf9\x18\x58\xb5\xff\x44" 4445 + "\x05\x9d\xce\x1b\xb6\x82\x23\xc8" 4446 + "\x2e\xbc\x69\xbb\x4a\x29\x0f\x65" 4447 + "\x94\xf0\x63\x06\x0e\xef\x8c\xbd" 4448 + "\xff\xfd\xb0\x21\x6e\x57\x05\x75" 4449 + "\xda\xd5\xc4\xeb\x8d\x32\xf7\x50" 4450 + "\xd3\x6f\x22\xed\x5f\x8e\xa2\x5b" 4451 + "\x80\x8c\xc8\x78\x40\x24\x4b\x89" 4452 + "\x30\xce\x7a\x97\x0e\xc4\xaf\xef" 4453 + "\x9b\xb4\xcd\x66\x74\x14\x04\x2b" 4454 + "\xf7\xce\x0b\x1c\x6e\xc2\x78\x8c" 4455 + "\xca\xc5\xd0\x1c\x95\x4a\x91\x2d" 4456 + "\xa7\x20\xeb\x86\x52\xb7\x67\xd8" 4457 + "\x0c\xd6\x04\x14\xde\x51\x74\x75" 4458 + "\xe7\x11\xb4\x87\xa3\x3d\x2d\xad" 4459 + "\x4f\xef\xa0\x0f\x70\x00\x6d\x13" 4460 + "\x19\x1d\x41\x50\xe9\xd8\xf0\x32" 4461 + "\x71\xbc\xd3\x11\xf2\xac\xbe\xaf" 4462 + "\x75\x46\x65\x4e\x07\x34\x37\xa3" 4463 + "\x89\xfe\x75\xd4\x70\x4c\xc6\x3f" 4464 + "\x69\x24\x0e\x38\x67\x43\x8c\xde" 4465 + "\x06\xb5\xb8\xe7\xc4\xf0\x41\x8f" 4466 + "\xf0\xbd\x2f\x0b\xb9\x18\xf8\xde" 4467 + "\x64\xb1\xdb\xee\x00\x50\x77\xe1" 4468 + "\xc7\xff\xa6\xfa\xdd\x70\xf4\xe3" 4469 + "\x93\xe9\x77\x35\x3d\x4b\x2f\x2b" 4470 + "\x6d\x55\xf0\xfc\x88\x54\x4e\x89" 4471 + "\xc1\x8a\x23\x31\x2d\x14\x2a\xb8" 4472 + "\x1b\x15\xdd\x9e\x6e\x7b\xda\x05" 4473 + "\x91\x7d\x62\x64\x96\x72\xde\xfc" 4474 + "\xc1\xec\xf0\x23\x51\x6f\xdb\x5b" 4475 + "\x1d\x08\x57\xce\x09\xb8\xf6\xcd" 4476 + "\x8d\x95\xf2\x20\xbf\x0f\x20\x57" 4477 + "\x98\x81\x84\x4f\x15\x5c\x76\xe7" 4478 + "\x3e\x0a\x3a\x6c\xc4\x8a\xbe\x78" 4479 + "\x74\x77\xc3\x09\x4b\x5d\x48\xe4" 4480 + "\xc8\xcb\x0b\xea\x17\x28\xcf\xcf" 4481 + "\x31\x32\x44\xa4\xe5\x0e\x1a\x98" 4482 + "\x94\xc4\xf0\xff\xae\x3e\x44\xe8" 4483 + "\xa5\xb3\xb5\x37\x2f\xe8\xaf\x6f" 4484 + "\x28\xc1\x37\x5f\x31\xd2\xb9\x33" 4485 + "\xb1\xb2\x52\x94\x75\x2c\x29\x59" 4486 + "\x06\xc2\x25\xe8\x71\x65\x4e\xed" 4487 + "\xc0\x9c\xb1\xbb\x25\xdc\x6c\xe7" 4488 + "\x4b\xa5\x7a\x54\x7a\x60\xff\x7a" 4489 + "\xe0\x50\x40\x96\x35\x63\xe4\x0b" 4490 + "\x76\xbd\xa4\x65\x00\x1b\x57\x88" 4491 + "\xae\xed\x39\x88\x42\x11\x3c\xed" 4492 + "\x85\x67\x7d\xb9\x68\x82\xe9\x43" 4493 + "\x3c\x47\x53\xfa\xe8\xf8\x9f\x1f" 4494 + "\x9f\xef\x0f\xf7\x30\xd9\x30\x0e" 4495 + "\xb9\x9f\x69\x18\x2f\x7e\xf8\xf8" 4496 + "\xf8\x8c\x0f\xd4\x02\x4d\xea\xcd" 4497 + "\x0a\x9c\x6f\x71\x6d\x5a\x4c\x60" 4498 + "\xce\x20\x56\x32\xc6\xc5\x99\x1f" 4499 + "\x09\xe6\x4e\x18\x1a\x15\x13\xa8" 4500 + "\x7d\xb1\x6b\xc0\xb2\x6d\xf8\x26" 4501 + "\x66\xf8\x3d\x18\x74\x70\x66\x7a" 4502 + "\x34\x17\xde\xba\x47\xf1\x06\x18" 4503 + "\xcb\xaf\xeb\x4a\x1e\x8f\xa7\x77" 4504 + "\xe0\x3b\x78\x62\x66\xc9\x10\xea" 4505 + "\x1f\xb7\x29\x0a\x45\xa1\x1d\x1e" 4506 + "\x1d\xe2\x65\x61\x50\x9c\xd7\x05" 4507 + "\xf2\x0b\x5b\x12\x61\x02\xc8\xe5" 4508 + "\x63\x4f\x20\x0c\x07\x17\x33\x5e" 4509 + "\x03\x9a\x53\x0f\x2e\x55\xfe\x50" 4510 + "\x43\x7d\xd0\xb6\x7e\x5a\xda\xae" 4511 + "\x58\xef\x15\xa9\x83\xd9\x46\xb1" 4512 + "\x42\xaa\xf5\x02\x6c\xce\x92\x06" 4513 + "\x1b\xdb\x66\x45\x91\x79\xc2\x2d" 4514 + "\xe6\x53\xd3\x14\xfd\xbb\x44\x63" 4515 + "\xc6\xd7\x3d\x7a\x0c\x75\x78\x9d" 4516 + "\x5c\xa6\x39\xb3\xe5\x63\xca\x8b" 4517 + "\xfe\xd3\xef\x60\x83\xf6\x8e\x70" 4518 + "\xb6\x67\xc7\x77\xed\x23\xef\x4c" 4519 + "\xf0\xed\x2d\x07\x59\x6f\xc1\x01" 4520 + "\x34\x37\x08\xab\xd9\x1f\x09\xb1" 4521 + "\xce\x5b\x17\xff\x74\xf8\x9c\xd5" 4522 + "\x2c\x56\x39\x79\x0f\x69\x44\x75" 4523 + "\x58\x27\x01\xc4\xbf\xa7\xa1\x1d" 4524 + "\x90\x17\x77\x86\x5a\x3f\xd9\xd1" 4525 + "\x0e\xa0\x10\xf8\xec\x1e\xa5\x7f" 4526 + "\x5e\x36\xd1\xe3\x04\x2c\x70\xf7" 4527 + "\x8e\xc0\x98\x2f\x6c\x94\x2b\x41" 4528 + "\xb7\x60\x00\xb7\x2e\xb8\x02\x8d" 4529 + "\xb8\xb0\xd3\x86\xba\x1d\xd7\x90" 4530 + "\xd6\xb6\xe1\xfc\xd7\xd8\x28\x06" 4531 + "\x63\x9b\xce\x61\x24\x79\xc0\x70" 4532 + "\x52\xd0\xb6\xd4\x28\x95\x24\x87" 4533 + "\x03\x1f\xb7\x9a\xda\xa3\xfb\x52" 4534 + "\x5b\x68\xe7\x4c\x8c\x24\xe1\x42" 4535 + "\xf7\xd5\xfd\xad\x06\x32\x9f\xba" 4536 + "\xc1\xfc\xdd\xc6\xfc\xfc\xb3\x38" 4537 + "\x74\x56\x58\x40\x02\x37\x52\x2c" 4538 + "\x55\xcc\xb3\x9e\x7a\xe9\xd4\x38" 4539 + "\x41\x5e\x0c\x35\xe2\x11\xd1\x13" 4540 + "\xf8\xb7\x8d\x72\x6b\x22\x2a\xb0" 4541 + "\xdb\x08\xba\x35\xb9\x3f\xc8\xd3" 4542 + "\x24\x90\xec\x58\xd2\x09\xc7\x2d" 4543 + "\xed\x38\x80\x36\x72\x43\x27\x49" 4544 + "\x4a\x80\x8a\xa2\xe8\xd3\xda\x30" 4545 + "\x7d\xb6\x82\x37\x86\x92\x86\x3e" 4546 + "\x08\xb2\x28\x5a\x55\x44\x24\x7d" 4547 + "\x40\x48\x8a\xb6\x89\x58\x08\xa0" 4548 + "\xd6\x6d\x3a\x17\xbf\xf6\x54\xa2" 4549 + "\xf5\xd3\x8c\x0f\x78\x12\x57\x8b" 4550 + "\xd5\xc2\xfd\x58\x5b\x7f\x38\xe3" 4551 + "\xcc\xb7\x7c\x48\xb3\x20\xe8\x81" 4552 + "\x14\x32\x45\x05\xe0\xdb\x9f\x75" 4553 + "\x85\xb4\x6a\xfc\x95\xe3\x54\x22" 4554 + "\x12\xee\x30\xfe\xd8\x30\xef\x34" 4555 + "\x50\xab\x46\x30\x98\x2f\xb7\xc0" 4556 + "\x15\xa2\x83\xb6\xf2\x06\x21\xa2" 4557 + "\xc3\x26\x37\x14\xd1\x4d\xb5\x10" 4558 + "\x52\x76\x4d\x6a\xee\xb5\x2b\x15" 4559 + "\xb7\xf9\x51\xe8\x2a\xaf\xc7\xfa" 4560 + "\x77\xaf\xb0\x05\x4d\xd1\x68\x8e" 4561 + "\x74\x05\x9f\x9d\x93\xa5\x3e\x7f" 4562 + "\x4e\x5f\x9d\xcb\x09\xc7\x83\xe3" 4563 + "\x02\x9d\x27\x1f\xef\x85\x05\x8d" 4564 + "\xec\x55\x88\x0f\x0d\x7c\x4c\xe8" 4565 + "\xa1\x75\xa0\xd8\x06\x47\x14\xef" 4566 + "\xaa\x61\xcf\x26\x15\xad\xd8\xa3" 4567 + "\xaa\x75\xf2\x78\x4a\x5a\x61\xdf" 4568 + "\x8b\xc7\x04\xbc\xb2\x32\xd2\x7e" 4569 + "\x42\xee\xb4\x2f\x51\xff\x7b\x2e" 4570 + "\xd3\x02\xe8\xdc\x5d\x0d\x50\xdc" 4571 + "\xae\xb7\x46\xf9\xa8\xe6\xd0\x16" 4572 + "\xcc\xe6\x2c\x81\xc7\xad\xe9\xf0" 4573 + "\x05\x72\x6d\x3d\x0a\x7a\xa9\x02" 4574 + "\xac\x82\x93\x6e\xb6\x1c\x28\xfc" 4575 + "\x44\x12\xfb\x73\x77\xd4\x13\x39" 4576 + "\x29\x88\x8a\xf3\x5c\xa6\x36\xa0" 4577 + "\x2a\xed\x7e\xb1\x1d\xd6\x4c\x6b" 4578 + "\x41\x01\x18\x5d\x5d\x07\x97\xa6" 4579 + "\x4b\xef\x31\x18\xea\xac\xb1\x84" 4580 + "\x21\xed\xda\x86", 4611 4581 .rlen = 4100, 4612 4582 }, 4613 4583 }; 4614 4584 4615 4585 static struct cipher_testvec aes_ctr_dec_tv_template[] = { 4616 4586 { /* From RFC 3686 */ 4617 - .key = { 0xae, 0x68, 0x52, 0xf8, 0x12, 0x10, 0x67, 0xcc, 4618 - 0x4b, 0xf7, 0xa5, 0x76, 0x55, 0x77, 0xf3, 0x9e, 4619 - 0x00, 0x00, 0x00, 0x30 }, 4587 + .key = "\xae\x68\x52\xf8\x12\x10\x67\xcc" 4588 + "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e" 4589 + "\x00\x00\x00\x30", 4620 4590 .klen = 20, 4621 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 4622 - .input = { 0xe4, 0x09, 0x5d, 0x4f, 0xb7, 0xa7, 0xb3, 0x79, 4623 - 0x2d, 0x61, 0x75, 0xa3, 0x26, 0x13, 0x11, 0xb8 }, 4591 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 4592 + .input = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79" 4593 + "\x2d\x61\x75\xa3\x26\x13\x11\xb8", 4624 4594 .ilen = 16, 4625 - .result = { "Single block msg" }, 4595 + .result = "Single block msg", 4626 4596 .rlen = 16, 4627 4597 }, { 4628 - .key = { 0x7e, 0x24, 0x06, 0x78, 0x17, 0xfa, 0xe0, 0xd7, 4629 - 0x43, 0xd6, 0xce, 0x1f, 0x32, 0x53, 0x91, 0x63, 4630 - 0x00, 0x6c, 0xb6, 0xdb }, 4598 + .key = "\x7e\x24\x06\x78\x17\xfa\xe0\xd7" 4599 + "\x43\xd6\xce\x1f\x32\x53\x91\x63" 4600 + "\x00\x6c\xb6\xdb", 4631 4601 .klen = 20, 4632 - .iv = { 0xc0, 0x54, 0x3b, 0x59, 0xda, 0x48, 0xd9, 0x0b }, 4633 - .input = { 0x51, 0x04, 0xa1, 0x06, 0x16, 0x8a, 0x72, 0xd9, 4634 - 0x79, 0x0d, 0x41, 0xee, 0x8e, 0xda, 0xd3, 0x88, 4635 - 0xeb, 0x2e, 0x1e, 0xfc, 0x46, 0xda, 0x57, 0xc8, 4636 - 0xfc, 0xe6, 0x30, 0xdf, 0x91, 0x41, 0xbe, 0x28 }, 4637 - .ilen = 32, 4638 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 4639 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 4640 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 4641 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 4602 + .iv = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b", 4603 + .input = "\x51\x04\xa1\x06\x16\x8a\x72\xd9" 4604 + "\x79\x0d\x41\xee\x8e\xda\xd3\x88" 4605 + "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8" 4606 + "\xfc\xe6\x30\xdf\x91\x41\xbe\x28", 4607 + .ilen = 32, 4608 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 4609 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 4610 + "\x10\x11\x12\x13\x14\x15\x16\x17" 4611 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 4642 4612 .rlen = 32, 4643 4613 }, { 4644 - .key = { 0x16, 0xaf, 0x5b, 0x14, 0x5f, 0xc9, 0xf5, 0x79, 4645 - 0xc1, 0x75, 0xf9, 0x3e, 0x3b, 0xfb, 0x0e, 0xed, 4646 - 0x86, 0x3d, 0x06, 0xcc, 0xfd, 0xb7, 0x85, 0x15, 4647 - 0x00, 0x00, 0x00, 0x48 }, 4648 - .klen = 28, 4649 - .iv = { 0x36, 0x73, 0x3c, 0x14, 0x7d, 0x6d, 0x93, 0xcb }, 4650 - .input = { 0x4b, 0x55, 0x38, 0x4f, 0xe2, 0x59, 0xc9, 0xc8, 4651 - 0x4e, 0x79, 0x35, 0xa0, 0x03, 0xcb, 0xe9, 0x28 }, 4652 - .ilen = 16, 4653 - .result = { "Single block msg" }, 4614 + .key = "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79" 4615 + "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed" 4616 + "\x86\x3d\x06\xcc\xfd\xb7\x85\x15" 4617 + "\x00\x00\x00\x48", 4618 + .klen = 28, 4619 + .iv = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb", 4620 + .input = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8" 4621 + "\x4e\x79\x35\xa0\x03\xcb\xe9\x28", 4622 + .ilen = 16, 4623 + .result = "Single block msg", 4654 4624 .rlen = 16, 4655 4625 }, { 4656 - .key = { 0x7c, 0x5c, 0xb2, 0x40, 0x1b, 0x3d, 0xc3, 0x3c, 4657 - 0x19, 0xe7, 0x34, 0x08, 0x19, 0xe0, 0xf6, 0x9c, 4658 - 0x67, 0x8c, 0x3d, 0xb8, 0xe6, 0xf6, 0xa9, 0x1a, 4659 - 0x00, 0x96, 0xb0, 0x3b }, 4626 + .key = "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c" 4627 + "\x19\xe7\x34\x08\x19\xe0\xf6\x9c" 4628 + "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a" 4629 + "\x00\x96\xb0\x3b", 4660 4630 .klen = 28, 4661 - .iv = { 0x02, 0x0c, 0x6e, 0xad, 0xc2, 0xcb, 0x50, 0x0d }, 4662 - .input = { 0x45, 0x32, 0x43, 0xfc, 0x60, 0x9b, 0x23, 0x32, 4663 - 0x7e, 0xdf, 0xaa, 0xfa, 0x71, 0x31, 0xcd, 0x9f, 4664 - 0x84, 0x90, 0x70, 0x1c, 0x5a, 0xd4, 0xa7, 0x9c, 4665 - 0xfc, 0x1f, 0xe0, 0xff, 0x42, 0xf4, 0xfb, 0x00 }, 4631 + .iv = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d", 4632 + .input = "\x45\x32\x43\xfc\x60\x9b\x23\x32" 4633 + "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f" 4634 + "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c" 4635 + "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00", 4666 4636 .ilen = 32, 4667 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 4668 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 4669 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 4670 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 4671 - .rlen = 32, 4637 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 4638 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 4639 + "\x10\x11\x12\x13\x14\x15\x16\x17" 4640 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 4641 + .rlen = 32, 4672 4642 }, { 4673 - .key = { 0x77, 0x6b, 0xef, 0xf2, 0x85, 0x1d, 0xb0, 0x6f, 4674 - 0x4c, 0x8a, 0x05, 0x42, 0xc8, 0x69, 0x6f, 0x6c, 4675 - 0x6a, 0x81, 0xaf, 0x1e, 0xec, 0x96, 0xb4, 0xd3, 4676 - 0x7f, 0xc1, 0xd6, 0x89, 0xe6, 0xc1, 0xc1, 0x04, 4677 - 0x00, 0x00, 0x00, 0x60 }, 4643 + .key = "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f" 4644 + "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c" 4645 + "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3" 4646 + "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04" 4647 + "\x00\x00\x00\x60", 4678 4648 .klen = 36, 4679 - .iv = { 0xdb, 0x56, 0x72, 0xc9, 0x7a, 0xa8, 0xf0, 0xb2 }, 4680 - .input = { 0x14, 0x5a, 0xd0, 0x1d, 0xbf, 0x82, 0x4e, 0xc7, 4681 - 0x56, 0x08, 0x63, 0xdc, 0x71, 0xe3, 0xe0, 0xc0 }, 4649 + .iv = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2", 4650 + .input = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7" 4651 + "\x56\x08\x63\xdc\x71\xe3\xe0\xc0", 4682 4652 .ilen = 16, 4683 - .result = { "Single block msg" }, 4684 - .rlen = 16, 4653 + .result = "Single block msg", 4654 + .rlen = 16, 4685 4655 }, { 4686 - .key = { 0xf6, 0xd6, 0x6d, 0x6b, 0xd5, 0x2d, 0x59, 0xbb, 4687 - 0x07, 0x96, 0x36, 0x58, 0x79, 0xef, 0xf8, 0x86, 4688 - 0xc6, 0x6d, 0xd5, 0x1a, 0x5b, 0x6a, 0x99, 0x74, 4689 - 0x4b, 0x50, 0x59, 0x0c, 0x87, 0xa2, 0x38, 0x84, 4690 - 0x00, 0xfa, 0xac, 0x24 }, 4691 - .klen = 36, 4692 - .iv = { 0xc1, 0x58, 0x5e, 0xf1, 0x5a, 0x43, 0xd8, 0x75 }, 4693 - .input = { 0xf0, 0x5e, 0x23, 0x1b, 0x38, 0x94, 0x61, 0x2c, 4694 - 0x49, 0xee, 0x00, 0x0b, 0x80, 0x4e, 0xb2, 0xa9, 4695 - 0xb8, 0x30, 0x6b, 0x50, 0x8f, 0x83, 0x9d, 0x6a, 4696 - 0x55, 0x30, 0x83, 0x1d, 0x93, 0x44, 0xaf, 0x1c }, 4656 + .key = "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb" 4657 + "\x07\x96\x36\x58\x79\xef\xf8\x86" 4658 + "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74" 4659 + "\x4b\x50\x59\x0c\x87\xa2\x38\x84" 4660 + "\x00\xfa\xac\x24", 4661 + .klen = 36, 4662 + .iv = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75", 4663 + .input = "\xf0\x5e\x23\x1b\x38\x94\x61\x2c" 4664 + "\x49\xee\x00\x0b\x80\x4e\xb2\xa9" 4665 + "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a" 4666 + "\x55\x30\x83\x1d\x93\x44\xaf\x1c", 4697 4667 .ilen = 32, 4698 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 4699 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 4700 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 4701 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 4668 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 4669 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 4670 + "\x10\x11\x12\x13\x14\x15\x16\x17" 4671 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 4702 4672 .rlen = 32, 4703 4673 }, 4704 4674 }; 4705 4675 4706 4676 static struct aead_testvec aes_gcm_enc_tv_template[] = { 4707 4677 { /* From McGrew & Viega - http://citeseer.ist.psu.edu/656989.html */ 4678 + .key = zeroed_string, 4708 4679 .klen = 16, 4709 - .result = { 0x58, 0xe2, 0xfc, 0xce, 0xfa, 0x7e, 0x30, 0x61, 4710 - 0x36, 0x7f, 0x1d, 0x57, 0xa4, 0xe7, 0x45, 0x5a }, 4680 + .result = "\x58\xe2\xfc\xce\xfa\x7e\x30\x61" 4681 + "\x36\x7f\x1d\x57\xa4\xe7\x45\x5a", 4711 4682 .rlen = 16, 4712 4683 }, { 4684 + .key = zeroed_string, 4713 4685 .klen = 16, 4686 + .input = zeroed_string, 4714 4687 .ilen = 16, 4715 - .result = { 0x03, 0x88, 0xda, 0xce, 0x60, 0xb6, 0xa3, 0x92, 4716 - 0xf3, 0x28, 0xc2, 0xb9, 0x71, 0xb2, 0xfe, 0x78, 4717 - 0xab, 0x6e, 0x47, 0xd4, 0x2c, 0xec, 0x13, 0xbd, 4718 - 0xf5, 0x3a, 0x67, 0xb2, 0x12, 0x57, 0xbd, 0xdf }, 4688 + .result = "\x03\x88\xda\xce\x60\xb6\xa3\x92" 4689 + "\xf3\x28\xc2\xb9\x71\xb2\xfe\x78" 4690 + "\xab\x6e\x47\xd4\x2c\xec\x13\xbd" 4691 + "\xf5\x3a\x67\xb2\x12\x57\xbd\xdf", 4719 4692 .rlen = 32, 4720 4693 }, { 4721 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4722 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08 }, 4694 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4695 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08", 4723 4696 .klen = 16, 4724 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 4725 - 0xde, 0xca, 0xf8, 0x88 }, 4726 - .input = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 4727 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 4728 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 4729 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 4730 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 4731 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 4732 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 4733 - 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55 }, 4697 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4698 + "\xde\xca\xf8\x88", 4699 + .input = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4700 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4701 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4702 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4703 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 4704 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 4705 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 4706 + "\xba\x63\x7b\x39\x1a\xaf\xd2\x55", 4734 4707 .ilen = 64, 4735 - .result = { 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24, 4736 - 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c, 4737 - 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0, 4738 - 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e, 4739 - 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c, 4740 - 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05, 4741 - 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97, 4742 - 0x3d, 0x58, 0xe0, 0x91, 0x47, 0x3f, 0x59, 0x85, 4743 - 0x4d, 0x5c, 0x2a, 0xf3, 0x27, 0xcd, 0x64, 0xa6, 4744 - 0x2c, 0xf3, 0x5a, 0xbd, 0x2b, 0xa6, 0xfa, 0xb4 }, 4708 + .result = "\x42\x83\x1e\xc2\x21\x77\x74\x24" 4709 + "\x4b\x72\x21\xb7\x84\xd0\xd4\x9c" 4710 + "\xe3\xaa\x21\x2f\x2c\x02\xa4\xe0" 4711 + "\x35\xc1\x7e\x23\x29\xac\xa1\x2e" 4712 + "\x21\xd5\x14\xb2\x54\x66\x93\x1c" 4713 + "\x7d\x8f\x6a\x5a\xac\x84\xaa\x05" 4714 + "\x1b\xa3\x0b\x39\x6a\x0a\xac\x97" 4715 + "\x3d\x58\xe0\x91\x47\x3f\x59\x85" 4716 + "\x4d\x5c\x2a\xf3\x27\xcd\x64\xa6" 4717 + "\x2c\xf3\x5a\xbd\x2b\xa6\xfa\xb4", 4745 4718 .rlen = 80, 4746 4719 }, { 4747 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4748 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08 }, 4720 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4721 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08", 4749 4722 .klen = 16, 4750 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 4751 - 0xde, 0xca, 0xf8, 0x88 }, 4752 - .input = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 4753 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 4754 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 4755 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 4756 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 4757 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 4758 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 4759 - 0xba, 0x63, 0x7b, 0x39 }, 4723 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4724 + "\xde\xca\xf8\x88", 4725 + .input = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4726 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4727 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4728 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4729 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 4730 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 4731 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 4732 + "\xba\x63\x7b\x39", 4760 4733 .ilen = 60, 4761 - .assoc = { 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 4762 - 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 4763 - 0xab, 0xad, 0xda, 0xd2 }, 4734 + .assoc = "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 4735 + "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 4736 + "\xab\xad\xda\xd2", 4764 4737 .alen = 20, 4765 - .result = { 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24, 4766 - 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c, 4767 - 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0, 4768 - 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e, 4769 - 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c, 4770 - 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05, 4771 - 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97, 4772 - 0x3d, 0x58, 0xe0, 0x91, 4773 - 0x5b, 0xc9, 0x4f, 0xbc, 0x32, 0x21, 0xa5, 0xdb, 4774 - 0x94, 0xfa, 0xe9, 0x5a, 0xe7, 0x12, 0x1a, 0x47 }, 4738 + .result = "\x42\x83\x1e\xc2\x21\x77\x74\x24" 4739 + "\x4b\x72\x21\xb7\x84\xd0\xd4\x9c" 4740 + "\xe3\xaa\x21\x2f\x2c\x02\xa4\xe0" 4741 + "\x35\xc1\x7e\x23\x29\xac\xa1\x2e" 4742 + "\x21\xd5\x14\xb2\x54\x66\x93\x1c" 4743 + "\x7d\x8f\x6a\x5a\xac\x84\xaa\x05" 4744 + "\x1b\xa3\x0b\x39\x6a\x0a\xac\x97" 4745 + "\x3d\x58\xe0\x91" 4746 + "\x5b\xc9\x4f\xbc\x32\x21\xa5\xdb" 4747 + "\x94\xfa\xe9\x5a\xe7\x12\x1a\x47", 4775 4748 .rlen = 76, 4776 4749 }, { 4750 + .key = zeroed_string, 4777 4751 .klen = 24, 4778 - .result = { 0xcd, 0x33, 0xb2, 0x8a, 0xc7, 0x73, 0xf7, 0x4b, 4779 - 0xa0, 0x0e, 0xd1, 0xf3, 0x12, 0x57, 0x24, 0x35 }, 4752 + .result = "\xcd\x33\xb2\x8a\xc7\x73\xf7\x4b" 4753 + "\xa0\x0e\xd1\xf3\x12\x57\x24\x35", 4780 4754 .rlen = 16, 4781 4755 }, { 4756 + .key = zeroed_string, 4782 4757 .klen = 24, 4758 + .input = zeroed_string, 4783 4759 .ilen = 16, 4784 - .result = { 0x98, 0xe7, 0x24, 0x7c, 0x07, 0xf0, 0xfe, 0x41, 4785 - 0x1c, 0x26, 0x7e, 0x43, 0x84, 0xb0, 0xf6, 0x00, 4786 - 0x2f, 0xf5, 0x8d, 0x80, 0x03, 0x39, 0x27, 0xab, 4787 - 0x8e, 0xf4, 0xd4, 0x58, 0x75, 0x14, 0xf0, 0xfb }, 4760 + .result = "\x98\xe7\x24\x7c\x07\xf0\xfe\x41" 4761 + "\x1c\x26\x7e\x43\x84\xb0\xf6\x00" 4762 + "\x2f\xf5\x8d\x80\x03\x39\x27\xab" 4763 + "\x8e\xf4\xd4\x58\x75\x14\xf0\xfb", 4788 4764 .rlen = 32, 4789 4765 }, { 4790 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4791 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, 4792 - 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c }, 4766 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4767 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08" 4768 + "\xfe\xff\xe9\x92\x86\x65\x73\x1c", 4793 4769 .klen = 24, 4794 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 4795 - 0xde, 0xca, 0xf8, 0x88 }, 4796 - .input = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 4797 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 4798 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 4799 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 4800 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 4801 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 4802 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 4803 - 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55 }, 4770 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4771 + "\xde\xca\xf8\x88", 4772 + .input = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4773 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4774 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4775 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4776 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 4777 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 4778 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 4779 + "\xba\x63\x7b\x39\x1a\xaf\xd2\x55", 4804 4780 .ilen = 64, 4805 - .result = { 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41, 4806 - 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57, 4807 - 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84, 4808 - 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c, 4809 - 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25, 4810 - 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47, 4811 - 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9, 4812 - 0xcc, 0xda, 0x27, 0x10, 0xac, 0xad, 0xe2, 0x56, 4813 - 0x99, 0x24, 0xa7, 0xc8, 0x58, 0x73, 0x36, 0xbf, 4814 - 0xb1, 0x18, 0x02, 0x4d, 0xb8, 0x67, 0x4a, 0x14 }, 4781 + .result = "\x39\x80\xca\x0b\x3c\x00\xe8\x41" 4782 + "\xeb\x06\xfa\xc4\x87\x2a\x27\x57" 4783 + "\x85\x9e\x1c\xea\xa6\xef\xd9\x84" 4784 + "\x62\x85\x93\xb4\x0c\xa1\xe1\x9c" 4785 + "\x7d\x77\x3d\x00\xc1\x44\xc5\x25" 4786 + "\xac\x61\x9d\x18\xc8\x4a\x3f\x47" 4787 + "\x18\xe2\x44\x8b\x2f\xe3\x24\xd9" 4788 + "\xcc\xda\x27\x10\xac\xad\xe2\x56" 4789 + "\x99\x24\xa7\xc8\x58\x73\x36\xbf" 4790 + "\xb1\x18\x02\x4d\xb8\x67\x4a\x14", 4815 4791 .rlen = 80, 4816 4792 }, { 4817 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4818 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, 4819 - 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c }, 4793 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4794 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08" 4795 + "\xfe\xff\xe9\x92\x86\x65\x73\x1c", 4820 4796 .klen = 24, 4821 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 4822 - 0xde, 0xca, 0xf8, 0x88 }, 4823 - .input = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 4824 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 4825 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 4826 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 4827 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 4828 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 4829 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 4830 - 0xba, 0x63, 0x7b, 0x39 }, 4797 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4798 + "\xde\xca\xf8\x88", 4799 + .input = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4800 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4801 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4802 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4803 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 4804 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 4805 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 4806 + "\xba\x63\x7b\x39", 4831 4807 .ilen = 60, 4832 - .assoc = { 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 4833 - 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 4834 - 0xab, 0xad, 0xda, 0xd2 }, 4808 + .assoc = "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 4809 + "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 4810 + "\xab\xad\xda\xd2", 4835 4811 .alen = 20, 4836 - .result = { 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41, 4837 - 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57, 4838 - 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84, 4839 - 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c, 4840 - 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25, 4841 - 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47, 4842 - 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9, 4843 - 0xcc, 0xda, 0x27, 0x10, 4844 - 0x25, 0x19, 0x49, 0x8e, 0x80, 0xf1, 0x47, 0x8f, 4845 - 0x37, 0xba, 0x55, 0xbd, 0x6d, 0x27, 0x61, 0x8c }, 4812 + .result = "\x39\x80\xca\x0b\x3c\x00\xe8\x41" 4813 + "\xeb\x06\xfa\xc4\x87\x2a\x27\x57" 4814 + "\x85\x9e\x1c\xea\xa6\xef\xd9\x84" 4815 + "\x62\x85\x93\xb4\x0c\xa1\xe1\x9c" 4816 + "\x7d\x77\x3d\x00\xc1\x44\xc5\x25" 4817 + "\xac\x61\x9d\x18\xc8\x4a\x3f\x47" 4818 + "\x18\xe2\x44\x8b\x2f\xe3\x24\xd9" 4819 + "\xcc\xda\x27\x10" 4820 + "\x25\x19\x49\x8e\x80\xf1\x47\x8f" 4821 + "\x37\xba\x55\xbd\x6d\x27\x61\x8c", 4846 4822 .rlen = 76, 4847 4823 .np = 2, 4848 4824 .tap = { 32, 28 }, 4849 4825 .anp = 2, 4850 4826 .atap = { 8, 12 } 4851 4827 }, { 4828 + .key = zeroed_string, 4852 4829 .klen = 32, 4853 - .result = { 0x53, 0x0f, 0x8a, 0xfb, 0xc7, 0x45, 0x36, 0xb9, 4854 - 0xa9, 0x63, 0xb4, 0xf1, 0xc4, 0xcb, 0x73, 0x8b }, 4830 + .result = "\x53\x0f\x8a\xfb\xc7\x45\x36\xb9" 4831 + "\xa9\x63\xb4\xf1\xc4\xcb\x73\x8b", 4855 4832 .rlen = 16, 4856 4833 } 4857 4834 }; 4858 4835 4859 4836 static struct aead_testvec aes_gcm_dec_tv_template[] = { 4860 4837 { /* From McGrew & Viega - http://citeseer.ist.psu.edu/656989.html */ 4838 + .key = zeroed_string, 4861 4839 .klen = 32, 4862 - .input = { 0xce, 0xa7, 0x40, 0x3d, 0x4d, 0x60, 0x6b, 0x6e, 4863 - 0x07, 0x4e, 0xc5, 0xd3, 0xba, 0xf3, 0x9d, 0x18, 4864 - 0xd0, 0xd1, 0xc8, 0xa7, 0x99, 0x99, 0x6b, 0xf0, 4865 - 0x26, 0x5b, 0x98, 0xb5, 0xd4, 0x8a, 0xb9, 0x19 }, 4840 + .input = "\xce\xa7\x40\x3d\x4d\x60\x6b\x6e" 4841 + "\x07\x4e\xc5\xd3\xba\xf3\x9d\x18" 4842 + "\xd0\xd1\xc8\xa7\x99\x99\x6b\xf0" 4843 + "\x26\x5b\x98\xb5\xd4\x8a\xb9\x19", 4866 4844 .ilen = 32, 4845 + .result = zeroed_string, 4867 4846 .rlen = 16, 4868 4847 }, { 4869 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4870 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, 4871 - 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4872 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08 }, 4848 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4849 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08" 4850 + "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4851 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08", 4873 4852 .klen = 32, 4874 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 4875 - 0xde, 0xca, 0xf8, 0x88 }, 4876 - .input = { 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07, 4877 - 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d, 4878 - 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9, 4879 - 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa, 4880 - 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d, 4881 - 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38, 4882 - 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a, 4883 - 0xbc, 0xc9, 0xf6, 0x62, 0x89, 0x80, 0x15, 0xad, 4884 - 0xb0, 0x94, 0xda, 0xc5, 0xd9, 0x34, 0x71, 0xbd, 4885 - 0xec, 0x1a, 0x50, 0x22, 0x70, 0xe3, 0xcc, 0x6c }, 4853 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4854 + "\xde\xca\xf8\x88", 4855 + .input = "\x52\x2d\xc1\xf0\x99\x56\x7d\x07" 4856 + "\xf4\x7f\x37\xa3\x2a\x84\x42\x7d" 4857 + "\x64\x3a\x8c\xdc\xbf\xe5\xc0\xc9" 4858 + "\x75\x98\xa2\xbd\x25\x55\xd1\xaa" 4859 + "\x8c\xb0\x8e\x48\x59\x0d\xbb\x3d" 4860 + "\xa7\xb0\x8b\x10\x56\x82\x88\x38" 4861 + "\xc5\xf6\x1e\x63\x93\xba\x7a\x0a" 4862 + "\xbc\xc9\xf6\x62\x89\x80\x15\xad" 4863 + "\xb0\x94\xda\xc5\xd9\x34\x71\xbd" 4864 + "\xec\x1a\x50\x22\x70\xe3\xcc\x6c", 4886 4865 .ilen = 80, 4887 - .result = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 4888 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 4889 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 4890 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 4891 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 4892 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 4893 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 4894 - 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55 }, 4866 + .result = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4867 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4868 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4869 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4870 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 4871 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 4872 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 4873 + "\xba\x63\x7b\x39\x1a\xaf\xd2\x55", 4895 4874 .rlen = 64, 4896 4875 }, { 4897 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4898 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, 4899 - 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4900 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08 }, 4876 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4877 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08" 4878 + "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4879 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08", 4901 4880 .klen = 32, 4902 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 4903 - 0xde, 0xca, 0xf8, 0x88 }, 4904 - .input = { 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07, 4905 - 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d, 4906 - 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9, 4907 - 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa, 4908 - 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d, 4909 - 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38, 4910 - 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a, 4911 - 0xbc, 0xc9, 0xf6, 0x62, 4912 - 0x76, 0xfc, 0x6e, 0xce, 0x0f, 0x4e, 0x17, 0x68, 4913 - 0xcd, 0xdf, 0x88, 0x53, 0xbb, 0x2d, 0x55, 0x1b }, 4881 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4882 + "\xde\xca\xf8\x88", 4883 + .input = "\x52\x2d\xc1\xf0\x99\x56\x7d\x07" 4884 + "\xf4\x7f\x37\xa3\x2a\x84\x42\x7d" 4885 + "\x64\x3a\x8c\xdc\xbf\xe5\xc0\xc9" 4886 + "\x75\x98\xa2\xbd\x25\x55\xd1\xaa" 4887 + "\x8c\xb0\x8e\x48\x59\x0d\xbb\x3d" 4888 + "\xa7\xb0\x8b\x10\x56\x82\x88\x38" 4889 + "\xc5\xf6\x1e\x63\x93\xba\x7a\x0a" 4890 + "\xbc\xc9\xf6\x62" 4891 + "\x76\xfc\x6e\xce\x0f\x4e\x17\x68" 4892 + "\xcd\xdf\x88\x53\xbb\x2d\x55\x1b", 4914 4893 .ilen = 76, 4915 - .assoc = { 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 4916 - 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 4917 - 0xab, 0xad, 0xda, 0xd2 }, 4894 + .assoc = "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 4895 + "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 4896 + "\xab\xad\xda\xd2", 4918 4897 .alen = 20, 4919 - .result = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 4920 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 4921 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 4922 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 4923 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 4924 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 4925 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 4926 - 0xba, 0x63, 0x7b, 0x39 }, 4898 + .result = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4899 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4900 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4901 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4902 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 4903 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 4904 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 4905 + "\xba\x63\x7b\x39", 4927 4906 .rlen = 60, 4928 4907 .np = 2, 4929 4908 .tap = { 48, 28 }, 4930 4909 .anp = 3, 4931 4910 .atap = { 8, 8, 4 } 4932 4911 }, { 4933 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4934 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08 }, 4912 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4913 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08", 4935 4914 .klen = 16, 4936 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 4937 - 0xde, 0xca, 0xf8, 0x88 }, 4938 - .input = { 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24, 4939 - 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c, 4940 - 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0, 4941 - 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e, 4942 - 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c, 4943 - 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05, 4944 - 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97, 4945 - 0x3d, 0x58, 0xe0, 0x91, 0x47, 0x3f, 0x59, 0x85, 4946 - 0x4d, 0x5c, 0x2a, 0xf3, 0x27, 0xcd, 0x64, 0xa6, 4947 - 0x2c, 0xf3, 0x5a, 0xbd, 0x2b, 0xa6, 0xfa, 0xb4 }, 4915 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4916 + "\xde\xca\xf8\x88", 4917 + .input = "\x42\x83\x1e\xc2\x21\x77\x74\x24" 4918 + "\x4b\x72\x21\xb7\x84\xd0\xd4\x9c" 4919 + "\xe3\xaa\x21\x2f\x2c\x02\xa4\xe0" 4920 + "\x35\xc1\x7e\x23\x29\xac\xa1\x2e" 4921 + "\x21\xd5\x14\xb2\x54\x66\x93\x1c" 4922 + "\x7d\x8f\x6a\x5a\xac\x84\xaa\x05" 4923 + "\x1b\xa3\x0b\x39\x6a\x0a\xac\x97" 4924 + "\x3d\x58\xe0\x91\x47\x3f\x59\x85" 4925 + "\x4d\x5c\x2a\xf3\x27\xcd\x64\xa6" 4926 + "\x2c\xf3\x5a\xbd\x2b\xa6\xfa\xb4", 4948 4927 .ilen = 80, 4949 - .result = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 4950 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 4951 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 4952 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 4953 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 4954 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 4955 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 4956 - 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55 }, 4928 + .result = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4929 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4930 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4931 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4932 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 4933 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 4934 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 4935 + "\xba\x63\x7b\x39\x1a\xaf\xd2\x55", 4957 4936 .rlen = 64, 4958 4937 }, { 4959 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4960 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08 }, 4938 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4939 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08", 4961 4940 .klen = 16, 4962 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 4963 - 0xde, 0xca, 0xf8, 0x88 }, 4964 - .input = { 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24, 4965 - 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c, 4966 - 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0, 4967 - 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e, 4968 - 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c, 4969 - 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05, 4970 - 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97, 4971 - 0x3d, 0x58, 0xe0, 0x91, 4972 - 0x5b, 0xc9, 0x4f, 0xbc, 0x32, 0x21, 0xa5, 0xdb, 4973 - 0x94, 0xfa, 0xe9, 0x5a, 0xe7, 0x12, 0x1a, 0x47 }, 4941 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4942 + "\xde\xca\xf8\x88", 4943 + .input = "\x42\x83\x1e\xc2\x21\x77\x74\x24" 4944 + "\x4b\x72\x21\xb7\x84\xd0\xd4\x9c" 4945 + "\xe3\xaa\x21\x2f\x2c\x02\xa4\xe0" 4946 + "\x35\xc1\x7e\x23\x29\xac\xa1\x2e" 4947 + "\x21\xd5\x14\xb2\x54\x66\x93\x1c" 4948 + "\x7d\x8f\x6a\x5a\xac\x84\xaa\x05" 4949 + "\x1b\xa3\x0b\x39\x6a\x0a\xac\x97" 4950 + "\x3d\x58\xe0\x91" 4951 + "\x5b\xc9\x4f\xbc\x32\x21\xa5\xdb" 4952 + "\x94\xfa\xe9\x5a\xe7\x12\x1a\x47", 4974 4953 .ilen = 76, 4975 - .assoc = { 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 4976 - 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 4977 - 0xab, 0xad, 0xda, 0xd2 }, 4954 + .assoc = "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 4955 + "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 4956 + "\xab\xad\xda\xd2", 4978 4957 .alen = 20, 4979 - .result = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 4980 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 4981 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 4982 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 4983 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 4984 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 4985 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 4986 - 0xba, 0x63, 0x7b, 0x39 }, 4958 + .result = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4959 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4960 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4961 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4962 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 4963 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 4964 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 4965 + "\xba\x63\x7b\x39", 4987 4966 .rlen = 60, 4988 4967 }, { 4968 + .key = zeroed_string, 4989 4969 .klen = 24, 4990 - .input = { 0x98, 0xe7, 0x24, 0x7c, 0x07, 0xf0, 0xfe, 0x41, 4991 - 0x1c, 0x26, 0x7e, 0x43, 0x84, 0xb0, 0xf6, 0x00, 4992 - 0x2f, 0xf5, 0x8d, 0x80, 0x03, 0x39, 0x27, 0xab, 4993 - 0x8e, 0xf4, 0xd4, 0x58, 0x75, 0x14, 0xf0, 0xfb }, 4970 + .input = "\x98\xe7\x24\x7c\x07\xf0\xfe\x41" 4971 + "\x1c\x26\x7e\x43\x84\xb0\xf6\x00" 4972 + "\x2f\xf5\x8d\x80\x03\x39\x27\xab" 4973 + "\x8e\xf4\xd4\x58\x75\x14\xf0\xfb", 4994 4974 .ilen = 32, 4975 + .result = zeroed_string, 4995 4976 .rlen = 16, 4996 4977 }, { 4997 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 4998 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, 4999 - 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c }, 4978 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 4979 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08" 4980 + "\xfe\xff\xe9\x92\x86\x65\x73\x1c", 5000 4981 .klen = 24, 5001 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 5002 - 0xde, 0xca, 0xf8, 0x88 }, 5003 - .input = { 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41, 5004 - 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57, 5005 - 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84, 5006 - 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c, 5007 - 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25, 5008 - 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47, 5009 - 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9, 5010 - 0xcc, 0xda, 0x27, 0x10, 0xac, 0xad, 0xe2, 0x56, 5011 - 0x99, 0x24, 0xa7, 0xc8, 0x58, 0x73, 0x36, 0xbf, 5012 - 0xb1, 0x18, 0x02, 0x4d, 0xb8, 0x67, 0x4a, 0x14 }, 4982 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 4983 + "\xde\xca\xf8\x88", 4984 + .input = "\x39\x80\xca\x0b\x3c\x00\xe8\x41" 4985 + "\xeb\x06\xfa\xc4\x87\x2a\x27\x57" 4986 + "\x85\x9e\x1c\xea\xa6\xef\xd9\x84" 4987 + "\x62\x85\x93\xb4\x0c\xa1\xe1\x9c" 4988 + "\x7d\x77\x3d\x00\xc1\x44\xc5\x25" 4989 + "\xac\x61\x9d\x18\xc8\x4a\x3f\x47" 4990 + "\x18\xe2\x44\x8b\x2f\xe3\x24\xd9" 4991 + "\xcc\xda\x27\x10\xac\xad\xe2\x56" 4992 + "\x99\x24\xa7\xc8\x58\x73\x36\xbf" 4993 + "\xb1\x18\x02\x4d\xb8\x67\x4a\x14", 5013 4994 .ilen = 80, 5014 - .result = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 5015 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 5016 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 5017 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 5018 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 5019 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 5020 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 5021 - 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55 }, 4995 + .result = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 4996 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 4997 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 4998 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 4999 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 5000 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 5001 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 5002 + "\xba\x63\x7b\x39\x1a\xaf\xd2\x55", 5022 5003 .rlen = 64, 5023 5004 }, { 5024 - .key = { 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 5025 - 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, 5026 - 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c }, 5005 + .key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c" 5006 + "\x6d\x6a\x8f\x94\x67\x30\x83\x08" 5007 + "\xfe\xff\xe9\x92\x86\x65\x73\x1c", 5027 5008 .klen = 24, 5028 - .iv = { 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 5029 - 0xde, 0xca, 0xf8, 0x88 }, 5030 - .input = { 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41, 5031 - 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57, 5032 - 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84, 5033 - 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c, 5034 - 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25, 5035 - 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47, 5036 - 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9, 5037 - 0xcc, 0xda, 0x27, 0x10, 5038 - 0x25, 0x19, 0x49, 0x8e, 0x80, 0xf1, 0x47, 0x8f, 5039 - 0x37, 0xba, 0x55, 0xbd, 0x6d, 0x27, 0x61, 0x8c }, 5009 + .iv = "\xca\xfe\xba\xbe\xfa\xce\xdb\xad" 5010 + "\xde\xca\xf8\x88", 5011 + .input = "\x39\x80\xca\x0b\x3c\x00\xe8\x41" 5012 + "\xeb\x06\xfa\xc4\x87\x2a\x27\x57" 5013 + "\x85\x9e\x1c\xea\xa6\xef\xd9\x84" 5014 + "\x62\x85\x93\xb4\x0c\xa1\xe1\x9c" 5015 + "\x7d\x77\x3d\x00\xc1\x44\xc5\x25" 5016 + "\xac\x61\x9d\x18\xc8\x4a\x3f\x47" 5017 + "\x18\xe2\x44\x8b\x2f\xe3\x24\xd9" 5018 + "\xcc\xda\x27\x10" 5019 + "\x25\x19\x49\x8e\x80\xf1\x47\x8f" 5020 + "\x37\xba\x55\xbd\x6d\x27\x61\x8c", 5040 5021 .ilen = 76, 5041 - .assoc = { 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 5042 - 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 5043 - 0xab, 0xad, 0xda, 0xd2 }, 5022 + .assoc = "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 5023 + "\xfe\xed\xfa\xce\xde\xad\xbe\xef" 5024 + "\xab\xad\xda\xd2", 5044 5025 .alen = 20, 5045 - .result = { 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 5046 - 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 5047 - 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 5048 - 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 5049 - 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 5050 - 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 5051 - 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 5052 - 0xba, 0x63, 0x7b, 0x39 }, 5026 + .result = "\xd9\x31\x32\x25\xf8\x84\x06\xe5" 5027 + "\xa5\x59\x09\xc5\xaf\xf5\x26\x9a" 5028 + "\x86\xa7\xa9\x53\x15\x34\xf7\xda" 5029 + "\x2e\x4c\x30\x3d\x8a\x31\x8a\x72" 5030 + "\x1c\x3c\x0c\x95\x95\x68\x09\x53" 5031 + "\x2f\xcf\x0e\x24\x49\xa6\xb5\x25" 5032 + "\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57" 5033 + "\xba\x63\x7b\x39", 5053 5034 .rlen = 60, 5054 5035 } 5055 5036 }; 5056 5037 5057 5038 static struct aead_testvec aes_ccm_enc_tv_template[] = { 5058 5039 { /* From RFC 3610 */ 5059 - .key = { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 5060 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf }, 5040 + .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 5041 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", 5061 5042 .klen = 16, 5062 - .iv = { 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x01, 0x00, 5063 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x00, 0x00 }, 5064 - .assoc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, 5043 + .iv = "\x01\x00\x00\x00\x03\x02\x01\x00" 5044 + "\xa0\xa1\xa2\xa3\xa4\xa5\x00\x00", 5045 + .assoc = "\x00\x01\x02\x03\x04\x05\x06\x07", 5065 5046 .alen = 8, 5066 - .input = { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 5067 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 5068 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e }, 5047 + .input = "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 5048 + "\x10\x11\x12\x13\x14\x15\x16\x17" 5049 + "\x18\x19\x1a\x1b\x1c\x1d\x1e", 5069 5050 .ilen = 23, 5070 - .result = { 0x58, 0x8c, 0x97, 0x9a, 0x61, 0xc6, 0x63, 0xd2, 5071 - 0xf0, 0x66, 0xd0, 0xc2, 0xc0, 0xf9, 0x89, 0x80, 5072 - 0x6d, 0x5f, 0x6b, 0x61, 0xda, 0xc3, 0x84, 0x17, 5073 - 0xe8, 0xd1, 0x2c, 0xfd, 0xf9, 0x26, 0xe0 }, 5051 + .result = "\x58\x8c\x97\x9a\x61\xc6\x63\xd2" 5052 + "\xf0\x66\xd0\xc2\xc0\xf9\x89\x80" 5053 + "\x6d\x5f\x6b\x61\xda\xc3\x84\x17" 5054 + "\xe8\xd1\x2c\xfd\xf9\x26\xe0", 5074 5055 .rlen = 31, 5075 5056 }, { 5076 - .key = { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 5077 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf }, 5057 + .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 5058 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", 5078 5059 .klen = 16, 5079 - .iv = { 0x01, 0x00, 0x00, 0x00, 0x07, 0x06, 0x05, 0x04, 5080 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x00, 0x00 }, 5081 - .assoc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 5082 - 0x08, 0x09, 0x0a, 0x0b }, 5060 + .iv = "\x01\x00\x00\x00\x07\x06\x05\x04" 5061 + "\xa0\xa1\xa2\xa3\xa4\xa5\x00\x00", 5062 + .assoc = "\x00\x01\x02\x03\x04\x05\x06\x07" 5063 + "\x08\x09\x0a\x0b", 5083 5064 .alen = 12, 5084 - .input = { 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 5085 - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 5086 - 0x1c, 0x1d, 0x1e, 0x1f }, 5065 + .input = "\x0c\x0d\x0e\x0f\x10\x11\x12\x13" 5066 + "\x14\x15\x16\x17\x18\x19\x1a\x1b" 5067 + "\x1c\x1d\x1e\x1f", 5087 5068 .ilen = 20, 5088 - .result = { 0xdc, 0xf1, 0xfb, 0x7b, 0x5d, 0x9e, 0x23, 0xfb, 5089 - 0x9d, 0x4e, 0x13, 0x12, 0x53, 0x65, 0x8a, 0xd8, 5090 - 0x6e, 0xbd, 0xca, 0x3e, 0x51, 0xe8, 0x3f, 0x07, 5091 - 0x7d, 0x9c, 0x2d, 0x93 }, 5069 + .result = "\xdc\xf1\xfb\x7b\x5d\x9e\x23\xfb" 5070 + "\x9d\x4e\x13\x12\x53\x65\x8a\xd8" 5071 + "\x6e\xbd\xca\x3e\x51\xe8\x3f\x07" 5072 + "\x7d\x9c\x2d\x93", 5092 5073 .rlen = 28, 5093 5074 }, { 5094 - .key = { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 5095 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf }, 5075 + .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 5076 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", 5096 5077 .klen = 16, 5097 - .iv = { 0x01, 0x00, 0x00, 0x00, 0x0b, 0x0a, 0x09, 0x08, 5098 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x00, 0x00 }, 5099 - .assoc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, 5078 + .iv = "\x01\x00\x00\x00\x0b\x0a\x09\x08" 5079 + "\xa0\xa1\xa2\xa3\xa4\xa5\x00\x00", 5080 + .assoc = "\x00\x01\x02\x03\x04\x05\x06\x07", 5100 5081 .alen = 8, 5101 - .input = { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 5102 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 5103 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 5104 - 0x20 }, 5082 + .input = "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 5083 + "\x10\x11\x12\x13\x14\x15\x16\x17" 5084 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 5085 + "\x20", 5105 5086 .ilen = 25, 5106 - .result = { 0x82, 0x53, 0x1a, 0x60, 0xcc, 0x24, 0x94, 0x5a, 5107 - 0x4b, 0x82, 0x79, 0x18, 0x1a, 0xb5, 0xc8, 0x4d, 5108 - 0xf2, 0x1c, 0xe7, 0xf9, 0xb7, 0x3f, 0x42, 0xe1, 5109 - 0x97, 0xea, 0x9c, 0x07, 0xe5, 0x6b, 0x5e, 0xb1, 5110 - 0x7e, 0x5f, 0x4e }, 5087 + .result = "\x82\x53\x1a\x60\xcc\x24\x94\x5a" 5088 + "\x4b\x82\x79\x18\x1a\xb5\xc8\x4d" 5089 + "\xf2\x1c\xe7\xf9\xb7\x3f\x42\xe1" 5090 + "\x97\xea\x9c\x07\xe5\x6b\x5e\xb1" 5091 + "\x7e\x5f\x4e", 5111 5092 .rlen = 35, 5112 5093 }, { 5113 - .key = { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 5114 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf }, 5094 + .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 5095 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", 5115 5096 .klen = 16, 5116 - .iv = { 0x01, 0x00, 0x00, 0x00, 0x0c, 0x0b, 0x0a, 0x09, 5117 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x00, 0x00 }, 5118 - .assoc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 5119 - 0x08, 0x09, 0x0a, 0x0b }, 5097 + .iv = "\x01\x00\x00\x00\x0c\x0b\x0a\x09" 5098 + "\xa0\xa1\xa2\xa3\xa4\xa5\x00\x00", 5099 + .assoc = "\x00\x01\x02\x03\x04\x05\x06\x07" 5100 + "\x08\x09\x0a\x0b", 5120 5101 .alen = 12, 5121 - .input = { 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 5122 - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 5123 - 0x1c, 0x1d, 0x1e }, 5102 + .input = "\x0c\x0d\x0e\x0f\x10\x11\x12\x13" 5103 + "\x14\x15\x16\x17\x18\x19\x1a\x1b" 5104 + "\x1c\x1d\x1e", 5124 5105 .ilen = 19, 5125 - .result = { 0x07, 0x34, 0x25, 0x94, 0x15, 0x77, 0x85, 0x15, 5126 - 0x2b, 0x07, 0x40, 0x98, 0x33, 0x0a, 0xbb, 0x14, 5127 - 0x1b, 0x94, 0x7b, 0x56, 0x6a, 0xa9, 0x40, 0x6b, 5128 - 0x4d, 0x99, 0x99, 0x88, 0xdd }, 5106 + .result = "\x07\x34\x25\x94\x15\x77\x85\x15" 5107 + "\x2b\x07\x40\x98\x33\x0a\xbb\x14" 5108 + "\x1b\x94\x7b\x56\x6a\xa9\x40\x6b" 5109 + "\x4d\x99\x99\x88\xdd", 5129 5110 .rlen = 29, 5130 5111 }, { 5131 - .key = { 0xd7, 0x82, 0x8d, 0x13, 0xb2, 0xb0, 0xbd, 0xc3, 5132 - 0x25, 0xa7, 0x62, 0x36, 0xdf, 0x93, 0xcc, 0x6b }, 5112 + .key = "\xd7\x82\x8d\x13\xb2\xb0\xbd\xc3" 5113 + "\x25\xa7\x62\x36\xdf\x93\xcc\x6b", 5133 5114 .klen = 16, 5134 - .iv = { 0x01, 0x00, 0x33, 0x56, 0x8e, 0xf7, 0xb2, 0x63, 5135 - 0x3c, 0x96, 0x96, 0x76, 0x6c, 0xfa, 0x00, 0x00 }, 5136 - .assoc = { 0x63, 0x01, 0x8f, 0x76, 0xdc, 0x8a, 0x1b, 0xcb }, 5115 + .iv = "\x01\x00\x33\x56\x8e\xf7\xb2\x63" 5116 + "\x3c\x96\x96\x76\x6c\xfa\x00\x00", 5117 + .assoc = "\x63\x01\x8f\x76\xdc\x8a\x1b\xcb", 5137 5118 .alen = 8, 5138 - .input = { 0x90, 0x20, 0xea, 0x6f, 0x91, 0xbd, 0xd8, 0x5a, 5139 - 0xfa, 0x00, 0x39, 0xba, 0x4b, 0xaf, 0xf9, 0xbf, 5140 - 0xb7, 0x9c, 0x70, 0x28, 0x94, 0x9c, 0xd0, 0xec }, 5119 + .input = "\x90\x20\xea\x6f\x91\xbd\xd8\x5a" 5120 + "\xfa\x00\x39\xba\x4b\xaf\xf9\xbf" 5121 + "\xb7\x9c\x70\x28\x94\x9c\xd0\xec", 5141 5122 .ilen = 24, 5142 - .result = { 0x4c, 0xcb, 0x1e, 0x7c, 0xa9, 0x81, 0xbe, 0xfa, 5143 - 0xa0, 0x72, 0x6c, 0x55, 0xd3, 0x78, 0x06, 0x12, 5144 - 0x98, 0xc8, 0x5c, 0x92, 0x81, 0x4a, 0xbc, 0x33, 5145 - 0xc5, 0x2e, 0xe8, 0x1d, 0x7d, 0x77, 0xc0, 0x8a }, 5123 + .result = "\x4c\xcb\x1e\x7c\xa9\x81\xbe\xfa" 5124 + "\xa0\x72\x6c\x55\xd3\x78\x06\x12" 5125 + "\x98\xc8\x5c\x92\x81\x4a\xbc\x33" 5126 + "\xc5\x2e\xe8\x1d\x7d\x77\xc0\x8a", 5146 5127 .rlen = 32, 5147 5128 }, { 5148 - .key = { 0xd7, 0x82, 0x8d, 0x13, 0xb2, 0xb0, 0xbd, 0xc3, 5149 - 0x25, 0xa7, 0x62, 0x36, 0xdf, 0x93, 0xcc, 0x6b }, 5129 + .key = "\xd7\x82\x8d\x13\xb2\xb0\xbd\xc3" 5130 + "\x25\xa7\x62\x36\xdf\x93\xcc\x6b", 5150 5131 .klen = 16, 5151 - .iv = { 0x01, 0x00, 0xd5, 0x60, 0x91, 0x2d, 0x3f, 0x70, 5152 - 0x3c, 0x96, 0x96, 0x76, 0x6c, 0xfa, 0x00, 0x00 }, 5153 - .assoc = { 0xcd, 0x90, 0x44, 0xd2, 0xb7, 0x1f, 0xdb, 0x81, 5154 - 0x20, 0xea, 0x60, 0xc0 }, 5132 + .iv = "\x01\x00\xd5\x60\x91\x2d\x3f\x70" 5133 + "\x3c\x96\x96\x76\x6c\xfa\x00\x00", 5134 + .assoc = "\xcd\x90\x44\xd2\xb7\x1f\xdb\x81" 5135 + "\x20\xea\x60\xc0", 5155 5136 .alen = 12, 5156 - .input = { 0x64, 0x35, 0xac, 0xba, 0xfb, 0x11, 0xa8, 0x2e, 5157 - 0x2f, 0x07, 0x1d, 0x7c, 0xa4, 0xa5, 0xeb, 0xd9, 5158 - 0x3a, 0x80, 0x3b, 0xa8, 0x7f }, 5137 + .input = "\x64\x35\xac\xba\xfb\x11\xa8\x2e" 5138 + "\x2f\x07\x1d\x7c\xa4\xa5\xeb\xd9" 5139 + "\x3a\x80\x3b\xa8\x7f", 5159 5140 .ilen = 21, 5160 - .result = { 0x00, 0x97, 0x69, 0xec, 0xab, 0xdf, 0x48, 0x62, 5161 - 0x55, 0x94, 0xc5, 0x92, 0x51, 0xe6, 0x03, 0x57, 5162 - 0x22, 0x67, 0x5e, 0x04, 0xc8, 0x47, 0x09, 0x9e, 5163 - 0x5a, 0xe0, 0x70, 0x45, 0x51 }, 5141 + .result = "\x00\x97\x69\xec\xab\xdf\x48\x62" 5142 + "\x55\x94\xc5\x92\x51\xe6\x03\x57" 5143 + "\x22\x67\x5e\x04\xc8\x47\x09\x9e" 5144 + "\x5a\xe0\x70\x45\x51", 5164 5145 .rlen = 29, 5165 5146 }, { 5166 - .key = { 0xd7, 0x82, 0x8d, 0x13, 0xb2, 0xb0, 0xbd, 0xc3, 5167 - 0x25, 0xa7, 0x62, 0x36, 0xdf, 0x93, 0xcc, 0x6b }, 5147 + .key = "\xd7\x82\x8d\x13\xb2\xb0\xbd\xc3" 5148 + "\x25\xa7\x62\x36\xdf\x93\xcc\x6b", 5168 5149 .klen = 16, 5169 - .iv = { 0x01, 0x00, 0x42, 0xff, 0xf8, 0xf1, 0x95, 0x1c, 5170 - 0x3c, 0x96, 0x96, 0x76, 0x6c, 0xfa, 0x00, 0x00 }, 5171 - .assoc = { 0xd8, 0x5b, 0xc7, 0xe6, 0x9f, 0x94, 0x4f, 0xb8 }, 5150 + .iv = "\x01\x00\x42\xff\xf8\xf1\x95\x1c" 5151 + "\x3c\x96\x96\x76\x6c\xfa\x00\x00", 5152 + .assoc = "\xd8\x5b\xc7\xe6\x9f\x94\x4f\xb8", 5172 5153 .alen = 8, 5173 - .input = { 0x8a, 0x19, 0xb9, 0x50, 0xbc, 0xf7, 0x1a, 0x01, 5174 - 0x8e, 0x5e, 0x67, 0x01, 0xc9, 0x17, 0x87, 0x65, 5175 - 0x98, 0x09, 0xd6, 0x7d, 0xbe, 0xdd, 0x18 }, 5154 + .input = "\x8a\x19\xb9\x50\xbc\xf7\x1a\x01" 5155 + "\x8e\x5e\x67\x01\xc9\x17\x87\x65" 5156 + "\x98\x09\xd6\x7d\xbe\xdd\x18", 5176 5157 .ilen = 23, 5177 - .result = { 0xbc, 0x21, 0x8d, 0xaa, 0x94, 0x74, 0x27, 0xb6, 5178 - 0xdb, 0x38, 0x6a, 0x99, 0xac, 0x1a, 0xef, 0x23, 5179 - 0xad, 0xe0, 0xb5, 0x29, 0x39, 0xcb, 0x6a, 0x63, 5180 - 0x7c, 0xf9, 0xbe, 0xc2, 0x40, 0x88, 0x97, 0xc6, 5181 - 0xba }, 5158 + .result = "\xbc\x21\x8d\xaa\x94\x74\x27\xb6" 5159 + "\xdb\x38\x6a\x99\xac\x1a\xef\x23" 5160 + "\xad\xe0\xb5\x29\x39\xcb\x6a\x63" 5161 + "\x7c\xf9\xbe\xc2\x40\x88\x97\xc6" 5162 + "\xba", 5182 5163 .rlen = 33, 5183 5164 }, 5184 5165 }; 5185 5166 5186 5167 static struct aead_testvec aes_ccm_dec_tv_template[] = { 5187 5168 { /* From RFC 3610 */ 5188 - .key = { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 5189 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf }, 5169 + .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 5170 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", 5190 5171 .klen = 16, 5191 - .iv = { 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x01, 0x00, 5192 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x00, 0x00 }, 5193 - .assoc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, 5172 + .iv = "\x01\x00\x00\x00\x03\x02\x01\x00" 5173 + "\xa0\xa1\xa2\xa3\xa4\xa5\x00\x00", 5174 + .assoc = "\x00\x01\x02\x03\x04\x05\x06\x07", 5194 5175 .alen = 8, 5195 - .input = { 0x58, 0x8c, 0x97, 0x9a, 0x61, 0xc6, 0x63, 0xd2, 5196 - 0xf0, 0x66, 0xd0, 0xc2, 0xc0, 0xf9, 0x89, 0x80, 5197 - 0x6d, 0x5f, 0x6b, 0x61, 0xda, 0xc3, 0x84, 0x17, 5198 - 0xe8, 0xd1, 0x2c, 0xfd, 0xf9, 0x26, 0xe0 }, 5176 + .input = "\x58\x8c\x97\x9a\x61\xc6\x63\xd2" 5177 + "\xf0\x66\xd0\xc2\xc0\xf9\x89\x80" 5178 + "\x6d\x5f\x6b\x61\xda\xc3\x84\x17" 5179 + "\xe8\xd1\x2c\xfd\xf9\x26\xe0", 5199 5180 .ilen = 31, 5200 - .result = { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 5201 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 5202 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e }, 5181 + .result = "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 5182 + "\x10\x11\x12\x13\x14\x15\x16\x17" 5183 + "\x18\x19\x1a\x1b\x1c\x1d\x1e", 5203 5184 .rlen = 23, 5204 5185 }, { 5205 - .key = { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 5206 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf }, 5186 + .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 5187 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", 5207 5188 .klen = 16, 5208 - .iv = { 0x01, 0x00, 0x00, 0x00, 0x07, 0x06, 0x05, 0x04, 5209 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x00, 0x00 }, 5210 - .assoc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 5211 - 0x08, 0x09, 0x0a, 0x0b }, 5189 + .iv = "\x01\x00\x00\x00\x07\x06\x05\x04" 5190 + "\xa0\xa1\xa2\xa3\xa4\xa5\x00\x00", 5191 + .assoc = "\x00\x01\x02\x03\x04\x05\x06\x07" 5192 + "\x08\x09\x0a\x0b", 5212 5193 .alen = 12, 5213 - .input = { 0xdc, 0xf1, 0xfb, 0x7b, 0x5d, 0x9e, 0x23, 0xfb, 5214 - 0x9d, 0x4e, 0x13, 0x12, 0x53, 0x65, 0x8a, 0xd8, 5215 - 0x6e, 0xbd, 0xca, 0x3e, 0x51, 0xe8, 0x3f, 0x07, 5216 - 0x7d, 0x9c, 0x2d, 0x93 }, 5194 + .input = "\xdc\xf1\xfb\x7b\x5d\x9e\x23\xfb" 5195 + "\x9d\x4e\x13\x12\x53\x65\x8a\xd8" 5196 + "\x6e\xbd\xca\x3e\x51\xe8\x3f\x07" 5197 + "\x7d\x9c\x2d\x93", 5217 5198 .ilen = 28, 5218 - .result = { 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 5219 - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 5220 - 0x1c, 0x1d, 0x1e, 0x1f }, 5199 + .result = "\x0c\x0d\x0e\x0f\x10\x11\x12\x13" 5200 + "\x14\x15\x16\x17\x18\x19\x1a\x1b" 5201 + "\x1c\x1d\x1e\x1f", 5221 5202 .rlen = 20, 5222 5203 }, { 5223 - .key = { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 5224 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf }, 5204 + .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 5205 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", 5225 5206 .klen = 16, 5226 - .iv = { 0x01, 0x00, 0x00, 0x00, 0x0b, 0x0a, 0x09, 0x08, 5227 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x00, 0x00 }, 5228 - .assoc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, 5207 + .iv = "\x01\x00\x00\x00\x0b\x0a\x09\x08" 5208 + "\xa0\xa1\xa2\xa3\xa4\xa5\x00\x00", 5209 + .assoc = "\x00\x01\x02\x03\x04\x05\x06\x07", 5229 5210 .alen = 8, 5230 - .input = { 0x82, 0x53, 0x1a, 0x60, 0xcc, 0x24, 0x94, 0x5a, 5231 - 0x4b, 0x82, 0x79, 0x18, 0x1a, 0xb5, 0xc8, 0x4d, 5232 - 0xf2, 0x1c, 0xe7, 0xf9, 0xb7, 0x3f, 0x42, 0xe1, 5233 - 0x97, 0xea, 0x9c, 0x07, 0xe5, 0x6b, 0x5e, 0xb1, 5234 - 0x7e, 0x5f, 0x4e }, 5211 + .input = "\x82\x53\x1a\x60\xcc\x24\x94\x5a" 5212 + "\x4b\x82\x79\x18\x1a\xb5\xc8\x4d" 5213 + "\xf2\x1c\xe7\xf9\xb7\x3f\x42\xe1" 5214 + "\x97\xea\x9c\x07\xe5\x6b\x5e\xb1" 5215 + "\x7e\x5f\x4e", 5235 5216 .ilen = 35, 5236 - .result = { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 5237 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 5238 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 5239 - 0x20 }, 5217 + .result = "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 5218 + "\x10\x11\x12\x13\x14\x15\x16\x17" 5219 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 5220 + "\x20", 5240 5221 .rlen = 25, 5241 5222 }, { 5242 - .key = { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 5243 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf }, 5223 + .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 5224 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", 5244 5225 .klen = 16, 5245 - .iv = { 0x01, 0x00, 0x00, 0x00, 0x0c, 0x0b, 0x0a, 0x09, 5246 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x00, 0x00 }, 5247 - .assoc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 5248 - 0x08, 0x09, 0x0a, 0x0b }, 5226 + .iv = "\x01\x00\x00\x00\x0c\x0b\x0a\x09" 5227 + "\xa0\xa1\xa2\xa3\xa4\xa5\x00\x00", 5228 + .assoc = "\x00\x01\x02\x03\x04\x05\x06\x07" 5229 + "\x08\x09\x0a\x0b", 5249 5230 .alen = 12, 5250 - .input = { 0x07, 0x34, 0x25, 0x94, 0x15, 0x77, 0x85, 0x15, 5251 - 0x2b, 0x07, 0x40, 0x98, 0x33, 0x0a, 0xbb, 0x14, 5252 - 0x1b, 0x94, 0x7b, 0x56, 0x6a, 0xa9, 0x40, 0x6b, 5253 - 0x4d, 0x99, 0x99, 0x88, 0xdd }, 5231 + .input = "\x07\x34\x25\x94\x15\x77\x85\x15" 5232 + "\x2b\x07\x40\x98\x33\x0a\xbb\x14" 5233 + "\x1b\x94\x7b\x56\x6a\xa9\x40\x6b" 5234 + "\x4d\x99\x99\x88\xdd", 5254 5235 .ilen = 29, 5255 - .result = { 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 5256 - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 5257 - 0x1c, 0x1d, 0x1e }, 5236 + .result = "\x0c\x0d\x0e\x0f\x10\x11\x12\x13" 5237 + "\x14\x15\x16\x17\x18\x19\x1a\x1b" 5238 + "\x1c\x1d\x1e", 5258 5239 .rlen = 19, 5259 5240 }, { 5260 - .key = { 0xd7, 0x82, 0x8d, 0x13, 0xb2, 0xb0, 0xbd, 0xc3, 5261 - 0x25, 0xa7, 0x62, 0x36, 0xdf, 0x93, 0xcc, 0x6b }, 5241 + .key = "\xd7\x82\x8d\x13\xb2\xb0\xbd\xc3" 5242 + "\x25\xa7\x62\x36\xdf\x93\xcc\x6b", 5262 5243 .klen = 16, 5263 - .iv = { 0x01, 0x00, 0x33, 0x56, 0x8e, 0xf7, 0xb2, 0x63, 5264 - 0x3c, 0x96, 0x96, 0x76, 0x6c, 0xfa, 0x00, 0x00 }, 5265 - .assoc = { 0x63, 0x01, 0x8f, 0x76, 0xdc, 0x8a, 0x1b, 0xcb }, 5244 + .iv = "\x01\x00\x33\x56\x8e\xf7\xb2\x63" 5245 + "\x3c\x96\x96\x76\x6c\xfa\x00\x00", 5246 + .assoc = "\x63\x01\x8f\x76\xdc\x8a\x1b\xcb", 5266 5247 .alen = 8, 5267 - .input = { 0x4c, 0xcb, 0x1e, 0x7c, 0xa9, 0x81, 0xbe, 0xfa, 5268 - 0xa0, 0x72, 0x6c, 0x55, 0xd3, 0x78, 0x06, 0x12, 5269 - 0x98, 0xc8, 0x5c, 0x92, 0x81, 0x4a, 0xbc, 0x33, 5270 - 0xc5, 0x2e, 0xe8, 0x1d, 0x7d, 0x77, 0xc0, 0x8a }, 5248 + .input = "\x4c\xcb\x1e\x7c\xa9\x81\xbe\xfa" 5249 + "\xa0\x72\x6c\x55\xd3\x78\x06\x12" 5250 + "\x98\xc8\x5c\x92\x81\x4a\xbc\x33" 5251 + "\xc5\x2e\xe8\x1d\x7d\x77\xc0\x8a", 5271 5252 .ilen = 32, 5272 - .result = { 0x90, 0x20, 0xea, 0x6f, 0x91, 0xbd, 0xd8, 0x5a, 5273 - 0xfa, 0x00, 0x39, 0xba, 0x4b, 0xaf, 0xf9, 0xbf, 5274 - 0xb7, 0x9c, 0x70, 0x28, 0x94, 0x9c, 0xd0, 0xec }, 5253 + .result = "\x90\x20\xea\x6f\x91\xbd\xd8\x5a" 5254 + "\xfa\x00\x39\xba\x4b\xaf\xf9\xbf" 5255 + "\xb7\x9c\x70\x28\x94\x9c\xd0\xec", 5275 5256 .rlen = 24, 5276 5257 }, { 5277 - .key = { 0xd7, 0x82, 0x8d, 0x13, 0xb2, 0xb0, 0xbd, 0xc3, 5278 - 0x25, 0xa7, 0x62, 0x36, 0xdf, 0x93, 0xcc, 0x6b }, 5258 + .key = "\xd7\x82\x8d\x13\xb2\xb0\xbd\xc3" 5259 + "\x25\xa7\x62\x36\xdf\x93\xcc\x6b", 5279 5260 .klen = 16, 5280 - .iv = { 0x01, 0x00, 0xd5, 0x60, 0x91, 0x2d, 0x3f, 0x70, 5281 - 0x3c, 0x96, 0x96, 0x76, 0x6c, 0xfa, 0x00, 0x00 }, 5282 - .assoc = { 0xcd, 0x90, 0x44, 0xd2, 0xb7, 0x1f, 0xdb, 0x81, 5283 - 0x20, 0xea, 0x60, 0xc0 }, 5261 + .iv = "\x01\x00\xd5\x60\x91\x2d\x3f\x70" 5262 + "\x3c\x96\x96\x76\x6c\xfa\x00\x00", 5263 + .assoc = "\xcd\x90\x44\xd2\xb7\x1f\xdb\x81" 5264 + "\x20\xea\x60\xc0", 5284 5265 .alen = 12, 5285 - .input = { 0x00, 0x97, 0x69, 0xec, 0xab, 0xdf, 0x48, 0x62, 5286 - 0x55, 0x94, 0xc5, 0x92, 0x51, 0xe6, 0x03, 0x57, 5287 - 0x22, 0x67, 0x5e, 0x04, 0xc8, 0x47, 0x09, 0x9e, 5288 - 0x5a, 0xe0, 0x70, 0x45, 0x51 }, 5266 + .input = "\x00\x97\x69\xec\xab\xdf\x48\x62" 5267 + "\x55\x94\xc5\x92\x51\xe6\x03\x57" 5268 + "\x22\x67\x5e\x04\xc8\x47\x09\x9e" 5269 + "\x5a\xe0\x70\x45\x51", 5289 5270 .ilen = 29, 5290 - .result = { 0x64, 0x35, 0xac, 0xba, 0xfb, 0x11, 0xa8, 0x2e, 5291 - 0x2f, 0x07, 0x1d, 0x7c, 0xa4, 0xa5, 0xeb, 0xd9, 5292 - 0x3a, 0x80, 0x3b, 0xa8, 0x7f }, 5271 + .result = "\x64\x35\xac\xba\xfb\x11\xa8\x2e" 5272 + "\x2f\x07\x1d\x7c\xa4\xa5\xeb\xd9" 5273 + "\x3a\x80\x3b\xa8\x7f", 5293 5274 .rlen = 21, 5294 5275 }, { 5295 - .key = { 0xd7, 0x82, 0x8d, 0x13, 0xb2, 0xb0, 0xbd, 0xc3, 5296 - 0x25, 0xa7, 0x62, 0x36, 0xdf, 0x93, 0xcc, 0x6b }, 5276 + .key = "\xd7\x82\x8d\x13\xb2\xb0\xbd\xc3" 5277 + "\x25\xa7\x62\x36\xdf\x93\xcc\x6b", 5297 5278 .klen = 16, 5298 - .iv = { 0x01, 0x00, 0x42, 0xff, 0xf8, 0xf1, 0x95, 0x1c, 5299 - 0x3c, 0x96, 0x96, 0x76, 0x6c, 0xfa, 0x00, 0x00 }, 5300 - .assoc = { 0xd8, 0x5b, 0xc7, 0xe6, 0x9f, 0x94, 0x4f, 0xb8 }, 5279 + .iv = "\x01\x00\x42\xff\xf8\xf1\x95\x1c" 5280 + "\x3c\x96\x96\x76\x6c\xfa\x00\x00", 5281 + .assoc = "\xd8\x5b\xc7\xe6\x9f\x94\x4f\xb8", 5301 5282 .alen = 8, 5302 - .input = { 0xbc, 0x21, 0x8d, 0xaa, 0x94, 0x74, 0x27, 0xb6, 5303 - 0xdb, 0x38, 0x6a, 0x99, 0xac, 0x1a, 0xef, 0x23, 5304 - 0xad, 0xe0, 0xb5, 0x29, 0x39, 0xcb, 0x6a, 0x63, 5305 - 0x7c, 0xf9, 0xbe, 0xc2, 0x40, 0x88, 0x97, 0xc6, 5306 - 0xba }, 5283 + .input = "\xbc\x21\x8d\xaa\x94\x74\x27\xb6" 5284 + "\xdb\x38\x6a\x99\xac\x1a\xef\x23" 5285 + "\xad\xe0\xb5\x29\x39\xcb\x6a\x63" 5286 + "\x7c\xf9\xbe\xc2\x40\x88\x97\xc6" 5287 + "\xba", 5307 5288 .ilen = 33, 5308 - .result = { 0x8a, 0x19, 0xb9, 0x50, 0xbc, 0xf7, 0x1a, 0x01, 5309 - 0x8e, 0x5e, 0x67, 0x01, 0xc9, 0x17, 0x87, 0x65, 5310 - 0x98, 0x09, 0xd6, 0x7d, 0xbe, 0xdd, 0x18 }, 5289 + .result = "\x8a\x19\xb9\x50\xbc\xf7\x1a\x01" 5290 + "\x8e\x5e\x67\x01\xc9\x17\x87\x65" 5291 + "\x98\x09\xd6\x7d\xbe\xdd\x18", 5311 5292 .rlen = 23, 5312 5293 }, 5313 5294 }; ··· 5323 5294 5324 5295 static struct cipher_testvec cast5_enc_tv_template[] = { 5325 5296 { 5326 - .key = { 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78, 5327 - 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9a }, 5297 + .key = "\x01\x23\x45\x67\x12\x34\x56\x78" 5298 + "\x23\x45\x67\x89\x34\x56\x78\x9a", 5328 5299 .klen = 16, 5329 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5300 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5330 5301 .ilen = 8, 5331 - .result = { 0x23, 0x8b, 0x4f, 0xe5, 0x84, 0x7e, 0x44, 0xb2 }, 5302 + .result = "\x23\x8b\x4f\xe5\x84\x7e\x44\xb2", 5332 5303 .rlen = 8, 5333 5304 }, { 5334 - .key = { 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78, 5335 - 0x23, 0x45 }, 5305 + .key = "\x01\x23\x45\x67\x12\x34\x56\x78" 5306 + "\x23\x45", 5336 5307 .klen = 10, 5337 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5308 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5338 5309 .ilen = 8, 5339 - .result = { 0xeb, 0x6a, 0x71, 0x1a, 0x2c, 0x02, 0x27, 0x1b }, 5310 + .result = "\xeb\x6a\x71\x1a\x2c\x02\x27\x1b", 5340 5311 .rlen = 8, 5341 5312 }, { 5342 - .key = { 0x01, 0x23, 0x45, 0x67, 0x12 }, 5313 + .key = "\x01\x23\x45\x67\x12", 5343 5314 .klen = 5, 5344 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5315 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5345 5316 .ilen = 8, 5346 - .result = { 0x7a, 0xc8, 0x16, 0xd1, 0x6e, 0x9b, 0x30, 0x2e }, 5317 + .result = "\x7a\xc8\x16\xd1\x6e\x9b\x30\x2e", 5347 5318 .rlen = 8, 5348 5319 }, 5349 5320 }; 5350 5321 5351 5322 static struct cipher_testvec cast5_dec_tv_template[] = { 5352 5323 { 5353 - .key = { 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78, 5354 - 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9a }, 5324 + .key = "\x01\x23\x45\x67\x12\x34\x56\x78" 5325 + "\x23\x45\x67\x89\x34\x56\x78\x9a", 5355 5326 .klen = 16, 5356 - .input = { 0x23, 0x8b, 0x4f, 0xe5, 0x84, 0x7e, 0x44, 0xb2 }, 5327 + .input = "\x23\x8b\x4f\xe5\x84\x7e\x44\xb2", 5357 5328 .ilen = 8, 5358 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5329 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5359 5330 .rlen = 8, 5360 5331 }, { 5361 - .key = { 0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78, 5362 - 0x23, 0x45 }, 5332 + .key = "\x01\x23\x45\x67\x12\x34\x56\x78" 5333 + "\x23\x45", 5363 5334 .klen = 10, 5364 - .input = { 0xeb, 0x6a, 0x71, 0x1a, 0x2c, 0x02, 0x27, 0x1b }, 5335 + .input = "\xeb\x6a\x71\x1a\x2c\x02\x27\x1b", 5365 5336 .ilen = 8, 5366 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5337 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5367 5338 .rlen = 8, 5368 5339 }, { 5369 - .key = { 0x01, 0x23, 0x45, 0x67, 0x12 }, 5340 + .key = "\x01\x23\x45\x67\x12", 5370 5341 .klen = 5, 5371 - .input = { 0x7a, 0xc8, 0x16, 0xd1, 0x6e, 0x9b, 0x30, 0x2e }, 5342 + .input = "\x7a\xc8\x16\xd1\x6e\x9b\x30\x2e", 5372 5343 .ilen = 8, 5373 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5344 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5374 5345 .rlen = 8, 5375 5346 }, 5376 5347 }; ··· 5383 5354 5384 5355 static struct cipher_testvec arc4_enc_tv_template[] = { 5385 5356 { 5386 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5357 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5387 5358 .klen = 8, 5388 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5359 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5389 5360 .ilen = 8, 5390 - .result = { 0x75, 0xb7, 0x87, 0x80, 0x99, 0xe0, 0xc5, 0x96 }, 5361 + .result = "\x75\xb7\x87\x80\x99\xe0\xc5\x96", 5391 5362 .rlen = 8, 5392 5363 }, { 5393 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5364 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5394 5365 .klen = 8, 5395 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5366 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00", 5396 5367 .ilen = 8, 5397 - .result = { 0x74, 0x94, 0xc2, 0xe7, 0x10, 0x4b, 0x08, 0x79 }, 5368 + .result = "\x74\x94\xc2\xe7\x10\x4b\x08\x79", 5398 5369 .rlen = 8, 5399 5370 }, { 5400 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5371 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00", 5401 5372 .klen = 8, 5402 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5373 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00", 5403 5374 .ilen = 8, 5404 - .result = { 0xde, 0x18, 0x89, 0x41, 0xa3, 0x37, 0x5d, 0x3a }, 5375 + .result = "\xde\x18\x89\x41\xa3\x37\x5d\x3a", 5405 5376 .rlen = 8, 5406 5377 }, { 5407 - .key = { 0xef, 0x01, 0x23, 0x45}, 5378 + .key = "\xef\x01\x23\x45", 5408 5379 .klen = 4, 5409 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5410 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5411 - 0x00, 0x00, 0x00, 0x00 }, 5380 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 5381 + "\x00\x00\x00\x00\x00\x00\x00\x00" 5382 + "\x00\x00\x00\x00", 5412 5383 .ilen = 20, 5413 - .result = { 0xd6, 0xa1, 0x41, 0xa7, 0xec, 0x3c, 0x38, 0xdf, 5414 - 0xbd, 0x61, 0x5a, 0x11, 0x62, 0xe1, 0xc7, 0xba, 5415 - 0x36, 0xb6, 0x78, 0x58 }, 5384 + .result = "\xd6\xa1\x41\xa7\xec\x3c\x38\xdf" 5385 + "\xbd\x61\x5a\x11\x62\xe1\xc7\xba" 5386 + "\x36\xb6\x78\x58", 5416 5387 .rlen = 20, 5417 5388 }, { 5418 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5389 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5419 5390 .klen = 8, 5420 - .input = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 5421 - 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 5422 - 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 5423 - 0x12, 0x34, 0x56, 0x78 }, 5391 + .input = "\x12\x34\x56\x78\x9A\xBC\xDE\xF0" 5392 + "\x12\x34\x56\x78\x9A\xBC\xDE\xF0" 5393 + "\x12\x34\x56\x78\x9A\xBC\xDE\xF0" 5394 + "\x12\x34\x56\x78", 5424 5395 .ilen = 28, 5425 - .result = { 0x66, 0xa0, 0x94, 0x9f, 0x8a, 0xf7, 0xd6, 0x89, 5426 - 0x1f, 0x7f, 0x83, 0x2b, 0xa8, 0x33, 0xc0, 0x0c, 5427 - 0x89, 0x2e, 0xbe, 0x30, 0x14, 0x3c, 0xe2, 0x87, 5428 - 0x40, 0x01, 0x1e, 0xcf }, 5396 + .result = "\x66\xa0\x94\x9f\x8a\xf7\xd6\x89" 5397 + "\x1f\x7f\x83\x2b\xa8\x33\xc0\x0c" 5398 + "\x89\x2e\xbe\x30\x14\x3c\xe2\x87" 5399 + "\x40\x01\x1e\xcf", 5429 5400 .rlen = 28, 5430 5401 }, { 5431 - .key = { 0xef, 0x01, 0x23, 0x45 }, 5402 + .key = "\xef\x01\x23\x45", 5432 5403 .klen = 4, 5433 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5434 - 0x00, 0x00 }, 5404 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 5405 + "\x00\x00", 5435 5406 .ilen = 10, 5436 - .result = { 0xd6, 0xa1, 0x41, 0xa7, 0xec, 0x3c, 0x38, 0xdf, 5437 - 0xbd, 0x61 }, 5407 + .result = "\xd6\xa1\x41\xa7\xec\x3c\x38\xdf" 5408 + "\xbd\x61", 5438 5409 .rlen = 10, 5439 5410 }, { 5440 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 5441 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5411 + .key = "\x01\x23\x45\x67\x89\xAB\xCD\xEF" 5412 + "\x00\x00\x00\x00\x00\x00\x00\x00", 5442 5413 .klen = 16, 5443 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF }, 5414 + .input = "\x01\x23\x45\x67\x89\xAB\xCD\xEF", 5444 5415 .ilen = 8, 5445 - .result = { 0x69, 0x72, 0x36, 0x59, 0x1B, 0x52, 0x42, 0xB1 }, 5416 + .result = "\x69\x72\x36\x59\x1B\x52\x42\xB1", 5446 5417 .rlen = 8, 5447 5418 }, 5448 5419 }; 5449 5420 5450 5421 static struct cipher_testvec arc4_dec_tv_template[] = { 5451 5422 { 5452 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5423 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5453 5424 .klen = 8, 5454 - .input = { 0x75, 0xb7, 0x87, 0x80, 0x99, 0xe0, 0xc5, 0x96 }, 5425 + .input = "\x75\xb7\x87\x80\x99\xe0\xc5\x96", 5455 5426 .ilen = 8, 5456 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5427 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5457 5428 .rlen = 8, 5458 5429 }, { 5459 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5430 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5460 5431 .klen = 8, 5461 - .input = { 0x74, 0x94, 0xc2, 0xe7, 0x10, 0x4b, 0x08, 0x79 }, 5432 + .input = "\x74\x94\xc2\xe7\x10\x4b\x08\x79", 5462 5433 .ilen = 8, 5463 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5434 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00", 5464 5435 .rlen = 8, 5465 5436 }, { 5466 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5437 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00", 5467 5438 .klen = 8, 5468 - .input = { 0xde, 0x18, 0x89, 0x41, 0xa3, 0x37, 0x5d, 0x3a }, 5439 + .input = "\xde\x18\x89\x41\xa3\x37\x5d\x3a", 5469 5440 .ilen = 8, 5470 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5441 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00", 5471 5442 .rlen = 8, 5472 5443 }, { 5473 - .key = { 0xef, 0x01, 0x23, 0x45}, 5444 + .key = "\xef\x01\x23\x45", 5474 5445 .klen = 4, 5475 - .input = { 0xd6, 0xa1, 0x41, 0xa7, 0xec, 0x3c, 0x38, 0xdf, 5476 - 0xbd, 0x61, 0x5a, 0x11, 0x62, 0xe1, 0xc7, 0xba, 5477 - 0x36, 0xb6, 0x78, 0x58 }, 5446 + .input = "\xd6\xa1\x41\xa7\xec\x3c\x38\xdf" 5447 + "\xbd\x61\x5a\x11\x62\xe1\xc7\xba" 5448 + "\x36\xb6\x78\x58", 5478 5449 .ilen = 20, 5479 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5480 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5481 - 0x00, 0x00, 0x00, 0x00 }, 5450 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00" 5451 + "\x00\x00\x00\x00\x00\x00\x00\x00" 5452 + "\x00\x00\x00\x00", 5482 5453 .rlen = 20, 5483 5454 }, { 5484 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }, 5455 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", 5485 5456 .klen = 8, 5486 - .input = { 0x66, 0xa0, 0x94, 0x9f, 0x8a, 0xf7, 0xd6, 0x89, 5487 - 0x1f, 0x7f, 0x83, 0x2b, 0xa8, 0x33, 0xc0, 0x0c, 5488 - 0x89, 0x2e, 0xbe, 0x30, 0x14, 0x3c, 0xe2, 0x87, 5489 - 0x40, 0x01, 0x1e, 0xcf }, 5457 + .input = "\x66\xa0\x94\x9f\x8a\xf7\xd6\x89" 5458 + "\x1f\x7f\x83\x2b\xa8\x33\xc0\x0c" 5459 + "\x89\x2e\xbe\x30\x14\x3c\xe2\x87" 5460 + "\x40\x01\x1e\xcf", 5490 5461 .ilen = 28, 5491 - .result = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 5492 - 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 5493 - 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 5494 - 0x12, 0x34, 0x56, 0x78 }, 5462 + .result = "\x12\x34\x56\x78\x9A\xBC\xDE\xF0" 5463 + "\x12\x34\x56\x78\x9A\xBC\xDE\xF0" 5464 + "\x12\x34\x56\x78\x9A\xBC\xDE\xF0" 5465 + "\x12\x34\x56\x78", 5495 5466 .rlen = 28, 5496 5467 }, { 5497 - .key = { 0xef, 0x01, 0x23, 0x45 }, 5468 + .key = "\xef\x01\x23\x45", 5498 5469 .klen = 4, 5499 - .input = { 0xd6, 0xa1, 0x41, 0xa7, 0xec, 0x3c, 0x38, 0xdf, 5500 - 0xbd, 0x61 }, 5470 + .input = "\xd6\xa1\x41\xa7\xec\x3c\x38\xdf" 5471 + "\xbd\x61", 5501 5472 .ilen = 10, 5502 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5503 - 0x00, 0x00 }, 5473 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00" 5474 + "\x00\x00", 5504 5475 .rlen = 10, 5505 5476 }, { 5506 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 5507 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5477 + .key = "\x01\x23\x45\x67\x89\xAB\xCD\xEF" 5478 + "\x00\x00\x00\x00\x00\x00\x00\x00", 5508 5479 .klen = 16, 5509 - .input = { 0x69, 0x72, 0x36, 0x59, 0x1B, 0x52, 0x42, 0xB1 }, 5480 + .input = "\x69\x72\x36\x59\x1B\x52\x42\xB1", 5510 5481 .ilen = 8, 5511 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF }, 5482 + .result = "\x01\x23\x45\x67\x89\xAB\xCD\xEF", 5512 5483 .rlen = 8, 5513 5484 }, 5514 5485 }; ··· 5521 5492 5522 5493 static struct cipher_testvec tea_enc_tv_template[] = { 5523 5494 { 5524 - .key = { [0 ... 15] = 0x00 }, 5495 + .key = zeroed_string, 5525 5496 .klen = 16, 5526 - .input = { [0 ... 8] = 0x00 }, 5497 + .input = zeroed_string, 5527 5498 .ilen = 8, 5528 - .result = { 0x0a, 0x3a, 0xea, 0x41, 0x40, 0xa9, 0xba, 0x94 }, 5499 + .result = "\x0a\x3a\xea\x41\x40\xa9\xba\x94", 5529 5500 .rlen = 8, 5530 5501 }, { 5531 - .key = { 0x2b, 0x02, 0x05, 0x68, 0x06, 0x14, 0x49, 0x76, 5532 - 0x77, 0x5d, 0x0e, 0x26, 0x6c, 0x28, 0x78, 0x43 }, 5502 + .key = "\x2b\x02\x05\x68\x06\x14\x49\x76" 5503 + "\x77\x5d\x0e\x26\x6c\x28\x78\x43", 5533 5504 .klen = 16, 5534 - .input = { 0x74, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x2e }, 5505 + .input = "\x74\x65\x73\x74\x20\x6d\x65\x2e", 5535 5506 .ilen = 8, 5536 - .result = { 0x77, 0x5d, 0x2a, 0x6a, 0xf6, 0xce, 0x92, 0x09 }, 5507 + .result = "\x77\x5d\x2a\x6a\xf6\xce\x92\x09", 5537 5508 .rlen = 8, 5538 5509 }, { 5539 - .key = { 0x09, 0x65, 0x43, 0x11, 0x66, 0x44, 0x39, 0x25, 5540 - 0x51, 0x3a, 0x16, 0x10, 0x0a, 0x08, 0x12, 0x6e }, 5510 + .key = "\x09\x65\x43\x11\x66\x44\x39\x25" 5511 + "\x51\x3a\x16\x10\x0a\x08\x12\x6e", 5541 5512 .klen = 16, 5542 - .input = { 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x74, 5543 - 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x63, 0x74 }, 5513 + .input = "\x6c\x6f\x6e\x67\x65\x72\x5f\x74" 5514 + "\x65\x73\x74\x5f\x76\x65\x63\x74", 5544 5515 .ilen = 16, 5545 - .result = { 0xbe, 0x7a, 0xbb, 0x81, 0x95, 0x2d, 0x1f, 0x1e, 5546 - 0xdd, 0x89, 0xa1, 0x25, 0x04, 0x21, 0xdf, 0x95 }, 5516 + .result = "\xbe\x7a\xbb\x81\x95\x2d\x1f\x1e" 5517 + "\xdd\x89\xa1\x25\x04\x21\xdf\x95", 5547 5518 .rlen = 16, 5548 5519 }, { 5549 - .key = { 0x4d, 0x76, 0x32, 0x17, 0x05, 0x3f, 0x75, 0x2c, 5550 - 0x5d, 0x04, 0x16, 0x36, 0x15, 0x72, 0x63, 0x2f }, 5520 + .key = "\x4d\x76\x32\x17\x05\x3f\x75\x2c" 5521 + "\x5d\x04\x16\x36\x15\x72\x63\x2f", 5551 5522 .klen = 16, 5552 - .input = { 0x54, 0x65, 0x61, 0x20, 0x69, 0x73, 0x20, 0x67, 5553 - 0x6f, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 5554 - 0x79, 0x6f, 0x75, 0x21, 0x21, 0x21, 0x20, 0x72, 5555 - 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x21, 0x21, 0x21 }, 5523 + .input = "\x54\x65\x61\x20\x69\x73\x20\x67" 5524 + "\x6f\x6f\x64\x20\x66\x6f\x72\x20" 5525 + "\x79\x6f\x75\x21\x21\x21\x20\x72" 5526 + "\x65\x61\x6c\x6c\x79\x21\x21\x21", 5556 5527 .ilen = 32, 5557 - .result = { 0xe0, 0x4d, 0x5d, 0x3c, 0xb7, 0x8c, 0x36, 0x47, 5558 - 0x94, 0x18, 0x95, 0x91, 0xa9, 0xfc, 0x49, 0xf8, 5559 - 0x44, 0xd1, 0x2d, 0xc2, 0x99, 0xb8, 0x08, 0x2a, 5560 - 0x07, 0x89, 0x73, 0xc2, 0x45, 0x92, 0xc6, 0x90 }, 5528 + .result = "\xe0\x4d\x5d\x3c\xb7\x8c\x36\x47" 5529 + "\x94\x18\x95\x91\xa9\xfc\x49\xf8" 5530 + "\x44\xd1\x2d\xc2\x99\xb8\x08\x2a" 5531 + "\x07\x89\x73\xc2\x45\x92\xc6\x90", 5561 5532 .rlen = 32, 5562 5533 } 5563 5534 }; 5564 5535 5565 5536 static struct cipher_testvec tea_dec_tv_template[] = { 5566 5537 { 5567 - .key = { [0 ... 15] = 0x00 }, 5538 + .key = zeroed_string, 5568 5539 .klen = 16, 5569 - .input = { 0x0a, 0x3a, 0xea, 0x41, 0x40, 0xa9, 0xba, 0x94 }, 5540 + .input = "\x0a\x3a\xea\x41\x40\xa9\xba\x94", 5570 5541 .ilen = 8, 5571 - .result = { [0 ... 8] = 0x00 }, 5542 + .result = zeroed_string, 5572 5543 .rlen = 8, 5573 5544 }, { 5574 - .key = { 0x2b, 0x02, 0x05, 0x68, 0x06, 0x14, 0x49, 0x76, 5575 - 0x77, 0x5d, 0x0e, 0x26, 0x6c, 0x28, 0x78, 0x43 }, 5545 + .key = "\x2b\x02\x05\x68\x06\x14\x49\x76" 5546 + "\x77\x5d\x0e\x26\x6c\x28\x78\x43", 5576 5547 .klen = 16, 5577 - .input = { 0x77, 0x5d, 0x2a, 0x6a, 0xf6, 0xce, 0x92, 0x09 }, 5548 + .input = "\x77\x5d\x2a\x6a\xf6\xce\x92\x09", 5578 5549 .ilen = 8, 5579 - .result = { 0x74, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x2e }, 5550 + .result = "\x74\x65\x73\x74\x20\x6d\x65\x2e", 5580 5551 .rlen = 8, 5581 5552 }, { 5582 - .key = { 0x09, 0x65, 0x43, 0x11, 0x66, 0x44, 0x39, 0x25, 5583 - 0x51, 0x3a, 0x16, 0x10, 0x0a, 0x08, 0x12, 0x6e }, 5553 + .key = "\x09\x65\x43\x11\x66\x44\x39\x25" 5554 + "\x51\x3a\x16\x10\x0a\x08\x12\x6e", 5584 5555 .klen = 16, 5585 - .input = { 0xbe, 0x7a, 0xbb, 0x81, 0x95, 0x2d, 0x1f, 0x1e, 5586 - 0xdd, 0x89, 0xa1, 0x25, 0x04, 0x21, 0xdf, 0x95 }, 5556 + .input = "\xbe\x7a\xbb\x81\x95\x2d\x1f\x1e" 5557 + "\xdd\x89\xa1\x25\x04\x21\xdf\x95", 5587 5558 .ilen = 16, 5588 - .result = { 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x74, 5589 - 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x63, 0x74 }, 5559 + .result = "\x6c\x6f\x6e\x67\x65\x72\x5f\x74" 5560 + "\x65\x73\x74\x5f\x76\x65\x63\x74", 5590 5561 .rlen = 16, 5591 5562 }, { 5592 - .key = { 0x4d, 0x76, 0x32, 0x17, 0x05, 0x3f, 0x75, 0x2c, 5593 - 0x5d, 0x04, 0x16, 0x36, 0x15, 0x72, 0x63, 0x2f }, 5563 + .key = "\x4d\x76\x32\x17\x05\x3f\x75\x2c" 5564 + "\x5d\x04\x16\x36\x15\x72\x63\x2f", 5594 5565 .klen = 16, 5595 - .input = { 0xe0, 0x4d, 0x5d, 0x3c, 0xb7, 0x8c, 0x36, 0x47, 5596 - 0x94, 0x18, 0x95, 0x91, 0xa9, 0xfc, 0x49, 0xf8, 5597 - 0x44, 0xd1, 0x2d, 0xc2, 0x99, 0xb8, 0x08, 0x2a, 5598 - 0x07, 0x89, 0x73, 0xc2, 0x45, 0x92, 0xc6, 0x90 }, 5566 + .input = "\xe0\x4d\x5d\x3c\xb7\x8c\x36\x47" 5567 + "\x94\x18\x95\x91\xa9\xfc\x49\xf8" 5568 + "\x44\xd1\x2d\xc2\x99\xb8\x08\x2a" 5569 + "\x07\x89\x73\xc2\x45\x92\xc6\x90", 5599 5570 .ilen = 32, 5600 - .result = { 0x54, 0x65, 0x61, 0x20, 0x69, 0x73, 0x20, 0x67, 5601 - 0x6f, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 5602 - 0x79, 0x6f, 0x75, 0x21, 0x21, 0x21, 0x20, 0x72, 5603 - 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x21, 0x21, 0x21 }, 5571 + .result = "\x54\x65\x61\x20\x69\x73\x20\x67" 5572 + "\x6f\x6f\x64\x20\x66\x6f\x72\x20" 5573 + "\x79\x6f\x75\x21\x21\x21\x20\x72" 5574 + "\x65\x61\x6c\x6c\x79\x21\x21\x21", 5604 5575 .rlen = 32, 5605 5576 } 5606 5577 }; ··· 5613 5584 5614 5585 static struct cipher_testvec xtea_enc_tv_template[] = { 5615 5586 { 5616 - .key = { [0 ... 15] = 0x00 }, 5587 + .key = zeroed_string, 5617 5588 .klen = 16, 5618 - .input = { [0 ... 8] = 0x00 }, 5589 + .input = zeroed_string, 5619 5590 .ilen = 8, 5620 - .result = { 0xd8, 0xd4, 0xe9, 0xde, 0xd9, 0x1e, 0x13, 0xf7 }, 5591 + .result = "\xd8\xd4\xe9\xde\xd9\x1e\x13\xf7", 5621 5592 .rlen = 8, 5622 5593 }, { 5623 - .key = { 0x2b, 0x02, 0x05, 0x68, 0x06, 0x14, 0x49, 0x76, 5624 - 0x77, 0x5d, 0x0e, 0x26, 0x6c, 0x28, 0x78, 0x43 }, 5594 + .key = "\x2b\x02\x05\x68\x06\x14\x49\x76" 5595 + "\x77\x5d\x0e\x26\x6c\x28\x78\x43", 5625 5596 .klen = 16, 5626 - .input = { 0x74, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x2e }, 5597 + .input = "\x74\x65\x73\x74\x20\x6d\x65\x2e", 5627 5598 .ilen = 8, 5628 - .result = { 0x94, 0xeb, 0xc8, 0x96, 0x84, 0x6a, 0x49, 0xa8 }, 5599 + .result = "\x94\xeb\xc8\x96\x84\x6a\x49\xa8", 5629 5600 .rlen = 8, 5630 5601 }, { 5631 - .key = { 0x09, 0x65, 0x43, 0x11, 0x66, 0x44, 0x39, 0x25, 5632 - 0x51, 0x3a, 0x16, 0x10, 0x0a, 0x08, 0x12, 0x6e }, 5602 + .key = "\x09\x65\x43\x11\x66\x44\x39\x25" 5603 + "\x51\x3a\x16\x10\x0a\x08\x12\x6e", 5633 5604 .klen = 16, 5634 - .input = { 0x3e, 0xce, 0xae, 0x22, 0x60, 0x56, 0xa8, 0x9d, 5635 - 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x63, 0x74 }, 5605 + .input = "\x6c\x6f\x6e\x67\x65\x72\x5f\x74" 5606 + "\x65\x73\x74\x5f\x76\x65\x63\x74", 5636 5607 .ilen = 16, 5637 - .result = { 0xe2, 0x04, 0xdb, 0xf2, 0x89, 0x85, 0x9e, 0xea, 5638 - 0x61, 0x35, 0xaa, 0xed, 0xb5, 0xcb, 0x71, 0x2c }, 5608 + .result = "\x3e\xce\xae\x22\x60\x56\xa8\x9d" 5609 + "\x77\x4d\xd4\xb4\x87\x24\xe3\x9a", 5639 5610 .rlen = 16, 5640 5611 }, { 5641 - .key = { 0x4d, 0x76, 0x32, 0x17, 0x05, 0x3f, 0x75, 0x2c, 5642 - 0x5d, 0x04, 0x16, 0x36, 0x15, 0x72, 0x63, 0x2f }, 5612 + .key = "\x4d\x76\x32\x17\x05\x3f\x75\x2c" 5613 + "\x5d\x04\x16\x36\x15\x72\x63\x2f", 5643 5614 .klen = 16, 5644 - .input = { 0x54, 0x65, 0x61, 0x20, 0x69, 0x73, 0x20, 0x67, 5645 - 0x6f, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 5646 - 0x79, 0x6f, 0x75, 0x21, 0x21, 0x21, 0x20, 0x72, 5647 - 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x21, 0x21, 0x21 }, 5615 + .input = "\x54\x65\x61\x20\x69\x73\x20\x67" 5616 + "\x6f\x6f\x64\x20\x66\x6f\x72\x20" 5617 + "\x79\x6f\x75\x21\x21\x21\x20\x72" 5618 + "\x65\x61\x6c\x6c\x79\x21\x21\x21", 5648 5619 .ilen = 32, 5649 - .result = { 0x99, 0x81, 0x9f, 0x5d, 0x6f, 0x4b, 0x31, 0x3a, 5650 - 0x86, 0xff, 0x6f, 0xd0, 0xe3, 0x87, 0x70, 0x07, 5651 - 0x4d, 0xb8, 0xcf, 0xf3, 0x99, 0x50, 0xb3, 0xd4, 5652 - 0x73, 0xa2, 0xfa, 0xc9, 0x16, 0x59, 0x5d, 0x81 }, 5620 + .result = "\x99\x81\x9f\x5d\x6f\x4b\x31\x3a" 5621 + "\x86\xff\x6f\xd0\xe3\x87\x70\x07" 5622 + "\x4d\xb8\xcf\xf3\x99\x50\xb3\xd4" 5623 + "\x73\xa2\xfa\xc9\x16\x59\x5d\x81", 5653 5624 .rlen = 32, 5654 5625 } 5655 5626 }; 5656 5627 5657 5628 static struct cipher_testvec xtea_dec_tv_template[] = { 5658 5629 { 5659 - .key = { [0 ... 15] = 0x00 }, 5630 + .key = zeroed_string, 5660 5631 .klen = 16, 5661 - .input = { 0xd8, 0xd4, 0xe9, 0xde, 0xd9, 0x1e, 0x13, 0xf7 }, 5632 + .input = "\xd8\xd4\xe9\xde\xd9\x1e\x13\xf7", 5662 5633 .ilen = 8, 5663 - .result = { [0 ... 8] = 0x00 }, 5634 + .result = zeroed_string, 5664 5635 .rlen = 8, 5665 5636 }, { 5666 - .key = { 0x2b, 0x02, 0x05, 0x68, 0x06, 0x14, 0x49, 0x76, 5667 - 0x77, 0x5d, 0x0e, 0x26, 0x6c, 0x28, 0x78, 0x43 }, 5637 + .key = "\x2b\x02\x05\x68\x06\x14\x49\x76" 5638 + "\x77\x5d\x0e\x26\x6c\x28\x78\x43", 5668 5639 .klen = 16, 5669 - .input = { 0x94, 0xeb, 0xc8, 0x96, 0x84, 0x6a, 0x49, 0xa8 }, 5640 + .input = "\x94\xeb\xc8\x96\x84\x6a\x49\xa8", 5670 5641 .ilen = 8, 5671 - .result = { 0x74, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x2e }, 5642 + .result = "\x74\x65\x73\x74\x20\x6d\x65\x2e", 5672 5643 .rlen = 8, 5673 5644 }, { 5674 - .key = { 0x09, 0x65, 0x43, 0x11, 0x66, 0x44, 0x39, 0x25, 5675 - 0x51, 0x3a, 0x16, 0x10, 0x0a, 0x08, 0x12, 0x6e }, 5645 + .key = "\x09\x65\x43\x11\x66\x44\x39\x25" 5646 + "\x51\x3a\x16\x10\x0a\x08\x12\x6e", 5676 5647 .klen = 16, 5677 - .input = { 0x3e, 0xce, 0xae, 0x22, 0x60, 0x56, 0xa8, 0x9d, 5678 - 0x77, 0x4d, 0xd4, 0xb4, 0x87, 0x24, 0xe3, 0x9a }, 5648 + .input = "\x3e\xce\xae\x22\x60\x56\xa8\x9d" 5649 + "\x77\x4d\xd4\xb4\x87\x24\xe3\x9a", 5679 5650 .ilen = 16, 5680 - .result = { 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x74, 5681 - 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x63, 0x74 }, 5651 + .result = "\x6c\x6f\x6e\x67\x65\x72\x5f\x74" 5652 + "\x65\x73\x74\x5f\x76\x65\x63\x74", 5682 5653 .rlen = 16, 5683 5654 }, { 5684 - .key = { 0x4d, 0x76, 0x32, 0x17, 0x05, 0x3f, 0x75, 0x2c, 5685 - 0x5d, 0x04, 0x16, 0x36, 0x15, 0x72, 0x63, 0x2f }, 5655 + .key = "\x4d\x76\x32\x17\x05\x3f\x75\x2c" 5656 + "\x5d\x04\x16\x36\x15\x72\x63\x2f", 5686 5657 .klen = 16, 5687 - .input = { 0x99, 0x81, 0x9f, 0x5d, 0x6f, 0x4b, 0x31, 0x3a, 5688 - 0x86, 0xff, 0x6f, 0xd0, 0xe3, 0x87, 0x70, 0x07, 5689 - 0x4d, 0xb8, 0xcf, 0xf3, 0x99, 0x50, 0xb3, 0xd4, 5690 - 0x73, 0xa2, 0xfa, 0xc9, 0x16, 0x59, 0x5d, 0x81 }, 5658 + .input = "\x99\x81\x9f\x5d\x6f\x4b\x31\x3a" 5659 + "\x86\xff\x6f\xd0\xe3\x87\x70\x07" 5660 + "\x4d\xb8\xcf\xf3\x99\x50\xb3\xd4" 5661 + "\x73\xa2\xfa\xc9\x16\x59\x5d\x81", 5691 5662 .ilen = 32, 5692 - .result = { 0x54, 0x65, 0x61, 0x20, 0x69, 0x73, 0x20, 0x67, 5693 - 0x6f, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 5694 - 0x79, 0x6f, 0x75, 0x21, 0x21, 0x21, 0x20, 0x72, 5695 - 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x21, 0x21, 0x21 }, 5663 + .result = "\x54\x65\x61\x20\x69\x73\x20\x67" 5664 + "\x6f\x6f\x64\x20\x66\x6f\x72\x20" 5665 + "\x79\x6f\x75\x21\x21\x21\x20\x72" 5666 + "\x65\x61\x6c\x6c\x79\x21\x21\x21", 5696 5667 .rlen = 32, 5697 5668 } 5698 5669 }; ··· 5705 5676 5706 5677 static struct cipher_testvec khazad_enc_tv_template[] = { 5707 5678 { 5708 - .key = { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5709 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5679 + .key = "\x80\x00\x00\x00\x00\x00\x00\x00" 5680 + "\x00\x00\x00\x00\x00\x00\x00\x00", 5710 5681 .klen = 16, 5711 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5682 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00", 5712 5683 .ilen = 8, 5713 - .result = { 0x49, 0xa4, 0xce, 0x32, 0xac, 0x19, 0x0e, 0x3f }, 5684 + .result = "\x49\xa4\xce\x32\xac\x19\x0e\x3f", 5714 5685 .rlen = 8, 5715 5686 }, { 5716 - .key = { 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 5717 - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38 }, 5687 + .key = "\x38\x38\x38\x38\x38\x38\x38\x38" 5688 + "\x38\x38\x38\x38\x38\x38\x38\x38", 5718 5689 .klen = 16, 5719 - .input = { 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38 }, 5690 + .input = "\x38\x38\x38\x38\x38\x38\x38\x38", 5720 5691 .ilen = 8, 5721 - .result = { 0x7e, 0x82, 0x12, 0xa1, 0Xd9, 0X5b, 0Xe4, 0Xf9 }, 5692 + .result = "\x7e\x82\x12\xa1\xd9\x5b\xe4\xf9", 5722 5693 .rlen = 8, 5723 5694 }, { 5724 - .key = { 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 5725 - 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2 }, 5695 + .key = "\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2" 5696 + "\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2", 5726 5697 .klen = 16, 5727 - .input = { 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2 }, 5698 + .input = "\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2", 5728 5699 .ilen = 8, 5729 - .result = { 0Xaa, 0Xbe, 0Xc1, 0X95, 0Xc5, 0X94, 0X1a, 0X9c }, 5700 + .result = "\xaa\xbe\xc1\x95\xc5\x94\x1a\x9c", 5730 5701 .rlen = 8, 5731 5702 }, { 5732 - .key = { 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 5733 - 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f }, 5703 + .key = "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f" 5704 + "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f", 5734 5705 .klen = 16, 5735 - .input = { 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f }, 5706 + .input = "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f", 5736 5707 .ilen = 8, 5737 - .result = { 0X04, 0X74, 0Xf5, 0X70, 0X50, 0X16, 0Xd3, 0Xb8 }, 5708 + .result = "\x04\x74\xf5\x70\x50\x16\xd3\xb8", 5738 5709 .rlen = 8, 5739 5710 }, { 5740 - .key = { 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 5741 - 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f }, 5711 + .key = "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f" 5712 + "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f", 5742 5713 .klen = 16, 5743 - .input = { 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f , 5744 - 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f }, 5714 + .input = "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f" 5715 + "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f", 5745 5716 .ilen = 16, 5746 - .result = { 0X04, 0X74, 0Xf5, 0X70, 0X50, 0X16, 0Xd3, 0Xb8 , 5747 - 0X04, 0X74, 0Xf5, 0X70, 0X50, 0X16, 0Xd3, 0Xb8 }, 5717 + .result = "\x04\x74\xf5\x70\x50\x16\xd3\xb8" 5718 + "\x04\x74\xf5\x70\x50\x16\xd3\xb8", 5748 5719 .rlen = 16, 5749 5720 }, 5750 5721 }; 5751 5722 5752 5723 static struct cipher_testvec khazad_dec_tv_template[] = { 5753 5724 { 5754 - .key = { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5755 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5725 + .key = "\x80\x00\x00\x00\x00\x00\x00\x00" 5726 + "\x00\x00\x00\x00\x00\x00\x00\x00", 5756 5727 .klen = 16, 5757 - .input = { 0X49, 0Xa4, 0Xce, 0X32, 0Xac, 0X19, 0X0e, 0X3f }, 5728 + .input = "\x49\xa4\xce\x32\xac\x19\x0e\x3f", 5758 5729 .ilen = 8, 5759 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 5730 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00", 5760 5731 .rlen = 8, 5761 5732 }, { 5762 - .key = { 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 5763 - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38 }, 5733 + .key = "\x38\x38\x38\x38\x38\x38\x38\x38" 5734 + "\x38\x38\x38\x38\x38\x38\x38\x38", 5764 5735 .klen = 16, 5765 - .input = { 0X7e, 0X82, 0X12, 0Xa1, 0Xd9, 0X5b, 0Xe4, 0Xf9 }, 5736 + .input = "\x7e\x82\x12\xa1\xd9\x5b\xe4\xf9", 5766 5737 .ilen = 8, 5767 - .result = { 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38 }, 5738 + .result = "\x38\x38\x38\x38\x38\x38\x38\x38", 5768 5739 .rlen = 8, 5769 5740 }, { 5770 - .key = { 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 5771 - 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2 }, 5741 + .key = "\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2" 5742 + "\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2", 5772 5743 .klen = 16, 5773 - .input = { 0Xaa, 0Xbe, 0Xc1, 0X95, 0Xc5, 0X94, 0X1a, 0X9c }, 5744 + .input = "\xaa\xbe\xc1\x95\xc5\x94\x1a\x9c", 5774 5745 .ilen = 8, 5775 - .result = { 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2, 0Xa2 }, 5746 + .result = "\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2", 5776 5747 .rlen = 8, 5777 5748 }, { 5778 - .key = { 0x2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 5779 - 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f }, 5749 + .key = "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f" 5750 + "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f", 5780 5751 .klen = 16, 5781 - .input = { 0X04, 0X74, 0Xf5, 0X70, 0X50, 0X16, 0Xd3, 0Xb8 }, 5752 + .input = "\x04\x74\xf5\x70\x50\x16\xd3\xb8", 5782 5753 .ilen = 8, 5783 - .result = { 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f }, 5754 + .result = "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f", 5784 5755 .rlen = 8, 5785 5756 }, { 5786 - .key = { 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 5787 - 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f }, 5757 + .key = "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f" 5758 + "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f", 5788 5759 .klen = 16, 5789 - .input = { 0X04, 0X74, 0Xf5, 0X70, 0X50, 0X16, 0Xd3, 0Xb8 , 5790 - 0X04, 0X74, 0Xf5, 0X70, 0X50, 0X16, 0Xd3, 0Xb8 }, 5760 + .input = "\x04\x74\xf5\x70\x50\x16\xd3\xb8" 5761 + "\x04\x74\xf5\x70\x50\x16\xd3\xb8", 5791 5762 .ilen = 16, 5792 - .result = { 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f , 5793 - 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f, 0X2f }, 5763 + .result = "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f" 5764 + "\x2f\x2f\x2f\x2f\x2f\x2f\x2f\x2f", 5794 5765 .rlen = 16, 5795 5766 }, 5796 5767 }; ··· 5806 5777 5807 5778 static struct cipher_testvec anubis_enc_tv_template[] = { 5808 5779 { 5809 - .key = { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5810 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }, 5780 + .key = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5781 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe", 5811 5782 .klen = 16, 5812 - .input = { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5813 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }, 5783 + .input = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5784 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe", 5814 5785 .ilen = 16, 5815 - .result = { 0x6d, 0xc5, 0xda, 0xa2, 0x26, 0x7d, 0x62, 0x6f, 5816 - 0x08, 0xb7, 0x52, 0x8e, 0x6e, 0x6e, 0x86, 0x90 }, 5786 + .result = "\x6d\xc5\xda\xa2\x26\x7d\x62\x6f" 5787 + "\x08\xb7\x52\x8e\x6e\x6e\x86\x90", 5817 5788 .rlen = 16, 5818 5789 }, { 5819 5790 5820 - .key = { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 5821 - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 5822 - 0x03, 0x03, 0x03, 0x03 }, 5791 + .key = "\x03\x03\x03\x03\x03\x03\x03\x03" 5792 + "\x03\x03\x03\x03\x03\x03\x03\x03" 5793 + "\x03\x03\x03\x03", 5823 5794 .klen = 20, 5824 - .input = { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 5825 - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 }, 5795 + .input = "\x03\x03\x03\x03\x03\x03\x03\x03" 5796 + "\x03\x03\x03\x03\x03\x03\x03\x03", 5826 5797 .ilen = 16, 5827 - .result = { 0xdb, 0xf1, 0x42, 0xf4, 0xd1, 0x8a, 0xc7, 0x49, 5828 - 0x87, 0x41, 0x6f, 0x82, 0x0a, 0x98, 0x64, 0xae }, 5798 + .result = "\xdb\xf1\x42\xf4\xd1\x8a\xc7\x49" 5799 + "\x87\x41\x6f\x82\x0a\x98\x64\xae", 5829 5800 .rlen = 16, 5830 5801 }, { 5831 - .key = { 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 5832 - 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 5833 - 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 5834 - 0x24, 0x24, 0x24, 0x24 }, 5802 + .key = "\x24\x24\x24\x24\x24\x24\x24\x24" 5803 + "\x24\x24\x24\x24\x24\x24\x24\x24" 5804 + "\x24\x24\x24\x24\x24\x24\x24\x24" 5805 + "\x24\x24\x24\x24", 5835 5806 .klen = 28, 5836 - .input = { 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 5837 - 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24 }, 5807 + .input = "\x24\x24\x24\x24\x24\x24\x24\x24" 5808 + "\x24\x24\x24\x24\x24\x24\x24\x24", 5838 5809 .ilen = 16, 5839 - .result = { 0xfd, 0x1b, 0x4a, 0xe3, 0xbf, 0xf0, 0xad, 0x3d, 5840 - 0x06, 0xd3, 0x61, 0x27, 0xfd, 0x13, 0x9e, 0xde }, 5810 + .result = "\xfd\x1b\x4a\xe3\xbf\xf0\xad\x3d" 5811 + "\x06\xd3\x61\x27\xfd\x13\x9e\xde", 5841 5812 .rlen = 16, 5842 5813 }, { 5843 - .key = { 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 5844 - 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 5845 - 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 5846 - 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25 }, 5814 + .key = "\x25\x25\x25\x25\x25\x25\x25\x25" 5815 + "\x25\x25\x25\x25\x25\x25\x25\x25" 5816 + "\x25\x25\x25\x25\x25\x25\x25\x25" 5817 + "\x25\x25\x25\x25\x25\x25\x25\x25", 5847 5818 .klen = 32, 5848 - .input = { 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 5849 - 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25 }, 5819 + .input = "\x25\x25\x25\x25\x25\x25\x25\x25" 5820 + "\x25\x25\x25\x25\x25\x25\x25\x25", 5850 5821 .ilen = 16, 5851 - .result = { 0x1a, 0x91, 0xfb, 0x2b, 0xb7, 0x78, 0x6b, 0xc4, 5852 - 0x17, 0xd9, 0xff, 0x40, 0x3b, 0x0e, 0xe5, 0xfe }, 5822 + .result = "\x1a\x91\xfb\x2b\xb7\x78\x6b\xc4" 5823 + "\x17\xd9\xff\x40\x3b\x0e\xe5\xfe", 5853 5824 .rlen = 16, 5854 5825 }, { 5855 - .key = { 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5856 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5857 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5858 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5859 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35 }, 5826 + .key = "\x35\x35\x35\x35\x35\x35\x35\x35" 5827 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5828 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5829 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5830 + "\x35\x35\x35\x35\x35\x35\x35\x35", 5860 5831 .klen = 40, 5861 - .input = { 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5862 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35 }, 5832 + .input = "\x35\x35\x35\x35\x35\x35\x35\x35" 5833 + "\x35\x35\x35\x35\x35\x35\x35\x35", 5863 5834 .ilen = 16, 5864 - .result = { 0xa5, 0x2c, 0x85, 0x6f, 0x9c, 0xba, 0xa0, 0x97, 5865 - 0x9e, 0xc6, 0x84, 0x0f, 0x17, 0x21, 0x07, 0xee }, 5835 + .result = "\xa5\x2c\x85\x6f\x9c\xba\xa0\x97" 5836 + "\x9e\xc6\x84\x0f\x17\x21\x07\xee", 5866 5837 .rlen = 16, 5867 5838 }, 5868 5839 }; 5869 5840 5870 5841 static struct cipher_testvec anubis_dec_tv_template[] = { 5871 5842 { 5872 - .key = { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5873 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }, 5843 + .key = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5844 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe", 5874 5845 .klen = 16, 5875 - .input = { 0x6d, 0xc5, 0xda, 0xa2, 0x26, 0x7d, 0x62, 0x6f, 5876 - 0x08, 0xb7, 0x52, 0x8e, 0x6e, 0x6e, 0x86, 0x90 }, 5846 + .input = "\x6d\xc5\xda\xa2\x26\x7d\x62\x6f" 5847 + "\x08\xb7\x52\x8e\x6e\x6e\x86\x90", 5877 5848 .ilen = 16, 5878 - .result = { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5879 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }, 5849 + .result = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5850 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe", 5880 5851 .rlen = 16, 5881 5852 }, { 5882 5853 5883 - .key = { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 5884 - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 5885 - 0x03, 0x03, 0x03, 0x03 }, 5854 + .key = "\x03\x03\x03\x03\x03\x03\x03\x03" 5855 + "\x03\x03\x03\x03\x03\x03\x03\x03" 5856 + "\x03\x03\x03\x03", 5886 5857 .klen = 20, 5887 - .input = { 0xdb, 0xf1, 0x42, 0xf4, 0xd1, 0x8a, 0xc7, 0x49, 5888 - 0x87, 0x41, 0x6f, 0x82, 0x0a, 0x98, 0x64, 0xae }, 5858 + .input = "\xdb\xf1\x42\xf4\xd1\x8a\xc7\x49" 5859 + "\x87\x41\x6f\x82\x0a\x98\x64\xae", 5889 5860 .ilen = 16, 5890 - .result = { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 5891 - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 }, 5861 + .result = "\x03\x03\x03\x03\x03\x03\x03\x03" 5862 + "\x03\x03\x03\x03\x03\x03\x03\x03", 5892 5863 .rlen = 16, 5893 5864 }, { 5894 - .key = { 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 5895 - 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 5896 - 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 5897 - 0x24, 0x24, 0x24, 0x24 }, 5865 + .key = "\x24\x24\x24\x24\x24\x24\x24\x24" 5866 + "\x24\x24\x24\x24\x24\x24\x24\x24" 5867 + "\x24\x24\x24\x24\x24\x24\x24\x24" 5868 + "\x24\x24\x24\x24", 5898 5869 .klen = 28, 5899 - .input = { 0xfd, 0x1b, 0x4a, 0xe3, 0xbf, 0xf0, 0xad, 0x3d, 5900 - 0x06, 0xd3, 0x61, 0x27, 0xfd, 0x13, 0x9e, 0xde }, 5870 + .input = "\xfd\x1b\x4a\xe3\xbf\xf0\xad\x3d" 5871 + "\x06\xd3\x61\x27\xfd\x13\x9e\xde", 5901 5872 .ilen = 16, 5902 - .result = { 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 5903 - 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24 }, 5873 + .result = "\x24\x24\x24\x24\x24\x24\x24\x24" 5874 + "\x24\x24\x24\x24\x24\x24\x24\x24", 5904 5875 .rlen = 16, 5905 5876 }, { 5906 - .key = { 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 5907 - 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 5908 - 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 5909 - 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25 }, 5877 + .key = "\x25\x25\x25\x25\x25\x25\x25\x25" 5878 + "\x25\x25\x25\x25\x25\x25\x25\x25" 5879 + "\x25\x25\x25\x25\x25\x25\x25\x25" 5880 + "\x25\x25\x25\x25\x25\x25\x25\x25", 5910 5881 .klen = 32, 5911 - .input = { 0x1a, 0x91, 0xfb, 0x2b, 0xb7, 0x78, 0x6b, 0xc4, 5912 - 0x17, 0xd9, 0xff, 0x40, 0x3b, 0x0e, 0xe5, 0xfe }, 5882 + .input = "\x1a\x91\xfb\x2b\xb7\x78\x6b\xc4" 5883 + "\x17\xd9\xff\x40\x3b\x0e\xe5\xfe", 5913 5884 .ilen = 16, 5914 - .result = { 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 5915 - 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25 }, 5885 + .result = "\x25\x25\x25\x25\x25\x25\x25\x25" 5886 + "\x25\x25\x25\x25\x25\x25\x25\x25", 5916 5887 .rlen = 16, 5917 5888 }, { 5918 - .key = { 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5919 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5920 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5921 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5922 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35 }, 5923 - .input = { 0xa5, 0x2c, 0x85, 0x6f, 0x9c, 0xba, 0xa0, 0x97, 5924 - 0x9e, 0xc6, 0x84, 0x0f, 0x17, 0x21, 0x07, 0xee }, 5889 + .key = "\x35\x35\x35\x35\x35\x35\x35\x35" 5890 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5891 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5892 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5893 + "\x35\x35\x35\x35\x35\x35\x35\x35", 5894 + .input = "\xa5\x2c\x85\x6f\x9c\xba\xa0\x97" 5895 + "\x9e\xc6\x84\x0f\x17\x21\x07\xee", 5925 5896 .klen = 40, 5926 5897 .ilen = 16, 5927 - .result = { 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5928 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35 }, 5898 + .result = "\x35\x35\x35\x35\x35\x35\x35\x35" 5899 + "\x35\x35\x35\x35\x35\x35\x35\x35", 5929 5900 .rlen = 16, 5930 5901 }, 5931 5902 }; 5932 5903 5933 5904 static struct cipher_testvec anubis_cbc_enc_tv_template[] = { 5934 5905 { 5935 - .key = { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5936 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }, 5906 + .key = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5907 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe", 5937 5908 .klen = 16, 5938 - .input = { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5939 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5940 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5941 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }, 5909 + .input = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5910 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5911 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5912 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe", 5942 5913 .ilen = 32, 5943 - .result = { 0x6d, 0xc5, 0xda, 0xa2, 0x26, 0x7d, 0x62, 0x6f, 5944 - 0x08, 0xb7, 0x52, 0x8e, 0x6e, 0x6e, 0x86, 0x90, 5945 - 0x86, 0xd8, 0xb5, 0x6f, 0x98, 0x5e, 0x8a, 0x66, 5946 - 0x4f, 0x1f, 0x78, 0xa1, 0xbb, 0x37, 0xf1, 0xbe }, 5914 + .result = "\x6d\xc5\xda\xa2\x26\x7d\x62\x6f" 5915 + "\x08\xb7\x52\x8e\x6e\x6e\x86\x90" 5916 + "\x86\xd8\xb5\x6f\x98\x5e\x8a\x66" 5917 + "\x4f\x1f\x78\xa1\xbb\x37\xf1\xbe", 5947 5918 .rlen = 32, 5948 5919 }, { 5949 - .key = { 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5950 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5951 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5952 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5953 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35 }, 5920 + .key = "\x35\x35\x35\x35\x35\x35\x35\x35" 5921 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5922 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5923 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5924 + "\x35\x35\x35\x35\x35\x35\x35\x35", 5954 5925 .klen = 40, 5955 - .input = { 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5956 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5957 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5958 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35 }, 5926 + .input = "\x35\x35\x35\x35\x35\x35\x35\x35" 5927 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5928 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5929 + "\x35\x35\x35\x35\x35\x35\x35\x35", 5959 5930 .ilen = 32, 5960 - .result = { 0xa5, 0x2c, 0x85, 0x6f, 0x9c, 0xba, 0xa0, 0x97, 5961 - 0x9e, 0xc6, 0x84, 0x0f, 0x17, 0x21, 0x07, 0xee, 5962 - 0xa2, 0xbc, 0x06, 0x98, 0xc6, 0x4b, 0xda, 0x75, 5963 - 0x2e, 0xaa, 0xbe, 0x58, 0xce, 0x01, 0x5b, 0xc7 }, 5931 + .result = "\xa5\x2c\x85\x6f\x9c\xba\xa0\x97" 5932 + "\x9e\xc6\x84\x0f\x17\x21\x07\xee" 5933 + "\xa2\xbc\x06\x98\xc6\x4b\xda\x75" 5934 + "\x2e\xaa\xbe\x58\xce\x01\x5b\xc7", 5964 5935 .rlen = 32, 5965 5936 }, 5966 5937 }; 5967 5938 5968 5939 static struct cipher_testvec anubis_cbc_dec_tv_template[] = { 5969 5940 { 5970 - .key = { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5971 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }, 5941 + .key = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5942 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe", 5972 5943 .klen = 16, 5973 - .input = { 0x6d, 0xc5, 0xda, 0xa2, 0x26, 0x7d, 0x62, 0x6f, 5974 - 0x08, 0xb7, 0x52, 0x8e, 0x6e, 0x6e, 0x86, 0x90, 5975 - 0x86, 0xd8, 0xb5, 0x6f, 0x98, 0x5e, 0x8a, 0x66, 5976 - 0x4f, 0x1f, 0x78, 0xa1, 0xbb, 0x37, 0xf1, 0xbe }, 5944 + .input = "\x6d\xc5\xda\xa2\x26\x7d\x62\x6f" 5945 + "\x08\xb7\x52\x8e\x6e\x6e\x86\x90" 5946 + "\x86\xd8\xb5\x6f\x98\x5e\x8a\x66" 5947 + "\x4f\x1f\x78\xa1\xbb\x37\xf1\xbe", 5977 5948 .ilen = 32, 5978 - .result = { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5979 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5980 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 5981 - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }, 5949 + .result = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5950 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5951 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" 5952 + "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe", 5982 5953 .rlen = 32, 5983 5954 }, { 5984 - .key = { 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5985 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5986 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5987 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5988 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35 }, 5955 + .key = "\x35\x35\x35\x35\x35\x35\x35\x35" 5956 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5957 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5958 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5959 + "\x35\x35\x35\x35\x35\x35\x35\x35", 5989 5960 .klen = 40, 5990 - .input = { 0xa5, 0x2c, 0x85, 0x6f, 0x9c, 0xba, 0xa0, 0x97, 5991 - 0x9e, 0xc6, 0x84, 0x0f, 0x17, 0x21, 0x07, 0xee, 5992 - 0xa2, 0xbc, 0x06, 0x98, 0xc6, 0x4b, 0xda, 0x75, 5993 - 0x2e, 0xaa, 0xbe, 0x58, 0xce, 0x01, 0x5b, 0xc7 }, 5961 + .input = "\xa5\x2c\x85\x6f\x9c\xba\xa0\x97" 5962 + "\x9e\xc6\x84\x0f\x17\x21\x07\xee" 5963 + "\xa2\xbc\x06\x98\xc6\x4b\xda\x75" 5964 + "\x2e\xaa\xbe\x58\xce\x01\x5b\xc7", 5994 5965 .ilen = 32, 5995 - .result = { 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5996 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5997 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 5998 - 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35 }, 5966 + .result = "\x35\x35\x35\x35\x35\x35\x35\x35" 5967 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5968 + "\x35\x35\x35\x35\x35\x35\x35\x35" 5969 + "\x35\x35\x35\x35\x35\x35\x35\x35", 5999 5970 .rlen = 32, 6000 5971 }, 6001 5972 }; ··· 6008 5979 6009 5980 static struct cipher_testvec xeta_enc_tv_template[] = { 6010 5981 { 6011 - .key = { [0 ... 15] = 0x00 }, 5982 + .key = zeroed_string, 6012 5983 .klen = 16, 6013 - .input = { [0 ... 8] = 0x00 }, 5984 + .input = zeroed_string, 6014 5985 .ilen = 8, 6015 - .result = { 0xaa, 0x22, 0x96, 0xe5, 0x6c, 0x61, 0xf3, 0x45 }, 5986 + .result = "\xaa\x22\x96\xe5\x6c\x61\xf3\x45", 6016 5987 .rlen = 8, 6017 5988 }, { 6018 - .key = { 0x2b, 0x02, 0x05, 0x68, 0x06, 0x14, 0x49, 0x76, 6019 - 0x77, 0x5d, 0x0e, 0x26, 0x6c, 0x28, 0x78, 0x43 }, 5989 + .key = "\x2b\x02\x05\x68\x06\x14\x49\x76" 5990 + "\x77\x5d\x0e\x26\x6c\x28\x78\x43", 6020 5991 .klen = 16, 6021 - .input = { 0x74, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x2e }, 5992 + .input = "\x74\x65\x73\x74\x20\x6d\x65\x2e", 6022 5993 .ilen = 8, 6023 - .result = { 0x82, 0x3e, 0xeb, 0x35, 0xdc, 0xdd, 0xd9, 0xc3 }, 5994 + .result = "\x82\x3e\xeb\x35\xdc\xdd\xd9\xc3", 6024 5995 .rlen = 8, 6025 5996 }, { 6026 - .key = { 0x09, 0x65, 0x43, 0x11, 0x66, 0x44, 0x39, 0x25, 6027 - 0x51, 0x3a, 0x16, 0x10, 0x0a, 0x08, 0x12, 0x6e }, 5997 + .key = "\x09\x65\x43\x11\x66\x44\x39\x25" 5998 + "\x51\x3a\x16\x10\x0a\x08\x12\x6e", 6028 5999 .klen = 16, 6029 - .input = { 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x74, 6030 - 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x63, 0x74 }, 6000 + .input = "\x6c\x6f\x6e\x67\x65\x72\x5f\x74" 6001 + "\x65\x73\x74\x5f\x76\x65\x63\x74", 6031 6002 .ilen = 16, 6032 - .result = { 0xe2, 0x04, 0xdb, 0xf2, 0x89, 0x85, 0x9e, 0xea, 6033 - 0x61, 0x35, 0xaa, 0xed, 0xb5, 0xcb, 0x71, 0x2c }, 6003 + .result = "\xe2\x04\xdb\xf2\x89\x85\x9e\xea" 6004 + "\x61\x35\xaa\xed\xb5\xcb\x71\x2c", 6034 6005 .rlen = 16, 6035 6006 }, { 6036 - .key = { 0x4d, 0x76, 0x32, 0x17, 0x05, 0x3f, 0x75, 0x2c, 6037 - 0x5d, 0x04, 0x16, 0x36, 0x15, 0x72, 0x63, 0x2f }, 6007 + .key = "\x4d\x76\x32\x17\x05\x3f\x75\x2c" 6008 + "\x5d\x04\x16\x36\x15\x72\x63\x2f", 6038 6009 .klen = 16, 6039 - .input = { 0x54, 0x65, 0x61, 0x20, 0x69, 0x73, 0x20, 0x67, 6040 - 0x6f, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 6041 - 0x79, 0x6f, 0x75, 0x21, 0x21, 0x21, 0x20, 0x72, 6042 - 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x21, 0x21, 0x21 }, 6010 + .input = "\x54\x65\x61\x20\x69\x73\x20\x67" 6011 + "\x6f\x6f\x64\x20\x66\x6f\x72\x20" 6012 + "\x79\x6f\x75\x21\x21\x21\x20\x72" 6013 + "\x65\x61\x6c\x6c\x79\x21\x21\x21", 6043 6014 .ilen = 32, 6044 - .result = { 0x0b, 0x03, 0xcd, 0x8a, 0xbe, 0x95, 0xfd, 0xb1, 6045 - 0xc1, 0x44, 0x91, 0x0b, 0xa5, 0xc9, 0x1b, 0xb4, 6046 - 0xa9, 0xda, 0x1e, 0x9e, 0xb1, 0x3e, 0x2a, 0x8f, 6047 - 0xea, 0xa5, 0x6a, 0x85, 0xd1, 0xf4, 0xa8, 0xa5 }, 6015 + .result = "\x0b\x03\xcd\x8a\xbe\x95\xfd\xb1" 6016 + "\xc1\x44\x91\x0b\xa5\xc9\x1b\xb4" 6017 + "\xa9\xda\x1e\x9e\xb1\x3e\x2a\x8f" 6018 + "\xea\xa5\x6a\x85\xd1\xf4\xa8\xa5", 6048 6019 .rlen = 32, 6049 6020 } 6050 6021 }; 6051 6022 6052 6023 static struct cipher_testvec xeta_dec_tv_template[] = { 6053 6024 { 6054 - .key = { [0 ... 15] = 0x00 }, 6025 + .key = zeroed_string, 6055 6026 .klen = 16, 6056 - .input = { 0xaa, 0x22, 0x96, 0xe5, 0x6c, 0x61, 0xf3, 0x45 }, 6027 + .input = "\xaa\x22\x96\xe5\x6c\x61\xf3\x45", 6057 6028 .ilen = 8, 6058 - .result = { [0 ... 8] = 0x00 }, 6029 + .result = zeroed_string, 6059 6030 .rlen = 8, 6060 6031 }, { 6061 - .key = { 0x2b, 0x02, 0x05, 0x68, 0x06, 0x14, 0x49, 0x76, 6062 - 0x77, 0x5d, 0x0e, 0x26, 0x6c, 0x28, 0x78, 0x43 }, 6032 + .key = "\x2b\x02\x05\x68\x06\x14\x49\x76" 6033 + "\x77\x5d\x0e\x26\x6c\x28\x78\x43", 6063 6034 .klen = 16, 6064 - .input = { 0x82, 0x3e, 0xeb, 0x35, 0xdc, 0xdd, 0xd9, 0xc3 }, 6035 + .input = "\x82\x3e\xeb\x35\xdc\xdd\xd9\xc3", 6065 6036 .ilen = 8, 6066 - .result = { 0x74, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x2e }, 6037 + .result = "\x74\x65\x73\x74\x20\x6d\x65\x2e", 6067 6038 .rlen = 8, 6068 6039 }, { 6069 - .key = { 0x09, 0x65, 0x43, 0x11, 0x66, 0x44, 0x39, 0x25, 6070 - 0x51, 0x3a, 0x16, 0x10, 0x0a, 0x08, 0x12, 0x6e }, 6040 + .key = "\x09\x65\x43\x11\x66\x44\x39\x25" 6041 + "\x51\x3a\x16\x10\x0a\x08\x12\x6e", 6071 6042 .klen = 16, 6072 - .input = { 0xe2, 0x04, 0xdb, 0xf2, 0x89, 0x85, 0x9e, 0xea, 6073 - 0x61, 0x35, 0xaa, 0xed, 0xb5, 0xcb, 0x71, 0x2c }, 6043 + .input = "\xe2\x04\xdb\xf2\x89\x85\x9e\xea" 6044 + "\x61\x35\xaa\xed\xb5\xcb\x71\x2c", 6074 6045 .ilen = 16, 6075 - .result = { 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x74, 6076 - 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x63, 0x74 }, 6046 + .result = "\x6c\x6f\x6e\x67\x65\x72\x5f\x74" 6047 + "\x65\x73\x74\x5f\x76\x65\x63\x74", 6077 6048 .rlen = 16, 6078 6049 }, { 6079 - .key = { 0x4d, 0x76, 0x32, 0x17, 0x05, 0x3f, 0x75, 0x2c, 6080 - 0x5d, 0x04, 0x16, 0x36, 0x15, 0x72, 0x63, 0x2f }, 6050 + .key = "\x4d\x76\x32\x17\x05\x3f\x75\x2c" 6051 + "\x5d\x04\x16\x36\x15\x72\x63\x2f", 6081 6052 .klen = 16, 6082 - .input = { 0x0b, 0x03, 0xcd, 0x8a, 0xbe, 0x95, 0xfd, 0xb1, 6083 - 0xc1, 0x44, 0x91, 0x0b, 0xa5, 0xc9, 0x1b, 0xb4, 6084 - 0xa9, 0xda, 0x1e, 0x9e, 0xb1, 0x3e, 0x2a, 0x8f, 6085 - 0xea, 0xa5, 0x6a, 0x85, 0xd1, 0xf4, 0xa8, 0xa5 }, 6053 + .input = "\x0b\x03\xcd\x8a\xbe\x95\xfd\xb1" 6054 + "\xc1\x44\x91\x0b\xa5\xc9\x1b\xb4" 6055 + "\xa9\xda\x1e\x9e\xb1\x3e\x2a\x8f" 6056 + "\xea\xa5\x6a\x85\xd1\xf4\xa8\xa5", 6086 6057 .ilen = 32, 6087 - .result = { 0x54, 0x65, 0x61, 0x20, 0x69, 0x73, 0x20, 0x67, 6088 - 0x6f, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 6089 - 0x79, 0x6f, 0x75, 0x21, 0x21, 0x21, 0x20, 0x72, 6090 - 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x21, 0x21, 0x21 }, 6058 + .result = "\x54\x65\x61\x20\x69\x73\x20\x67" 6059 + "\x6f\x6f\x64\x20\x66\x6f\x72\x20" 6060 + "\x79\x6f\x75\x21\x21\x21\x20\x72" 6061 + "\x65\x61\x6c\x6c\x79\x21\x21\x21", 6091 6062 .rlen = 32, 6092 6063 } 6093 6064 }; ··· 6100 6071 6101 6072 static struct cipher_testvec fcrypt_pcbc_enc_tv_template[] = { 6102 6073 { /* http://www.openafs.org/pipermail/openafs-devel/2000-December/005320.html */ 6103 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6074 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00", 6104 6075 .klen = 8, 6105 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6106 - .input = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6076 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 6077 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00", 6107 6078 .ilen = 8, 6108 - .result = { 0x0E, 0x09, 0x00, 0xC7, 0x3E, 0xF7, 0xED, 0x41 }, 6079 + .result = "\x0E\x09\x00\xC7\x3E\xF7\xED\x41", 6109 6080 .rlen = 8, 6110 6081 }, { 6111 - .key = { 0x11, 0x44, 0x77, 0xAA, 0xDD, 0x00, 0x33, 0x66 }, 6082 + .key = "\x11\x44\x77\xAA\xDD\x00\x33\x66", 6112 6083 .klen = 8, 6113 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6114 - .input = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0 }, 6084 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 6085 + .input = "\x12\x34\x56\x78\x9A\xBC\xDE\xF0", 6115 6086 .ilen = 8, 6116 - .result = { 0xD8, 0xED, 0x78, 0x74, 0x77, 0xEC, 0x06, 0x80 }, 6087 + .result = "\xD8\xED\x78\x74\x77\xEC\x06\x80", 6117 6088 .rlen = 8, 6118 6089 }, { /* From Arla */ 6119 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 6090 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 6120 6091 .klen = 8, 6121 - .iv = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6092 + .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6122 6093 .input = "The quick brown fox jumps over the lazy dogs.\0\0", 6123 6094 .ilen = 48, 6124 - .result = { 0x00, 0xf0, 0xe, 0x11, 0x75, 0xe6, 0x23, 0x82, 6125 - 0xee, 0xac, 0x98, 0x62, 0x44, 0x51, 0xe4, 0x84, 6126 - 0xc3, 0x59, 0xd8, 0xaa, 0x64, 0x60, 0xae, 0xf7, 6127 - 0xd2, 0xd9, 0x13, 0x79, 0x72, 0xa3, 0x45, 0x03, 6128 - 0x23, 0xb5, 0x62, 0xd7, 0x0c, 0xf5, 0x27, 0xd1, 6129 - 0xf8, 0x91, 0x3c, 0xac, 0x44, 0x22, 0x92, 0xef }, 6095 + .result = "\x00\xf0\x0e\x11\x75\xe6\x23\x82" 6096 + "\xee\xac\x98\x62\x44\x51\xe4\x84" 6097 + "\xc3\x59\xd8\xaa\x64\x60\xae\xf7" 6098 + "\xd2\xd9\x13\x79\x72\xa3\x45\x03" 6099 + "\x23\xb5\x62\xd7\x0c\xf5\x27\xd1" 6100 + "\xf8\x91\x3c\xac\x44\x22\x92\xef", 6130 6101 .rlen = 48, 6131 6102 }, { 6132 - .key = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6103 + .key = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6133 6104 .klen = 8, 6134 - .iv = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 6105 + .iv = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 6135 6106 .input = "The quick brown fox jumps over the lazy dogs.\0\0", 6136 6107 .ilen = 48, 6137 - .result = { 0xca, 0x90, 0xf5, 0x9d, 0xcb, 0xd4, 0xd2, 0x3c, 6138 - 0x01, 0x88, 0x7f, 0x3e, 0x31, 0x6e, 0x62, 0x9d, 6139 - 0xd8, 0xe0, 0x57, 0xa3, 0x06, 0x3a, 0x42, 0x58, 6140 - 0x2a, 0x28, 0xfe, 0x72, 0x52, 0x2f, 0xdd, 0xe0, 6141 - 0x19, 0x89, 0x09, 0x1c, 0x2a, 0x8e, 0x8c, 0x94, 6142 - 0xfc, 0xc7, 0x68, 0xe4, 0x88, 0xaa, 0xde, 0x0f }, 6108 + .result = "\xca\x90\xf5\x9d\xcb\xd4\xd2\x3c" 6109 + "\x01\x88\x7f\x3e\x31\x6e\x62\x9d" 6110 + "\xd8\xe0\x57\xa3\x06\x3a\x42\x58" 6111 + "\x2a\x28\xfe\x72\x52\x2f\xdd\xe0" 6112 + "\x19\x89\x09\x1c\x2a\x8e\x8c\x94" 6113 + "\xfc\xc7\x68\xe4\x88\xaa\xde\x0f", 6143 6114 .rlen = 48, 6144 6115 }, { /* split-page version */ 6145 - .key = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6116 + .key = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6146 6117 .klen = 8, 6147 - .iv = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 6118 + .iv = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 6148 6119 .input = "The quick brown fox jumps over the lazy dogs.\0\0", 6149 6120 .ilen = 48, 6150 - .result = { 0xca, 0x90, 0xf5, 0x9d, 0xcb, 0xd4, 0xd2, 0x3c, 6151 - 0x01, 0x88, 0x7f, 0x3e, 0x31, 0x6e, 0x62, 0x9d, 6152 - 0xd8, 0xe0, 0x57, 0xa3, 0x06, 0x3a, 0x42, 0x58, 6153 - 0x2a, 0x28, 0xfe, 0x72, 0x52, 0x2f, 0xdd, 0xe0, 6154 - 0x19, 0x89, 0x09, 0x1c, 0x2a, 0x8e, 0x8c, 0x94, 6155 - 0xfc, 0xc7, 0x68, 0xe4, 0x88, 0xaa, 0xde, 0x0f }, 6121 + .result = "\xca\x90\xf5\x9d\xcb\xd4\xd2\x3c" 6122 + "\x01\x88\x7f\x3e\x31\x6e\x62\x9d" 6123 + "\xd8\xe0\x57\xa3\x06\x3a\x42\x58" 6124 + "\x2a\x28\xfe\x72\x52\x2f\xdd\xe0" 6125 + "\x19\x89\x09\x1c\x2a\x8e\x8c\x94" 6126 + "\xfc\xc7\x68\xe4\x88\xaa\xde\x0f", 6156 6127 .rlen = 48, 6157 6128 .np = 2, 6158 6129 .tap = { 20, 28 }, ··· 6161 6132 6162 6133 static struct cipher_testvec fcrypt_pcbc_dec_tv_template[] = { 6163 6134 { /* http://www.openafs.org/pipermail/openafs-devel/2000-December/005320.html */ 6164 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6135 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00", 6165 6136 .klen = 8, 6166 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6167 - .input = { 0x0E, 0x09, 0x00, 0xC7, 0x3E, 0xF7, 0xED, 0x41 }, 6137 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 6138 + .input = "\x0E\x09\x00\xC7\x3E\xF7\xED\x41", 6168 6139 .ilen = 8, 6169 - .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6140 + .result = "\x00\x00\x00\x00\x00\x00\x00\x00", 6170 6141 .rlen = 8, 6171 6142 }, { 6172 - .key = { 0x11, 0x44, 0x77, 0xAA, 0xDD, 0x00, 0x33, 0x66 }, 6143 + .key = "\x11\x44\x77\xAA\xDD\x00\x33\x66", 6173 6144 .klen = 8, 6174 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6175 - .input = { 0xD8, 0xED, 0x78, 0x74, 0x77, 0xEC, 0x06, 0x80 }, 6145 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 6146 + .input = "\xD8\xED\x78\x74\x77\xEC\x06\x80", 6176 6147 .ilen = 8, 6177 - .result = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0 }, 6148 + .result = "\x12\x34\x56\x78\x9A\xBC\xDE\xF0", 6178 6149 .rlen = 8, 6179 6150 }, { /* From Arla */ 6180 - .key = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 6151 + .key = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 6181 6152 .klen = 8, 6182 - .iv = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6183 - .input = { 0x00, 0xf0, 0xe, 0x11, 0x75, 0xe6, 0x23, 0x82, 6184 - 0xee, 0xac, 0x98, 0x62, 0x44, 0x51, 0xe4, 0x84, 6185 - 0xc3, 0x59, 0xd8, 0xaa, 0x64, 0x60, 0xae, 0xf7, 6186 - 0xd2, 0xd9, 0x13, 0x79, 0x72, 0xa3, 0x45, 0x03, 6187 - 0x23, 0xb5, 0x62, 0xd7, 0x0c, 0xf5, 0x27, 0xd1, 6188 - 0xf8, 0x91, 0x3c, 0xac, 0x44, 0x22, 0x92, 0xef }, 6153 + .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6154 + .input = "\x00\xf0\x0e\x11\x75\xe6\x23\x82" 6155 + "\xee\xac\x98\x62\x44\x51\xe4\x84" 6156 + "\xc3\x59\xd8\xaa\x64\x60\xae\xf7" 6157 + "\xd2\xd9\x13\x79\x72\xa3\x45\x03" 6158 + "\x23\xb5\x62\xd7\x0c\xf5\x27\xd1" 6159 + "\xf8\x91\x3c\xac\x44\x22\x92\xef", 6189 6160 .ilen = 48, 6190 6161 .result = "The quick brown fox jumps over the lazy dogs.\0\0", 6191 6162 .rlen = 48, 6192 6163 }, { 6193 - .key = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6164 + .key = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6194 6165 .klen = 8, 6195 - .iv = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 6196 - .input = { 0xca, 0x90, 0xf5, 0x9d, 0xcb, 0xd4, 0xd2, 0x3c, 6197 - 0x01, 0x88, 0x7f, 0x3e, 0x31, 0x6e, 0x62, 0x9d, 6198 - 0xd8, 0xe0, 0x57, 0xa3, 0x06, 0x3a, 0x42, 0x58, 6199 - 0x2a, 0x28, 0xfe, 0x72, 0x52, 0x2f, 0xdd, 0xe0, 6200 - 0x19, 0x89, 0x09, 0x1c, 0x2a, 0x8e, 0x8c, 0x94, 6201 - 0xfc, 0xc7, 0x68, 0xe4, 0x88, 0xaa, 0xde, 0x0f }, 6166 + .iv = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 6167 + .input = "\xca\x90\xf5\x9d\xcb\xd4\xd2\x3c" 6168 + "\x01\x88\x7f\x3e\x31\x6e\x62\x9d" 6169 + "\xd8\xe0\x57\xa3\x06\x3a\x42\x58" 6170 + "\x2a\x28\xfe\x72\x52\x2f\xdd\xe0" 6171 + "\x19\x89\x09\x1c\x2a\x8e\x8c\x94" 6172 + "\xfc\xc7\x68\xe4\x88\xaa\xde\x0f", 6202 6173 .ilen = 48, 6203 6174 .result = "The quick brown fox jumps over the lazy dogs.\0\0", 6204 6175 .rlen = 48, 6205 6176 }, { /* split-page version */ 6206 - .key = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6177 + .key = "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6207 6178 .klen = 8, 6208 - .iv = { 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87 }, 6209 - .input = { 0xca, 0x90, 0xf5, 0x9d, 0xcb, 0xd4, 0xd2, 0x3c, 6210 - 0x01, 0x88, 0x7f, 0x3e, 0x31, 0x6e, 0x62, 0x9d, 6211 - 0xd8, 0xe0, 0x57, 0xa3, 0x06, 0x3a, 0x42, 0x58, 6212 - 0x2a, 0x28, 0xfe, 0x72, 0x52, 0x2f, 0xdd, 0xe0, 6213 - 0x19, 0x89, 0x09, 0x1c, 0x2a, 0x8e, 0x8c, 0x94, 6214 - 0xfc, 0xc7, 0x68, 0xe4, 0x88, 0xaa, 0xde, 0x0f }, 6179 + .iv = "\xf0\xe1\xd2\xc3\xb4\xa5\x96\x87", 6180 + .input = "\xca\x90\xf5\x9d\xcb\xd4\xd2\x3c" 6181 + "\x01\x88\x7f\x3e\x31\x6e\x62\x9d" 6182 + "\xd8\xe0\x57\xa3\x06\x3a\x42\x58" 6183 + "\x2a\x28\xfe\x72\x52\x2f\xdd\xe0" 6184 + "\x19\x89\x09\x1c\x2a\x8e\x8c\x94" 6185 + "\xfc\xc7\x68\xe4\x88\xaa\xde\x0f", 6215 6186 .ilen = 48, 6216 6187 .result = "The quick brown fox jumps over the lazy dogs.\0\0", 6217 6188 .rlen = 48, ··· 6230 6201 6231 6202 static struct cipher_testvec camellia_enc_tv_template[] = { 6232 6203 { 6233 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6234 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6204 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6205 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6235 6206 .klen = 16, 6236 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6237 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6207 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6208 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6238 6209 .ilen = 16, 6239 - .result = { 0x67, 0x67, 0x31, 0x38, 0x54, 0x96, 0x69, 0x73, 6240 - 0x08, 0x57, 0x06, 0x56, 0x48, 0xea, 0xbe, 0x43 }, 6210 + .result = "\x67\x67\x31\x38\x54\x96\x69\x73" 6211 + "\x08\x57\x06\x56\x48\xea\xbe\x43", 6241 6212 .rlen = 16, 6242 6213 }, { 6243 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6244 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 6245 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }, 6214 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6215 + "\xfe\xdc\xba\x98\x76\x54\x32\x10" 6216 + "\x00\x11\x22\x33\x44\x55\x66\x77", 6246 6217 .klen = 24, 6247 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6248 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6218 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6219 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6249 6220 .ilen = 16, 6250 - .result = { 0xb4, 0x99, 0x34, 0x01, 0xb3, 0xe9, 0x96, 0xf8, 6251 - 0x4e, 0xe5, 0xce, 0xe7, 0xd7, 0x9b, 0x09, 0xb9 }, 6221 + .result = "\xb4\x99\x34\x01\xb3\xe9\x96\xf8" 6222 + "\x4e\xe5\xce\xe7\xd7\x9b\x09\xb9", 6252 6223 .rlen = 16, 6253 6224 }, { 6254 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6255 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 6256 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 6257 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 6225 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6226 + "\xfe\xdc\xba\x98\x76\x54\x32\x10" 6227 + "\x00\x11\x22\x33\x44\x55\x66\x77" 6228 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 6258 6229 .klen = 32, 6259 - .input = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6260 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6230 + .input = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6231 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6261 6232 .ilen = 16, 6262 - .result = { 0x9a, 0xcc, 0x23, 0x7d, 0xff, 0x16, 0xd7, 0x6c, 6263 - 0x20, 0xef, 0x7c, 0x91, 0x9e, 0x3a, 0x75, 0x09 }, 6233 + .result = "\x9a\xcc\x23\x7d\xff\x16\xd7\x6c" 6234 + "\x20\xef\x7c\x91\x9e\x3a\x75\x09", 6264 6235 .rlen = 16, 6265 6236 }, 6266 6237 }; 6267 6238 6268 6239 static struct cipher_testvec camellia_dec_tv_template[] = { 6269 6240 { 6270 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6271 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6241 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6242 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6272 6243 .klen = 16, 6273 - .input = { 0x67, 0x67, 0x31, 0x38, 0x54, 0x96, 0x69, 0x73, 6274 - 0x08, 0x57, 0x06, 0x56, 0x48, 0xea, 0xbe, 0x43 }, 6244 + .input = "\x67\x67\x31\x38\x54\x96\x69\x73" 6245 + "\x08\x57\x06\x56\x48\xea\xbe\x43", 6275 6246 .ilen = 16, 6276 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6277 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6247 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6248 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6278 6249 .rlen = 16, 6279 6250 }, { 6280 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6281 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 6282 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }, 6251 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6252 + "\xfe\xdc\xba\x98\x76\x54\x32\x10" 6253 + "\x00\x11\x22\x33\x44\x55\x66\x77", 6283 6254 .klen = 24, 6284 - .input = { 0xb4, 0x99, 0x34, 0x01, 0xb3, 0xe9, 0x96, 0xf8, 6285 - 0x4e, 0xe5, 0xce, 0xe7, 0xd7, 0x9b, 0x09, 0xb9 }, 6255 + .input = "\xb4\x99\x34\x01\xb3\xe9\x96\xf8" 6256 + "\x4e\xe5\xce\xe7\xd7\x9b\x09\xb9", 6286 6257 .ilen = 16, 6287 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6288 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6258 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6259 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6289 6260 .rlen = 16, 6290 6261 }, { 6291 - .key = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6292 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, 6293 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 6294 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, 6262 + .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6263 + "\xfe\xdc\xba\x98\x76\x54\x32\x10" 6264 + "\x00\x11\x22\x33\x44\x55\x66\x77" 6265 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", 6295 6266 .klen = 32, 6296 - .input = { 0x9a, 0xcc, 0x23, 0x7d, 0xff, 0x16, 0xd7, 0x6c, 6297 - 0x20, 0xef, 0x7c, 0x91, 0x9e, 0x3a, 0x75, 0x09 }, 6267 + .input = "\x9a\xcc\x23\x7d\xff\x16\xd7\x6c" 6268 + "\x20\xef\x7c\x91\x9e\x3a\x75\x09", 6298 6269 .ilen = 16, 6299 - .result = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 6300 - 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }, 6270 + .result = "\x01\x23\x45\x67\x89\xab\xcd\xef" 6271 + "\xfe\xdc\xba\x98\x76\x54\x32\x10", 6301 6272 .rlen = 16, 6302 6273 }, 6303 6274 }; 6304 6275 6305 6276 static struct cipher_testvec camellia_cbc_enc_tv_template[] = { 6306 6277 { 6307 - .key = { 0x06, 0xa9, 0x21, 0x40, 0x36, 0xb8, 0xa1, 0x5b, 6308 - 0x51, 0x2e, 0x03, 0xd5, 0x34, 0x12, 0x00, 0x06 }, 6278 + .key = "\x06\xa9\x21\x40\x36\xb8\xa1\x5b" 6279 + "\x51\x2e\x03\xd5\x34\x12\x00\x06", 6309 6280 .klen = 16, 6310 - .iv = { 0x3d, 0xaf, 0xba, 0x42, 0x9d, 0x9e, 0xb4, 0x30, 6311 - 0xb4, 0x22, 0xda, 0x80, 0x2c, 0x9f, 0xac, 0x41 }, 6312 - .input = { "Single block msg" }, 6281 + .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30" 6282 + "\xb4\x22\xda\x80\x2c\x9f\xac\x41", 6283 + .input = "Single block msg", 6313 6284 .ilen = 16, 6314 - .result = { 0xea, 0x32, 0x12, 0x76, 0x3b, 0x50, 0x10, 0xe7, 6315 - 0x18, 0xf6, 0xfd, 0x5d, 0xf6, 0x8f, 0x13, 0x51 }, 6285 + .result = "\xea\x32\x12\x76\x3b\x50\x10\xe7" 6286 + "\x18\xf6\xfd\x5d\xf6\x8f\x13\x51", 6316 6287 .rlen = 16, 6317 6288 }, { 6318 - .key = { 0xc2, 0x86, 0x69, 0x6d, 0x88, 0x7c, 0x9a, 0xa0, 6319 - 0x61, 0x1b, 0xbb, 0x3e, 0x20, 0x25, 0xa4, 0x5a }, 6289 + .key = "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0" 6290 + "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a", 6320 6291 .klen = 16, 6321 - .iv = { 0x56, 0x2e, 0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 6322 - 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58 }, 6323 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6324 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 6325 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 6326 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 6292 + .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28" 6293 + "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58", 6294 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 6295 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 6296 + "\x10\x11\x12\x13\x14\x15\x16\x17" 6297 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 6327 6298 .ilen = 32, 6328 - .result = { 0xa5, 0xdf, 0x6e, 0x50, 0xda, 0x70, 0x6c, 0x01, 6329 - 0x4a, 0xab, 0xf3, 0xf2, 0xd6, 0xfc, 0x6c, 0xfd, 6330 - 0x19, 0xb4, 0x3e, 0x57, 0x1c, 0x02, 0x5e, 0xa0, 6331 - 0x15, 0x78, 0xe0, 0x5e, 0xf2, 0xcb, 0x87, 0x16 }, 6299 + .result = "\xa5\xdf\x6e\x50\xda\x70\x6c\x01" 6300 + "\x4a\xab\xf3\xf2\xd6\xfc\x6c\xfd" 6301 + "\x19\xb4\x3e\x57\x1c\x02\x5e\xa0" 6302 + "\x15\x78\xe0\x5e\xf2\xcb\x87\x16", 6332 6303 .rlen = 32, 6333 6304 }, 6334 6305 }; 6335 6306 6336 6307 static struct cipher_testvec camellia_cbc_dec_tv_template[] = { 6337 6308 { 6338 - .key = { 0x06, 0xa9, 0x21, 0x40, 0x36, 0xb8, 0xa1, 0x5b, 6339 - 0x51, 0x2e, 0x03, 0xd5, 0x34, 0x12, 0x00, 0x06 }, 6309 + .key = "\x06\xa9\x21\x40\x36\xb8\xa1\x5b" 6310 + "\x51\x2e\x03\xd5\x34\x12\x00\x06", 6340 6311 .klen = 16, 6341 - .iv = { 0x3d, 0xaf, 0xba, 0x42, 0x9d, 0x9e, 0xb4, 0x30, 6342 - 0xb4, 0x22, 0xda, 0x80, 0x2c, 0x9f, 0xac, 0x41 }, 6343 - .input = { 0xea, 0x32, 0x12, 0x76, 0x3b, 0x50, 0x10, 0xe7, 6344 - 0x18, 0xf6, 0xfd, 0x5d, 0xf6, 0x8f, 0x13, 0x51 }, 6312 + .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30" 6313 + "\xb4\x22\xda\x80\x2c\x9f\xac\x41", 6314 + .input = "\xea\x32\x12\x76\x3b\x50\x10\xe7" 6315 + "\x18\xf6\xfd\x5d\xf6\x8f\x13\x51", 6345 6316 .ilen = 16, 6346 - .result = { "Single block msg" }, 6317 + .result = "Single block msg", 6347 6318 .rlen = 16, 6348 6319 }, { 6349 - .key = { 0xc2, 0x86, 0x69, 0x6d, 0x88, 0x7c, 0x9a, 0xa0, 6350 - 0x61, 0x1b, 0xbb, 0x3e, 0x20, 0x25, 0xa4, 0x5a }, 6320 + .key = "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0" 6321 + "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a", 6351 6322 .klen = 16, 6352 - .iv = { 0x56, 0x2e, 0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 6353 - 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58 }, 6354 - .input = { 0xa5, 0xdf, 0x6e, 0x50, 0xda, 0x70, 0x6c, 0x01, 6355 - 0x4a, 0xab, 0xf3, 0xf2, 0xd6, 0xfc, 0x6c, 0xfd, 6356 - 0x19, 0xb4, 0x3e, 0x57, 0x1c, 0x02, 0x5e, 0xa0, 6357 - 0x15, 0x78, 0xe0, 0x5e, 0xf2, 0xcb, 0x87, 0x16 }, 6323 + .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28" 6324 + "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58", 6325 + .input = "\xa5\xdf\x6e\x50\xda\x70\x6c\x01" 6326 + "\x4a\xab\xf3\xf2\xd6\xfc\x6c\xfd" 6327 + "\x19\xb4\x3e\x57\x1c\x02\x5e\xa0" 6328 + "\x15\x78\xe0\x5e\xf2\xcb\x87\x16", 6358 6329 .ilen = 32, 6359 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6360 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 6361 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 6362 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }, 6330 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 6331 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 6332 + "\x10\x11\x12\x13\x14\x15\x16\x17" 6333 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 6363 6334 .rlen = 32, 6364 6335 }, 6365 6336 }; ··· 6372 6343 6373 6344 static struct cipher_testvec seed_enc_tv_template[] = { 6374 6345 { 6375 - .key = { [0 ... 15] = 0x00 }, 6346 + .key = zeroed_string, 6376 6347 .klen = 16, 6377 - .input = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6378 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 6348 + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" 6349 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 6379 6350 .ilen = 16, 6380 - .result = { 0x5e, 0xba, 0xc6, 0xe0, 0x05, 0x4e, 0x16, 0x68, 6381 - 0x19, 0xaf, 0xf1, 0xcc, 0x6d, 0x34, 0x6c, 0xdb }, 6351 + .result = "\x5e\xba\xc6\xe0\x05\x4e\x16\x68" 6352 + "\x19\xaf\xf1\xcc\x6d\x34\x6c\xdb", 6382 6353 .rlen = 16, 6383 6354 }, { 6384 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6385 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 6355 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 6356 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 6386 6357 .klen = 16, 6387 - .input = { [0 ... 15] = 0x00 }, 6358 + .input = zeroed_string, 6388 6359 .ilen = 16, 6389 - .result = { 0xc1, 0x1f, 0x22, 0xf2, 0x01, 0x40, 0x50, 0x50, 6390 - 0x84, 0x48, 0x35, 0x97, 0xe4, 0x37, 0x0f, 0x43 }, 6360 + .result = "\xc1\x1f\x22\xf2\x01\x40\x50\x50" 6361 + "\x84\x48\x35\x97\xe4\x37\x0f\x43", 6391 6362 .rlen = 16, 6392 6363 }, { 6393 - .key = { 0x47, 0x06, 0x48, 0x08, 0x51, 0xe6, 0x1b, 0xe8, 6394 - 0x5d, 0x74, 0xbf, 0xb3, 0xfd, 0x95, 0x61, 0x85 }, 6364 + .key = "\x47\x06\x48\x08\x51\xe6\x1b\xe8" 6365 + "\x5d\x74\xbf\xb3\xfd\x95\x61\x85", 6395 6366 .klen = 16, 6396 - .input = { 0x83, 0xa2, 0xf8, 0xa2, 0x88, 0x64, 0x1f, 0xb9, 6397 - 0xa4, 0xe9, 0xa5, 0xcc, 0x2f, 0x13, 0x1c, 0x7d }, 6367 + .input = "\x83\xa2\xf8\xa2\x88\x64\x1f\xb9" 6368 + "\xa4\xe9\xa5\xcc\x2f\x13\x1c\x7d", 6398 6369 .ilen = 16, 6399 - .result = { 0xee, 0x54, 0xd1, 0x3e, 0xbc, 0xae, 0x70, 0x6d, 6400 - 0x22, 0x6b, 0xc3, 0x14, 0x2c, 0xd4, 0x0d, 0x4a }, 6370 + .result = "\xee\x54\xd1\x3e\xbc\xae\x70\x6d" 6371 + "\x22\x6b\xc3\x14\x2c\xd4\x0d\x4a", 6401 6372 .rlen = 16, 6402 6373 }, { 6403 - .key = { 0x28, 0xdb, 0xc3, 0xbc, 0x49, 0xff, 0xd8, 0x7d, 6404 - 0xcf, 0xa5, 0x09, 0xb1, 0x1d, 0x42, 0x2b, 0xe7 }, 6374 + .key = "\x28\xdb\xc3\xbc\x49\xff\xd8\x7d" 6375 + "\xcf\xa5\x09\xb1\x1d\x42\x2b\xe7", 6405 6376 .klen = 16, 6406 - .input = { 0xb4, 0x1e, 0x6b, 0xe2, 0xeb, 0xa8, 0x4a, 0x14, 6407 - 0x8e, 0x2e, 0xed, 0x84, 0x59, 0x3c, 0x5e, 0xc7 }, 6377 + .input = "\xb4\x1e\x6b\xe2\xeb\xa8\x4a\x14" 6378 + "\x8e\x2e\xed\x84\x59\x3c\x5e\xc7", 6408 6379 .ilen = 16, 6409 - .result = { 0x9b, 0x9b, 0x7b, 0xfc, 0xd1, 0x81, 0x3c, 0xb9, 6410 - 0x5d, 0x0b, 0x36, 0x18, 0xf4, 0x0f, 0x51, 0x22 }, 6380 + .result = "\x9b\x9b\x7b\xfc\xd1\x81\x3c\xb9" 6381 + "\x5d\x0b\x36\x18\xf4\x0f\x51\x22", 6411 6382 .rlen = 16, 6412 6383 } 6413 6384 }; 6414 6385 6415 6386 static struct cipher_testvec seed_dec_tv_template[] = { 6416 6387 { 6417 - .key = { [0 ... 15] = 0x00 }, 6388 + .key = zeroed_string, 6418 6389 .klen = 16, 6419 - .input = { 0x5e, 0xba, 0xc6, 0xe0, 0x05, 0x4e, 0x16, 0x68, 6420 - 0x19, 0xaf, 0xf1, 0xcc, 0x6d, 0x34, 0x6c, 0xdb }, 6390 + .input = "\x5e\xba\xc6\xe0\x05\x4e\x16\x68" 6391 + "\x19\xaf\xf1\xcc\x6d\x34\x6c\xdb", 6421 6392 .ilen = 16, 6422 - .result = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6423 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 6393 + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" 6394 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 6424 6395 .rlen = 16, 6425 6396 }, { 6426 - .key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6427 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, 6397 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 6398 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 6428 6399 .klen = 16, 6429 - .input = { 0xc1, 0x1f, 0x22, 0xf2, 0x01, 0x40, 0x50, 0x50, 6430 - 0x84, 0x48, 0x35, 0x97, 0xe4, 0x37, 0x0f, 0x43 }, 6400 + .input = "\xc1\x1f\x22\xf2\x01\x40\x50\x50" 6401 + "\x84\x48\x35\x97\xe4\x37\x0f\x43", 6431 6402 .ilen = 16, 6432 - .result = { [0 ... 15] = 0x00 }, 6403 + .result = zeroed_string, 6433 6404 .rlen = 16, 6434 6405 }, { 6435 - .key = { 0x47, 0x06, 0x48, 0x08, 0x51, 0xe6, 0x1b, 0xe8, 6436 - 0x5d, 0x74, 0xbf, 0xb3, 0xfd, 0x95, 0x61, 0x85 }, 6406 + .key = "\x47\x06\x48\x08\x51\xe6\x1b\xe8" 6407 + "\x5d\x74\xbf\xb3\xfd\x95\x61\x85", 6437 6408 .klen = 16, 6438 - .input = { 0xee, 0x54, 0xd1, 0x3e, 0xbc, 0xae, 0x70, 0x6d, 6439 - 0x22, 0x6b, 0xc3, 0x14, 0x2c, 0xd4, 0x0d, 0x4a }, 6409 + .input = "\xee\x54\xd1\x3e\xbc\xae\x70\x6d" 6410 + "\x22\x6b\xc3\x14\x2c\xd4\x0d\x4a", 6440 6411 .ilen = 16, 6441 - .result = { 0x83, 0xa2, 0xf8, 0xa2, 0x88, 0x64, 0x1f, 0xb9, 6442 - 0xa4, 0xe9, 0xa5, 0xcc, 0x2f, 0x13, 0x1c, 0x7d }, 6412 + .result = "\x83\xa2\xf8\xa2\x88\x64\x1f\xb9" 6413 + "\xa4\xe9\xa5\xcc\x2f\x13\x1c\x7d", 6443 6414 .rlen = 16, 6444 6415 }, { 6445 - .key = { 0x28, 0xdb, 0xc3, 0xbc, 0x49, 0xff, 0xd8, 0x7d, 6446 - 0xcf, 0xa5, 0x09, 0xb1, 0x1d, 0x42, 0x2b, 0xe7 }, 6416 + .key = "\x28\xdb\xc3\xbc\x49\xff\xd8\x7d" 6417 + "\xcf\xa5\x09\xb1\x1d\x42\x2b\xe7", 6447 6418 .klen = 16, 6448 - .input = { 0x9b, 0x9b, 0x7b, 0xfc, 0xd1, 0x81, 0x3c, 0xb9, 6449 - 0x5d, 0x0b, 0x36, 0x18, 0xf4, 0x0f, 0x51, 0x22 }, 6419 + .input = "\x9b\x9b\x7b\xfc\xd1\x81\x3c\xb9" 6420 + "\x5d\x0b\x36\x18\xf4\x0f\x51\x22", 6450 6421 .ilen = 16, 6451 - .result = { 0xb4, 0x1e, 0x6b, 0xe2, 0xeb, 0xa8, 0x4a, 0x14, 6452 - 0x8e, 0x2e, 0xed, 0x84, 0x59, 0x3c, 0x5e, 0xc7 }, 6422 + .result = "\xb4\x1e\x6b\xe2\xeb\xa8\x4a\x14" 6423 + "\x8e\x2e\xed\x84\x59\x3c\x5e\xc7", 6453 6424 .rlen = 16, 6454 6425 } 6455 6426 }; ··· 6462 6433 * of input length. 6463 6434 */ 6464 6435 { /* Set 3, vector 0 */ 6465 - .key = { 6466 - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6467 - 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 6468 - }, 6436 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 6437 + "\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F", 6469 6438 .klen = 16, 6470 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6471 - .input = { 6472 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6473 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6474 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6475 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6476 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6477 - }, 6439 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 6440 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 6441 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6442 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6443 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6444 + "\x00\x00\x00\x00\x00\x00\x00", 6478 6445 .ilen = 39, 6479 - .result = { 6480 - 0x2D, 0xD5, 0xC3, 0xF7, 0xBA, 0x2B, 0x20, 0xF7, 6481 - 0x68, 0x02, 0x41, 0x0C, 0x68, 0x86, 0x88, 0x89, 6482 - 0x5A, 0xD8, 0xC1, 0xBD, 0x4E, 0xA6, 0xC9, 0xB1, 6483 - 0x40, 0xFB, 0x9B, 0x90, 0xE2, 0x10, 0x49, 0xBF, 6484 - 0x58, 0x3F, 0x52, 0x79, 0x70, 0xEB, 0xC1, 6485 - }, 6446 + .result = "\x2D\xD5\xC3\xF7\xBA\x2B\x20\xF7" 6447 + "\x68\x02\x41\x0C\x68\x86\x88\x89" 6448 + "\x5A\xD8\xC1\xBD\x4E\xA6\xC9\xB1" 6449 + "\x40\xFB\x9B\x90\xE2\x10\x49\xBF" 6450 + "\x58\x3F\x52\x79\x70\xEB\xC1", 6486 6451 .rlen = 39, 6487 6452 }, { /* Set 5, vector 0 */ 6488 - .key = { 6489 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6490 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 6491 - }, 6453 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00" 6454 + "\x00\x00\x00\x00\x00\x00\x00\x00", 6492 6455 .klen = 16, 6493 - .iv = { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6494 - .input = { 6495 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6496 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6497 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6498 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6499 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6500 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6501 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6502 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6503 - }, 6456 + .iv = "\x80\x00\x00\x00\x00\x00\x00\x00", 6457 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 6458 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6459 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6460 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6461 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6462 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6463 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6464 + "\x00\x00\x00\x00\x00\x00\x00\x00", 6504 6465 .ilen = 64, 6505 - .result = { 6506 - 0xB6, 0x6C, 0x1E, 0x44, 0x46, 0xDD, 0x95, 0x57, 6507 - 0xE5, 0x78, 0xE2, 0x23, 0xB0, 0xB7, 0x68, 0x01, 6508 - 0x7B, 0x23, 0xB2, 0x67, 0xBB, 0x02, 0x34, 0xAE, 6509 - 0x46, 0x26, 0xBF, 0x44, 0x3F, 0x21, 0x97, 0x76, 6510 - 0x43, 0x6F, 0xB1, 0x9F, 0xD0, 0xE8, 0x86, 0x6F, 6511 - 0xCD, 0x0D, 0xE9, 0xA9, 0x53, 0x8F, 0x4A, 0x09, 6512 - 0xCA, 0x9A, 0xC0, 0x73, 0x2E, 0x30, 0xBC, 0xF9, 6513 - 0x8E, 0x4F, 0x13, 0xE4, 0xB9, 0xE2, 0x01, 0xD9, 6514 - }, 6466 + .result = "\xB6\x6C\x1E\x44\x46\xDD\x95\x57" 6467 + "\xE5\x78\xE2\x23\xB0\xB7\x68\x01" 6468 + "\x7B\x23\xB2\x67\xBB\x02\x34\xAE" 6469 + "\x46\x26\xBF\x44\x3F\x21\x97\x76" 6470 + "\x43\x6F\xB1\x9F\xD0\xE8\x86\x6F" 6471 + "\xCD\x0D\xE9\xA9\x53\x8F\x4A\x09" 6472 + "\xCA\x9A\xC0\x73\x2E\x30\xBC\xF9" 6473 + "\x8E\x4F\x13\xE4\xB9\xE2\x01\xD9", 6515 6474 .rlen = 64, 6516 6475 }, { /* Set 3, vector 27 */ 6517 - .key = { 6518 - 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 6519 - 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 6520 - 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 6521 - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A 6522 - }, 6476 + .key = "\x1B\x1C\x1D\x1E\x1F\x20\x21\x22" 6477 + "\x23\x24\x25\x26\x27\x28\x29\x2A" 6478 + "\x2B\x2C\x2D\x2E\x2F\x30\x31\x32" 6479 + "\x33\x34\x35\x36\x37\x38\x39\x3A", 6523 6480 .klen = 32, 6524 - .iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 6525 - .input = { 6526 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6527 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6528 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6529 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6530 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6531 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6532 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6533 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6534 - 6535 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6536 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6537 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6538 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6539 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6540 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6541 - }, 6481 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00", 6482 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 6483 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6484 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6485 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6486 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6487 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6488 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6489 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6490 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6491 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6492 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6493 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6494 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6495 + "\x00\x00\x00\x00\x00\x00\x00", 6542 6496 .ilen = 111, 6543 - .result = { 6544 - 0xAE, 0x39, 0x50, 0x8E, 0xAC, 0x9A, 0xEC, 0xE7, 6545 - 0xBF, 0x97, 0xBB, 0x20, 0xB9, 0xDE, 0xE4, 0x1F, 6546 - 0x87, 0xD9, 0x47, 0xF8, 0x28, 0x91, 0x35, 0x98, 6547 - 0xDB, 0x72, 0xCC, 0x23, 0x29, 0x48, 0x56, 0x5E, 6548 - 0x83, 0x7E, 0x0B, 0xF3, 0x7D, 0x5D, 0x38, 0x7B, 6549 - 0x2D, 0x71, 0x02, 0xB4, 0x3B, 0xB5, 0xD8, 0x23, 6550 - 0xB0, 0x4A, 0xDF, 0x3C, 0xEC, 0xB6, 0xD9, 0x3B, 6551 - 0x9B, 0xA7, 0x52, 0xBE, 0xC5, 0xD4, 0x50, 0x59, 6552 - 6553 - 0x15, 0x14, 0xB4, 0x0E, 0x40, 0xE6, 0x53, 0xD1, 6554 - 0x83, 0x9C, 0x5B, 0xA0, 0x92, 0x29, 0x6B, 0x5E, 6555 - 0x96, 0x5B, 0x1E, 0x2F, 0xD3, 0xAC, 0xC1, 0x92, 6556 - 0xB1, 0x41, 0x3F, 0x19, 0x2F, 0xC4, 0x3B, 0xC6, 6557 - 0x95, 0x46, 0x45, 0x54, 0xE9, 0x75, 0x03, 0x08, 6558 - 0x44, 0xAF, 0xE5, 0x8A, 0x81, 0x12, 0x09, 6559 - }, 6497 + .result = "\xAE\x39\x50\x8E\xAC\x9A\xEC\xE7" 6498 + "\xBF\x97\xBB\x20\xB9\xDE\xE4\x1F" 6499 + "\x87\xD9\x47\xF8\x28\x91\x35\x98" 6500 + "\xDB\x72\xCC\x23\x29\x48\x56\x5E" 6501 + "\x83\x7E\x0B\xF3\x7D\x5D\x38\x7B" 6502 + "\x2D\x71\x02\xB4\x3B\xB5\xD8\x23" 6503 + "\xB0\x4A\xDF\x3C\xEC\xB6\xD9\x3B" 6504 + "\x9B\xA7\x52\xBE\xC5\xD4\x50\x59" 6505 + "\x15\x14\xB4\x0E\x40\xE6\x53\xD1" 6506 + "\x83\x9C\x5B\xA0\x92\x29\x6B\x5E" 6507 + "\x96\x5B\x1E\x2F\xD3\xAC\xC1\x92" 6508 + "\xB1\x41\x3F\x19\x2F\xC4\x3B\xC6" 6509 + "\x95\x46\x45\x54\xE9\x75\x03\x08" 6510 + "\x44\xAF\xE5\x8A\x81\x12\x09", 6560 6511 .rlen = 111, 6561 - 6562 6512 }, { /* Set 5, vector 27 */ 6563 - .key = { 6564 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6565 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6566 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6567 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 6568 - }, 6513 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00" 6514 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6515 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6516 + "\x00\x00\x00\x00\x00\x00\x00\x00", 6569 6517 .klen = 32, 6570 - .iv = { 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00 }, 6571 - .input = { 6572 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6573 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6574 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6575 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6576 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6577 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6578 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6579 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6580 - 6581 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6582 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6583 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6584 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6585 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6586 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6587 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6588 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6589 - 6590 - 0x00, 6591 - }, 6518 + .iv = "\x00\x00\x00\x10\x00\x00\x00\x00", 6519 + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" 6520 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6521 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6522 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6523 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6524 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6525 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6526 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6527 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6528 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6529 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6530 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6531 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6532 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6533 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6534 + "\x00\x00\x00\x00\x00\x00\x00\x00" 6535 + "\x00", 6592 6536 .ilen = 129, 6593 - .result = { 6594 - 0xD2, 0xDB, 0x1A, 0x5C, 0xF1, 0xC1, 0xAC, 0xDB, 6595 - 0xE8, 0x1A, 0x7A, 0x43, 0x40, 0xEF, 0x53, 0x43, 6596 - 0x5E, 0x7F, 0x4B, 0x1A, 0x50, 0x52, 0x3F, 0x8D, 6597 - 0x28, 0x3D, 0xCF, 0x85, 0x1D, 0x69, 0x6E, 0x60, 6598 - 0xF2, 0xDE, 0x74, 0x56, 0x18, 0x1B, 0x84, 0x10, 6599 - 0xD4, 0x62, 0xBA, 0x60, 0x50, 0xF0, 0x61, 0xF2, 6600 - 0x1C, 0x78, 0x7F, 0xC1, 0x24, 0x34, 0xAF, 0x58, 6601 - 0xBF, 0x2C, 0x59, 0xCA, 0x90, 0x77, 0xF3, 0xB0, 6602 - 6603 - 0x5B, 0x4A, 0xDF, 0x89, 0xCE, 0x2C, 0x2F, 0xFC, 6604 - 0x67, 0xF0, 0xE3, 0x45, 0xE8, 0xB3, 0xB3, 0x75, 6605 - 0xA0, 0x95, 0x71, 0xA1, 0x29, 0x39, 0x94, 0xCA, 6606 - 0x45, 0x2F, 0xBD, 0xCB, 0x10, 0xB6, 0xBE, 0x9F, 6607 - 0x8E, 0xF9, 0xB2, 0x01, 0x0A, 0x5A, 0x0A, 0xB7, 6608 - 0x6B, 0x9D, 0x70, 0x8E, 0x4B, 0xD6, 0x2F, 0xCD, 6609 - 0x2E, 0x40, 0x48, 0x75, 0xE9, 0xE2, 0x21, 0x45, 6610 - 0x0B, 0xC9, 0xB6, 0xB5, 0x66, 0xBC, 0x9A, 0x59, 6611 - 6612 - 0x5A, 6613 - }, 6537 + .result = "\xD2\xDB\x1A\x5C\xF1\xC1\xAC\xDB" 6538 + "\xE8\x1A\x7A\x43\x40\xEF\x53\x43" 6539 + "\x5E\x7F\x4B\x1A\x50\x52\x3F\x8D" 6540 + "\x28\x3D\xCF\x85\x1D\x69\x6E\x60" 6541 + "\xF2\xDE\x74\x56\x18\x1B\x84\x10" 6542 + "\xD4\x62\xBA\x60\x50\xF0\x61\xF2" 6543 + "\x1C\x78\x7F\xC1\x24\x34\xAF\x58" 6544 + "\xBF\x2C\x59\xCA\x90\x77\xF3\xB0" 6545 + "\x5B\x4A\xDF\x89\xCE\x2C\x2F\xFC" 6546 + "\x67\xF0\xE3\x45\xE8\xB3\xB3\x75" 6547 + "\xA0\x95\x71\xA1\x29\x39\x94\xCA" 6548 + "\x45\x2F\xBD\xCB\x10\xB6\xBE\x9F" 6549 + "\x8E\xF9\xB2\x01\x0A\x5A\x0A\xB7" 6550 + "\x6B\x9D\x70\x8E\x4B\xD6\x2F\xCD" 6551 + "\x2E\x40\x48\x75\xE9\xE2\x21\x45" 6552 + "\x0B\xC9\xB6\xB5\x66\xBC\x9A\x59" 6553 + "\x5A", 6614 6554 .rlen = 129, 6615 6555 }, { /* large test vector generated using Crypto++ */ 6616 - .key = { 6617 - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6618 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 6619 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 6620 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 6621 - }, 6556 + .key = "\x00\x01\x02\x03\x04\x05\x06\x07" 6557 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 6558 + "\x10\x11\x12\x13\x14\x15\x16\x17" 6559 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 6622 6560 .klen = 32, 6623 - .iv = { 6624 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6625 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 6626 - }, 6627 - .input = { 6628 - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 6629 - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 6630 - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 6631 - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 6632 - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 6633 - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 6634 - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 6635 - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 6636 - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 6637 - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 6638 - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 6639 - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 6640 - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 6641 - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 6642 - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 6643 - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 6644 - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 6645 - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 6646 - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 6647 - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 6648 - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 6649 - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 6650 - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 6651 - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 6652 - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 6653 - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 6654 - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 6655 - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 6656 - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 6657 - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 6658 - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 6659 - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 6660 - 0x00, 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 6661 - 0x18, 0x1b, 0x1e, 0x21, 0x24, 0x27, 0x2a, 0x2d, 6662 - 0x30, 0x33, 0x36, 0x39, 0x3c, 0x3f, 0x42, 0x45, 6663 - 0x48, 0x4b, 0x4e, 0x51, 0x54, 0x57, 0x5a, 0x5d, 6664 - 0x60, 0x63, 0x66, 0x69, 0x6c, 0x6f, 0x72, 0x75, 6665 - 0x78, 0x7b, 0x7e, 0x81, 0x84, 0x87, 0x8a, 0x8d, 6666 - 0x90, 0x93, 0x96, 0x99, 0x9c, 0x9f, 0xa2, 0xa5, 6667 - 0xa8, 0xab, 0xae, 0xb1, 0xb4, 0xb7, 0xba, 0xbd, 6668 - 0xc0, 0xc3, 0xc6, 0xc9, 0xcc, 0xcf, 0xd2, 0xd5, 6669 - 0xd8, 0xdb, 0xde, 0xe1, 0xe4, 0xe7, 0xea, 0xed, 6670 - 0xf0, 0xf3, 0xf6, 0xf9, 0xfc, 0xff, 0x02, 0x05, 6671 - 0x08, 0x0b, 0x0e, 0x11, 0x14, 0x17, 0x1a, 0x1d, 6672 - 0x20, 0x23, 0x26, 0x29, 0x2c, 0x2f, 0x32, 0x35, 6673 - 0x38, 0x3b, 0x3e, 0x41, 0x44, 0x47, 0x4a, 0x4d, 6674 - 0x50, 0x53, 0x56, 0x59, 0x5c, 0x5f, 0x62, 0x65, 6675 - 0x68, 0x6b, 0x6e, 0x71, 0x74, 0x77, 0x7a, 0x7d, 6676 - 0x80, 0x83, 0x86, 0x89, 0x8c, 0x8f, 0x92, 0x95, 6677 - 0x98, 0x9b, 0x9e, 0xa1, 0xa4, 0xa7, 0xaa, 0xad, 6678 - 0xb0, 0xb3, 0xb6, 0xb9, 0xbc, 0xbf, 0xc2, 0xc5, 6679 - 0xc8, 0xcb, 0xce, 0xd1, 0xd4, 0xd7, 0xda, 0xdd, 6680 - 0xe0, 0xe3, 0xe6, 0xe9, 0xec, 0xef, 0xf2, 0xf5, 6681 - 0xf8, 0xfb, 0xfe, 0x01, 0x04, 0x07, 0x0a, 0x0d, 6682 - 0x10, 0x13, 0x16, 0x19, 0x1c, 0x1f, 0x22, 0x25, 6683 - 0x28, 0x2b, 0x2e, 0x31, 0x34, 0x37, 0x3a, 0x3d, 6684 - 0x40, 0x43, 0x46, 0x49, 0x4c, 0x4f, 0x52, 0x55, 6685 - 0x58, 0x5b, 0x5e, 0x61, 0x64, 0x67, 0x6a, 0x6d, 6686 - 0x70, 0x73, 0x76, 0x79, 0x7c, 0x7f, 0x82, 0x85, 6687 - 0x88, 0x8b, 0x8e, 0x91, 0x94, 0x97, 0x9a, 0x9d, 6688 - 0xa0, 0xa3, 0xa6, 0xa9, 0xac, 0xaf, 0xb2, 0xb5, 6689 - 0xb8, 0xbb, 0xbe, 0xc1, 0xc4, 0xc7, 0xca, 0xcd, 6690 - 0xd0, 0xd3, 0xd6, 0xd9, 0xdc, 0xdf, 0xe2, 0xe5, 6691 - 0xe8, 0xeb, 0xee, 0xf1, 0xf4, 0xf7, 0xfa, 0xfd, 6692 - 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x19, 0x1e, 0x23, 6693 - 0x28, 0x2d, 0x32, 0x37, 0x3c, 0x41, 0x46, 0x4b, 6694 - 0x50, 0x55, 0x5a, 0x5f, 0x64, 0x69, 0x6e, 0x73, 6695 - 0x78, 0x7d, 0x82, 0x87, 0x8c, 0x91, 0x96, 0x9b, 6696 - 0xa0, 0xa5, 0xaa, 0xaf, 0xb4, 0xb9, 0xbe, 0xc3, 6697 - 0xc8, 0xcd, 0xd2, 0xd7, 0xdc, 0xe1, 0xe6, 0xeb, 6698 - 0xf0, 0xf5, 0xfa, 0xff, 0x04, 0x09, 0x0e, 0x13, 6699 - 0x18, 0x1d, 0x22, 0x27, 0x2c, 0x31, 0x36, 0x3b, 6700 - 0x40, 0x45, 0x4a, 0x4f, 0x54, 0x59, 0x5e, 0x63, 6701 - 0x68, 0x6d, 0x72, 0x77, 0x7c, 0x81, 0x86, 0x8b, 6702 - 0x90, 0x95, 0x9a, 0x9f, 0xa4, 0xa9, 0xae, 0xb3, 6703 - 0xb8, 0xbd, 0xc2, 0xc7, 0xcc, 0xd1, 0xd6, 0xdb, 6704 - 0xe0, 0xe5, 0xea, 0xef, 0xf4, 0xf9, 0xfe, 0x03, 6705 - 0x08, 0x0d, 0x12, 0x17, 0x1c, 0x21, 0x26, 0x2b, 6706 - 0x30, 0x35, 0x3a, 0x3f, 0x44, 0x49, 0x4e, 0x53, 6707 - 0x58, 0x5d, 0x62, 0x67, 0x6c, 0x71, 0x76, 0x7b, 6708 - 0x80, 0x85, 0x8a, 0x8f, 0x94, 0x99, 0x9e, 0xa3, 6709 - 0xa8, 0xad, 0xb2, 0xb7, 0xbc, 0xc1, 0xc6, 0xcb, 6710 - 0xd0, 0xd5, 0xda, 0xdf, 0xe4, 0xe9, 0xee, 0xf3, 6711 - 0xf8, 0xfd, 0x02, 0x07, 0x0c, 0x11, 0x16, 0x1b, 6712 - 0x20, 0x25, 0x2a, 0x2f, 0x34, 0x39, 0x3e, 0x43, 6713 - 0x48, 0x4d, 0x52, 0x57, 0x5c, 0x61, 0x66, 0x6b, 6714 - 0x70, 0x75, 0x7a, 0x7f, 0x84, 0x89, 0x8e, 0x93, 6715 - 0x98, 0x9d, 0xa2, 0xa7, 0xac, 0xb1, 0xb6, 0xbb, 6716 - 0xc0, 0xc5, 0xca, 0xcf, 0xd4, 0xd9, 0xde, 0xe3, 6717 - 0xe8, 0xed, 0xf2, 0xf7, 0xfc, 0x01, 0x06, 0x0b, 6718 - 0x10, 0x15, 0x1a, 0x1f, 0x24, 0x29, 0x2e, 0x33, 6719 - 0x38, 0x3d, 0x42, 0x47, 0x4c, 0x51, 0x56, 0x5b, 6720 - 0x60, 0x65, 0x6a, 0x6f, 0x74, 0x79, 0x7e, 0x83, 6721 - 0x88, 0x8d, 0x92, 0x97, 0x9c, 0xa1, 0xa6, 0xab, 6722 - 0xb0, 0xb5, 0xba, 0xbf, 0xc4, 0xc9, 0xce, 0xd3, 6723 - 0xd8, 0xdd, 0xe2, 0xe7, 0xec, 0xf1, 0xf6, 0xfb, 6724 - 0x00, 0x07, 0x0e, 0x15, 0x1c, 0x23, 0x2a, 0x31, 6725 - 0x38, 0x3f, 0x46, 0x4d, 0x54, 0x5b, 0x62, 0x69, 6726 - 0x70, 0x77, 0x7e, 0x85, 0x8c, 0x93, 0x9a, 0xa1, 6727 - 0xa8, 0xaf, 0xb6, 0xbd, 0xc4, 0xcb, 0xd2, 0xd9, 6728 - 0xe0, 0xe7, 0xee, 0xf5, 0xfc, 0x03, 0x0a, 0x11, 6729 - 0x18, 0x1f, 0x26, 0x2d, 0x34, 0x3b, 0x42, 0x49, 6730 - 0x50, 0x57, 0x5e, 0x65, 0x6c, 0x73, 0x7a, 0x81, 6731 - 0x88, 0x8f, 0x96, 0x9d, 0xa4, 0xab, 0xb2, 0xb9, 6732 - 0xc0, 0xc7, 0xce, 0xd5, 0xdc, 0xe3, 0xea, 0xf1, 6733 - 0xf8, 0xff, 0x06, 0x0d, 0x14, 0x1b, 0x22, 0x29, 6734 - 0x30, 0x37, 0x3e, 0x45, 0x4c, 0x53, 0x5a, 0x61, 6735 - 0x68, 0x6f, 0x76, 0x7d, 0x84, 0x8b, 0x92, 0x99, 6736 - 0xa0, 0xa7, 0xae, 0xb5, 0xbc, 0xc3, 0xca, 0xd1, 6737 - 0xd8, 0xdf, 0xe6, 0xed, 0xf4, 0xfb, 0x02, 0x09, 6738 - 0x10, 0x17, 0x1e, 0x25, 0x2c, 0x33, 0x3a, 0x41, 6739 - 0x48, 0x4f, 0x56, 0x5d, 0x64, 0x6b, 0x72, 0x79, 6740 - 0x80, 0x87, 0x8e, 0x95, 0x9c, 0xa3, 0xaa, 0xb1, 6741 - 0xb8, 0xbf, 0xc6, 0xcd, 0xd4, 0xdb, 0xe2, 0xe9, 6742 - 0xf0, 0xf7, 0xfe, 0x05, 0x0c, 0x13, 0x1a, 0x21, 6743 - 0x28, 0x2f, 0x36, 0x3d, 0x44, 0x4b, 0x52, 0x59, 6744 - 0x60, 0x67, 0x6e, 0x75, 0x7c, 0x83, 0x8a, 0x91, 6745 - 0x98, 0x9f, 0xa6, 0xad, 0xb4, 0xbb, 0xc2, 0xc9, 6746 - 0xd0, 0xd7, 0xde, 0xe5, 0xec, 0xf3, 0xfa, 0x01, 6747 - 0x08, 0x0f, 0x16, 0x1d, 0x24, 0x2b, 0x32, 0x39, 6748 - 0x40, 0x47, 0x4e, 0x55, 0x5c, 0x63, 0x6a, 0x71, 6749 - 0x78, 0x7f, 0x86, 0x8d, 0x94, 0x9b, 0xa2, 0xa9, 6750 - 0xb0, 0xb7, 0xbe, 0xc5, 0xcc, 0xd3, 0xda, 0xe1, 6751 - 0xe8, 0xef, 0xf6, 0xfd, 0x04, 0x0b, 0x12, 0x19, 6752 - 0x20, 0x27, 0x2e, 0x35, 0x3c, 0x43, 0x4a, 0x51, 6753 - 0x58, 0x5f, 0x66, 0x6d, 0x74, 0x7b, 0x82, 0x89, 6754 - 0x90, 0x97, 0x9e, 0xa5, 0xac, 0xb3, 0xba, 0xc1, 6755 - 0xc8, 0xcf, 0xd6, 0xdd, 0xe4, 0xeb, 0xf2, 0xf9, 6756 - 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 6757 - 0x48, 0x51, 0x5a, 0x63, 0x6c, 0x75, 0x7e, 0x87, 6758 - 0x90, 0x99, 0xa2, 0xab, 0xb4, 0xbd, 0xc6, 0xcf, 6759 - 0xd8, 0xe1, 0xea, 0xf3, 0xfc, 0x05, 0x0e, 0x17, 6760 - 0x20, 0x29, 0x32, 0x3b, 0x44, 0x4d, 0x56, 0x5f, 6761 - 0x68, 0x71, 0x7a, 0x83, 0x8c, 0x95, 0x9e, 0xa7, 6762 - 0xb0, 0xb9, 0xc2, 0xcb, 0xd4, 0xdd, 0xe6, 0xef, 6763 - 0xf8, 0x01, 0x0a, 0x13, 0x1c, 0x25, 0x2e, 0x37, 6764 - 0x40, 0x49, 0x52, 0x5b, 0x64, 0x6d, 0x76, 0x7f, 6765 - 0x88, 0x91, 0x9a, 0xa3, 0xac, 0xb5, 0xbe, 0xc7, 6766 - 0xd0, 0xd9, 0xe2, 0xeb, 0xf4, 0xfd, 0x06, 0x0f, 6767 - 0x18, 0x21, 0x2a, 0x33, 0x3c, 0x45, 0x4e, 0x57, 6768 - 0x60, 0x69, 0x72, 0x7b, 0x84, 0x8d, 0x96, 0x9f, 6769 - 0xa8, 0xb1, 0xba, 0xc3, 0xcc, 0xd5, 0xde, 0xe7, 6770 - 0xf0, 0xf9, 0x02, 0x0b, 0x14, 0x1d, 0x26, 0x2f, 6771 - 0x38, 0x41, 0x4a, 0x53, 0x5c, 0x65, 0x6e, 0x77, 6772 - 0x80, 0x89, 0x92, 0x9b, 0xa4, 0xad, 0xb6, 0xbf, 6773 - 0xc8, 0xd1, 0xda, 0xe3, 0xec, 0xf5, 0xfe, 0x07, 6774 - 0x10, 0x19, 0x22, 0x2b, 0x34, 0x3d, 0x46, 0x4f, 6775 - 0x58, 0x61, 0x6a, 0x73, 0x7c, 0x85, 0x8e, 0x97, 6776 - 0xa0, 0xa9, 0xb2, 0xbb, 0xc4, 0xcd, 0xd6, 0xdf, 6777 - 0xe8, 0xf1, 0xfa, 0x03, 0x0c, 0x15, 0x1e, 0x27, 6778 - 0x30, 0x39, 0x42, 0x4b, 0x54, 0x5d, 0x66, 0x6f, 6779 - 0x78, 0x81, 0x8a, 0x93, 0x9c, 0xa5, 0xae, 0xb7, 6780 - 0xc0, 0xc9, 0xd2, 0xdb, 0xe4, 0xed, 0xf6, 0xff, 6781 - 0x08, 0x11, 0x1a, 0x23, 0x2c, 0x35, 0x3e, 0x47, 6782 - 0x50, 0x59, 0x62, 0x6b, 0x74, 0x7d, 0x86, 0x8f, 6783 - 0x98, 0xa1, 0xaa, 0xb3, 0xbc, 0xc5, 0xce, 0xd7, 6784 - 0xe0, 0xe9, 0xf2, 0xfb, 0x04, 0x0d, 0x16, 0x1f, 6785 - 0x28, 0x31, 0x3a, 0x43, 0x4c, 0x55, 0x5e, 0x67, 6786 - 0x70, 0x79, 0x82, 0x8b, 0x94, 0x9d, 0xa6, 0xaf, 6787 - 0xb8, 0xc1, 0xca, 0xd3, 0xdc, 0xe5, 0xee, 0xf7, 6788 - 0x00, 0x0b, 0x16, 0x21, 0x2c, 0x37, 0x42, 0x4d, 6789 - 0x58, 0x63, 0x6e, 0x79, 0x84, 0x8f, 0x9a, 0xa5, 6790 - 0xb0, 0xbb, 0xc6, 0xd1, 0xdc, 0xe7, 0xf2, 0xfd, 6791 - 0x08, 0x13, 0x1e, 0x29, 0x34, 0x3f, 0x4a, 0x55, 6792 - 0x60, 0x6b, 0x76, 0x81, 0x8c, 0x97, 0xa2, 0xad, 6793 - 0xb8, 0xc3, 0xce, 0xd9, 0xe4, 0xef, 0xfa, 0x05, 6794 - 0x10, 0x1b, 0x26, 0x31, 0x3c, 0x47, 0x52, 0x5d, 6795 - 0x68, 0x73, 0x7e, 0x89, 0x94, 0x9f, 0xaa, 0xb5, 6796 - 0xc0, 0xcb, 0xd6, 0xe1, 0xec, 0xf7, 0x02, 0x0d, 6797 - 0x18, 0x23, 0x2e, 0x39, 0x44, 0x4f, 0x5a, 0x65, 6798 - 0x70, 0x7b, 0x86, 0x91, 0x9c, 0xa7, 0xb2, 0xbd, 6799 - 0xc8, 0xd3, 0xde, 0xe9, 0xf4, 0xff, 0x0a, 0x15, 6800 - 0x20, 0x2b, 0x36, 0x41, 0x4c, 0x57, 0x62, 0x6d, 6801 - 0x78, 0x83, 0x8e, 0x99, 0xa4, 0xaf, 0xba, 0xc5, 6802 - 0xd0, 0xdb, 0xe6, 0xf1, 0xfc, 0x07, 0x12, 0x1d, 6803 - 0x28, 0x33, 0x3e, 0x49, 0x54, 0x5f, 0x6a, 0x75, 6804 - 0x80, 0x8b, 0x96, 0xa1, 0xac, 0xb7, 0xc2, 0xcd, 6805 - 0xd8, 0xe3, 0xee, 0xf9, 0x04, 0x0f, 0x1a, 0x25, 6806 - 0x30, 0x3b, 0x46, 0x51, 0x5c, 0x67, 0x72, 0x7d, 6807 - 0x88, 0x93, 0x9e, 0xa9, 0xb4, 0xbf, 0xca, 0xd5, 6808 - 0xe0, 0xeb, 0xf6, 0x01, 0x0c, 0x17, 0x22, 0x2d, 6809 - 0x38, 0x43, 0x4e, 0x59, 0x64, 0x6f, 0x7a, 0x85, 6810 - 0x90, 0x9b, 0xa6, 0xb1, 0xbc, 0xc7, 0xd2, 0xdd, 6811 - 0xe8, 0xf3, 0xfe, 0x09, 0x14, 0x1f, 0x2a, 0x35, 6812 - 0x40, 0x4b, 0x56, 0x61, 0x6c, 0x77, 0x82, 0x8d, 6813 - 0x98, 0xa3, 0xae, 0xb9, 0xc4, 0xcf, 0xda, 0xe5, 6814 - 0xf0, 0xfb, 0x06, 0x11, 0x1c, 0x27, 0x32, 0x3d, 6815 - 0x48, 0x53, 0x5e, 0x69, 0x74, 0x7f, 0x8a, 0x95, 6816 - 0xa0, 0xab, 0xb6, 0xc1, 0xcc, 0xd7, 0xe2, 0xed, 6817 - 0xf8, 0x03, 0x0e, 0x19, 0x24, 0x2f, 0x3a, 0x45, 6818 - 0x50, 0x5b, 0x66, 0x71, 0x7c, 0x87, 0x92, 0x9d, 6819 - 0xa8, 0xb3, 0xbe, 0xc9, 0xd4, 0xdf, 0xea, 0xf5, 6820 - 0x00, 0x0d, 0x1a, 0x27, 0x34, 0x41, 0x4e, 0x5b, 6821 - 0x68, 0x75, 0x82, 0x8f, 0x9c, 0xa9, 0xb6, 0xc3, 6822 - 0xd0, 0xdd, 0xea, 0xf7, 0x04, 0x11, 0x1e, 0x2b, 6823 - 0x38, 0x45, 0x52, 0x5f, 0x6c, 0x79, 0x86, 0x93, 6824 - 0xa0, 0xad, 0xba, 0xc7, 0xd4, 0xe1, 0xee, 0xfb, 6825 - 0x08, 0x15, 0x22, 0x2f, 0x3c, 0x49, 0x56, 0x63, 6826 - 0x70, 0x7d, 0x8a, 0x97, 0xa4, 0xb1, 0xbe, 0xcb, 6827 - 0xd8, 0xe5, 0xf2, 0xff, 0x0c, 0x19, 0x26, 0x33, 6828 - 0x40, 0x4d, 0x5a, 0x67, 0x74, 0x81, 0x8e, 0x9b, 6829 - 0xa8, 0xb5, 0xc2, 0xcf, 0xdc, 0xe9, 0xf6, 0x03, 6830 - 0x10, 0x1d, 0x2a, 0x37, 0x44, 0x51, 0x5e, 0x6b, 6831 - 0x78, 0x85, 0x92, 0x9f, 0xac, 0xb9, 0xc6, 0xd3, 6832 - 0xe0, 0xed, 0xfa, 0x07, 0x14, 0x21, 0x2e, 0x3b, 6833 - 0x48, 0x55, 0x62, 0x6f, 0x7c, 0x89, 0x96, 0xa3, 6834 - 0xb0, 0xbd, 0xca, 0xd7, 0xe4, 0xf1, 0xfe, 0x0b, 6835 - 0x18, 0x25, 0x32, 0x3f, 0x4c, 0x59, 0x66, 0x73, 6836 - 0x80, 0x8d, 0x9a, 0xa7, 0xb4, 0xc1, 0xce, 0xdb, 6837 - 0xe8, 0xf5, 0x02, 0x0f, 0x1c, 0x29, 0x36, 0x43, 6838 - 0x50, 0x5d, 0x6a, 0x77, 0x84, 0x91, 0x9e, 0xab, 6839 - 0xb8, 0xc5, 0xd2, 0xdf, 0xec, 0xf9, 0x06, 0x13, 6840 - 0x20, 0x2d, 0x3a, 0x47, 0x54, 0x61, 0x6e, 0x7b, 6841 - 0x88, 0x95, 0xa2, 0xaf, 0xbc, 0xc9, 0xd6, 0xe3, 6842 - 0xf0, 0xfd, 0x0a, 0x17, 0x24, 0x31, 0x3e, 0x4b, 6843 - 0x58, 0x65, 0x72, 0x7f, 0x8c, 0x99, 0xa6, 0xb3, 6844 - 0xc0, 0xcd, 0xda, 0xe7, 0xf4, 0x01, 0x0e, 0x1b, 6845 - 0x28, 0x35, 0x42, 0x4f, 0x5c, 0x69, 0x76, 0x83, 6846 - 0x90, 0x9d, 0xaa, 0xb7, 0xc4, 0xd1, 0xde, 0xeb, 6847 - 0xf8, 0x05, 0x12, 0x1f, 0x2c, 0x39, 0x46, 0x53, 6848 - 0x60, 0x6d, 0x7a, 0x87, 0x94, 0xa1, 0xae, 0xbb, 6849 - 0xc8, 0xd5, 0xe2, 0xef, 0xfc, 0x09, 0x16, 0x23, 6850 - 0x30, 0x3d, 0x4a, 0x57, 0x64, 0x71, 0x7e, 0x8b, 6851 - 0x98, 0xa5, 0xb2, 0xbf, 0xcc, 0xd9, 0xe6, 0xf3, 6852 - 0x00, 0x0f, 0x1e, 0x2d, 0x3c, 0x4b, 0x5a, 0x69, 6853 - 0x78, 0x87, 0x96, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 6854 - 0xf0, 0xff, 0x0e, 0x1d, 0x2c, 0x3b, 0x4a, 0x59, 6855 - 0x68, 0x77, 0x86, 0x95, 0xa4, 0xb3, 0xc2, 0xd1, 6856 - 0xe0, 0xef, 0xfe, 0x0d, 0x1c, 0x2b, 0x3a, 0x49, 6857 - 0x58, 0x67, 0x76, 0x85, 0x94, 0xa3, 0xb2, 0xc1, 6858 - 0xd0, 0xdf, 0xee, 0xfd, 0x0c, 0x1b, 0x2a, 0x39, 6859 - 0x48, 0x57, 0x66, 0x75, 0x84, 0x93, 0xa2, 0xb1, 6860 - 0xc0, 0xcf, 0xde, 0xed, 0xfc, 0x0b, 0x1a, 0x29, 6861 - 0x38, 0x47, 0x56, 0x65, 0x74, 0x83, 0x92, 0xa1, 6862 - 0xb0, 0xbf, 0xce, 0xdd, 0xec, 0xfb, 0x0a, 0x19, 6863 - 0x28, 0x37, 0x46, 0x55, 0x64, 0x73, 0x82, 0x91, 6864 - 0xa0, 0xaf, 0xbe, 0xcd, 0xdc, 0xeb, 0xfa, 0x09, 6865 - 0x18, 0x27, 0x36, 0x45, 0x54, 0x63, 0x72, 0x81, 6866 - 0x90, 0x9f, 0xae, 0xbd, 0xcc, 0xdb, 0xea, 0xf9, 6867 - 0x08, 0x17, 0x26, 0x35, 0x44, 0x53, 0x62, 0x71, 6868 - 0x80, 0x8f, 0x9e, 0xad, 0xbc, 0xcb, 0xda, 0xe9, 6869 - 0xf8, 0x07, 0x16, 0x25, 0x34, 0x43, 0x52, 0x61, 6870 - 0x70, 0x7f, 0x8e, 0x9d, 0xac, 0xbb, 0xca, 0xd9, 6871 - 0xe8, 0xf7, 0x06, 0x15, 0x24, 0x33, 0x42, 0x51, 6872 - 0x60, 0x6f, 0x7e, 0x8d, 0x9c, 0xab, 0xba, 0xc9, 6873 - 0xd8, 0xe7, 0xf6, 0x05, 0x14, 0x23, 0x32, 0x41, 6874 - 0x50, 0x5f, 0x6e, 0x7d, 0x8c, 0x9b, 0xaa, 0xb9, 6875 - 0xc8, 0xd7, 0xe6, 0xf5, 0x04, 0x13, 0x22, 0x31, 6876 - 0x40, 0x4f, 0x5e, 0x6d, 0x7c, 0x8b, 0x9a, 0xa9, 6877 - 0xb8, 0xc7, 0xd6, 0xe5, 0xf4, 0x03, 0x12, 0x21, 6878 - 0x30, 0x3f, 0x4e, 0x5d, 0x6c, 0x7b, 0x8a, 0x99, 6879 - 0xa8, 0xb7, 0xc6, 0xd5, 0xe4, 0xf3, 0x02, 0x11, 6880 - 0x20, 0x2f, 0x3e, 0x4d, 0x5c, 0x6b, 0x7a, 0x89, 6881 - 0x98, 0xa7, 0xb6, 0xc5, 0xd4, 0xe3, 0xf2, 0x01, 6882 - 0x10, 0x1f, 0x2e, 0x3d, 0x4c, 0x5b, 0x6a, 0x79, 6883 - 0x88, 0x97, 0xa6, 0xb5, 0xc4, 0xd3, 0xe2, 0xf1, 6884 - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 6885 - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 6886 - 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 6887 - 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, 6888 - 0x20, 0x31, 0x42, 0x53, 0x64, 0x75, 0x86, 0x97, 6889 - 0xa8, 0xb9, 0xca, 0xdb, 0xec, 0xfd, 0x0e, 0x1f, 6890 - 0x30, 0x41, 0x52, 0x63, 0x74, 0x85, 0x96, 0xa7, 6891 - 0xb8, 0xc9, 0xda, 0xeb, 0xfc, 0x0d, 0x1e, 0x2f, 6892 - 0x40, 0x51, 0x62, 0x73, 0x84, 0x95, 0xa6, 0xb7, 6893 - 0xc8, 0xd9, 0xea, 0xfb, 0x0c, 0x1d, 0x2e, 0x3f, 6894 - 0x50, 0x61, 0x72, 0x83, 0x94, 0xa5, 0xb6, 0xc7, 6895 - 0xd8, 0xe9, 0xfa, 0x0b, 0x1c, 0x2d, 0x3e, 0x4f, 6896 - 0x60, 0x71, 0x82, 0x93, 0xa4, 0xb5, 0xc6, 0xd7, 6897 - 0xe8, 0xf9, 0x0a, 0x1b, 0x2c, 0x3d, 0x4e, 0x5f, 6898 - 0x70, 0x81, 0x92, 0xa3, 0xb4, 0xc5, 0xd6, 0xe7, 6899 - 0xf8, 0x09, 0x1a, 0x2b, 0x3c, 0x4d, 0x5e, 0x6f, 6900 - 0x80, 0x91, 0xa2, 0xb3, 0xc4, 0xd5, 0xe6, 0xf7, 6901 - 0x08, 0x19, 0x2a, 0x3b, 0x4c, 0x5d, 0x6e, 0x7f, 6902 - 0x90, 0xa1, 0xb2, 0xc3, 0xd4, 0xe5, 0xf6, 0x07, 6903 - 0x18, 0x29, 0x3a, 0x4b, 0x5c, 0x6d, 0x7e, 0x8f, 6904 - 0xa0, 0xb1, 0xc2, 0xd3, 0xe4, 0xf5, 0x06, 0x17, 6905 - 0x28, 0x39, 0x4a, 0x5b, 0x6c, 0x7d, 0x8e, 0x9f, 6906 - 0xb0, 0xc1, 0xd2, 0xe3, 0xf4, 0x05, 0x16, 0x27, 6907 - 0x38, 0x49, 0x5a, 0x6b, 0x7c, 0x8d, 0x9e, 0xaf, 6908 - 0xc0, 0xd1, 0xe2, 0xf3, 0x04, 0x15, 0x26, 0x37, 6909 - 0x48, 0x59, 0x6a, 0x7b, 0x8c, 0x9d, 0xae, 0xbf, 6910 - 0xd0, 0xe1, 0xf2, 0x03, 0x14, 0x25, 0x36, 0x47, 6911 - 0x58, 0x69, 0x7a, 0x8b, 0x9c, 0xad, 0xbe, 0xcf, 6912 - 0xe0, 0xf1, 0x02, 0x13, 0x24, 0x35, 0x46, 0x57, 6913 - 0x68, 0x79, 0x8a, 0x9b, 0xac, 0xbd, 0xce, 0xdf, 6914 - 0xf0, 0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 6915 - 0x78, 0x89, 0x9a, 0xab, 0xbc, 0xcd, 0xde, 0xef, 6916 - 0x00, 0x13, 0x26, 0x39, 0x4c, 0x5f, 0x72, 0x85, 6917 - 0x98, 0xab, 0xbe, 0xd1, 0xe4, 0xf7, 0x0a, 0x1d, 6918 - 0x30, 0x43, 0x56, 0x69, 0x7c, 0x8f, 0xa2, 0xb5, 6919 - 0xc8, 0xdb, 0xee, 0x01, 0x14, 0x27, 0x3a, 0x4d, 6920 - 0x60, 0x73, 0x86, 0x99, 0xac, 0xbf, 0xd2, 0xe5, 6921 - 0xf8, 0x0b, 0x1e, 0x31, 0x44, 0x57, 0x6a, 0x7d, 6922 - 0x90, 0xa3, 0xb6, 0xc9, 0xdc, 0xef, 0x02, 0x15, 6923 - 0x28, 0x3b, 0x4e, 0x61, 0x74, 0x87, 0x9a, 0xad, 6924 - 0xc0, 0xd3, 0xe6, 0xf9, 0x0c, 0x1f, 0x32, 0x45, 6925 - 0x58, 0x6b, 0x7e, 0x91, 0xa4, 0xb7, 0xca, 0xdd, 6926 - 0xf0, 0x03, 0x16, 0x29, 0x3c, 0x4f, 0x62, 0x75, 6927 - 0x88, 0x9b, 0xae, 0xc1, 0xd4, 0xe7, 0xfa, 0x0d, 6928 - 0x20, 0x33, 0x46, 0x59, 0x6c, 0x7f, 0x92, 0xa5, 6929 - 0xb8, 0xcb, 0xde, 0xf1, 0x04, 0x17, 0x2a, 0x3d, 6930 - 0x50, 0x63, 0x76, 0x89, 0x9c, 0xaf, 0xc2, 0xd5, 6931 - 0xe8, 0xfb, 0x0e, 0x21, 0x34, 0x47, 0x5a, 0x6d, 6932 - 0x80, 0x93, 0xa6, 0xb9, 0xcc, 0xdf, 0xf2, 0x05, 6933 - 0x18, 0x2b, 0x3e, 0x51, 0x64, 0x77, 0x8a, 0x9d, 6934 - 0xb0, 0xc3, 0xd6, 0xe9, 0xfc, 0x0f, 0x22, 0x35, 6935 - 0x48, 0x5b, 0x6e, 0x81, 0x94, 0xa7, 0xba, 0xcd, 6936 - 0xe0, 0xf3, 0x06, 0x19, 0x2c, 0x3f, 0x52, 0x65, 6937 - 0x78, 0x8b, 0x9e, 0xb1, 0xc4, 0xd7, 0xea, 0xfd, 6938 - 0x10, 0x23, 0x36, 0x49, 0x5c, 0x6f, 0x82, 0x95, 6939 - 0xa8, 0xbb, 0xce, 0xe1, 0xf4, 0x07, 0x1a, 0x2d, 6940 - 0x40, 0x53, 0x66, 0x79, 0x8c, 0x9f, 0xb2, 0xc5, 6941 - 0xd8, 0xeb, 0xfe, 0x11, 0x24, 0x37, 0x4a, 0x5d, 6942 - 0x70, 0x83, 0x96, 0xa9, 0xbc, 0xcf, 0xe2, 0xf5, 6943 - 0x08, 0x1b, 0x2e, 0x41, 0x54, 0x67, 0x7a, 0x8d, 6944 - 0xa0, 0xb3, 0xc6, 0xd9, 0xec, 0xff, 0x12, 0x25, 6945 - 0x38, 0x4b, 0x5e, 0x71, 0x84, 0x97, 0xaa, 0xbd, 6946 - 0xd0, 0xe3, 0xf6, 0x09, 0x1c, 0x2f, 0x42, 0x55, 6947 - 0x68, 0x7b, 0x8e, 0xa1, 0xb4, 0xc7, 0xda, 0xed, 6948 - 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x69, 0x7e, 0x93, 6949 - 0xa8, 0xbd, 0xd2, 0xe7, 0xfc, 0x11, 0x26, 0x3b, 6950 - 0x50, 0x65, 0x7a, 0x8f, 0xa4, 0xb9, 0xce, 0xe3, 6951 - 0xf8, 0x0d, 0x22, 0x37, 0x4c, 0x61, 0x76, 0x8b, 6952 - 0xa0, 0xb5, 0xca, 0xdf, 0xf4, 0x09, 0x1e, 0x33, 6953 - 0x48, 0x5d, 0x72, 0x87, 0x9c, 0xb1, 0xc6, 0xdb, 6954 - 0xf0, 0x05, 0x1a, 0x2f, 0x44, 0x59, 0x6e, 0x83, 6955 - 0x98, 0xad, 0xc2, 0xd7, 0xec, 0x01, 0x16, 0x2b, 6956 - 0x40, 0x55, 0x6a, 0x7f, 0x94, 0xa9, 0xbe, 0xd3, 6957 - 0xe8, 0xfd, 0x12, 0x27, 0x3c, 0x51, 0x66, 0x7b, 6958 - 0x90, 0xa5, 0xba, 0xcf, 0xe4, 0xf9, 0x0e, 0x23, 6959 - 0x38, 0x4d, 0x62, 0x77, 0x8c, 0xa1, 0xb6, 0xcb, 6960 - 0xe0, 0xf5, 0x0a, 0x1f, 0x34, 0x49, 0x5e, 0x73, 6961 - 0x88, 0x9d, 0xb2, 0xc7, 0xdc, 0xf1, 0x06, 0x1b, 6962 - 0x30, 0x45, 0x5a, 0x6f, 0x84, 0x99, 0xae, 0xc3, 6963 - 0xd8, 0xed, 0x02, 0x17, 0x2c, 0x41, 0x56, 0x6b, 6964 - 0x80, 0x95, 0xaa, 0xbf, 0xd4, 0xe9, 0xfe, 0x13, 6965 - 0x28, 0x3d, 0x52, 0x67, 0x7c, 0x91, 0xa6, 0xbb, 6966 - 0xd0, 0xe5, 0xfa, 0x0f, 0x24, 0x39, 0x4e, 0x63, 6967 - 0x78, 0x8d, 0xa2, 0xb7, 0xcc, 0xe1, 0xf6, 0x0b, 6968 - 0x20, 0x35, 0x4a, 0x5f, 0x74, 0x89, 0x9e, 0xb3, 6969 - 0xc8, 0xdd, 0xf2, 0x07, 0x1c, 0x31, 0x46, 0x5b, 6970 - 0x70, 0x85, 0x9a, 0xaf, 0xc4, 0xd9, 0xee, 0x03, 6971 - 0x18, 0x2d, 0x42, 0x57, 0x6c, 0x81, 0x96, 0xab, 6972 - 0xc0, 0xd5, 0xea, 0xff, 0x14, 0x29, 0x3e, 0x53, 6973 - 0x68, 0x7d, 0x92, 0xa7, 0xbc, 0xd1, 0xe6, 0xfb, 6974 - 0x10, 0x25, 0x3a, 0x4f, 0x64, 0x79, 0x8e, 0xa3, 6975 - 0xb8, 0xcd, 0xe2, 0xf7, 0x0c, 0x21, 0x36, 0x4b, 6976 - 0x60, 0x75, 0x8a, 0x9f, 0xb4, 0xc9, 0xde, 0xf3, 6977 - 0x08, 0x1d, 0x32, 0x47, 0x5c, 0x71, 0x86, 0x9b, 6978 - 0xb0, 0xc5, 0xda, 0xef, 0x04, 0x19, 0x2e, 0x43, 6979 - 0x58, 0x6d, 0x82, 0x97, 0xac, 0xc1, 0xd6, 0xeb, 6980 - 0x00, 0x17, 0x2e, 0x45, 0x5c, 0x73, 0x8a, 0xa1, 6981 - 0xb8, 0xcf, 0xe6, 0xfd, 0x14, 0x2b, 0x42, 0x59, 6982 - 0x70, 0x87, 0x9e, 0xb5, 0xcc, 0xe3, 0xfa, 0x11, 6983 - 0x28, 0x3f, 0x56, 0x6d, 0x84, 0x9b, 0xb2, 0xc9, 6984 - 0xe0, 0xf7, 0x0e, 0x25, 0x3c, 0x53, 0x6a, 0x81, 6985 - 0x98, 0xaf, 0xc6, 0xdd, 0xf4, 0x0b, 0x22, 0x39, 6986 - 0x50, 0x67, 0x7e, 0x95, 0xac, 0xc3, 0xda, 0xf1, 6987 - 0x08, 0x1f, 0x36, 0x4d, 0x64, 0x7b, 0x92, 0xa9, 6988 - 0xc0, 0xd7, 0xee, 0x05, 0x1c, 0x33, 0x4a, 0x61, 6989 - 0x78, 0x8f, 0xa6, 0xbd, 0xd4, 0xeb, 0x02, 0x19, 6990 - 0x30, 0x47, 0x5e, 0x75, 0x8c, 0xa3, 0xba, 0xd1, 6991 - 0xe8, 0xff, 0x16, 0x2d, 0x44, 0x5b, 0x72, 0x89, 6992 - 0xa0, 0xb7, 0xce, 0xe5, 0xfc, 0x13, 0x2a, 0x41, 6993 - 0x58, 0x6f, 0x86, 0x9d, 0xb4, 0xcb, 0xe2, 0xf9, 6994 - 0x10, 0x27, 0x3e, 0x55, 0x6c, 0x83, 0x9a, 0xb1, 6995 - 0xc8, 0xdf, 0xf6, 0x0d, 0x24, 0x3b, 0x52, 0x69, 6996 - 0x80, 0x97, 0xae, 0xc5, 0xdc, 0xf3, 0x0a, 0x21, 6997 - 0x38, 0x4f, 0x66, 0x7d, 0x94, 0xab, 0xc2, 0xd9, 6998 - 0xf0, 0x07, 0x1e, 0x35, 0x4c, 0x63, 0x7a, 0x91, 6999 - 0xa8, 0xbf, 0xd6, 0xed, 0x04, 0x1b, 0x32, 0x49, 7000 - 0x60, 0x77, 0x8e, 0xa5, 0xbc, 0xd3, 0xea, 0x01, 7001 - 0x18, 0x2f, 0x46, 0x5d, 0x74, 0x8b, 0xa2, 0xb9, 7002 - 0xd0, 0xe7, 0xfe, 0x15, 0x2c, 0x43, 0x5a, 0x71, 7003 - 0x88, 0x9f, 0xb6, 0xcd, 0xe4, 0xfb, 0x12, 0x29, 7004 - 0x40, 0x57, 0x6e, 0x85, 0x9c, 0xb3, 0xca, 0xe1, 7005 - 0xf8, 0x0f, 0x26, 0x3d, 0x54, 0x6b, 0x82, 0x99, 7006 - 0xb0, 0xc7, 0xde, 0xf5, 0x0c, 0x23, 0x3a, 0x51, 7007 - 0x68, 0x7f, 0x96, 0xad, 0xc4, 0xdb, 0xf2, 0x09, 7008 - 0x20, 0x37, 0x4e, 0x65, 0x7c, 0x93, 0xaa, 0xc1, 7009 - 0xd8, 0xef, 0x06, 0x1d, 0x34, 0x4b, 0x62, 0x79, 7010 - 0x90, 0xa7, 0xbe, 0xd5, 0xec, 0x03, 0x1a, 0x31, 7011 - 0x48, 0x5f, 0x76, 0x8d, 0xa4, 0xbb, 0xd2, 0xe9, 7012 - 0x00, 0x19, 0x32, 0x4b, 0x64, 0x7d, 0x96, 0xaf, 7013 - 0xc8, 0xe1, 0xfa, 0x13, 0x2c, 0x45, 0x5e, 0x77, 7014 - 0x90, 0xa9, 0xc2, 0xdb, 0xf4, 0x0d, 0x26, 0x3f, 7015 - 0x58, 0x71, 0x8a, 0xa3, 0xbc, 0xd5, 0xee, 0x07, 7016 - 0x20, 0x39, 0x52, 0x6b, 0x84, 0x9d, 0xb6, 0xcf, 7017 - 0xe8, 0x01, 0x1a, 0x33, 0x4c, 0x65, 0x7e, 0x97, 7018 - 0xb0, 0xc9, 0xe2, 0xfb, 0x14, 0x2d, 0x46, 0x5f, 7019 - 0x78, 0x91, 0xaa, 0xc3, 0xdc, 0xf5, 0x0e, 0x27, 7020 - 0x40, 0x59, 0x72, 0x8b, 0xa4, 0xbd, 0xd6, 0xef, 7021 - 0x08, 0x21, 0x3a, 0x53, 0x6c, 0x85, 0x9e, 0xb7, 7022 - 0xd0, 0xe9, 0x02, 0x1b, 0x34, 0x4d, 0x66, 0x7f, 7023 - 0x98, 0xb1, 0xca, 0xe3, 0xfc, 0x15, 0x2e, 0x47, 7024 - 0x60, 0x79, 0x92, 0xab, 0xc4, 0xdd, 0xf6, 0x0f, 7025 - 0x28, 0x41, 0x5a, 0x73, 0x8c, 0xa5, 0xbe, 0xd7, 7026 - 0xf0, 0x09, 0x22, 0x3b, 0x54, 0x6d, 0x86, 0x9f, 7027 - 0xb8, 0xd1, 0xea, 0x03, 0x1c, 0x35, 0x4e, 0x67, 7028 - 0x80, 0x99, 0xb2, 0xcb, 0xe4, 0xfd, 0x16, 0x2f, 7029 - 0x48, 0x61, 0x7a, 0x93, 0xac, 0xc5, 0xde, 0xf7, 7030 - 0x10, 0x29, 0x42, 0x5b, 0x74, 0x8d, 0xa6, 0xbf, 7031 - 0xd8, 0xf1, 0x0a, 0x23, 0x3c, 0x55, 0x6e, 0x87, 7032 - 0xa0, 0xb9, 0xd2, 0xeb, 0x04, 0x1d, 0x36, 0x4f, 7033 - 0x68, 0x81, 0x9a, 0xb3, 0xcc, 0xe5, 0xfe, 0x17, 7034 - 0x30, 0x49, 0x62, 0x7b, 0x94, 0xad, 0xc6, 0xdf, 7035 - 0xf8, 0x11, 0x2a, 0x43, 0x5c, 0x75, 0x8e, 0xa7, 7036 - 0xc0, 0xd9, 0xf2, 0x0b, 0x24, 0x3d, 0x56, 0x6f, 7037 - 0x88, 0xa1, 0xba, 0xd3, 0xec, 0x05, 0x1e, 0x37, 7038 - 0x50, 0x69, 0x82, 0x9b, 0xb4, 0xcd, 0xe6, 0xff, 7039 - 0x18, 0x31, 0x4a, 0x63, 0x7c, 0x95, 0xae, 0xc7, 7040 - 0xe0, 0xf9, 0x12, 0x2b, 0x44, 0x5d, 0x76, 0x8f, 7041 - 0xa8, 0xc1, 0xda, 0xf3, 0x0c, 0x25, 0x3e, 0x57, 7042 - 0x70, 0x89, 0xa2, 0xbb, 0xd4, 0xed, 0x06, 0x1f, 7043 - 0x38, 0x51, 0x6a, 0x83, 0x9c, 0xb5, 0xce, 0xe7, 7044 - 0x00, 0x1b, 0x36, 0x51, 0x6c, 0x87, 0xa2, 0xbd, 7045 - 0xd8, 0xf3, 0x0e, 0x29, 0x44, 0x5f, 0x7a, 0x95, 7046 - 0xb0, 0xcb, 0xe6, 0x01, 0x1c, 0x37, 0x52, 0x6d, 7047 - 0x88, 0xa3, 0xbe, 0xd9, 0xf4, 0x0f, 0x2a, 0x45, 7048 - 0x60, 0x7b, 0x96, 0xb1, 0xcc, 0xe7, 0x02, 0x1d, 7049 - 0x38, 0x53, 0x6e, 0x89, 0xa4, 0xbf, 0xda, 0xf5, 7050 - 0x10, 0x2b, 0x46, 0x61, 0x7c, 0x97, 0xb2, 0xcd, 7051 - 0xe8, 0x03, 0x1e, 0x39, 0x54, 0x6f, 0x8a, 0xa5, 7052 - 0xc0, 0xdb, 0xf6, 0x11, 0x2c, 0x47, 0x62, 0x7d, 7053 - 0x98, 0xb3, 0xce, 0xe9, 0x04, 0x1f, 0x3a, 0x55, 7054 - 0x70, 0x8b, 0xa6, 0xc1, 0xdc, 0xf7, 0x12, 0x2d, 7055 - 0x48, 0x63, 0x7e, 0x99, 0xb4, 0xcf, 0xea, 0x05, 7056 - 0x20, 0x3b, 0x56, 0x71, 0x8c, 0xa7, 0xc2, 0xdd, 7057 - 0xf8, 0x13, 0x2e, 0x49, 0x64, 0x7f, 0x9a, 0xb5, 7058 - 0xd0, 0xeb, 0x06, 0x21, 0x3c, 0x57, 0x72, 0x8d, 7059 - 0xa8, 0xc3, 0xde, 0xf9, 0x14, 0x2f, 0x4a, 0x65, 7060 - 0x80, 0x9b, 0xb6, 0xd1, 0xec, 0x07, 0x22, 0x3d, 7061 - 0x58, 0x73, 0x8e, 0xa9, 0xc4, 0xdf, 0xfa, 0x15, 7062 - 0x30, 0x4b, 0x66, 0x81, 0x9c, 0xb7, 0xd2, 0xed, 7063 - 0x08, 0x23, 0x3e, 0x59, 0x74, 0x8f, 0xaa, 0xc5, 7064 - 0xe0, 0xfb, 0x16, 0x31, 0x4c, 0x67, 0x82, 0x9d, 7065 - 0xb8, 0xd3, 0xee, 0x09, 0x24, 0x3f, 0x5a, 0x75, 7066 - 0x90, 0xab, 0xc6, 0xe1, 0xfc, 0x17, 0x32, 0x4d, 7067 - 0x68, 0x83, 0x9e, 0xb9, 0xd4, 0xef, 0x0a, 0x25, 7068 - 0x40, 0x5b, 0x76, 0x91, 0xac, 0xc7, 0xe2, 0xfd, 7069 - 0x18, 0x33, 0x4e, 0x69, 0x84, 0x9f, 0xba, 0xd5, 7070 - 0xf0, 0x0b, 0x26, 0x41, 0x5c, 0x77, 0x92, 0xad, 7071 - 0xc8, 0xe3, 0xfe, 0x19, 0x34, 0x4f, 0x6a, 0x85, 7072 - 0xa0, 0xbb, 0xd6, 0xf1, 0x0c, 0x27, 0x42, 0x5d, 7073 - 0x78, 0x93, 0xae, 0xc9, 0xe4, 0xff, 0x1a, 0x35, 7074 - 0x50, 0x6b, 0x86, 0xa1, 0xbc, 0xd7, 0xf2, 0x0d, 7075 - 0x28, 0x43, 0x5e, 0x79, 0x94, 0xaf, 0xca, 0xe5, 7076 - 0x00, 0x1d, 0x3a, 0x57, 0x74, 0x91, 0xae, 0xcb, 7077 - 0xe8, 0x05, 0x22, 0x3f, 0x5c, 0x79, 0x96, 0xb3, 7078 - 0xd0, 0xed, 0x0a, 0x27, 0x44, 0x61, 0x7e, 0x9b, 7079 - 0xb8, 0xd5, 0xf2, 0x0f, 0x2c, 0x49, 0x66, 0x83, 7080 - 0xa0, 0xbd, 0xda, 0xf7, 0x14, 0x31, 0x4e, 0x6b, 7081 - 0x88, 0xa5, 0xc2, 0xdf, 0xfc, 0x19, 0x36, 0x53, 7082 - 0x70, 0x8d, 0xaa, 0xc7, 0xe4, 0x01, 0x1e, 0x3b, 7083 - 0x58, 0x75, 0x92, 0xaf, 0xcc, 0xe9, 0x06, 0x23, 7084 - 0x40, 0x5d, 0x7a, 0x97, 0xb4, 0xd1, 0xee, 0x0b, 7085 - 0x28, 0x45, 0x62, 0x7f, 0x9c, 0xb9, 0xd6, 0xf3, 7086 - 0x10, 0x2d, 0x4a, 0x67, 0x84, 0xa1, 0xbe, 0xdb, 7087 - 0xf8, 0x15, 0x32, 0x4f, 0x6c, 0x89, 0xa6, 0xc3, 7088 - 0xe0, 0xfd, 0x1a, 0x37, 0x54, 0x71, 0x8e, 0xab, 7089 - 0xc8, 0xe5, 0x02, 0x1f, 0x3c, 0x59, 0x76, 0x93, 7090 - 0xb0, 0xcd, 0xea, 0x07, 0x24, 0x41, 0x5e, 0x7b, 7091 - 0x98, 0xb5, 0xd2, 0xef, 0x0c, 0x29, 0x46, 0x63, 7092 - 0x80, 0x9d, 0xba, 0xd7, 0xf4, 0x11, 0x2e, 0x4b, 7093 - 0x68, 0x85, 0xa2, 0xbf, 0xdc, 0xf9, 0x16, 0x33, 7094 - 0x50, 0x6d, 0x8a, 0xa7, 0xc4, 0xe1, 0xfe, 0x1b, 7095 - 0x38, 0x55, 0x72, 0x8f, 0xac, 0xc9, 0xe6, 0x03, 7096 - 0x20, 0x3d, 0x5a, 0x77, 0x94, 0xb1, 0xce, 0xeb, 7097 - 0x08, 0x25, 0x42, 0x5f, 0x7c, 0x99, 0xb6, 0xd3, 7098 - 0xf0, 0x0d, 0x2a, 0x47, 0x64, 0x81, 0x9e, 0xbb, 7099 - 0xd8, 0xf5, 0x12, 0x2f, 0x4c, 0x69, 0x86, 0xa3, 7100 - 0xc0, 0xdd, 0xfa, 0x17, 0x34, 0x51, 0x6e, 0x8b, 7101 - 0xa8, 0xc5, 0xe2, 0xff, 0x1c, 0x39, 0x56, 0x73, 7102 - 0x90, 0xad, 0xca, 0xe7, 0x04, 0x21, 0x3e, 0x5b, 7103 - 0x78, 0x95, 0xb2, 0xcf, 0xec, 0x09, 0x26, 0x43, 7104 - 0x60, 0x7d, 0x9a, 0xb7, 0xd4, 0xf1, 0x0e, 0x2b, 7105 - 0x48, 0x65, 0x82, 0x9f, 0xbc, 0xd9, 0xf6, 0x13, 7106 - 0x30, 0x4d, 0x6a, 0x87, 0xa4, 0xc1, 0xde, 0xfb, 7107 - 0x18, 0x35, 0x52, 0x6f, 0x8c, 0xa9, 0xc6, 0xe3, 7108 - 0x00, 0x1f, 0x3e, 0x5d, 0x7c, 0x9b, 0xba, 0xd9, 7109 - 0xf8, 0x17, 0x36, 0x55, 0x74, 0x93, 0xb2, 0xd1, 7110 - 0xf0, 0x0f, 0x2e, 0x4d, 0x6c, 0x8b, 0xaa, 0xc9, 7111 - 0xe8, 0x07, 0x26, 0x45, 0x64, 0x83, 0xa2, 0xc1, 7112 - 0xe0, 0xff, 0x1e, 0x3d, 0x5c, 0x7b, 0x9a, 0xb9, 7113 - 0xd8, 0xf7, 0x16, 0x35, 0x54, 0x73, 0x92, 0xb1, 7114 - 0xd0, 0xef, 0x0e, 0x2d, 0x4c, 0x6b, 0x8a, 0xa9, 7115 - 0xc8, 0xe7, 0x06, 0x25, 0x44, 0x63, 0x82, 0xa1, 7116 - 0xc0, 0xdf, 0xfe, 0x1d, 0x3c, 0x5b, 0x7a, 0x99, 7117 - 0xb8, 0xd7, 0xf6, 0x15, 0x34, 0x53, 0x72, 0x91, 7118 - 0xb0, 0xcf, 0xee, 0x0d, 0x2c, 0x4b, 0x6a, 0x89, 7119 - 0xa8, 0xc7, 0xe6, 0x05, 0x24, 0x43, 0x62, 0x81, 7120 - 0xa0, 0xbf, 0xde, 0xfd, 0x1c, 0x3b, 0x5a, 0x79, 7121 - 0x98, 0xb7, 0xd6, 0xf5, 0x14, 0x33, 0x52, 0x71, 7122 - 0x90, 0xaf, 0xce, 0xed, 0x0c, 0x2b, 0x4a, 0x69, 7123 - 0x88, 0xa7, 0xc6, 0xe5, 0x04, 0x23, 0x42, 0x61, 7124 - 0x80, 0x9f, 0xbe, 0xdd, 0xfc, 0x1b, 0x3a, 0x59, 7125 - 0x78, 0x97, 0xb6, 0xd5, 0xf4, 0x13, 0x32, 0x51, 7126 - 0x70, 0x8f, 0xae, 0xcd, 0xec, 0x0b, 0x2a, 0x49, 7127 - 0x68, 0x87, 0xa6, 0xc5, 0xe4, 0x03, 0x22, 0x41, 7128 - 0x60, 0x7f, 0x9e, 0xbd, 0xdc, 0xfb, 0x1a, 0x39, 7129 - 0x58, 0x77, 0x96, 0xb5, 0xd4, 0xf3, 0x12, 0x31, 7130 - 0x50, 0x6f, 0x8e, 0xad, 0xcc, 0xeb, 0x0a, 0x29, 7131 - 0x48, 0x67, 0x86, 0xa5, 0xc4, 0xe3, 0x02, 0x21, 7132 - 0x40, 0x5f, 0x7e, 0x9d, 0xbc, 0xdb, 0xfa, 0x19, 7133 - 0x38, 0x57, 0x76, 0x95, 0xb4, 0xd3, 0xf2, 0x11, 7134 - 0x30, 0x4f, 0x6e, 0x8d, 0xac, 0xcb, 0xea, 0x09, 7135 - 0x28, 0x47, 0x66, 0x85, 0xa4, 0xc3, 0xe2, 0x01, 7136 - 0x20, 0x3f, 0x5e, 0x7d, 0x9c, 0xbb, 0xda, 0xf9, 7137 - 0x18, 0x37, 0x56, 0x75, 0x94, 0xb3, 0xd2, 0xf1, 7138 - 0x10, 0x2f, 0x4e, 0x6d, 0x8c, 0xab, 0xca, 0xe9, 7139 - 0x08, 0x27, 0x46, 0x65, 0x84, 0xa3, 0xc2, 0xe1, 7140 - 0x00, 0x21, 0x42, 0x63, 7141 - }, 6561 + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" 6562 + "\x00\x00\x00\x00\x00\x00\x00\x00", 6563 + .input = 6564 + "\x00\x01\x02\x03\x04\x05\x06\x07" 6565 + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 6566 + "\x10\x11\x12\x13\x14\x15\x16\x17" 6567 + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 6568 + "\x20\x21\x22\x23\x24\x25\x26\x27" 6569 + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" 6570 + "\x30\x31\x32\x33\x34\x35\x36\x37" 6571 + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" 6572 + "\x40\x41\x42\x43\x44\x45\x46\x47" 6573 + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" 6574 + "\x50\x51\x52\x53\x54\x55\x56\x57" 6575 + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" 6576 + "\x60\x61\x62\x63\x64\x65\x66\x67" 6577 + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" 6578 + "\x70\x71\x72\x73\x74\x75\x76\x77" 6579 + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" 6580 + "\x80\x81\x82\x83\x84\x85\x86\x87" 6581 + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" 6582 + "\x90\x91\x92\x93\x94\x95\x96\x97" 6583 + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" 6584 + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" 6585 + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" 6586 + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" 6587 + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" 6588 + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" 6589 + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" 6590 + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" 6591 + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" 6592 + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" 6593 + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" 6594 + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" 6595 + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" 6596 + "\x00\x03\x06\x09\x0c\x0f\x12\x15" 6597 + "\x18\x1b\x1e\x21\x24\x27\x2a\x2d" 6598 + "\x30\x33\x36\x39\x3c\x3f\x42\x45" 6599 + "\x48\x4b\x4e\x51\x54\x57\x5a\x5d" 6600 + "\x60\x63\x66\x69\x6c\x6f\x72\x75" 6601 + "\x78\x7b\x7e\x81\x84\x87\x8a\x8d" 6602 + "\x90\x93\x96\x99\x9c\x9f\xa2\xa5" 6603 + "\xa8\xab\xae\xb1\xb4\xb7\xba\xbd" 6604 + "\xc0\xc3\xc6\xc9\xcc\xcf\xd2\xd5" 6605 + "\xd8\xdb\xde\xe1\xe4\xe7\xea\xed" 6606 + "\xf0\xf3\xf6\xf9\xfc\xff\x02\x05" 6607 + "\x08\x0b\x0e\x11\x14\x17\x1a\x1d" 6608 + "\x20\x23\x26\x29\x2c\x2f\x32\x35" 6609 + "\x38\x3b\x3e\x41\x44\x47\x4a\x4d" 6610 + "\x50\x53\x56\x59\x5c\x5f\x62\x65" 6611 + "\x68\x6b\x6e\x71\x74\x77\x7a\x7d" 6612 + "\x80\x83\x86\x89\x8c\x8f\x92\x95" 6613 + "\x98\x9b\x9e\xa1\xa4\xa7\xaa\xad" 6614 + "\xb0\xb3\xb6\xb9\xbc\xbf\xc2\xc5" 6615 + "\xc8\xcb\xce\xd1\xd4\xd7\xda\xdd" 6616 + "\xe0\xe3\xe6\xe9\xec\xef\xf2\xf5" 6617 + "\xf8\xfb\xfe\x01\x04\x07\x0a\x0d" 6618 + "\x10\x13\x16\x19\x1c\x1f\x22\x25" 6619 + "\x28\x2b\x2e\x31\x34\x37\x3a\x3d" 6620 + "\x40\x43\x46\x49\x4c\x4f\x52\x55" 6621 + "\x58\x5b\x5e\x61\x64\x67\x6a\x6d" 6622 + "\x70\x73\x76\x79\x7c\x7f\x82\x85" 6623 + "\x88\x8b\x8e\x91\x94\x97\x9a\x9d" 6624 + "\xa0\xa3\xa6\xa9\xac\xaf\xb2\xb5" 6625 + "\xb8\xbb\xbe\xc1\xc4\xc7\xca\xcd" 6626 + "\xd0\xd3\xd6\xd9\xdc\xdf\xe2\xe5" 6627 + "\xe8\xeb\xee\xf1\xf4\xf7\xfa\xfd" 6628 + "\x00\x05\x0a\x0f\x14\x19\x1e\x23" 6629 + "\x28\x2d\x32\x37\x3c\x41\x46\x4b" 6630 + "\x50\x55\x5a\x5f\x64\x69\x6e\x73" 6631 + "\x78\x7d\x82\x87\x8c\x91\x96\x9b" 6632 + "\xa0\xa5\xaa\xaf\xb4\xb9\xbe\xc3" 6633 + "\xc8\xcd\xd2\xd7\xdc\xe1\xe6\xeb" 6634 + "\xf0\xf5\xfa\xff\x04\x09\x0e\x13" 6635 + "\x18\x1d\x22\x27\x2c\x31\x36\x3b" 6636 + "\x40\x45\x4a\x4f\x54\x59\x5e\x63" 6637 + "\x68\x6d\x72\x77\x7c\x81\x86\x8b" 6638 + "\x90\x95\x9a\x9f\xa4\xa9\xae\xb3" 6639 + "\xb8\xbd\xc2\xc7\xcc\xd1\xd6\xdb" 6640 + "\xe0\xe5\xea\xef\xf4\xf9\xfe\x03" 6641 + "\x08\x0d\x12\x17\x1c\x21\x26\x2b" 6642 + "\x30\x35\x3a\x3f\x44\x49\x4e\x53" 6643 + "\x58\x5d\x62\x67\x6c\x71\x76\x7b" 6644 + "\x80\x85\x8a\x8f\x94\x99\x9e\xa3" 6645 + "\xa8\xad\xb2\xb7\xbc\xc1\xc6\xcb" 6646 + "\xd0\xd5\xda\xdf\xe4\xe9\xee\xf3" 6647 + "\xf8\xfd\x02\x07\x0c\x11\x16\x1b" 6648 + "\x20\x25\x2a\x2f\x34\x39\x3e\x43" 6649 + "\x48\x4d\x52\x57\x5c\x61\x66\x6b" 6650 + "\x70\x75\x7a\x7f\x84\x89\x8e\x93" 6651 + "\x98\x9d\xa2\xa7\xac\xb1\xb6\xbb" 6652 + "\xc0\xc5\xca\xcf\xd4\xd9\xde\xe3" 6653 + "\xe8\xed\xf2\xf7\xfc\x01\x06\x0b" 6654 + "\x10\x15\x1a\x1f\x24\x29\x2e\x33" 6655 + "\x38\x3d\x42\x47\x4c\x51\x56\x5b" 6656 + "\x60\x65\x6a\x6f\x74\x79\x7e\x83" 6657 + "\x88\x8d\x92\x97\x9c\xa1\xa6\xab" 6658 + "\xb0\xb5\xba\xbf\xc4\xc9\xce\xd3" 6659 + "\xd8\xdd\xe2\xe7\xec\xf1\xf6\xfb" 6660 + "\x00\x07\x0e\x15\x1c\x23\x2a\x31" 6661 + "\x38\x3f\x46\x4d\x54\x5b\x62\x69" 6662 + "\x70\x77\x7e\x85\x8c\x93\x9a\xa1" 6663 + "\xa8\xaf\xb6\xbd\xc4\xcb\xd2\xd9" 6664 + "\xe0\xe7\xee\xf5\xfc\x03\x0a\x11" 6665 + "\x18\x1f\x26\x2d\x34\x3b\x42\x49" 6666 + "\x50\x57\x5e\x65\x6c\x73\x7a\x81" 6667 + "\x88\x8f\x96\x9d\xa4\xab\xb2\xb9" 6668 + "\xc0\xc7\xce\xd5\xdc\xe3\xea\xf1" 6669 + "\xf8\xff\x06\x0d\x14\x1b\x22\x29" 6670 + "\x30\x37\x3e\x45\x4c\x53\x5a\x61" 6671 + "\x68\x6f\x76\x7d\x84\x8b\x92\x99" 6672 + "\xa0\xa7\xae\xb5\xbc\xc3\xca\xd1" 6673 + "\xd8\xdf\xe6\xed\xf4\xfb\x02\x09" 6674 + "\x10\x17\x1e\x25\x2c\x33\x3a\x41" 6675 + "\x48\x4f\x56\x5d\x64\x6b\x72\x79" 6676 + "\x80\x87\x8e\x95\x9c\xa3\xaa\xb1" 6677 + "\xb8\xbf\xc6\xcd\xd4\xdb\xe2\xe9" 6678 + "\xf0\xf7\xfe\x05\x0c\x13\x1a\x21" 6679 + "\x28\x2f\x36\x3d\x44\x4b\x52\x59" 6680 + "\x60\x67\x6e\x75\x7c\x83\x8a\x91" 6681 + "\x98\x9f\xa6\xad\xb4\xbb\xc2\xc9" 6682 + "\xd0\xd7\xde\xe5\xec\xf3\xfa\x01" 6683 + "\x08\x0f\x16\x1d\x24\x2b\x32\x39" 6684 + "\x40\x47\x4e\x55\x5c\x63\x6a\x71" 6685 + "\x78\x7f\x86\x8d\x94\x9b\xa2\xa9" 6686 + "\xb0\xb7\xbe\xc5\xcc\xd3\xda\xe1" 6687 + "\xe8\xef\xf6\xfd\x04\x0b\x12\x19" 6688 + "\x20\x27\x2e\x35\x3c\x43\x4a\x51" 6689 + "\x58\x5f\x66\x6d\x74\x7b\x82\x89" 6690 + "\x90\x97\x9e\xa5\xac\xb3\xba\xc1" 6691 + "\xc8\xcf\xd6\xdd\xe4\xeb\xf2\xf9" 6692 + "\x00\x09\x12\x1b\x24\x2d\x36\x3f" 6693 + "\x48\x51\x5a\x63\x6c\x75\x7e\x87" 6694 + "\x90\x99\xa2\xab\xb4\xbd\xc6\xcf" 6695 + "\xd8\xe1\xea\xf3\xfc\x05\x0e\x17" 6696 + "\x20\x29\x32\x3b\x44\x4d\x56\x5f" 6697 + "\x68\x71\x7a\x83\x8c\x95\x9e\xa7" 6698 + "\xb0\xb9\xc2\xcb\xd4\xdd\xe6\xef" 6699 + "\xf8\x01\x0a\x13\x1c\x25\x2e\x37" 6700 + "\x40\x49\x52\x5b\x64\x6d\x76\x7f" 6701 + "\x88\x91\x9a\xa3\xac\xb5\xbe\xc7" 6702 + "\xd0\xd9\xe2\xeb\xf4\xfd\x06\x0f" 6703 + "\x18\x21\x2a\x33\x3c\x45\x4e\x57" 6704 + "\x60\x69\x72\x7b\x84\x8d\x96\x9f" 6705 + "\xa8\xb1\xba\xc3\xcc\xd5\xde\xe7" 6706 + "\xf0\xf9\x02\x0b\x14\x1d\x26\x2f" 6707 + "\x38\x41\x4a\x53\x5c\x65\x6e\x77" 6708 + "\x80\x89\x92\x9b\xa4\xad\xb6\xbf" 6709 + "\xc8\xd1\xda\xe3\xec\xf5\xfe\x07" 6710 + "\x10\x19\x22\x2b\x34\x3d\x46\x4f" 6711 + "\x58\x61\x6a\x73\x7c\x85\x8e\x97" 6712 + "\xa0\xa9\xb2\xbb\xc4\xcd\xd6\xdf" 6713 + "\xe8\xf1\xfa\x03\x0c\x15\x1e\x27" 6714 + "\x30\x39\x42\x4b\x54\x5d\x66\x6f" 6715 + "\x78\x81\x8a\x93\x9c\xa5\xae\xb7" 6716 + "\xc0\xc9\xd2\xdb\xe4\xed\xf6\xff" 6717 + "\x08\x11\x1a\x23\x2c\x35\x3e\x47" 6718 + "\x50\x59\x62\x6b\x74\x7d\x86\x8f" 6719 + "\x98\xa1\xaa\xb3\xbc\xc5\xce\xd7" 6720 + "\xe0\xe9\xf2\xfb\x04\x0d\x16\x1f" 6721 + "\x28\x31\x3a\x43\x4c\x55\x5e\x67" 6722 + "\x70\x79\x82\x8b\x94\x9d\xa6\xaf" 6723 + "\xb8\xc1\xca\xd3\xdc\xe5\xee\xf7" 6724 + "\x00\x0b\x16\x21\x2c\x37\x42\x4d" 6725 + "\x58\x63\x6e\x79\x84\x8f\x9a\xa5" 6726 + "\xb0\xbb\xc6\xd1\xdc\xe7\xf2\xfd" 6727 + "\x08\x13\x1e\x29\x34\x3f\x4a\x55" 6728 + "\x60\x6b\x76\x81\x8c\x97\xa2\xad" 6729 + "\xb8\xc3\xce\xd9\xe4\xef\xfa\x05" 6730 + "\x10\x1b\x26\x31\x3c\x47\x52\x5d" 6731 + "\x68\x73\x7e\x89\x94\x9f\xaa\xb5" 6732 + "\xc0\xcb\xd6\xe1\xec\xf7\x02\x0d" 6733 + "\x18\x23\x2e\x39\x44\x4f\x5a\x65" 6734 + "\x70\x7b\x86\x91\x9c\xa7\xb2\xbd" 6735 + "\xc8\xd3\xde\xe9\xf4\xff\x0a\x15" 6736 + "\x20\x2b\x36\x41\x4c\x57\x62\x6d" 6737 + "\x78\x83\x8e\x99\xa4\xaf\xba\xc5" 6738 + "\xd0\xdb\xe6\xf1\xfc\x07\x12\x1d" 6739 + "\x28\x33\x3e\x49\x54\x5f\x6a\x75" 6740 + "\x80\x8b\x96\xa1\xac\xb7\xc2\xcd" 6741 + "\xd8\xe3\xee\xf9\x04\x0f\x1a\x25" 6742 + "\x30\x3b\x46\x51\x5c\x67\x72\x7d" 6743 + "\x88\x93\x9e\xa9\xb4\xbf\xca\xd5" 6744 + "\xe0\xeb\xf6\x01\x0c\x17\x22\x2d" 6745 + "\x38\x43\x4e\x59\x64\x6f\x7a\x85" 6746 + "\x90\x9b\xa6\xb1\xbc\xc7\xd2\xdd" 6747 + "\xe8\xf3\xfe\x09\x14\x1f\x2a\x35" 6748 + "\x40\x4b\x56\x61\x6c\x77\x82\x8d" 6749 + "\x98\xa3\xae\xb9\xc4\xcf\xda\xe5" 6750 + "\xf0\xfb\x06\x11\x1c\x27\x32\x3d" 6751 + "\x48\x53\x5e\x69\x74\x7f\x8a\x95" 6752 + "\xa0\xab\xb6\xc1\xcc\xd7\xe2\xed" 6753 + "\xf8\x03\x0e\x19\x24\x2f\x3a\x45" 6754 + "\x50\x5b\x66\x71\x7c\x87\x92\x9d" 6755 + "\xa8\xb3\xbe\xc9\xd4\xdf\xea\xf5" 6756 + "\x00\x0d\x1a\x27\x34\x41\x4e\x5b" 6757 + "\x68\x75\x82\x8f\x9c\xa9\xb6\xc3" 6758 + "\xd0\xdd\xea\xf7\x04\x11\x1e\x2b" 6759 + "\x38\x45\x52\x5f\x6c\x79\x86\x93" 6760 + "\xa0\xad\xba\xc7\xd4\xe1\xee\xfb" 6761 + "\x08\x15\x22\x2f\x3c\x49\x56\x63" 6762 + "\x70\x7d\x8a\x97\xa4\xb1\xbe\xcb" 6763 + "\xd8\xe5\xf2\xff\x0c\x19\x26\x33" 6764 + "\x40\x4d\x5a\x67\x74\x81\x8e\x9b" 6765 + "\xa8\xb5\xc2\xcf\xdc\xe9\xf6\x03" 6766 + "\x10\x1d\x2a\x37\x44\x51\x5e\x6b" 6767 + "\x78\x85\x92\x9f\xac\xb9\xc6\xd3" 6768 + "\xe0\xed\xfa\x07\x14\x21\x2e\x3b" 6769 + "\x48\x55\x62\x6f\x7c\x89\x96\xa3" 6770 + "\xb0\xbd\xca\xd7\xe4\xf1\xfe\x0b" 6771 + "\x18\x25\x32\x3f\x4c\x59\x66\x73" 6772 + "\x80\x8d\x9a\xa7\xb4\xc1\xce\xdb" 6773 + "\xe8\xf5\x02\x0f\x1c\x29\x36\x43" 6774 + "\x50\x5d\x6a\x77\x84\x91\x9e\xab" 6775 + "\xb8\xc5\xd2\xdf\xec\xf9\x06\x13" 6776 + "\x20\x2d\x3a\x47\x54\x61\x6e\x7b" 6777 + "\x88\x95\xa2\xaf\xbc\xc9\xd6\xe3" 6778 + "\xf0\xfd\x0a\x17\x24\x31\x3e\x4b" 6779 + "\x58\x65\x72\x7f\x8c\x99\xa6\xb3" 6780 + "\xc0\xcd\xda\xe7\xf4\x01\x0e\x1b" 6781 + "\x28\x35\x42\x4f\x5c\x69\x76\x83" 6782 + "\x90\x9d\xaa\xb7\xc4\xd1\xde\xeb" 6783 + "\xf8\x05\x12\x1f\x2c\x39\x46\x53" 6784 + "\x60\x6d\x7a\x87\x94\xa1\xae\xbb" 6785 + "\xc8\xd5\xe2\xef\xfc\x09\x16\x23" 6786 + "\x30\x3d\x4a\x57\x64\x71\x7e\x8b" 6787 + "\x98\xa5\xb2\xbf\xcc\xd9\xe6\xf3" 6788 + "\x00\x0f\x1e\x2d\x3c\x4b\x5a\x69" 6789 + "\x78\x87\x96\xa5\xb4\xc3\xd2\xe1" 6790 + "\xf0\xff\x0e\x1d\x2c\x3b\x4a\x59" 6791 + "\x68\x77\x86\x95\xa4\xb3\xc2\xd1" 6792 + "\xe0\xef\xfe\x0d\x1c\x2b\x3a\x49" 6793 + "\x58\x67\x76\x85\x94\xa3\xb2\xc1" 6794 + "\xd0\xdf\xee\xfd\x0c\x1b\x2a\x39" 6795 + "\x48\x57\x66\x75\x84\x93\xa2\xb1" 6796 + "\xc0\xcf\xde\xed\xfc\x0b\x1a\x29" 6797 + "\x38\x47\x56\x65\x74\x83\x92\xa1" 6798 + "\xb0\xbf\xce\xdd\xec\xfb\x0a\x19" 6799 + "\x28\x37\x46\x55\x64\x73\x82\x91" 6800 + "\xa0\xaf\xbe\xcd\xdc\xeb\xfa\x09" 6801 + "\x18\x27\x36\x45\x54\x63\x72\x81" 6802 + "\x90\x9f\xae\xbd\xcc\xdb\xea\xf9" 6803 + "\x08\x17\x26\x35\x44\x53\x62\x71" 6804 + "\x80\x8f\x9e\xad\xbc\xcb\xda\xe9" 6805 + "\xf8\x07\x16\x25\x34\x43\x52\x61" 6806 + "\x70\x7f\x8e\x9d\xac\xbb\xca\xd9" 6807 + "\xe8\xf7\x06\x15\x24\x33\x42\x51" 6808 + "\x60\x6f\x7e\x8d\x9c\xab\xba\xc9" 6809 + "\xd8\xe7\xf6\x05\x14\x23\x32\x41" 6810 + "\x50\x5f\x6e\x7d\x8c\x9b\xaa\xb9" 6811 + "\xc8\xd7\xe6\xf5\x04\x13\x22\x31" 6812 + "\x40\x4f\x5e\x6d\x7c\x8b\x9a\xa9" 6813 + "\xb8\xc7\xd6\xe5\xf4\x03\x12\x21" 6814 + "\x30\x3f\x4e\x5d\x6c\x7b\x8a\x99" 6815 + "\xa8\xb7\xc6\xd5\xe4\xf3\x02\x11" 6816 + "\x20\x2f\x3e\x4d\x5c\x6b\x7a\x89" 6817 + "\x98\xa7\xb6\xc5\xd4\xe3\xf2\x01" 6818 + "\x10\x1f\x2e\x3d\x4c\x5b\x6a\x79" 6819 + "\x88\x97\xa6\xb5\xc4\xd3\xe2\xf1" 6820 + "\x00\x11\x22\x33\x44\x55\x66\x77" 6821 + "\x88\x99\xaa\xbb\xcc\xdd\xee\xff" 6822 + "\x10\x21\x32\x43\x54\x65\x76\x87" 6823 + "\x98\xa9\xba\xcb\xdc\xed\xfe\x0f" 6824 + "\x20\x31\x42\x53\x64\x75\x86\x97" 6825 + "\xa8\xb9\xca\xdb\xec\xfd\x0e\x1f" 6826 + "\x30\x41\x52\x63\x74\x85\x96\xa7" 6827 + "\xb8\xc9\xda\xeb\xfc\x0d\x1e\x2f" 6828 + "\x40\x51\x62\x73\x84\x95\xa6\xb7" 6829 + "\xc8\xd9\xea\xfb\x0c\x1d\x2e\x3f" 6830 + "\x50\x61\x72\x83\x94\xa5\xb6\xc7" 6831 + "\xd8\xe9\xfa\x0b\x1c\x2d\x3e\x4f" 6832 + "\x60\x71\x82\x93\xa4\xb5\xc6\xd7" 6833 + "\xe8\xf9\x0a\x1b\x2c\x3d\x4e\x5f" 6834 + "\x70\x81\x92\xa3\xb4\xc5\xd6\xe7" 6835 + "\xf8\x09\x1a\x2b\x3c\x4d\x5e\x6f" 6836 + "\x80\x91\xa2\xb3\xc4\xd5\xe6\xf7" 6837 + "\x08\x19\x2a\x3b\x4c\x5d\x6e\x7f" 6838 + "\x90\xa1\xb2\xc3\xd4\xe5\xf6\x07" 6839 + "\x18\x29\x3a\x4b\x5c\x6d\x7e\x8f" 6840 + "\xa0\xb1\xc2\xd3\xe4\xf5\x06\x17" 6841 + "\x28\x39\x4a\x5b\x6c\x7d\x8e\x9f" 6842 + "\xb0\xc1\xd2\xe3\xf4\x05\x16\x27" 6843 + "\x38\x49\x5a\x6b\x7c\x8d\x9e\xaf" 6844 + "\xc0\xd1\xe2\xf3\x04\x15\x26\x37" 6845 + "\x48\x59\x6a\x7b\x8c\x9d\xae\xbf" 6846 + "\xd0\xe1\xf2\x03\x14\x25\x36\x47" 6847 + "\x58\x69\x7a\x8b\x9c\xad\xbe\xcf" 6848 + "\xe0\xf1\x02\x13\x24\x35\x46\x57" 6849 + "\x68\x79\x8a\x9b\xac\xbd\xce\xdf" 6850 + "\xf0\x01\x12\x23\x34\x45\x56\x67" 6851 + "\x78\x89\x9a\xab\xbc\xcd\xde\xef" 6852 + "\x00\x13\x26\x39\x4c\x5f\x72\x85" 6853 + "\x98\xab\xbe\xd1\xe4\xf7\x0a\x1d" 6854 + "\x30\x43\x56\x69\x7c\x8f\xa2\xb5" 6855 + "\xc8\xdb\xee\x01\x14\x27\x3a\x4d" 6856 + "\x60\x73\x86\x99\xac\xbf\xd2\xe5" 6857 + "\xf8\x0b\x1e\x31\x44\x57\x6a\x7d" 6858 + "\x90\xa3\xb6\xc9\xdc\xef\x02\x15" 6859 + "\x28\x3b\x4e\x61\x74\x87\x9a\xad" 6860 + "\xc0\xd3\xe6\xf9\x0c\x1f\x32\x45" 6861 + "\x58\x6b\x7e\x91\xa4\xb7\xca\xdd" 6862 + "\xf0\x03\x16\x29\x3c\x4f\x62\x75" 6863 + "\x88\x9b\xae\xc1\xd4\xe7\xfa\x0d" 6864 + "\x20\x33\x46\x59\x6c\x7f\x92\xa5" 6865 + "\xb8\xcb\xde\xf1\x04\x17\x2a\x3d" 6866 + "\x50\x63\x76\x89\x9c\xaf\xc2\xd5" 6867 + "\xe8\xfb\x0e\x21\x34\x47\x5a\x6d" 6868 + "\x80\x93\xa6\xb9\xcc\xdf\xf2\x05" 6869 + "\x18\x2b\x3e\x51\x64\x77\x8a\x9d" 6870 + "\xb0\xc3\xd6\xe9\xfc\x0f\x22\x35" 6871 + "\x48\x5b\x6e\x81\x94\xa7\xba\xcd" 6872 + "\xe0\xf3\x06\x19\x2c\x3f\x52\x65" 6873 + "\x78\x8b\x9e\xb1\xc4\xd7\xea\xfd" 6874 + "\x10\x23\x36\x49\x5c\x6f\x82\x95" 6875 + "\xa8\xbb\xce\xe1\xf4\x07\x1a\x2d" 6876 + "\x40\x53\x66\x79\x8c\x9f\xb2\xc5" 6877 + "\xd8\xeb\xfe\x11\x24\x37\x4a\x5d" 6878 + "\x70\x83\x96\xa9\xbc\xcf\xe2\xf5" 6879 + "\x08\x1b\x2e\x41\x54\x67\x7a\x8d" 6880 + "\xa0\xb3\xc6\xd9\xec\xff\x12\x25" 6881 + "\x38\x4b\x5e\x71\x84\x97\xaa\xbd" 6882 + "\xd0\xe3\xf6\x09\x1c\x2f\x42\x55" 6883 + "\x68\x7b\x8e\xa1\xb4\xc7\xda\xed" 6884 + "\x00\x15\x2a\x3f\x54\x69\x7e\x93" 6885 + "\xa8\xbd\xd2\xe7\xfc\x11\x26\x3b" 6886 + "\x50\x65\x7a\x8f\xa4\xb9\xce\xe3" 6887 + "\xf8\x0d\x22\x37\x4c\x61\x76\x8b" 6888 + "\xa0\xb5\xca\xdf\xf4\x09\x1e\x33" 6889 + "\x48\x5d\x72\x87\x9c\xb1\xc6\xdb" 6890 + "\xf0\x05\x1a\x2f\x44\x59\x6e\x83" 6891 + "\x98\xad\xc2\xd7\xec\x01\x16\x2b" 6892 + "\x40\x55\x6a\x7f\x94\xa9\xbe\xd3" 6893 + "\xe8\xfd\x12\x27\x3c\x51\x66\x7b" 6894 + "\x90\xa5\xba\xcf\xe4\xf9\x0e\x23" 6895 + "\x38\x4d\x62\x77\x8c\xa1\xb6\xcb" 6896 + "\xe0\xf5\x0a\x1f\x34\x49\x5e\x73" 6897 + "\x88\x9d\xb2\xc7\xdc\xf1\x06\x1b" 6898 + "\x30\x45\x5a\x6f\x84\x99\xae\xc3" 6899 + "\xd8\xed\x02\x17\x2c\x41\x56\x6b" 6900 + "\x80\x95\xaa\xbf\xd4\xe9\xfe\x13" 6901 + "\x28\x3d\x52\x67\x7c\x91\xa6\xbb" 6902 + "\xd0\xe5\xfa\x0f\x24\x39\x4e\x63" 6903 + "\x78\x8d\xa2\xb7\xcc\xe1\xf6\x0b" 6904 + "\x20\x35\x4a\x5f\x74\x89\x9e\xb3" 6905 + "\xc8\xdd\xf2\x07\x1c\x31\x46\x5b" 6906 + "\x70\x85\x9a\xaf\xc4\xd9\xee\x03" 6907 + "\x18\x2d\x42\x57\x6c\x81\x96\xab" 6908 + "\xc0\xd5\xea\xff\x14\x29\x3e\x53" 6909 + "\x68\x7d\x92\xa7\xbc\xd1\xe6\xfb" 6910 + "\x10\x25\x3a\x4f\x64\x79\x8e\xa3" 6911 + "\xb8\xcd\xe2\xf7\x0c\x21\x36\x4b" 6912 + "\x60\x75\x8a\x9f\xb4\xc9\xde\xf3" 6913 + "\x08\x1d\x32\x47\x5c\x71\x86\x9b" 6914 + "\xb0\xc5\xda\xef\x04\x19\x2e\x43" 6915 + "\x58\x6d\x82\x97\xac\xc1\xd6\xeb" 6916 + "\x00\x17\x2e\x45\x5c\x73\x8a\xa1" 6917 + "\xb8\xcf\xe6\xfd\x14\x2b\x42\x59" 6918 + "\x70\x87\x9e\xb5\xcc\xe3\xfa\x11" 6919 + "\x28\x3f\x56\x6d\x84\x9b\xb2\xc9" 6920 + "\xe0\xf7\x0e\x25\x3c\x53\x6a\x81" 6921 + "\x98\xaf\xc6\xdd\xf4\x0b\x22\x39" 6922 + "\x50\x67\x7e\x95\xac\xc3\xda\xf1" 6923 + "\x08\x1f\x36\x4d\x64\x7b\x92\xa9" 6924 + "\xc0\xd7\xee\x05\x1c\x33\x4a\x61" 6925 + "\x78\x8f\xa6\xbd\xd4\xeb\x02\x19" 6926 + "\x30\x47\x5e\x75\x8c\xa3\xba\xd1" 6927 + "\xe8\xff\x16\x2d\x44\x5b\x72\x89" 6928 + "\xa0\xb7\xce\xe5\xfc\x13\x2a\x41" 6929 + "\x58\x6f\x86\x9d\xb4\xcb\xe2\xf9" 6930 + "\x10\x27\x3e\x55\x6c\x83\x9a\xb1" 6931 + "\xc8\xdf\xf6\x0d\x24\x3b\x52\x69" 6932 + "\x80\x97\xae\xc5\xdc\xf3\x0a\x21" 6933 + "\x38\x4f\x66\x7d\x94\xab\xc2\xd9" 6934 + "\xf0\x07\x1e\x35\x4c\x63\x7a\x91" 6935 + "\xa8\xbf\xd6\xed\x04\x1b\x32\x49" 6936 + "\x60\x77\x8e\xa5\xbc\xd3\xea\x01" 6937 + "\x18\x2f\x46\x5d\x74\x8b\xa2\xb9" 6938 + "\xd0\xe7\xfe\x15\x2c\x43\x5a\x71" 6939 + "\x88\x9f\xb6\xcd\xe4\xfb\x12\x29" 6940 + "\x40\x57\x6e\x85\x9c\xb3\xca\xe1" 6941 + "\xf8\x0f\x26\x3d\x54\x6b\x82\x99" 6942 + "\xb0\xc7\xde\xf5\x0c\x23\x3a\x51" 6943 + "\x68\x7f\x96\xad\xc4\xdb\xf2\x09" 6944 + "\x20\x37\x4e\x65\x7c\x93\xaa\xc1" 6945 + "\xd8\xef\x06\x1d\x34\x4b\x62\x79" 6946 + "\x90\xa7\xbe\xd5\xec\x03\x1a\x31" 6947 + "\x48\x5f\x76\x8d\xa4\xbb\xd2\xe9" 6948 + "\x00\x19\x32\x4b\x64\x7d\x96\xaf" 6949 + "\xc8\xe1\xfa\x13\x2c\x45\x5e\x77" 6950 + "\x90\xa9\xc2\xdb\xf4\x0d\x26\x3f" 6951 + "\x58\x71\x8a\xa3\xbc\xd5\xee\x07" 6952 + "\x20\x39\x52\x6b\x84\x9d\xb6\xcf" 6953 + "\xe8\x01\x1a\x33\x4c\x65\x7e\x97" 6954 + "\xb0\xc9\xe2\xfb\x14\x2d\x46\x5f" 6955 + "\x78\x91\xaa\xc3\xdc\xf5\x0e\x27" 6956 + "\x40\x59\x72\x8b\xa4\xbd\xd6\xef" 6957 + "\x08\x21\x3a\x53\x6c\x85\x9e\xb7" 6958 + "\xd0\xe9\x02\x1b\x34\x4d\x66\x7f" 6959 + "\x98\xb1\xca\xe3\xfc\x15\x2e\x47" 6960 + "\x60\x79\x92\xab\xc4\xdd\xf6\x0f" 6961 + "\x28\x41\x5a\x73\x8c\xa5\xbe\xd7" 6962 + "\xf0\x09\x22\x3b\x54\x6d\x86\x9f" 6963 + "\xb8\xd1\xea\x03\x1c\x35\x4e\x67" 6964 + "\x80\x99\xb2\xcb\xe4\xfd\x16\x2f" 6965 + "\x48\x61\x7a\x93\xac\xc5\xde\xf7" 6966 + "\x10\x29\x42\x5b\x74\x8d\xa6\xbf" 6967 + "\xd8\xf1\x0a\x23\x3c\x55\x6e\x87" 6968 + "\xa0\xb9\xd2\xeb\x04\x1d\x36\x4f" 6969 + "\x68\x81\x9a\xb3\xcc\xe5\xfe\x17" 6970 + "\x30\x49\x62\x7b\x94\xad\xc6\xdf" 6971 + "\xf8\x11\x2a\x43\x5c\x75\x8e\xa7" 6972 + "\xc0\xd9\xf2\x0b\x24\x3d\x56\x6f" 6973 + "\x88\xa1\xba\xd3\xec\x05\x1e\x37" 6974 + "\x50\x69\x82\x9b\xb4\xcd\xe6\xff" 6975 + "\x18\x31\x4a\x63\x7c\x95\xae\xc7" 6976 + "\xe0\xf9\x12\x2b\x44\x5d\x76\x8f" 6977 + "\xa8\xc1\xda\xf3\x0c\x25\x3e\x57" 6978 + "\x70\x89\xa2\xbb\xd4\xed\x06\x1f" 6979 + "\x38\x51\x6a\x83\x9c\xb5\xce\xe7" 6980 + "\x00\x1b\x36\x51\x6c\x87\xa2\xbd" 6981 + "\xd8\xf3\x0e\x29\x44\x5f\x7a\x95" 6982 + "\xb0\xcb\xe6\x01\x1c\x37\x52\x6d" 6983 + "\x88\xa3\xbe\xd9\xf4\x0f\x2a\x45" 6984 + "\x60\x7b\x96\xb1\xcc\xe7\x02\x1d" 6985 + "\x38\x53\x6e\x89\xa4\xbf\xda\xf5" 6986 + "\x10\x2b\x46\x61\x7c\x97\xb2\xcd" 6987 + "\xe8\x03\x1e\x39\x54\x6f\x8a\xa5" 6988 + "\xc0\xdb\xf6\x11\x2c\x47\x62\x7d" 6989 + "\x98\xb3\xce\xe9\x04\x1f\x3a\x55" 6990 + "\x70\x8b\xa6\xc1\xdc\xf7\x12\x2d" 6991 + "\x48\x63\x7e\x99\xb4\xcf\xea\x05" 6992 + "\x20\x3b\x56\x71\x8c\xa7\xc2\xdd" 6993 + "\xf8\x13\x2e\x49\x64\x7f\x9a\xb5" 6994 + "\xd0\xeb\x06\x21\x3c\x57\x72\x8d" 6995 + "\xa8\xc3\xde\xf9\x14\x2f\x4a\x65" 6996 + "\x80\x9b\xb6\xd1\xec\x07\x22\x3d" 6997 + "\x58\x73\x8e\xa9\xc4\xdf\xfa\x15" 6998 + "\x30\x4b\x66\x81\x9c\xb7\xd2\xed" 6999 + "\x08\x23\x3e\x59\x74\x8f\xaa\xc5" 7000 + "\xe0\xfb\x16\x31\x4c\x67\x82\x9d" 7001 + "\xb8\xd3\xee\x09\x24\x3f\x5a\x75" 7002 + "\x90\xab\xc6\xe1\xfc\x17\x32\x4d" 7003 + "\x68\x83\x9e\xb9\xd4\xef\x0a\x25" 7004 + "\x40\x5b\x76\x91\xac\xc7\xe2\xfd" 7005 + "\x18\x33\x4e\x69\x84\x9f\xba\xd5" 7006 + "\xf0\x0b\x26\x41\x5c\x77\x92\xad" 7007 + "\xc8\xe3\xfe\x19\x34\x4f\x6a\x85" 7008 + "\xa0\xbb\xd6\xf1\x0c\x27\x42\x5d" 7009 + "\x78\x93\xae\xc9\xe4\xff\x1a\x35" 7010 + "\x50\x6b\x86\xa1\xbc\xd7\xf2\x0d" 7011 + "\x28\x43\x5e\x79\x94\xaf\xca\xe5" 7012 + "\x00\x1d\x3a\x57\x74\x91\xae\xcb" 7013 + "\xe8\x05\x22\x3f\x5c\x79\x96\xb3" 7014 + "\xd0\xed\x0a\x27\x44\x61\x7e\x9b" 7015 + "\xb8\xd5\xf2\x0f\x2c\x49\x66\x83" 7016 + "\xa0\xbd\xda\xf7\x14\x31\x4e\x6b" 7017 + "\x88\xa5\xc2\xdf\xfc\x19\x36\x53" 7018 + "\x70\x8d\xaa\xc7\xe4\x01\x1e\x3b" 7019 + "\x58\x75\x92\xaf\xcc\xe9\x06\x23" 7020 + "\x40\x5d\x7a\x97\xb4\xd1\xee\x0b" 7021 + "\x28\x45\x62\x7f\x9c\xb9\xd6\xf3" 7022 + "\x10\x2d\x4a\x67\x84\xa1\xbe\xdb" 7023 + "\xf8\x15\x32\x4f\x6c\x89\xa6\xc3" 7024 + "\xe0\xfd\x1a\x37\x54\x71\x8e\xab" 7025 + "\xc8\xe5\x02\x1f\x3c\x59\x76\x93" 7026 + "\xb0\xcd\xea\x07\x24\x41\x5e\x7b" 7027 + "\x98\xb5\xd2\xef\x0c\x29\x46\x63" 7028 + "\x80\x9d\xba\xd7\xf4\x11\x2e\x4b" 7029 + "\x68\x85\xa2\xbf\xdc\xf9\x16\x33" 7030 + "\x50\x6d\x8a\xa7\xc4\xe1\xfe\x1b" 7031 + "\x38\x55\x72\x8f\xac\xc9\xe6\x03" 7032 + "\x20\x3d\x5a\x77\x94\xb1\xce\xeb" 7033 + "\x08\x25\x42\x5f\x7c\x99\xb6\xd3" 7034 + "\xf0\x0d\x2a\x47\x64\x81\x9e\xbb" 7035 + "\xd8\xf5\x12\x2f\x4c\x69\x86\xa3" 7036 + "\xc0\xdd\xfa\x17\x34\x51\x6e\x8b" 7037 + "\xa8\xc5\xe2\xff\x1c\x39\x56\x73" 7038 + "\x90\xad\xca\xe7\x04\x21\x3e\x5b" 7039 + "\x78\x95\xb2\xcf\xec\x09\x26\x43" 7040 + "\x60\x7d\x9a\xb7\xd4\xf1\x0e\x2b" 7041 + "\x48\x65\x82\x9f\xbc\xd9\xf6\x13" 7042 + "\x30\x4d\x6a\x87\xa4\xc1\xde\xfb" 7043 + "\x18\x35\x52\x6f\x8c\xa9\xc6\xe3" 7044 + "\x00\x1f\x3e\x5d\x7c\x9b\xba\xd9" 7045 + "\xf8\x17\x36\x55\x74\x93\xb2\xd1" 7046 + "\xf0\x0f\x2e\x4d\x6c\x8b\xaa\xc9" 7047 + "\xe8\x07\x26\x45\x64\x83\xa2\xc1" 7048 + "\xe0\xff\x1e\x3d\x5c\x7b\x9a\xb9" 7049 + "\xd8\xf7\x16\x35\x54\x73\x92\xb1" 7050 + "\xd0\xef\x0e\x2d\x4c\x6b\x8a\xa9" 7051 + "\xc8\xe7\x06\x25\x44\x63\x82\xa1" 7052 + "\xc0\xdf\xfe\x1d\x3c\x5b\x7a\x99" 7053 + "\xb8\xd7\xf6\x15\x34\x53\x72\x91" 7054 + "\xb0\xcf\xee\x0d\x2c\x4b\x6a\x89" 7055 + "\xa8\xc7\xe6\x05\x24\x43\x62\x81" 7056 + "\xa0\xbf\xde\xfd\x1c\x3b\x5a\x79" 7057 + "\x98\xb7\xd6\xf5\x14\x33\x52\x71" 7058 + "\x90\xaf\xce\xed\x0c\x2b\x4a\x69" 7059 + "\x88\xa7\xc6\xe5\x04\x23\x42\x61" 7060 + "\x80\x9f\xbe\xdd\xfc\x1b\x3a\x59" 7061 + "\x78\x97\xb6\xd5\xf4\x13\x32\x51" 7062 + "\x70\x8f\xae\xcd\xec\x0b\x2a\x49" 7063 + "\x68\x87\xa6\xc5\xe4\x03\x22\x41" 7064 + "\x60\x7f\x9e\xbd\xdc\xfb\x1a\x39" 7065 + "\x58\x77\x96\xb5\xd4\xf3\x12\x31" 7066 + "\x50\x6f\x8e\xad\xcc\xeb\x0a\x29" 7067 + "\x48\x67\x86\xa5\xc4\xe3\x02\x21" 7068 + "\x40\x5f\x7e\x9d\xbc\xdb\xfa\x19" 7069 + "\x38\x57\x76\x95\xb4\xd3\xf2\x11" 7070 + "\x30\x4f\x6e\x8d\xac\xcb\xea\x09" 7071 + "\x28\x47\x66\x85\xa4\xc3\xe2\x01" 7072 + "\x20\x3f\x5e\x7d\x9c\xbb\xda\xf9" 7073 + "\x18\x37\x56\x75\x94\xb3\xd2\xf1" 7074 + "\x10\x2f\x4e\x6d\x8c\xab\xca\xe9" 7075 + "\x08\x27\x46\x65\x84\xa3\xc2\xe1" 7076 + "\x00\x21\x42\x63", 7142 7077 .ilen = 4100, 7143 - .result = { 7144 - 0xb5, 0x81, 0xf5, 0x64, 0x18, 0x73, 0xe3, 0xf0, 7145 - 0x4c, 0x13, 0xf2, 0x77, 0x18, 0x60, 0x65, 0x5e, 7146 - 0x29, 0x01, 0xce, 0x98, 0x55, 0x53, 0xf9, 0x0c, 7147 - 0x2a, 0x08, 0xd5, 0x09, 0xb3, 0x57, 0x55, 0x56, 7148 - 0xc5, 0xe9, 0x56, 0x90, 0xcb, 0x6a, 0xa3, 0xc0, 7149 - 0xff, 0xc4, 0x79, 0xb4, 0xd2, 0x97, 0x5d, 0xc4, 7150 - 0x43, 0xd1, 0xfe, 0x94, 0x7b, 0x88, 0x06, 0x5a, 7151 - 0xb2, 0x9e, 0x2c, 0xfc, 0x44, 0x03, 0xb7, 0x90, 7152 - 0xa0, 0xc1, 0xba, 0x6a, 0x33, 0xb8, 0xc7, 0xb2, 7153 - 0x9d, 0xe1, 0x12, 0x4f, 0xc0, 0x64, 0xd4, 0x01, 7154 - 0xfe, 0x8c, 0x7a, 0x66, 0xf7, 0xe6, 0x5a, 0x91, 7155 - 0xbb, 0xde, 0x56, 0x86, 0xab, 0x65, 0x21, 0x30, 7156 - 0x00, 0x84, 0x65, 0x24, 0xa5, 0x7d, 0x85, 0xb4, 7157 - 0xe3, 0x17, 0xed, 0x3a, 0xb7, 0x6f, 0xb4, 0x0b, 7158 - 0x0b, 0xaf, 0x15, 0xae, 0x5a, 0x8f, 0xf2, 0x0c, 7159 - 0x2f, 0x27, 0xf4, 0x09, 0xd8, 0xd2, 0x96, 0xb7, 7160 - 0x71, 0xf2, 0xc5, 0x99, 0x4d, 0x7e, 0x7f, 0x75, 7161 - 0x77, 0x89, 0x30, 0x8b, 0x59, 0xdb, 0xa2, 0xb2, 7162 - 0xa0, 0xf3, 0x19, 0x39, 0x2b, 0xc5, 0x7e, 0x3f, 7163 - 0x4f, 0xd9, 0xd3, 0x56, 0x28, 0x97, 0x44, 0xdc, 7164 - 0xc0, 0x8b, 0x77, 0x24, 0xd9, 0x52, 0xe7, 0xc5, 7165 - 0xaf, 0xf6, 0x7d, 0x59, 0xb2, 0x44, 0x05, 0x1d, 7166 - 0xb1, 0xb0, 0x11, 0xa5, 0x0f, 0xec, 0x33, 0xe1, 7167 - 0x6d, 0x1b, 0x4e, 0x1f, 0xff, 0x57, 0x91, 0xb4, 7168 - 0x5b, 0x9a, 0x96, 0xc5, 0x53, 0xbc, 0xae, 0x20, 7169 - 0x3c, 0xbb, 0x14, 0xe2, 0xe8, 0x22, 0x33, 0xc1, 7170 - 0x5e, 0x76, 0x9e, 0x46, 0x99, 0xf6, 0x2a, 0x15, 7171 - 0xc6, 0x97, 0x02, 0xa0, 0x66, 0x43, 0xd1, 0xa6, 7172 - 0x31, 0xa6, 0x9f, 0xfb, 0xf4, 0xd3, 0x69, 0xe5, 7173 - 0xcd, 0x76, 0x95, 0xb8, 0x7a, 0x82, 0x7f, 0x21, 7174 - 0x45, 0xff, 0x3f, 0xce, 0x55, 0xf6, 0x95, 0x10, 7175 - 0x08, 0x77, 0x10, 0x43, 0xc6, 0xf3, 0x09, 0xe5, 7176 - 0x68, 0xe7, 0x3c, 0xad, 0x00, 0x52, 0x45, 0x0d, 7177 - 0xfe, 0x2d, 0xc6, 0xc2, 0x94, 0x8c, 0x12, 0x1d, 7178 - 0xe6, 0x25, 0xae, 0x98, 0x12, 0x8e, 0x19, 0x9c, 7179 - 0x81, 0x68, 0xb1, 0x11, 0xf6, 0x69, 0xda, 0xe3, 7180 - 0x62, 0x08, 0x18, 0x7a, 0x25, 0x49, 0x28, 0xac, 7181 - 0xba, 0x71, 0x12, 0x0b, 0xe4, 0xa2, 0xe5, 0xc7, 7182 - 0x5d, 0x8e, 0xec, 0x49, 0x40, 0x21, 0xbf, 0x5a, 7183 - 0x98, 0xf3, 0x02, 0x68, 0x55, 0x03, 0x7f, 0x8a, 7184 - 0xe5, 0x94, 0x0c, 0x32, 0x5c, 0x07, 0x82, 0x63, 7185 - 0xaf, 0x6f, 0x91, 0x40, 0x84, 0x8e, 0x52, 0x25, 7186 - 0xd0, 0xb0, 0x29, 0x53, 0x05, 0xe2, 0x50, 0x7a, 7187 - 0x34, 0xeb, 0xc9, 0x46, 0x20, 0xa8, 0x3d, 0xde, 7188 - 0x7f, 0x16, 0x5f, 0x36, 0xc5, 0x2e, 0xdc, 0xd1, 7189 - 0x15, 0x47, 0xc7, 0x50, 0x40, 0x6d, 0x91, 0xc5, 7190 - 0xe7, 0x93, 0x95, 0x1a, 0xd3, 0x57, 0xbc, 0x52, 7191 - 0x33, 0xee, 0x14, 0x19, 0x22, 0x52, 0x89, 0xa7, 7192 - 0x4a, 0x25, 0x56, 0x77, 0x4b, 0xca, 0xcf, 0x0a, 7193 - 0xe1, 0xf5, 0x35, 0x85, 0x30, 0x7e, 0x59, 0x4a, 7194 - 0xbd, 0x14, 0x5b, 0xdf, 0xe3, 0x46, 0xcb, 0xac, 7195 - 0x1f, 0x6c, 0x96, 0x0e, 0xf4, 0x81, 0xd1, 0x99, 7196 - 0xca, 0x88, 0x63, 0x3d, 0x02, 0x58, 0x6b, 0xa9, 7197 - 0xe5, 0x9f, 0xb3, 0x00, 0xb2, 0x54, 0xc6, 0x74, 7198 - 0x1c, 0xbf, 0x46, 0xab, 0x97, 0xcc, 0xf8, 0x54, 7199 - 0x04, 0x07, 0x08, 0x52, 0xe6, 0xc0, 0xda, 0x93, 7200 - 0x74, 0x7d, 0x93, 0x99, 0x5d, 0x78, 0x68, 0xa6, 7201 - 0x2e, 0x6b, 0xd3, 0x6a, 0x69, 0xcc, 0x12, 0x6b, 7202 - 0xd4, 0xc7, 0xa5, 0xc6, 0xe7, 0xf6, 0x03, 0x04, 7203 - 0x5d, 0xcd, 0x61, 0x5e, 0x17, 0x40, 0xdc, 0xd1, 7204 - 0x5c, 0xf5, 0x08, 0xdf, 0x5c, 0x90, 0x85, 0xa4, 7205 - 0xaf, 0xf6, 0x78, 0xbb, 0x0d, 0xf1, 0xf4, 0xa4, 7206 - 0x54, 0x26, 0x72, 0x9e, 0x61, 0xfa, 0x86, 0xcf, 7207 - 0xe8, 0x9e, 0xa1, 0xe0, 0xc7, 0x48, 0x23, 0xae, 7208 - 0x5a, 0x90, 0xae, 0x75, 0x0a, 0x74, 0x18, 0x89, 7209 - 0x05, 0xb1, 0x92, 0xb2, 0x7f, 0xd0, 0x1b, 0xa6, 7210 - 0x62, 0x07, 0x25, 0x01, 0xc7, 0xc2, 0x4f, 0xf9, 7211 - 0xe8, 0xfe, 0x63, 0x95, 0x80, 0x07, 0xb4, 0x26, 7212 - 0xcc, 0xd1, 0x26, 0xb6, 0xc4, 0x3f, 0x9e, 0xcb, 7213 - 0x8e, 0x3b, 0x2e, 0x44, 0x16, 0xd3, 0x10, 0x9a, 7214 - 0x95, 0x08, 0xeb, 0xc8, 0xcb, 0xeb, 0xbf, 0x6f, 7215 - 0x0b, 0xcd, 0x1f, 0xc8, 0xca, 0x86, 0xaa, 0xec, 7216 - 0x33, 0xe6, 0x69, 0xf4, 0x45, 0x25, 0x86, 0x3a, 7217 - 0x22, 0x94, 0x4f, 0x00, 0x23, 0x6a, 0x44, 0xc2, 7218 - 0x49, 0x97, 0x33, 0xab, 0x36, 0x14, 0x0a, 0x70, 7219 - 0x24, 0xc3, 0xbe, 0x04, 0x3b, 0x79, 0xa0, 0xf9, 7220 - 0xb8, 0xe7, 0x76, 0x29, 0x22, 0x83, 0xd7, 0xf2, 7221 - 0x94, 0xf4, 0x41, 0x49, 0xba, 0x5f, 0x7b, 0x07, 7222 - 0xb5, 0xfb, 0xdb, 0x03, 0x1a, 0x9f, 0xb6, 0x4c, 7223 - 0xc2, 0x2e, 0x37, 0x40, 0x49, 0xc3, 0x38, 0x16, 7224 - 0xe2, 0x4f, 0x77, 0x82, 0xb0, 0x68, 0x4c, 0x71, 7225 - 0x1d, 0x57, 0x61, 0x9c, 0xd9, 0x4e, 0x54, 0x99, 7226 - 0x47, 0x13, 0x28, 0x73, 0x3c, 0xbb, 0x00, 0x90, 7227 - 0xf3, 0x4d, 0xc9, 0x0e, 0xfd, 0xe7, 0xb1, 0x71, 7228 - 0xd3, 0x15, 0x79, 0xbf, 0xcc, 0x26, 0x2f, 0xbd, 7229 - 0xad, 0x6c, 0x50, 0x69, 0x6c, 0x3e, 0x6d, 0x80, 7230 - 0x9a, 0xea, 0x78, 0xaf, 0x19, 0xb2, 0x0d, 0x4d, 7231 - 0xad, 0x04, 0x07, 0xae, 0x22, 0x90, 0x4a, 0x93, 7232 - 0x32, 0x0e, 0x36, 0x9b, 0x1b, 0x46, 0xba, 0x3b, 7233 - 0xb4, 0xac, 0xc6, 0xd1, 0xa2, 0x31, 0x53, 0x3b, 7234 - 0x2a, 0x3d, 0x45, 0xfe, 0x03, 0x61, 0x10, 0x85, 7235 - 0x17, 0x69, 0xa6, 0x78, 0xcc, 0x6c, 0x87, 0x49, 7236 - 0x53, 0xf9, 0x80, 0x10, 0xde, 0x80, 0xa2, 0x41, 7237 - 0x6a, 0xc3, 0x32, 0x02, 0xad, 0x6d, 0x3c, 0x56, 7238 - 0x00, 0x71, 0x51, 0x06, 0xa7, 0xbd, 0xfb, 0xef, 7239 - 0x3c, 0xb5, 0x9f, 0xfc, 0x48, 0x7d, 0x53, 0x7c, 7240 - 0x66, 0xb0, 0x49, 0x23, 0xc4, 0x47, 0x10, 0x0e, 7241 - 0xe5, 0x6c, 0x74, 0x13, 0xe6, 0xc5, 0x3f, 0xaa, 7242 - 0xde, 0xff, 0x07, 0x44, 0xdd, 0x56, 0x1b, 0xad, 7243 - 0x09, 0x77, 0xfb, 0x5b, 0x12, 0xb8, 0x0d, 0x38, 7244 - 0x17, 0x37, 0x35, 0x7b, 0x9b, 0xbc, 0xfe, 0xd4, 7245 - 0x7e, 0x8b, 0xda, 0x7e, 0x5b, 0x04, 0xa7, 0x22, 7246 - 0xa7, 0x31, 0xa1, 0x20, 0x86, 0xc7, 0x1b, 0x99, 7247 - 0xdb, 0xd1, 0x89, 0xf4, 0x94, 0xa3, 0x53, 0x69, 7248 - 0x8d, 0xe7, 0xe8, 0x74, 0x11, 0x8d, 0x74, 0xd6, 7249 - 0x07, 0x37, 0x91, 0x9f, 0xfd, 0x67, 0x50, 0x3a, 7250 - 0xc9, 0xe1, 0xf4, 0x36, 0xd5, 0xa0, 0x47, 0xd1, 7251 - 0xf9, 0xe5, 0x39, 0xa3, 0x31, 0xac, 0x07, 0x36, 7252 - 0x23, 0xf8, 0x66, 0x18, 0x14, 0x28, 0x34, 0x0f, 7253 - 0xb8, 0xd0, 0xe7, 0x29, 0xb3, 0x04, 0x4b, 0x55, 7254 - 0x01, 0x41, 0xb2, 0x75, 0x8d, 0xcb, 0x96, 0x85, 7255 - 0x3a, 0xfb, 0xab, 0x2b, 0x9e, 0xfa, 0x58, 0x20, 7256 - 0x44, 0x1f, 0xc0, 0x14, 0x22, 0x75, 0x61, 0xe8, 7257 - 0xaa, 0x19, 0xcf, 0xf1, 0x82, 0x56, 0xf4, 0xd7, 7258 - 0x78, 0x7b, 0x3d, 0x5f, 0xb3, 0x9e, 0x0b, 0x8a, 7259 - 0x57, 0x50, 0xdb, 0x17, 0x41, 0x65, 0x4d, 0xa3, 7260 - 0x02, 0xc9, 0x9c, 0x9c, 0x53, 0xfb, 0x39, 0x39, 7261 - 0x9b, 0x1d, 0x72, 0x24, 0xda, 0xb7, 0x39, 0xbe, 7262 - 0x13, 0x3b, 0xfa, 0x29, 0xda, 0x9e, 0x54, 0x64, 7263 - 0x6e, 0xba, 0xd8, 0xa1, 0xcb, 0xb3, 0x36, 0xfa, 7264 - 0xcb, 0x47, 0x85, 0xe9, 0x61, 0x38, 0xbc, 0xbe, 7265 - 0xc5, 0x00, 0x38, 0x2a, 0x54, 0xf7, 0xc4, 0xb9, 7266 - 0xb3, 0xd3, 0x7b, 0xa0, 0xa0, 0xf8, 0x72, 0x7f, 7267 - 0x8c, 0x8e, 0x82, 0x0e, 0xc6, 0x1c, 0x75, 0x9d, 7268 - 0xca, 0x8e, 0x61, 0x87, 0xde, 0xad, 0x80, 0xd2, 7269 - 0xf5, 0xf9, 0x80, 0xef, 0x15, 0x75, 0xaf, 0xf5, 7270 - 0x80, 0xfb, 0xff, 0x6d, 0x1e, 0x25, 0xb7, 0x40, 7271 - 0x61, 0x6a, 0x39, 0x5a, 0x6a, 0xb5, 0x31, 0xab, 7272 - 0x97, 0x8a, 0x19, 0x89, 0x44, 0x40, 0xc0, 0xa6, 7273 - 0xb4, 0x4e, 0x30, 0x32, 0x7b, 0x13, 0xe7, 0x67, 7274 - 0xa9, 0x8b, 0x57, 0x04, 0xc2, 0x01, 0xa6, 0xf4, 7275 - 0x28, 0x99, 0xad, 0x2c, 0x76, 0xa3, 0x78, 0xc2, 7276 - 0x4a, 0xe6, 0xca, 0x5c, 0x50, 0x6a, 0xc1, 0xb0, 7277 - 0x62, 0x4b, 0x10, 0x8e, 0x7c, 0x17, 0x43, 0xb3, 7278 - 0x17, 0x66, 0x1c, 0x3e, 0x8d, 0x69, 0xf0, 0x5a, 7279 - 0x71, 0xf5, 0x97, 0xdc, 0xd1, 0x45, 0xdd, 0x28, 7280 - 0xf3, 0x5d, 0xdf, 0x53, 0x7b, 0x11, 0xe5, 0xbc, 7281 - 0x4c, 0xdb, 0x1b, 0x51, 0x6b, 0xe9, 0xfb, 0x3d, 7282 - 0xc1, 0xc3, 0x2c, 0xb9, 0x71, 0xf5, 0xb6, 0xb2, 7283 - 0x13, 0x36, 0x79, 0x80, 0x53, 0xe8, 0xd3, 0xa6, 7284 - 0x0a, 0xaf, 0xfd, 0x56, 0x97, 0xf7, 0x40, 0x8e, 7285 - 0x45, 0xce, 0xf8, 0xb0, 0x9e, 0x5c, 0x33, 0x82, 7286 - 0xb0, 0x44, 0x56, 0xfc, 0x05, 0x09, 0xe9, 0x2a, 7287 - 0xac, 0x26, 0x80, 0x14, 0x1d, 0xc8, 0x3a, 0x35, 7288 - 0x4c, 0x82, 0x97, 0xfd, 0x76, 0xb7, 0xa9, 0x0a, 7289 - 0x35, 0x58, 0x79, 0x8e, 0x0f, 0x66, 0xea, 0xaf, 7290 - 0x51, 0x6c, 0x09, 0xa9, 0x6e, 0x9b, 0xcb, 0x9a, 7291 - 0x31, 0x47, 0xa0, 0x2f, 0x7c, 0x71, 0xb4, 0x4a, 7292 - 0x11, 0xaa, 0x8c, 0x66, 0xc5, 0x64, 0xe6, 0x3a, 7293 - 0x54, 0xda, 0x24, 0x6a, 0xc4, 0x41, 0x65, 0x46, 7294 - 0x82, 0xa0, 0x0a, 0x0f, 0x5f, 0xfb, 0x25, 0xd0, 7295 - 0x2c, 0x91, 0xa7, 0xee, 0xc4, 0x81, 0x07, 0x86, 7296 - 0x75, 0x5e, 0x33, 0x69, 0x97, 0xe4, 0x2c, 0xa8, 7297 - 0x9d, 0x9f, 0x0b, 0x6a, 0xbe, 0xad, 0x98, 0xda, 7298 - 0x6d, 0x94, 0x41, 0xda, 0x2c, 0x1e, 0x89, 0xc4, 7299 - 0xc2, 0xaf, 0x1e, 0x00, 0x05, 0x0b, 0x83, 0x60, 7300 - 0xbd, 0x43, 0xea, 0x15, 0x23, 0x7f, 0xb9, 0xac, 7301 - 0xee, 0x4f, 0x2c, 0xaf, 0x2a, 0xf3, 0xdf, 0xd0, 7302 - 0xf3, 0x19, 0x31, 0xbb, 0x4a, 0x74, 0x84, 0x17, 7303 - 0x52, 0x32, 0x2c, 0x7d, 0x61, 0xe4, 0xcb, 0xeb, 7304 - 0x80, 0x38, 0x15, 0x52, 0xcb, 0x6f, 0xea, 0xe5, 7305 - 0x73, 0x9c, 0xd9, 0x24, 0x69, 0xc6, 0x95, 0x32, 7306 - 0x21, 0xc8, 0x11, 0xe4, 0xdc, 0x36, 0xd7, 0x93, 7307 - 0x38, 0x66, 0xfb, 0xb2, 0x7f, 0x3a, 0xb9, 0xaf, 7308 - 0x31, 0xdd, 0x93, 0x75, 0x78, 0x8a, 0x2c, 0x94, 7309 - 0x87, 0x1a, 0x58, 0xec, 0x9e, 0x7d, 0x4d, 0xba, 7310 - 0xe1, 0xe5, 0x4d, 0xfc, 0xbc, 0xa4, 0x2a, 0x14, 7311 - 0xef, 0xcc, 0xa7, 0xec, 0xab, 0x43, 0x09, 0x18, 7312 - 0xd3, 0xab, 0x68, 0xd1, 0x07, 0x99, 0x44, 0x47, 7313 - 0xd6, 0x83, 0x85, 0x3b, 0x30, 0xea, 0xa9, 0x6b, 7314 - 0x63, 0xea, 0xc4, 0x07, 0xfb, 0x43, 0x2f, 0xa4, 7315 - 0xaa, 0xb0, 0xab, 0x03, 0x89, 0xce, 0x3f, 0x8c, 7316 - 0x02, 0x7c, 0x86, 0x54, 0xbc, 0x88, 0xaf, 0x75, 7317 - 0xd2, 0xdc, 0x63, 0x17, 0xd3, 0x26, 0xf6, 0x96, 7318 - 0xa9, 0x3c, 0xf1, 0x61, 0x8c, 0x11, 0x18, 0xcc, 7319 - 0xd6, 0xea, 0x5b, 0xe2, 0xcd, 0xf0, 0xf1, 0xb2, 7320 - 0xe5, 0x35, 0x90, 0x1f, 0x85, 0x4c, 0x76, 0x5b, 7321 - 0x66, 0xce, 0x44, 0xa4, 0x32, 0x9f, 0xe6, 0x7b, 7322 - 0x71, 0x6e, 0x9f, 0x58, 0x15, 0x67, 0x72, 0x87, 7323 - 0x64, 0x8e, 0x3a, 0x44, 0x45, 0xd4, 0x76, 0xfa, 7324 - 0xc2, 0xf6, 0xef, 0x85, 0x05, 0x18, 0x7a, 0x9b, 7325 - 0xba, 0x41, 0x54, 0xac, 0xf0, 0xfc, 0x59, 0x12, 7326 - 0x3f, 0xdf, 0xa0, 0xe5, 0x8a, 0x65, 0xfd, 0x3a, 7327 - 0x62, 0x8d, 0x83, 0x2c, 0x03, 0xbe, 0x05, 0x76, 7328 - 0x2e, 0x53, 0x49, 0x97, 0x94, 0x33, 0xae, 0x40, 7329 - 0x81, 0x15, 0xdb, 0x6e, 0xad, 0xaa, 0xf5, 0x4b, 7330 - 0xe3, 0x98, 0x70, 0xdf, 0xe0, 0x7c, 0xcd, 0xdb, 7331 - 0x02, 0xd4, 0x7d, 0x2f, 0xc1, 0xe6, 0xb4, 0xf3, 7332 - 0xd7, 0x0d, 0x7a, 0xd9, 0x23, 0x9e, 0x87, 0x2d, 7333 - 0xce, 0x87, 0xad, 0xcc, 0x72, 0x05, 0x00, 0x29, 7334 - 0xdc, 0x73, 0x7f, 0x64, 0xc1, 0x15, 0x0e, 0xc2, 7335 - 0xdf, 0xa7, 0x5f, 0xeb, 0x41, 0xa1, 0xcd, 0xef, 7336 - 0x5c, 0x50, 0x79, 0x2a, 0x56, 0x56, 0x71, 0x8c, 7337 - 0xac, 0xc0, 0x79, 0x50, 0x69, 0xca, 0x59, 0x32, 7338 - 0x65, 0xf2, 0x54, 0xe4, 0x52, 0x38, 0x76, 0xd1, 7339 - 0x5e, 0xde, 0x26, 0x9e, 0xfb, 0x75, 0x2e, 0x11, 7340 - 0xb5, 0x10, 0xf4, 0x17, 0x73, 0xf5, 0x89, 0xc7, 7341 - 0x4f, 0x43, 0x5c, 0x8e, 0x7c, 0xb9, 0x05, 0x52, 7342 - 0x24, 0x40, 0x99, 0xfe, 0x9b, 0x85, 0x0b, 0x6c, 7343 - 0x22, 0x3e, 0x8b, 0xae, 0x86, 0xa1, 0xd2, 0x79, 7344 - 0x05, 0x68, 0x6b, 0xab, 0xe3, 0x41, 0x49, 0xed, 7345 - 0x15, 0xa1, 0x8d, 0x40, 0x2d, 0x61, 0xdf, 0x1a, 7346 - 0x59, 0xc9, 0x26, 0x8b, 0xef, 0x30, 0x4c, 0x88, 7347 - 0x4b, 0x10, 0xf8, 0x8d, 0xa6, 0x92, 0x9f, 0x4b, 7348 - 0xf3, 0xc4, 0x53, 0x0b, 0x89, 0x5d, 0x28, 0x92, 7349 - 0xcf, 0x78, 0xb2, 0xc0, 0x5d, 0xed, 0x7e, 0xfc, 7350 - 0xc0, 0x12, 0x23, 0x5f, 0x5a, 0x78, 0x86, 0x43, 7351 - 0x6e, 0x27, 0xf7, 0x5a, 0xa7, 0x6a, 0xed, 0x19, 7352 - 0x04, 0xf0, 0xb3, 0x12, 0xd1, 0xbd, 0x0e, 0x89, 7353 - 0x6e, 0xbc, 0x96, 0xa8, 0xd8, 0x49, 0x39, 0x9f, 7354 - 0x7e, 0x67, 0xf0, 0x2e, 0x3e, 0x01, 0xa9, 0xba, 7355 - 0xec, 0x8b, 0x62, 0x8e, 0xcb, 0x4a, 0x70, 0x43, 7356 - 0xc7, 0xc2, 0xc4, 0xca, 0x82, 0x03, 0x73, 0xe9, 7357 - 0x11, 0xdf, 0xcf, 0x54, 0xea, 0xc9, 0xb0, 0x95, 7358 - 0x51, 0xc0, 0x13, 0x3d, 0x92, 0x05, 0xfa, 0xf4, 7359 - 0xa9, 0x34, 0xc8, 0xce, 0x6c, 0x3d, 0x54, 0xcc, 7360 - 0xc4, 0xaf, 0xf1, 0xdc, 0x11, 0x44, 0x26, 0xa2, 7361 - 0xaf, 0xf1, 0x85, 0x75, 0x7d, 0x03, 0x61, 0x68, 7362 - 0x4e, 0x78, 0xc6, 0x92, 0x7d, 0x86, 0x7d, 0x77, 7363 - 0xdc, 0x71, 0x72, 0xdb, 0xc6, 0xae, 0xa1, 0xcb, 7364 - 0x70, 0x9a, 0x0b, 0x19, 0xbe, 0x4a, 0x6c, 0x2a, 7365 - 0xe2, 0xba, 0x6c, 0x64, 0x9a, 0x13, 0x28, 0xdf, 7366 - 0x85, 0x75, 0xe6, 0x43, 0xf6, 0x87, 0x08, 0x68, 7367 - 0x6e, 0xba, 0x6e, 0x79, 0x9f, 0x04, 0xbc, 0x23, 7368 - 0x50, 0xf6, 0x33, 0x5c, 0x1f, 0x24, 0x25, 0xbe, 7369 - 0x33, 0x47, 0x80, 0x45, 0x56, 0xa3, 0xa7, 0xd7, 7370 - 0x7a, 0xb1, 0x34, 0x0b, 0x90, 0x3c, 0x9c, 0xad, 7371 - 0x44, 0x5f, 0x9e, 0x0e, 0x9d, 0xd4, 0xbd, 0x93, 7372 - 0x5e, 0xfa, 0x3c, 0xe0, 0xb0, 0xd9, 0xed, 0xf3, 7373 - 0xd6, 0x2e, 0xff, 0x24, 0xd8, 0x71, 0x6c, 0xed, 7374 - 0xaf, 0x55, 0xeb, 0x22, 0xac, 0x93, 0x68, 0x32, 7375 - 0x05, 0x5b, 0x47, 0xdd, 0xc6, 0x4a, 0xcb, 0xc7, 7376 - 0x10, 0xe1, 0x3c, 0x92, 0x1a, 0xf3, 0x23, 0x78, 7377 - 0x2b, 0xa1, 0xd2, 0x80, 0xf4, 0x12, 0xb1, 0x20, 7378 - 0x8f, 0xff, 0x26, 0x35, 0xdd, 0xfb, 0xc7, 0x4e, 7379 - 0x78, 0xf1, 0x2d, 0x50, 0x12, 0x77, 0xa8, 0x60, 7380 - 0x7c, 0x0f, 0xf5, 0x16, 0x2f, 0x63, 0x70, 0x2a, 7381 - 0xc0, 0x96, 0x80, 0x4e, 0x0a, 0xb4, 0x93, 0x35, 7382 - 0x5d, 0x1d, 0x3f, 0x56, 0xf7, 0x2f, 0xbb, 0x90, 7383 - 0x11, 0x16, 0x8f, 0xa2, 0xec, 0x47, 0xbe, 0xac, 7384 - 0x56, 0x01, 0x26, 0x56, 0xb1, 0x8c, 0xb2, 0x10, 7385 - 0xf9, 0x1a, 0xca, 0xf5, 0xd1, 0xb7, 0x39, 0x20, 7386 - 0x63, 0xf1, 0x69, 0x20, 0x4f, 0x13, 0x12, 0x1f, 7387 - 0x5b, 0x65, 0xfc, 0x98, 0xf7, 0xc4, 0x7a, 0xbe, 7388 - 0xf7, 0x26, 0x4d, 0x2b, 0x84, 0x7b, 0x42, 0xad, 7389 - 0xd8, 0x7a, 0x0a, 0xb4, 0xd8, 0x74, 0xbf, 0xc1, 7390 - 0xf0, 0x6e, 0xb4, 0x29, 0xa3, 0xbb, 0xca, 0x46, 7391 - 0x67, 0x70, 0x6a, 0x2d, 0xce, 0x0e, 0xa2, 0x8a, 7392 - 0xa9, 0x87, 0xbf, 0x05, 0xc4, 0xc1, 0x04, 0xa3, 7393 - 0xab, 0xd4, 0x45, 0x43, 0x8c, 0xb6, 0x02, 0xb0, 7394 - 0x41, 0xc8, 0xfc, 0x44, 0x3d, 0x59, 0xaa, 0x2e, 7395 - 0x44, 0x21, 0x2a, 0x8d, 0x88, 0x9d, 0x57, 0xf4, 7396 - 0xa0, 0x02, 0x77, 0xb8, 0xa6, 0xa0, 0xe6, 0x75, 7397 - 0x5c, 0x82, 0x65, 0x3e, 0x03, 0x5c, 0x29, 0x8f, 7398 - 0x38, 0x55, 0xab, 0x33, 0x26, 0xef, 0x9f, 0x43, 7399 - 0x52, 0xfd, 0x68, 0xaf, 0x36, 0xb4, 0xbb, 0x9a, 7400 - 0x58, 0x09, 0x09, 0x1b, 0xc3, 0x65, 0x46, 0x46, 7401 - 0x1d, 0xa7, 0x94, 0x18, 0x23, 0x50, 0x2c, 0xca, 7402 - 0x2c, 0x55, 0x19, 0x97, 0x01, 0x9d, 0x93, 0x3b, 7403 - 0x63, 0x86, 0xf2, 0x03, 0x67, 0x45, 0xd2, 0x72, 7404 - 0x28, 0x52, 0x6c, 0xf4, 0xe3, 0x1c, 0xb5, 0x11, 7405 - 0x13, 0xf1, 0xeb, 0x21, 0xc7, 0xd9, 0x56, 0x82, 7406 - 0x2b, 0x82, 0x39, 0xbd, 0x69, 0x54, 0xed, 0x62, 7407 - 0xc3, 0xe2, 0xde, 0x73, 0xd4, 0x6a, 0x12, 0xae, 7408 - 0x13, 0x21, 0x7f, 0x4b, 0x5b, 0xfc, 0xbf, 0xe8, 7409 - 0x2b, 0xbe, 0x56, 0xba, 0x68, 0x8b, 0x9a, 0xb1, 7410 - 0x6e, 0xfa, 0xbf, 0x7e, 0x5a, 0x4b, 0xf1, 0xac, 7411 - 0x98, 0x65, 0x85, 0xd1, 0x93, 0x53, 0xd3, 0x7b, 7412 - 0x09, 0xdd, 0x4b, 0x10, 0x6d, 0x84, 0xb0, 0x13, 7413 - 0x65, 0xbd, 0xcf, 0x52, 0x09, 0xc4, 0x85, 0xe2, 7414 - 0x84, 0x74, 0x15, 0x65, 0xb7, 0xf7, 0x51, 0xaf, 7415 - 0x55, 0xad, 0xa4, 0xd1, 0x22, 0x54, 0x70, 0x94, 7416 - 0xa0, 0x1c, 0x90, 0x41, 0xfd, 0x99, 0xd7, 0x5a, 7417 - 0x31, 0xef, 0xaa, 0x25, 0xd0, 0x7f, 0x4f, 0xea, 7418 - 0x1d, 0x55, 0x42, 0xe5, 0x49, 0xb0, 0xd0, 0x46, 7419 - 0x62, 0x36, 0x43, 0xb2, 0x82, 0x15, 0x75, 0x50, 7420 - 0xa4, 0x72, 0xeb, 0x54, 0x27, 0x1f, 0x8a, 0xe4, 7421 - 0x7d, 0xe9, 0x66, 0xc5, 0xf1, 0x53, 0xa4, 0xd1, 7422 - 0x0c, 0xeb, 0xb8, 0xf8, 0xbc, 0xd4, 0xe2, 0xe7, 7423 - 0xe1, 0xf8, 0x4b, 0xcb, 0xa9, 0xa1, 0xaf, 0x15, 7424 - 0x83, 0xcb, 0x72, 0xd0, 0x33, 0x79, 0x00, 0x2d, 7425 - 0x9f, 0xd7, 0xf1, 0x2e, 0x1e, 0x10, 0xe4, 0x45, 7426 - 0xc0, 0x75, 0x3a, 0x39, 0xea, 0x68, 0xf7, 0x5d, 7427 - 0x1b, 0x73, 0x8f, 0xe9, 0x8e, 0x0f, 0x72, 0x47, 7428 - 0xae, 0x35, 0x0a, 0x31, 0x7a, 0x14, 0x4d, 0x4a, 7429 - 0x6f, 0x47, 0xf7, 0x7e, 0x91, 0x6e, 0x74, 0x8b, 7430 - 0x26, 0x47, 0xf9, 0xc3, 0xf9, 0xde, 0x70, 0xf5, 7431 - 0x61, 0xab, 0xa9, 0x27, 0x9f, 0x82, 0xe4, 0x9c, 7432 - 0x89, 0x91, 0x3f, 0x2e, 0x6a, 0xfd, 0xb5, 0x49, 7433 - 0xe9, 0xfd, 0x59, 0x14, 0x36, 0x49, 0x40, 0x6d, 7434 - 0x32, 0xd8, 0x85, 0x42, 0xf3, 0xa5, 0xdf, 0x0c, 7435 - 0xa8, 0x27, 0xd7, 0x54, 0xe2, 0x63, 0x2f, 0xf2, 7436 - 0x7e, 0x8b, 0x8b, 0xe7, 0xf1, 0x9a, 0x95, 0x35, 7437 - 0x43, 0xdc, 0x3a, 0xe4, 0xb6, 0xf4, 0xd0, 0xdf, 7438 - 0x9c, 0xcb, 0x94, 0xf3, 0x21, 0xa0, 0x77, 0x50, 7439 - 0xe2, 0xc6, 0xc4, 0xc6, 0x5f, 0x09, 0x64, 0x5b, 7440 - 0x92, 0x90, 0xd8, 0xe1, 0xd1, 0xed, 0x4b, 0x42, 7441 - 0xd7, 0x37, 0xaf, 0x65, 0x3d, 0x11, 0x39, 0xb6, 7442 - 0x24, 0x8a, 0x60, 0xae, 0xd6, 0x1e, 0xbf, 0x0e, 7443 - 0x0d, 0xd7, 0xdc, 0x96, 0x0e, 0x65, 0x75, 0x4e, 7444 - 0x29, 0x06, 0x9d, 0xa4, 0x51, 0x3a, 0x10, 0x63, 7445 - 0x8f, 0x17, 0x07, 0xd5, 0x8e, 0x3c, 0xf4, 0x28, 7446 - 0x00, 0x5a, 0x5b, 0x05, 0x19, 0xd8, 0xc0, 0x6c, 7447 - 0xe5, 0x15, 0xe4, 0x9c, 0x9d, 0x71, 0x9d, 0x5e, 7448 - 0x94, 0x29, 0x1a, 0xa7, 0x80, 0xfa, 0x0e, 0x33, 7449 - 0x03, 0xdd, 0xb7, 0x3e, 0x9a, 0xa9, 0x26, 0x18, 7450 - 0x37, 0xa9, 0x64, 0x08, 0x4d, 0x94, 0x5a, 0x88, 7451 - 0xca, 0x35, 0xce, 0x81, 0x02, 0xe3, 0x1f, 0x1b, 7452 - 0x89, 0x1a, 0x77, 0x85, 0xe3, 0x41, 0x6d, 0x32, 7453 - 0x42, 0x19, 0x23, 0x7d, 0xc8, 0x73, 0xee, 0x25, 7454 - 0x85, 0x0d, 0xf8, 0x31, 0x25, 0x79, 0x1b, 0x6f, 7455 - 0x79, 0x25, 0xd2, 0xd8, 0xd4, 0x23, 0xfd, 0xf7, 7456 - 0x82, 0x36, 0x6a, 0x0c, 0x46, 0x22, 0x15, 0xe9, 7457 - 0xff, 0x72, 0x41, 0x91, 0x91, 0x7d, 0x3a, 0xb7, 7458 - 0xdd, 0x65, 0x99, 0x70, 0xf6, 0x8d, 0x84, 0xf8, 7459 - 0x67, 0x15, 0x20, 0x11, 0xd6, 0xb2, 0x55, 0x7b, 7460 - 0xdb, 0x87, 0xee, 0xef, 0x55, 0x89, 0x2a, 0x59, 7461 - 0x2b, 0x07, 0x8f, 0x43, 0x8a, 0x59, 0x3c, 0x01, 7462 - 0x8b, 0x65, 0x54, 0xa1, 0x66, 0xd5, 0x38, 0xbd, 7463 - 0xc6, 0x30, 0xa9, 0xcc, 0x49, 0xb6, 0xa8, 0x1b, 7464 - 0xb8, 0xc0, 0x0e, 0xe3, 0x45, 0x28, 0xe2, 0xff, 7465 - 0x41, 0x9f, 0x7e, 0x7c, 0xd1, 0xae, 0x9e, 0x25, 7466 - 0x3f, 0x4c, 0x7c, 0x7c, 0xf4, 0xa8, 0x26, 0x4d, 7467 - 0x5c, 0xfd, 0x4b, 0x27, 0x18, 0xf9, 0x61, 0x76, 7468 - 0x48, 0xba, 0x0c, 0x6b, 0xa9, 0x4d, 0xfc, 0xf5, 7469 - 0x3b, 0x35, 0x7e, 0x2f, 0x4a, 0xa9, 0xc2, 0x9a, 7470 - 0xae, 0xab, 0x86, 0x09, 0x89, 0xc9, 0xc2, 0x40, 7471 - 0x39, 0x2c, 0x81, 0xb3, 0xb8, 0x17, 0x67, 0xc2, 7472 - 0x0d, 0x32, 0x4a, 0x3a, 0x67, 0x81, 0xd7, 0x1a, 7473 - 0x34, 0x52, 0xc5, 0xdb, 0x0a, 0xf5, 0x63, 0x39, 7474 - 0xea, 0x1f, 0xe1, 0x7c, 0xa1, 0x9e, 0xc1, 0x35, 7475 - 0xe3, 0xb1, 0x18, 0x45, 0x67, 0xf9, 0x22, 0x38, 7476 - 0x95, 0xd9, 0x34, 0x34, 0x86, 0xc6, 0x41, 0x94, 7477 - 0x15, 0xf9, 0x5b, 0x41, 0xa6, 0x87, 0x8b, 0xf8, 7478 - 0xd5, 0xe1, 0x1b, 0xe2, 0x5b, 0xf3, 0x86, 0x10, 7479 - 0xff, 0xe6, 0xae, 0x69, 0x76, 0xbc, 0x0d, 0xb4, 7480 - 0x09, 0x90, 0x0c, 0xa2, 0x65, 0x0c, 0xad, 0x74, 7481 - 0xf5, 0xd7, 0xff, 0xda, 0xc1, 0xce, 0x85, 0xbe, 7482 - 0x00, 0xa7, 0xff, 0x4d, 0x2f, 0x65, 0xd3, 0x8c, 7483 - 0x86, 0x2d, 0x05, 0xe8, 0xed, 0x3e, 0x6b, 0x8b, 7484 - 0x0f, 0x3d, 0x83, 0x8c, 0xf1, 0x1d, 0x5b, 0x96, 7485 - 0x2e, 0xb1, 0x9c, 0xc2, 0x98, 0xe1, 0x70, 0xb9, 7486 - 0xba, 0x5c, 0x8a, 0x43, 0xd6, 0x34, 0xa7, 0x2d, 7487 - 0xc9, 0x92, 0xae, 0xf2, 0xa5, 0x7b, 0x05, 0x49, 7488 - 0xa7, 0x33, 0x34, 0x86, 0xca, 0xe4, 0x96, 0x23, 7489 - 0x76, 0x5b, 0xf2, 0xc6, 0xf1, 0x51, 0x28, 0x42, 7490 - 0x7b, 0xcc, 0x76, 0x8f, 0xfa, 0xa2, 0xad, 0x31, 7491 - 0xd4, 0xd6, 0x7a, 0x6d, 0x25, 0x25, 0x54, 0xe4, 7492 - 0x3f, 0x50, 0x59, 0xe1, 0x5c, 0x05, 0xb7, 0x27, 7493 - 0x48, 0xbf, 0x07, 0xec, 0x1b, 0x13, 0xbe, 0x2b, 7494 - 0xa1, 0x57, 0x2b, 0xd5, 0xab, 0xd7, 0xd0, 0x4c, 7495 - 0x1e, 0xcb, 0x71, 0x9b, 0xc5, 0x90, 0x85, 0xd3, 7496 - 0xde, 0x59, 0xec, 0x71, 0xeb, 0x89, 0xbb, 0xd0, 7497 - 0x09, 0x50, 0xe1, 0x16, 0x3f, 0xfd, 0x1c, 0x34, 7498 - 0xc3, 0x1c, 0xa1, 0x10, 0x77, 0x53, 0x98, 0xef, 7499 - 0xf2, 0xfd, 0xa5, 0x01, 0x59, 0xc2, 0x9b, 0x26, 7500 - 0xc7, 0x42, 0xd9, 0x49, 0xda, 0x58, 0x2b, 0x6e, 7501 - 0x9f, 0x53, 0x19, 0x76, 0x7e, 0xd9, 0xc9, 0x0e, 7502 - 0x68, 0xc8, 0x7f, 0x51, 0x22, 0x42, 0xef, 0x49, 7503 - 0xa4, 0x55, 0xb6, 0x36, 0xac, 0x09, 0xc7, 0x31, 7504 - 0x88, 0x15, 0x4b, 0x2e, 0x8f, 0x3a, 0x08, 0xf7, 7505 - 0xd8, 0xf7, 0xa8, 0xc5, 0xa9, 0x33, 0xa6, 0x45, 7506 - 0xe4, 0xc4, 0x94, 0x76, 0xf3, 0x0d, 0x8f, 0x7e, 7507 - 0xc8, 0xf6, 0xbc, 0x23, 0x0a, 0xb6, 0x4c, 0xd3, 7508 - 0x6a, 0xcd, 0x36, 0xc2, 0x90, 0x5c, 0x5c, 0x3c, 7509 - 0x65, 0x7b, 0xc2, 0xd6, 0xcc, 0xe6, 0x0d, 0x87, 7510 - 0x73, 0x2e, 0x71, 0x79, 0x16, 0x06, 0x63, 0x28, 7511 - 0x09, 0x15, 0xd8, 0x89, 0x38, 0x38, 0x3d, 0xb5, 7512 - 0x42, 0x1c, 0x08, 0x24, 0xf7, 0x2a, 0xd2, 0x9d, 7513 - 0xc8, 0xca, 0xef, 0xf9, 0x27, 0xd8, 0x07, 0x86, 7514 - 0xf7, 0x43, 0x0b, 0x55, 0x15, 0x3f, 0x9f, 0x83, 7515 - 0xef, 0xdc, 0x49, 0x9d, 0x2a, 0xc1, 0x54, 0x62, 7516 - 0xbd, 0x9b, 0x66, 0x55, 0x9f, 0xb7, 0x12, 0xf3, 7517 - 0x1b, 0x4d, 0x9d, 0x2a, 0x5c, 0xed, 0x87, 0x75, 7518 - 0x87, 0x26, 0xec, 0x61, 0x2c, 0xb4, 0x0f, 0x89, 7519 - 0xb0, 0xfb, 0x2e, 0x68, 0x5d, 0x15, 0xc7, 0x8d, 7520 - 0x2e, 0xc0, 0xd9, 0xec, 0xaf, 0x4f, 0xd2, 0x25, 7521 - 0x29, 0xe8, 0xd2, 0x26, 0x2b, 0x67, 0xe9, 0xfc, 7522 - 0x2b, 0xa8, 0x67, 0x96, 0x12, 0x1f, 0x5b, 0x96, 7523 - 0xc6, 0x14, 0x53, 0xaf, 0x44, 0xea, 0xd6, 0xe2, 7524 - 0x94, 0x98, 0xe4, 0x12, 0x93, 0x4c, 0x92, 0xe0, 7525 - 0x18, 0xa5, 0x8d, 0x2d, 0xe4, 0x71, 0x3c, 0x47, 7526 - 0x4c, 0xf7, 0xe6, 0x47, 0x9e, 0xc0, 0x68, 0xdf, 7527 - 0xd4, 0xf5, 0x5a, 0x74, 0xb1, 0x2b, 0x29, 0x03, 7528 - 0x19, 0x07, 0xaf, 0x90, 0x62, 0x5c, 0x68, 0x98, 7529 - 0x48, 0x16, 0x11, 0x02, 0x9d, 0xee, 0xb4, 0x9b, 7530 - 0xe5, 0x42, 0x7f, 0x08, 0xfd, 0x16, 0x32, 0x0b, 7531 - 0xd0, 0xb3, 0xfa, 0x2b, 0xb7, 0x99, 0xf9, 0x29, 7532 - 0xcd, 0x20, 0x45, 0x9f, 0xb3, 0x1a, 0x5d, 0xa2, 7533 - 0xaf, 0x4d, 0xe0, 0xbd, 0x42, 0x0d, 0xbc, 0x74, 7534 - 0x99, 0x9c, 0x8e, 0x53, 0x1a, 0xb4, 0x3e, 0xbd, 7535 - 0xa2, 0x9a, 0x2d, 0xf7, 0xf8, 0x39, 0x0f, 0x67, 7536 - 0x63, 0xfc, 0x6b, 0xc0, 0xaf, 0xb3, 0x4b, 0x4f, 7537 - 0x55, 0xc4, 0xcf, 0xa7, 0xc8, 0x04, 0x11, 0x3e, 7538 - 0x14, 0x32, 0xbb, 0x1b, 0x38, 0x77, 0xd6, 0x7f, 7539 - 0x54, 0x4c, 0xdf, 0x75, 0xf3, 0x07, 0x2d, 0x33, 7540 - 0x9b, 0xa8, 0x20, 0xe1, 0x7b, 0x12, 0xb5, 0xf3, 7541 - 0xef, 0x2f, 0xce, 0x72, 0xe5, 0x24, 0x60, 0xc1, 7542 - 0x30, 0xe2, 0xab, 0xa1, 0x8e, 0x11, 0x09, 0xa8, 7543 - 0x21, 0x33, 0x44, 0xfe, 0x7f, 0x35, 0x32, 0x93, 7544 - 0x39, 0xa7, 0xad, 0x8b, 0x79, 0x06, 0xb2, 0xcb, 7545 - 0x4e, 0xa9, 0x5f, 0xc7, 0xba, 0x74, 0x29, 0xec, 7546 - 0x93, 0xa0, 0x4e, 0x54, 0x93, 0xc0, 0xbc, 0x55, 7547 - 0x64, 0xf0, 0x48, 0xe5, 0x57, 0x99, 0xee, 0x75, 7548 - 0xd6, 0x79, 0x0f, 0x66, 0xb7, 0xc6, 0x57, 0x76, 7549 - 0xf7, 0xb7, 0xf3, 0x9c, 0xc5, 0x60, 0xe8, 0x7f, 7550 - 0x83, 0x76, 0xd6, 0x0e, 0xaa, 0xe6, 0x90, 0x39, 7551 - 0x1d, 0xa6, 0x32, 0x6a, 0x34, 0xe3, 0x55, 0xf8, 7552 - 0x58, 0xa0, 0x58, 0x7d, 0x33, 0xe0, 0x22, 0x39, 7553 - 0x44, 0x64, 0x87, 0x86, 0x5a, 0x2f, 0xa7, 0x7e, 7554 - 0x0f, 0x38, 0xea, 0xb0, 0x30, 0xcc, 0x61, 0xa5, 7555 - 0x6a, 0x32, 0xae, 0x1e, 0xf7, 0xe9, 0xd0, 0xa9, 7556 - 0x0c, 0x32, 0x4b, 0xb5, 0x49, 0x28, 0xab, 0x85, 7557 - 0x2f, 0x8e, 0x01, 0x36, 0x38, 0x52, 0xd0, 0xba, 7558 - 0xd6, 0x02, 0x78, 0xf8, 0x0e, 0x3e, 0x9c, 0x8b, 7559 - 0x6b, 0x45, 0x99, 0x3f, 0x5c, 0xfe, 0x58, 0xf1, 7560 - 0x5c, 0x94, 0x04, 0xe1, 0xf5, 0x18, 0x6d, 0x51, 7561 - 0xb2, 0x5d, 0x18, 0x20, 0xb6, 0xc2, 0x9a, 0x42, 7562 - 0x1d, 0xb3, 0xab, 0x3c, 0xb6, 0x3a, 0x13, 0x03, 7563 - 0xb2, 0x46, 0x82, 0x4f, 0xfc, 0x64, 0xbc, 0x4f, 7564 - 0xca, 0xfa, 0x9c, 0xc0, 0xd5, 0xa7, 0xbd, 0x11, 7565 - 0xb7, 0xe4, 0x5a, 0xf6, 0x6f, 0x4d, 0x4d, 0x54, 7566 - 0xea, 0xa4, 0x98, 0x66, 0xd4, 0x22, 0x3b, 0xd3, 7567 - 0x8f, 0x34, 0x47, 0xd9, 0x7c, 0xf4, 0x72, 0x3b, 7568 - 0x4d, 0x02, 0x77, 0xf6, 0xd6, 0xdd, 0x08, 0x0a, 7569 - 0x81, 0xe1, 0x86, 0x89, 0x3e, 0x56, 0x10, 0x3c, 7570 - 0xba, 0xd7, 0x81, 0x8c, 0x08, 0xbc, 0x8b, 0xe2, 7571 - 0x53, 0xec, 0xa7, 0x89, 0xee, 0xc8, 0x56, 0xb5, 7572 - 0x36, 0x2c, 0xb2, 0x03, 0xba, 0x99, 0xdd, 0x7c, 7573 - 0x48, 0xa0, 0xb0, 0xbc, 0x91, 0x33, 0xe9, 0xa8, 7574 - 0xcb, 0xcd, 0xcf, 0x59, 0x5f, 0x1f, 0x15, 0xe2, 7575 - 0x56, 0xf5, 0x4e, 0x01, 0x35, 0x27, 0x45, 0x77, 7576 - 0x47, 0xc8, 0xbc, 0xcb, 0x7e, 0x39, 0xc1, 0x97, 7577 - 0x28, 0xd3, 0x84, 0xfc, 0x2c, 0x3e, 0xc8, 0xad, 7578 - 0x9c, 0xf8, 0x8a, 0x61, 0x9c, 0x28, 0xaa, 0xc5, 7579 - 0x99, 0x20, 0x43, 0x85, 0x9d, 0xa5, 0xe2, 0x8b, 7580 - 0xb8, 0xae, 0xeb, 0xd0, 0x32, 0x0d, 0x52, 0x78, 7581 - 0x09, 0x56, 0x3f, 0xc7, 0xd8, 0x7e, 0x26, 0xfc, 7582 - 0x37, 0xfb, 0x6f, 0x04, 0xfc, 0xfa, 0x92, 0x10, 7583 - 0xac, 0xf8, 0x3e, 0x21, 0xdc, 0x8c, 0x21, 0x16, 7584 - 0x7d, 0x67, 0x6e, 0xf6, 0xcd, 0xda, 0xb6, 0x98, 7585 - 0x23, 0xab, 0x23, 0x3c, 0xb2, 0x10, 0xa0, 0x53, 7586 - 0x5a, 0x56, 0x9f, 0xc5, 0xd0, 0xff, 0xbb, 0xe4, 7587 - 0x98, 0x3c, 0x69, 0x1e, 0xdb, 0x38, 0x8f, 0x7e, 7588 - 0x0f, 0xd2, 0x98, 0x88, 0x81, 0x8b, 0x45, 0x67, 7589 - 0xea, 0x33, 0xf1, 0xeb, 0xe9, 0x97, 0x55, 0x2e, 7590 - 0xd9, 0xaa, 0xeb, 0x5a, 0xec, 0xda, 0xe1, 0x68, 7591 - 0xa8, 0x9d, 0x3c, 0x84, 0x7c, 0x05, 0x3d, 0x62, 7592 - 0x87, 0x8f, 0x03, 0x21, 0x28, 0x95, 0x0c, 0x89, 7593 - 0x25, 0x22, 0x4a, 0xb0, 0x93, 0xa9, 0x50, 0xa2, 7594 - 0x2f, 0x57, 0x6e, 0x18, 0x42, 0x19, 0x54, 0x0c, 7595 - 0x55, 0x67, 0xc6, 0x11, 0x49, 0xf4, 0x5c, 0xd2, 7596 - 0xe9, 0x3d, 0xdd, 0x8b, 0x48, 0x71, 0x21, 0x00, 7597 - 0xc3, 0x9a, 0x6c, 0x85, 0x74, 0x28, 0x83, 0x4a, 7598 - 0x1b, 0x31, 0x05, 0xe1, 0x06, 0x92, 0xe7, 0xda, 7599 - 0x85, 0x73, 0x78, 0x45, 0x20, 0x7f, 0xae, 0x13, 7600 - 0x7c, 0x33, 0x06, 0x22, 0xf4, 0x83, 0xf9, 0x35, 7601 - 0x3f, 0x6c, 0x71, 0xa8, 0x4e, 0x48, 0xbe, 0x9b, 7602 - 0xce, 0x8a, 0xba, 0xda, 0xbe, 0x28, 0x08, 0xf7, 7603 - 0xe2, 0x14, 0x8c, 0x71, 0xea, 0x72, 0xf9, 0x33, 7604 - 0xf2, 0x88, 0x3f, 0xd7, 0xbb, 0x69, 0x6c, 0x29, 7605 - 0x19, 0xdc, 0x84, 0xce, 0x1f, 0x12, 0x4f, 0xc8, 7606 - 0xaf, 0xa5, 0x04, 0xba, 0x5a, 0xab, 0xb0, 0xd9, 7607 - 0x14, 0x1f, 0x6c, 0x68, 0x98, 0x39, 0x89, 0x7a, 7608 - 0xd9, 0xd8, 0x2f, 0xdf, 0xa8, 0x47, 0x4a, 0x25, 7609 - 0xe2, 0xfb, 0x33, 0xf4, 0x59, 0x78, 0xe1, 0x68, 7610 - 0x85, 0xcf, 0xfe, 0x59, 0x20, 0xd4, 0x05, 0x1d, 7611 - 0x80, 0x99, 0xae, 0xbc, 0xca, 0xae, 0x0f, 0x2f, 7612 - 0x65, 0x43, 0x34, 0x8e, 0x7e, 0xac, 0xd3, 0x93, 7613 - 0x2f, 0xac, 0x6d, 0x14, 0x3d, 0x02, 0x07, 0x70, 7614 - 0x9d, 0xa4, 0xf3, 0x1b, 0x5c, 0x36, 0xfc, 0x01, 7615 - 0x73, 0x34, 0x85, 0x0c, 0x6c, 0xd6, 0xf1, 0xbd, 7616 - 0x3f, 0xdf, 0xee, 0xf5, 0xd9, 0xba, 0x56, 0xef, 7617 - 0xf4, 0x9b, 0x6b, 0xee, 0x9f, 0x5a, 0x78, 0x6d, 7618 - 0x32, 0x19, 0xf4, 0xf7, 0xf8, 0x4c, 0x69, 0x0b, 7619 - 0x4b, 0xbc, 0xbb, 0xb7, 0xf2, 0x85, 0xaf, 0x70, 7620 - 0x75, 0x24, 0x6c, 0x54, 0xa7, 0x0e, 0x4d, 0x1d, 7621 - 0x01, 0xbf, 0x08, 0xac, 0xcf, 0x7f, 0x2c, 0xe3, 7622 - 0x14, 0x89, 0x5e, 0x70, 0x5a, 0x99, 0x92, 0xcd, 7623 - 0x01, 0x84, 0xc8, 0xd2, 0xab, 0xe5, 0x4f, 0x58, 7624 - 0xe7, 0x0f, 0x2f, 0x0e, 0xff, 0x68, 0xea, 0xfd, 7625 - 0x15, 0xb3, 0x17, 0xe6, 0xb0, 0xe7, 0x85, 0xd8, 7626 - 0x23, 0x2e, 0x05, 0xc7, 0xc9, 0xc4, 0x46, 0x1f, 7627 - 0xe1, 0x9e, 0x49, 0x20, 0x23, 0x24, 0x4d, 0x7e, 7628 - 0x29, 0x65, 0xff, 0xf4, 0xb6, 0xfd, 0x1a, 0x85, 7629 - 0xc4, 0x16, 0xec, 0xfc, 0xea, 0x7b, 0xd6, 0x2c, 7630 - 0x43, 0xf8, 0xb7, 0xbf, 0x79, 0xc0, 0x85, 0xcd, 7631 - 0xef, 0xe1, 0x98, 0xd3, 0xa5, 0xf7, 0x90, 0x8c, 7632 - 0xe9, 0x7f, 0x80, 0x6b, 0xd2, 0xac, 0x4c, 0x30, 7633 - 0xa7, 0xc6, 0x61, 0x6c, 0xd2, 0xf9, 0x2c, 0xff, 7634 - 0x30, 0xbc, 0x22, 0x81, 0x7d, 0x93, 0x12, 0xe4, 7635 - 0x0a, 0xcd, 0xaf, 0xdd, 0xe8, 0xab, 0x0a, 0x1e, 7636 - 0x13, 0xa4, 0x27, 0xc3, 0x5f, 0xf7, 0x4b, 0xbb, 7637 - 0x37, 0x09, 0x4b, 0x91, 0x6f, 0x92, 0x4f, 0xaf, 7638 - 0x52, 0xee, 0xdf, 0xef, 0x09, 0x6f, 0xf7, 0x5c, 7639 - 0x6e, 0x12, 0x17, 0x72, 0x63, 0x57, 0xc7, 0xba, 7640 - 0x3b, 0x6b, 0x38, 0x32, 0x73, 0x1b, 0x9c, 0x80, 7641 - 0xc1, 0x7a, 0xc6, 0xcf, 0xcd, 0x35, 0xc0, 0x6b, 7642 - 0x31, 0x1a, 0x6b, 0xe9, 0xd8, 0x2c, 0x29, 0x3f, 7643 - 0x96, 0xfb, 0xb6, 0xcd, 0x13, 0x91, 0x3b, 0xc2, 7644 - 0xd2, 0xa3, 0x31, 0x8d, 0xa4, 0xcd, 0x57, 0xcd, 7645 - 0x13, 0x3d, 0x64, 0xfd, 0x06, 0xce, 0xe6, 0xdc, 7646 - 0x0c, 0x24, 0x43, 0x31, 0x40, 0x57, 0xf1, 0x72, 7647 - 0x17, 0xe3, 0x3a, 0x63, 0x6d, 0x35, 0xcf, 0x5d, 7648 - 0x97, 0x40, 0x59, 0xdd, 0xf7, 0x3c, 0x02, 0xf7, 7649 - 0x1c, 0x7e, 0x05, 0xbb, 0xa9, 0x0d, 0x01, 0xb1, 7650 - 0x8e, 0xc0, 0x30, 0xa9, 0x53, 0x24, 0xc9, 0x89, 7651 - 0x84, 0x6d, 0xaa, 0xd0, 0xcd, 0x91, 0xc2, 0x4d, 7652 - 0x91, 0xb0, 0x89, 0xe2, 0xbf, 0x83, 0x44, 0xaa, 7653 - 0x28, 0x72, 0x23, 0xa0, 0xc2, 0xad, 0xad, 0x1c, 7654 - 0xfc, 0x3f, 0x09, 0x7a, 0x0b, 0xdc, 0xc5, 0x1b, 7655 - 0x87, 0x13, 0xc6, 0x5b, 0x59, 0x8d, 0xf2, 0xc8, 7656 - 0xaf, 0xdf, 0x11, 0x95, 7657 - }, 7078 + .result = 7079 + "\xb5\x81\xf5\x64\x18\x73\xe3\xf0" 7080 + "\x4c\x13\xf2\x77\x18\x60\x65\x5e" 7081 + "\x29\x01\xce\x98\x55\x53\xf9\x0c" 7082 + "\x2a\x08\xd5\x09\xb3\x57\x55\x56" 7083 + "\xc5\xe9\x56\x90\xcb\x6a\xa3\xc0" 7084 + "\xff\xc4\x79\xb4\xd2\x97\x5d\xc4" 7085 + "\x43\xd1\xfe\x94\x7b\x88\x06\x5a" 7086 + "\xb2\x9e\x2c\xfc\x44\x03\xb7\x90" 7087 + "\xa0\xc1\xba\x6a\x33\xb8\xc7\xb2" 7088 + "\x9d\xe1\x12\x4f\xc0\x64\xd4\x01" 7089 + "\xfe\x8c\x7a\x66\xf7\xe6\x5a\x91" 7090 + "\xbb\xde\x56\x86\xab\x65\x21\x30" 7091 + "\x00\x84\x65\x24\xa5\x7d\x85\xb4" 7092 + "\xe3\x17\xed\x3a\xb7\x6f\xb4\x0b" 7093 + "\x0b\xaf\x15\xae\x5a\x8f\xf2\x0c" 7094 + "\x2f\x27\xf4\x09\xd8\xd2\x96\xb7" 7095 + "\x71\xf2\xc5\x99\x4d\x7e\x7f\x75" 7096 + "\x77\x89\x30\x8b\x59\xdb\xa2\xb2" 7097 + "\xa0\xf3\x19\x39\x2b\xc5\x7e\x3f" 7098 + "\x4f\xd9\xd3\x56\x28\x97\x44\xdc" 7099 + "\xc0\x8b\x77\x24\xd9\x52\xe7\xc5" 7100 + "\xaf\xf6\x7d\x59\xb2\x44\x05\x1d" 7101 + "\xb1\xb0\x11\xa5\x0f\xec\x33\xe1" 7102 + "\x6d\x1b\x4e\x1f\xff\x57\x91\xb4" 7103 + "\x5b\x9a\x96\xc5\x53\xbc\xae\x20" 7104 + "\x3c\xbb\x14\xe2\xe8\x22\x33\xc1" 7105 + "\x5e\x76\x9e\x46\x99\xf6\x2a\x15" 7106 + "\xc6\x97\x02\xa0\x66\x43\xd1\xa6" 7107 + "\x31\xa6\x9f\xfb\xf4\xd3\x69\xe5" 7108 + "\xcd\x76\x95\xb8\x7a\x82\x7f\x21" 7109 + "\x45\xff\x3f\xce\x55\xf6\x95\x10" 7110 + "\x08\x77\x10\x43\xc6\xf3\x09\xe5" 7111 + "\x68\xe7\x3c\xad\x00\x52\x45\x0d" 7112 + "\xfe\x2d\xc6\xc2\x94\x8c\x12\x1d" 7113 + "\xe6\x25\xae\x98\x12\x8e\x19\x9c" 7114 + "\x81\x68\xb1\x11\xf6\x69\xda\xe3" 7115 + "\x62\x08\x18\x7a\x25\x49\x28\xac" 7116 + "\xba\x71\x12\x0b\xe4\xa2\xe5\xc7" 7117 + "\x5d\x8e\xec\x49\x40\x21\xbf\x5a" 7118 + "\x98\xf3\x02\x68\x55\x03\x7f\x8a" 7119 + "\xe5\x94\x0c\x32\x5c\x07\x82\x63" 7120 + "\xaf\x6f\x91\x40\x84\x8e\x52\x25" 7121 + "\xd0\xb0\x29\x53\x05\xe2\x50\x7a" 7122 + "\x34\xeb\xc9\x46\x20\xa8\x3d\xde" 7123 + "\x7f\x16\x5f\x36\xc5\x2e\xdc\xd1" 7124 + "\x15\x47\xc7\x50\x40\x6d\x91\xc5" 7125 + "\xe7\x93\x95\x1a\xd3\x57\xbc\x52" 7126 + "\x33\xee\x14\x19\x22\x52\x89\xa7" 7127 + "\x4a\x25\x56\x77\x4b\xca\xcf\x0a" 7128 + "\xe1\xf5\x35\x85\x30\x7e\x59\x4a" 7129 + "\xbd\x14\x5b\xdf\xe3\x46\xcb\xac" 7130 + "\x1f\x6c\x96\x0e\xf4\x81\xd1\x99" 7131 + "\xca\x88\x63\x3d\x02\x58\x6b\xa9" 7132 + "\xe5\x9f\xb3\x00\xb2\x54\xc6\x74" 7133 + "\x1c\xbf\x46\xab\x97\xcc\xf8\x54" 7134 + "\x04\x07\x08\x52\xe6\xc0\xda\x93" 7135 + "\x74\x7d\x93\x99\x5d\x78\x68\xa6" 7136 + "\x2e\x6b\xd3\x6a\x69\xcc\x12\x6b" 7137 + "\xd4\xc7\xa5\xc6\xe7\xf6\x03\x04" 7138 + "\x5d\xcd\x61\x5e\x17\x40\xdc\xd1" 7139 + "\x5c\xf5\x08\xdf\x5c\x90\x85\xa4" 7140 + "\xaf\xf6\x78\xbb\x0d\xf1\xf4\xa4" 7141 + "\x54\x26\x72\x9e\x61\xfa\x86\xcf" 7142 + "\xe8\x9e\xa1\xe0\xc7\x48\x23\xae" 7143 + "\x5a\x90\xae\x75\x0a\x74\x18\x89" 7144 + "\x05\xb1\x92\xb2\x7f\xd0\x1b\xa6" 7145 + "\x62\x07\x25\x01\xc7\xc2\x4f\xf9" 7146 + "\xe8\xfe\x63\x95\x80\x07\xb4\x26" 7147 + "\xcc\xd1\x26\xb6\xc4\x3f\x9e\xcb" 7148 + "\x8e\x3b\x2e\x44\x16\xd3\x10\x9a" 7149 + "\x95\x08\xeb\xc8\xcb\xeb\xbf\x6f" 7150 + "\x0b\xcd\x1f\xc8\xca\x86\xaa\xec" 7151 + "\x33\xe6\x69\xf4\x45\x25\x86\x3a" 7152 + "\x22\x94\x4f\x00\x23\x6a\x44\xc2" 7153 + "\x49\x97\x33\xab\x36\x14\x0a\x70" 7154 + "\x24\xc3\xbe\x04\x3b\x79\xa0\xf9" 7155 + "\xb8\xe7\x76\x29\x22\x83\xd7\xf2" 7156 + "\x94\xf4\x41\x49\xba\x5f\x7b\x07" 7157 + "\xb5\xfb\xdb\x03\x1a\x9f\xb6\x4c" 7158 + "\xc2\x2e\x37\x40\x49\xc3\x38\x16" 7159 + "\xe2\x4f\x77\x82\xb0\x68\x4c\x71" 7160 + "\x1d\x57\x61\x9c\xd9\x4e\x54\x99" 7161 + "\x47\x13\x28\x73\x3c\xbb\x00\x90" 7162 + "\xf3\x4d\xc9\x0e\xfd\xe7\xb1\x71" 7163 + "\xd3\x15\x79\xbf\xcc\x26\x2f\xbd" 7164 + "\xad\x6c\x50\x69\x6c\x3e\x6d\x80" 7165 + "\x9a\xea\x78\xaf\x19\xb2\x0d\x4d" 7166 + "\xad\x04\x07\xae\x22\x90\x4a\x93" 7167 + "\x32\x0e\x36\x9b\x1b\x46\xba\x3b" 7168 + "\xb4\xac\xc6\xd1\xa2\x31\x53\x3b" 7169 + "\x2a\x3d\x45\xfe\x03\x61\x10\x85" 7170 + "\x17\x69\xa6\x78\xcc\x6c\x87\x49" 7171 + "\x53\xf9\x80\x10\xde\x80\xa2\x41" 7172 + "\x6a\xc3\x32\x02\xad\x6d\x3c\x56" 7173 + "\x00\x71\x51\x06\xa7\xbd\xfb\xef" 7174 + "\x3c\xb5\x9f\xfc\x48\x7d\x53\x7c" 7175 + "\x66\xb0\x49\x23\xc4\x47\x10\x0e" 7176 + "\xe5\x6c\x74\x13\xe6\xc5\x3f\xaa" 7177 + "\xde\xff\x07\x44\xdd\x56\x1b\xad" 7178 + "\x09\x77\xfb\x5b\x12\xb8\x0d\x38" 7179 + "\x17\x37\x35\x7b\x9b\xbc\xfe\xd4" 7180 + "\x7e\x8b\xda\x7e\x5b\x04\xa7\x22" 7181 + "\xa7\x31\xa1\x20\x86\xc7\x1b\x99" 7182 + "\xdb\xd1\x89\xf4\x94\xa3\x53\x69" 7183 + "\x8d\xe7\xe8\x74\x11\x8d\x74\xd6" 7184 + "\x07\x37\x91\x9f\xfd\x67\x50\x3a" 7185 + "\xc9\xe1\xf4\x36\xd5\xa0\x47\xd1" 7186 + "\xf9\xe5\x39\xa3\x31\xac\x07\x36" 7187 + "\x23\xf8\x66\x18\x14\x28\x34\x0f" 7188 + "\xb8\xd0\xe7\x29\xb3\x04\x4b\x55" 7189 + "\x01\x41\xb2\x75\x8d\xcb\x96\x85" 7190 + "\x3a\xfb\xab\x2b\x9e\xfa\x58\x20" 7191 + "\x44\x1f\xc0\x14\x22\x75\x61\xe8" 7192 + "\xaa\x19\xcf\xf1\x82\x56\xf4\xd7" 7193 + "\x78\x7b\x3d\x5f\xb3\x9e\x0b\x8a" 7194 + "\x57\x50\xdb\x17\x41\x65\x4d\xa3" 7195 + "\x02\xc9\x9c\x9c\x53\xfb\x39\x39" 7196 + "\x9b\x1d\x72\x24\xda\xb7\x39\xbe" 7197 + "\x13\x3b\xfa\x29\xda\x9e\x54\x64" 7198 + "\x6e\xba\xd8\xa1\xcb\xb3\x36\xfa" 7199 + "\xcb\x47\x85\xe9\x61\x38\xbc\xbe" 7200 + "\xc5\x00\x38\x2a\x54\xf7\xc4\xb9" 7201 + "\xb3\xd3\x7b\xa0\xa0\xf8\x72\x7f" 7202 + "\x8c\x8e\x82\x0e\xc6\x1c\x75\x9d" 7203 + "\xca\x8e\x61\x87\xde\xad\x80\xd2" 7204 + "\xf5\xf9\x80\xef\x15\x75\xaf\xf5" 7205 + "\x80\xfb\xff\x6d\x1e\x25\xb7\x40" 7206 + "\x61\x6a\x39\x5a\x6a\xb5\x31\xab" 7207 + "\x97\x8a\x19\x89\x44\x40\xc0\xa6" 7208 + "\xb4\x4e\x30\x32\x7b\x13\xe7\x67" 7209 + "\xa9\x8b\x57\x04\xc2\x01\xa6\xf4" 7210 + "\x28\x99\xad\x2c\x76\xa3\x78\xc2" 7211 + "\x4a\xe6\xca\x5c\x50\x6a\xc1\xb0" 7212 + "\x62\x4b\x10\x8e\x7c\x17\x43\xb3" 7213 + "\x17\x66\x1c\x3e\x8d\x69\xf0\x5a" 7214 + "\x71\xf5\x97\xdc\xd1\x45\xdd\x28" 7215 + "\xf3\x5d\xdf\x53\x7b\x11\xe5\xbc" 7216 + "\x4c\xdb\x1b\x51\x6b\xe9\xfb\x3d" 7217 + "\xc1\xc3\x2c\xb9\x71\xf5\xb6\xb2" 7218 + "\x13\x36\x79\x80\x53\xe8\xd3\xa6" 7219 + "\x0a\xaf\xfd\x56\x97\xf7\x40\x8e" 7220 + "\x45\xce\xf8\xb0\x9e\x5c\x33\x82" 7221 + "\xb0\x44\x56\xfc\x05\x09\xe9\x2a" 7222 + "\xac\x26\x80\x14\x1d\xc8\x3a\x35" 7223 + "\x4c\x82\x97\xfd\x76\xb7\xa9\x0a" 7224 + "\x35\x58\x79\x8e\x0f\x66\xea\xaf" 7225 + "\x51\x6c\x09\xa9\x6e\x9b\xcb\x9a" 7226 + "\x31\x47\xa0\x2f\x7c\x71\xb4\x4a" 7227 + "\x11\xaa\x8c\x66\xc5\x64\xe6\x3a" 7228 + "\x54\xda\x24\x6a\xc4\x41\x65\x46" 7229 + "\x82\xa0\x0a\x0f\x5f\xfb\x25\xd0" 7230 + "\x2c\x91\xa7\xee\xc4\x81\x07\x86" 7231 + "\x75\x5e\x33\x69\x97\xe4\x2c\xa8" 7232 + "\x9d\x9f\x0b\x6a\xbe\xad\x98\xda" 7233 + "\x6d\x94\x41\xda\x2c\x1e\x89\xc4" 7234 + "\xc2\xaf\x1e\x00\x05\x0b\x83\x60" 7235 + "\xbd\x43\xea\x15\x23\x7f\xb9\xac" 7236 + "\xee\x4f\x2c\xaf\x2a\xf3\xdf\xd0" 7237 + "\xf3\x19\x31\xbb\x4a\x74\x84\x17" 7238 + "\x52\x32\x2c\x7d\x61\xe4\xcb\xeb" 7239 + "\x80\x38\x15\x52\xcb\x6f\xea\xe5" 7240 + "\x73\x9c\xd9\x24\x69\xc6\x95\x32" 7241 + "\x21\xc8\x11\xe4\xdc\x36\xd7\x93" 7242 + "\x38\x66\xfb\xb2\x7f\x3a\xb9\xaf" 7243 + "\x31\xdd\x93\x75\x78\x8a\x2c\x94" 7244 + "\x87\x1a\x58\xec\x9e\x7d\x4d\xba" 7245 + "\xe1\xe5\x4d\xfc\xbc\xa4\x2a\x14" 7246 + "\xef\xcc\xa7\xec\xab\x43\x09\x18" 7247 + "\xd3\xab\x68\xd1\x07\x99\x44\x47" 7248 + "\xd6\x83\x85\x3b\x30\xea\xa9\x6b" 7249 + "\x63\xea\xc4\x07\xfb\x43\x2f\xa4" 7250 + "\xaa\xb0\xab\x03\x89\xce\x3f\x8c" 7251 + "\x02\x7c\x86\x54\xbc\x88\xaf\x75" 7252 + "\xd2\xdc\x63\x17\xd3\x26\xf6\x96" 7253 + "\xa9\x3c\xf1\x61\x8c\x11\x18\xcc" 7254 + "\xd6\xea\x5b\xe2\xcd\xf0\xf1\xb2" 7255 + "\xe5\x35\x90\x1f\x85\x4c\x76\x5b" 7256 + "\x66\xce\x44\xa4\x32\x9f\xe6\x7b" 7257 + "\x71\x6e\x9f\x58\x15\x67\x72\x87" 7258 + "\x64\x8e\x3a\x44\x45\xd4\x76\xfa" 7259 + "\xc2\xf6\xef\x85\x05\x18\x7a\x9b" 7260 + "\xba\x41\x54\xac\xf0\xfc\x59\x12" 7261 + "\x3f\xdf\xa0\xe5\x8a\x65\xfd\x3a" 7262 + "\x62\x8d\x83\x2c\x03\xbe\x05\x76" 7263 + "\x2e\x53\x49\x97\x94\x33\xae\x40" 7264 + "\x81\x15\xdb\x6e\xad\xaa\xf5\x4b" 7265 + "\xe3\x98\x70\xdf\xe0\x7c\xcd\xdb" 7266 + "\x02\xd4\x7d\x2f\xc1\xe6\xb4\xf3" 7267 + "\xd7\x0d\x7a\xd9\x23\x9e\x87\x2d" 7268 + "\xce\x87\xad\xcc\x72\x05\x00\x29" 7269 + "\xdc\x73\x7f\x64\xc1\x15\x0e\xc2" 7270 + "\xdf\xa7\x5f\xeb\x41\xa1\xcd\xef" 7271 + "\x5c\x50\x79\x2a\x56\x56\x71\x8c" 7272 + "\xac\xc0\x79\x50\x69\xca\x59\x32" 7273 + "\x65\xf2\x54\xe4\x52\x38\x76\xd1" 7274 + "\x5e\xde\x26\x9e\xfb\x75\x2e\x11" 7275 + "\xb5\x10\xf4\x17\x73\xf5\x89\xc7" 7276 + "\x4f\x43\x5c\x8e\x7c\xb9\x05\x52" 7277 + "\x24\x40\x99\xfe\x9b\x85\x0b\x6c" 7278 + "\x22\x3e\x8b\xae\x86\xa1\xd2\x79" 7279 + "\x05\x68\x6b\xab\xe3\x41\x49\xed" 7280 + "\x15\xa1\x8d\x40\x2d\x61\xdf\x1a" 7281 + "\x59\xc9\x26\x8b\xef\x30\x4c\x88" 7282 + "\x4b\x10\xf8\x8d\xa6\x92\x9f\x4b" 7283 + "\xf3\xc4\x53\x0b\x89\x5d\x28\x92" 7284 + "\xcf\x78\xb2\xc0\x5d\xed\x7e\xfc" 7285 + "\xc0\x12\x23\x5f\x5a\x78\x86\x43" 7286 + "\x6e\x27\xf7\x5a\xa7\x6a\xed\x19" 7287 + "\x04\xf0\xb3\x12\xd1\xbd\x0e\x89" 7288 + "\x6e\xbc\x96\xa8\xd8\x49\x39\x9f" 7289 + "\x7e\x67\xf0\x2e\x3e\x01\xa9\xba" 7290 + "\xec\x8b\x62\x8e\xcb\x4a\x70\x43" 7291 + "\xc7\xc2\xc4\xca\x82\x03\x73\xe9" 7292 + "\x11\xdf\xcf\x54\xea\xc9\xb0\x95" 7293 + "\x51\xc0\x13\x3d\x92\x05\xfa\xf4" 7294 + "\xa9\x34\xc8\xce\x6c\x3d\x54\xcc" 7295 + "\xc4\xaf\xf1\xdc\x11\x44\x26\xa2" 7296 + "\xaf\xf1\x85\x75\x7d\x03\x61\x68" 7297 + "\x4e\x78\xc6\x92\x7d\x86\x7d\x77" 7298 + "\xdc\x71\x72\xdb\xc6\xae\xa1\xcb" 7299 + "\x70\x9a\x0b\x19\xbe\x4a\x6c\x2a" 7300 + "\xe2\xba\x6c\x64\x9a\x13\x28\xdf" 7301 + "\x85\x75\xe6\x43\xf6\x87\x08\x68" 7302 + "\x6e\xba\x6e\x79\x9f\x04\xbc\x23" 7303 + "\x50\xf6\x33\x5c\x1f\x24\x25\xbe" 7304 + "\x33\x47\x80\x45\x56\xa3\xa7\xd7" 7305 + "\x7a\xb1\x34\x0b\x90\x3c\x9c\xad" 7306 + "\x44\x5f\x9e\x0e\x9d\xd4\xbd\x93" 7307 + "\x5e\xfa\x3c\xe0\xb0\xd9\xed\xf3" 7308 + "\xd6\x2e\xff\x24\xd8\x71\x6c\xed" 7309 + "\xaf\x55\xeb\x22\xac\x93\x68\x32" 7310 + "\x05\x5b\x47\xdd\xc6\x4a\xcb\xc7" 7311 + "\x10\xe1\x3c\x92\x1a\xf3\x23\x78" 7312 + "\x2b\xa1\xd2\x80\xf4\x12\xb1\x20" 7313 + "\x8f\xff\x26\x35\xdd\xfb\xc7\x4e" 7314 + "\x78\xf1\x2d\x50\x12\x77\xa8\x60" 7315 + "\x7c\x0f\xf5\x16\x2f\x63\x70\x2a" 7316 + "\xc0\x96\x80\x4e\x0a\xb4\x93\x35" 7317 + "\x5d\x1d\x3f\x56\xf7\x2f\xbb\x90" 7318 + "\x11\x16\x8f\xa2\xec\x47\xbe\xac" 7319 + "\x56\x01\x26\x56\xb1\x8c\xb2\x10" 7320 + "\xf9\x1a\xca\xf5\xd1\xb7\x39\x20" 7321 + "\x63\xf1\x69\x20\x4f\x13\x12\x1f" 7322 + "\x5b\x65\xfc\x98\xf7\xc4\x7a\xbe" 7323 + "\xf7\x26\x4d\x2b\x84\x7b\x42\xad" 7324 + "\xd8\x7a\x0a\xb4\xd8\x74\xbf\xc1" 7325 + "\xf0\x6e\xb4\x29\xa3\xbb\xca\x46" 7326 + "\x67\x70\x6a\x2d\xce\x0e\xa2\x8a" 7327 + "\xa9\x87\xbf\x05\xc4\xc1\x04\xa3" 7328 + "\xab\xd4\x45\x43\x8c\xb6\x02\xb0" 7329 + "\x41\xc8\xfc\x44\x3d\x59\xaa\x2e" 7330 + "\x44\x21\x2a\x8d\x88\x9d\x57\xf4" 7331 + "\xa0\x02\x77\xb8\xa6\xa0\xe6\x75" 7332 + "\x5c\x82\x65\x3e\x03\x5c\x29\x8f" 7333 + "\x38\x55\xab\x33\x26\xef\x9f\x43" 7334 + "\x52\xfd\x68\xaf\x36\xb4\xbb\x9a" 7335 + "\x58\x09\x09\x1b\xc3\x65\x46\x46" 7336 + "\x1d\xa7\x94\x18\x23\x50\x2c\xca" 7337 + "\x2c\x55\x19\x97\x01\x9d\x93\x3b" 7338 + "\x63\x86\xf2\x03\x67\x45\xd2\x72" 7339 + "\x28\x52\x6c\xf4\xe3\x1c\xb5\x11" 7340 + "\x13\xf1\xeb\x21\xc7\xd9\x56\x82" 7341 + "\x2b\x82\x39\xbd\x69\x54\xed\x62" 7342 + "\xc3\xe2\xde\x73\xd4\x6a\x12\xae" 7343 + "\x13\x21\x7f\x4b\x5b\xfc\xbf\xe8" 7344 + "\x2b\xbe\x56\xba\x68\x8b\x9a\xb1" 7345 + "\x6e\xfa\xbf\x7e\x5a\x4b\xf1\xac" 7346 + "\x98\x65\x85\xd1\x93\x53\xd3\x7b" 7347 + "\x09\xdd\x4b\x10\x6d\x84\xb0\x13" 7348 + "\x65\xbd\xcf\x52\x09\xc4\x85\xe2" 7349 + "\x84\x74\x15\x65\xb7\xf7\x51\xaf" 7350 + "\x55\xad\xa4\xd1\x22\x54\x70\x94" 7351 + "\xa0\x1c\x90\x41\xfd\x99\xd7\x5a" 7352 + "\x31\xef\xaa\x25\xd0\x7f\x4f\xea" 7353 + "\x1d\x55\x42\xe5\x49\xb0\xd0\x46" 7354 + "\x62\x36\x43\xb2\x82\x15\x75\x50" 7355 + "\xa4\x72\xeb\x54\x27\x1f\x8a\xe4" 7356 + "\x7d\xe9\x66\xc5\xf1\x53\xa4\xd1" 7357 + "\x0c\xeb\xb8\xf8\xbc\xd4\xe2\xe7" 7358 + "\xe1\xf8\x4b\xcb\xa9\xa1\xaf\x15" 7359 + "\x83\xcb\x72\xd0\x33\x79\x00\x2d" 7360 + "\x9f\xd7\xf1\x2e\x1e\x10\xe4\x45" 7361 + "\xc0\x75\x3a\x39\xea\x68\xf7\x5d" 7362 + "\x1b\x73\x8f\xe9\x8e\x0f\x72\x47" 7363 + "\xae\x35\x0a\x31\x7a\x14\x4d\x4a" 7364 + "\x6f\x47\xf7\x7e\x91\x6e\x74\x8b" 7365 + "\x26\x47\xf9\xc3\xf9\xde\x70\xf5" 7366 + "\x61\xab\xa9\x27\x9f\x82\xe4\x9c" 7367 + "\x89\x91\x3f\x2e\x6a\xfd\xb5\x49" 7368 + "\xe9\xfd\x59\x14\x36\x49\x40\x6d" 7369 + "\x32\xd8\x85\x42\xf3\xa5\xdf\x0c" 7370 + "\xa8\x27\xd7\x54\xe2\x63\x2f\xf2" 7371 + "\x7e\x8b\x8b\xe7\xf1\x9a\x95\x35" 7372 + "\x43\xdc\x3a\xe4\xb6\xf4\xd0\xdf" 7373 + "\x9c\xcb\x94\xf3\x21\xa0\x77\x50" 7374 + "\xe2\xc6\xc4\xc6\x5f\x09\x64\x5b" 7375 + "\x92\x90\xd8\xe1\xd1\xed\x4b\x42" 7376 + "\xd7\x37\xaf\x65\x3d\x11\x39\xb6" 7377 + "\x24\x8a\x60\xae\xd6\x1e\xbf\x0e" 7378 + "\x0d\xd7\xdc\x96\x0e\x65\x75\x4e" 7379 + "\x29\x06\x9d\xa4\x51\x3a\x10\x63" 7380 + "\x8f\x17\x07\xd5\x8e\x3c\xf4\x28" 7381 + "\x00\x5a\x5b\x05\x19\xd8\xc0\x6c" 7382 + "\xe5\x15\xe4\x9c\x9d\x71\x9d\x5e" 7383 + "\x94\x29\x1a\xa7\x80\xfa\x0e\x33" 7384 + "\x03\xdd\xb7\x3e\x9a\xa9\x26\x18" 7385 + "\x37\xa9\x64\x08\x4d\x94\x5a\x88" 7386 + "\xca\x35\xce\x81\x02\xe3\x1f\x1b" 7387 + "\x89\x1a\x77\x85\xe3\x41\x6d\x32" 7388 + "\x42\x19\x23\x7d\xc8\x73\xee\x25" 7389 + "\x85\x0d\xf8\x31\x25\x79\x1b\x6f" 7390 + "\x79\x25\xd2\xd8\xd4\x23\xfd\xf7" 7391 + "\x82\x36\x6a\x0c\x46\x22\x15\xe9" 7392 + "\xff\x72\x41\x91\x91\x7d\x3a\xb7" 7393 + "\xdd\x65\x99\x70\xf6\x8d\x84\xf8" 7394 + "\x67\x15\x20\x11\xd6\xb2\x55\x7b" 7395 + "\xdb\x87\xee\xef\x55\x89\x2a\x59" 7396 + "\x2b\x07\x8f\x43\x8a\x59\x3c\x01" 7397 + "\x8b\x65\x54\xa1\x66\xd5\x38\xbd" 7398 + "\xc6\x30\xa9\xcc\x49\xb6\xa8\x1b" 7399 + "\xb8\xc0\x0e\xe3\x45\x28\xe2\xff" 7400 + "\x41\x9f\x7e\x7c\xd1\xae\x9e\x25" 7401 + "\x3f\x4c\x7c\x7c\xf4\xa8\x26\x4d" 7402 + "\x5c\xfd\x4b\x27\x18\xf9\x61\x76" 7403 + "\x48\xba\x0c\x6b\xa9\x4d\xfc\xf5" 7404 + "\x3b\x35\x7e\x2f\x4a\xa9\xc2\x9a" 7405 + "\xae\xab\x86\x09\x89\xc9\xc2\x40" 7406 + "\x39\x2c\x81\xb3\xb8\x17\x67\xc2" 7407 + "\x0d\x32\x4a\x3a\x67\x81\xd7\x1a" 7408 + "\x34\x52\xc5\xdb\x0a\xf5\x63\x39" 7409 + "\xea\x1f\xe1\x7c\xa1\x9e\xc1\x35" 7410 + "\xe3\xb1\x18\x45\x67\xf9\x22\x38" 7411 + "\x95\xd9\x34\x34\x86\xc6\x41\x94" 7412 + "\x15\xf9\x5b\x41\xa6\x87\x8b\xf8" 7413 + "\xd5\xe1\x1b\xe2\x5b\xf3\x86\x10" 7414 + "\xff\xe6\xae\x69\x76\xbc\x0d\xb4" 7415 + "\x09\x90\x0c\xa2\x65\x0c\xad\x74" 7416 + "\xf5\xd7\xff\xda\xc1\xce\x85\xbe" 7417 + "\x00\xa7\xff\x4d\x2f\x65\xd3\x8c" 7418 + "\x86\x2d\x05\xe8\xed\x3e\x6b\x8b" 7419 + "\x0f\x3d\x83\x8c\xf1\x1d\x5b\x96" 7420 + "\x2e\xb1\x9c\xc2\x98\xe1\x70\xb9" 7421 + "\xba\x5c\x8a\x43\xd6\x34\xa7\x2d" 7422 + "\xc9\x92\xae\xf2\xa5\x7b\x05\x49" 7423 + "\xa7\x33\x34\x86\xca\xe4\x96\x23" 7424 + "\x76\x5b\xf2\xc6\xf1\x51\x28\x42" 7425 + "\x7b\xcc\x76\x8f\xfa\xa2\xad\x31" 7426 + "\xd4\xd6\x7a\x6d\x25\x25\x54\xe4" 7427 + "\x3f\x50\x59\xe1\x5c\x05\xb7\x27" 7428 + "\x48\xbf\x07\xec\x1b\x13\xbe\x2b" 7429 + "\xa1\x57\x2b\xd5\xab\xd7\xd0\x4c" 7430 + "\x1e\xcb\x71\x9b\xc5\x90\x85\xd3" 7431 + "\xde\x59\xec\x71\xeb\x89\xbb\xd0" 7432 + "\x09\x50\xe1\x16\x3f\xfd\x1c\x34" 7433 + "\xc3\x1c\xa1\x10\x77\x53\x98\xef" 7434 + "\xf2\xfd\xa5\x01\x59\xc2\x9b\x26" 7435 + "\xc7\x42\xd9\x49\xda\x58\x2b\x6e" 7436 + "\x9f\x53\x19\x76\x7e\xd9\xc9\x0e" 7437 + "\x68\xc8\x7f\x51\x22\x42\xef\x49" 7438 + "\xa4\x55\xb6\x36\xac\x09\xc7\x31" 7439 + "\x88\x15\x4b\x2e\x8f\x3a\x08\xf7" 7440 + "\xd8\xf7\xa8\xc5\xa9\x33\xa6\x45" 7441 + "\xe4\xc4\x94\x76\xf3\x0d\x8f\x7e" 7442 + "\xc8\xf6\xbc\x23\x0a\xb6\x4c\xd3" 7443 + "\x6a\xcd\x36\xc2\x90\x5c\x5c\x3c" 7444 + "\x65\x7b\xc2\xd6\xcc\xe6\x0d\x87" 7445 + "\x73\x2e\x71\x79\x16\x06\x63\x28" 7446 + "\x09\x15\xd8\x89\x38\x38\x3d\xb5" 7447 + "\x42\x1c\x08\x24\xf7\x2a\xd2\x9d" 7448 + "\xc8\xca\xef\xf9\x27\xd8\x07\x86" 7449 + "\xf7\x43\x0b\x55\x15\x3f\x9f\x83" 7450 + "\xef\xdc\x49\x9d\x2a\xc1\x54\x62" 7451 + "\xbd\x9b\x66\x55\x9f\xb7\x12\xf3" 7452 + "\x1b\x4d\x9d\x2a\x5c\xed\x87\x75" 7453 + "\x87\x26\xec\x61\x2c\xb4\x0f\x89" 7454 + "\xb0\xfb\x2e\x68\x5d\x15\xc7\x8d" 7455 + "\x2e\xc0\xd9\xec\xaf\x4f\xd2\x25" 7456 + "\x29\xe8\xd2\x26\x2b\x67\xe9\xfc" 7457 + "\x2b\xa8\x67\x96\x12\x1f\x5b\x96" 7458 + "\xc6\x14\x53\xaf\x44\xea\xd6\xe2" 7459 + "\x94\x98\xe4\x12\x93\x4c\x92\xe0" 7460 + "\x18\xa5\x8d\x2d\xe4\x71\x3c\x47" 7461 + "\x4c\xf7\xe6\x47\x9e\xc0\x68\xdf" 7462 + "\xd4\xf5\x5a\x74\xb1\x2b\x29\x03" 7463 + "\x19\x07\xaf\x90\x62\x5c\x68\x98" 7464 + "\x48\x16\x11\x02\x9d\xee\xb4\x9b" 7465 + "\xe5\x42\x7f\x08\xfd\x16\x32\x0b" 7466 + "\xd0\xb3\xfa\x2b\xb7\x99\xf9\x29" 7467 + "\xcd\x20\x45\x9f\xb3\x1a\x5d\xa2" 7468 + "\xaf\x4d\xe0\xbd\x42\x0d\xbc\x74" 7469 + "\x99\x9c\x8e\x53\x1a\xb4\x3e\xbd" 7470 + "\xa2\x9a\x2d\xf7\xf8\x39\x0f\x67" 7471 + "\x63\xfc\x6b\xc0\xaf\xb3\x4b\x4f" 7472 + "\x55\xc4\xcf\xa7\xc8\x04\x11\x3e" 7473 + "\x14\x32\xbb\x1b\x38\x77\xd6\x7f" 7474 + "\x54\x4c\xdf\x75\xf3\x07\x2d\x33" 7475 + "\x9b\xa8\x20\xe1\x7b\x12\xb5\xf3" 7476 + "\xef\x2f\xce\x72\xe5\x24\x60\xc1" 7477 + "\x30\xe2\xab\xa1\x8e\x11\x09\xa8" 7478 + "\x21\x33\x44\xfe\x7f\x35\x32\x93" 7479 + "\x39\xa7\xad\x8b\x79\x06\xb2\xcb" 7480 + "\x4e\xa9\x5f\xc7\xba\x74\x29\xec" 7481 + "\x93\xa0\x4e\x54\x93\xc0\xbc\x55" 7482 + "\x64\xf0\x48\xe5\x57\x99\xee\x75" 7483 + "\xd6\x79\x0f\x66\xb7\xc6\x57\x76" 7484 + "\xf7\xb7\xf3\x9c\xc5\x60\xe8\x7f" 7485 + "\x83\x76\xd6\x0e\xaa\xe6\x90\x39" 7486 + "\x1d\xa6\x32\x6a\x34\xe3\x55\xf8" 7487 + "\x58\xa0\x58\x7d\x33\xe0\x22\x39" 7488 + "\x44\x64\x87\x86\x5a\x2f\xa7\x7e" 7489 + "\x0f\x38\xea\xb0\x30\xcc\x61\xa5" 7490 + "\x6a\x32\xae\x1e\xf7\xe9\xd0\xa9" 7491 + "\x0c\x32\x4b\xb5\x49\x28\xab\x85" 7492 + "\x2f\x8e\x01\x36\x38\x52\xd0\xba" 7493 + "\xd6\x02\x78\xf8\x0e\x3e\x9c\x8b" 7494 + "\x6b\x45\x99\x3f\x5c\xfe\x58\xf1" 7495 + "\x5c\x94\x04\xe1\xf5\x18\x6d\x51" 7496 + "\xb2\x5d\x18\x20\xb6\xc2\x9a\x42" 7497 + "\x1d\xb3\xab\x3c\xb6\x3a\x13\x03" 7498 + "\xb2\x46\x82\x4f\xfc\x64\xbc\x4f" 7499 + "\xca\xfa\x9c\xc0\xd5\xa7\xbd\x11" 7500 + "\xb7\xe4\x5a\xf6\x6f\x4d\x4d\x54" 7501 + "\xea\xa4\x98\x66\xd4\x22\x3b\xd3" 7502 + "\x8f\x34\x47\xd9\x7c\xf4\x72\x3b" 7503 + "\x4d\x02\x77\xf6\xd6\xdd\x08\x0a" 7504 + "\x81\xe1\x86\x89\x3e\x56\x10\x3c" 7505 + "\xba\xd7\x81\x8c\x08\xbc\x8b\xe2" 7506 + "\x53\xec\xa7\x89\xee\xc8\x56\xb5" 7507 + "\x36\x2c\xb2\x03\xba\x99\xdd\x7c" 7508 + "\x48\xa0\xb0\xbc\x91\x33\xe9\xa8" 7509 + "\xcb\xcd\xcf\x59\x5f\x1f\x15\xe2" 7510 + "\x56\xf5\x4e\x01\x35\x27\x45\x77" 7511 + "\x47\xc8\xbc\xcb\x7e\x39\xc1\x97" 7512 + "\x28\xd3\x84\xfc\x2c\x3e\xc8\xad" 7513 + "\x9c\xf8\x8a\x61\x9c\x28\xaa\xc5" 7514 + "\x99\x20\x43\x85\x9d\xa5\xe2\x8b" 7515 + "\xb8\xae\xeb\xd0\x32\x0d\x52\x78" 7516 + "\x09\x56\x3f\xc7\xd8\x7e\x26\xfc" 7517 + "\x37\xfb\x6f\x04\xfc\xfa\x92\x10" 7518 + "\xac\xf8\x3e\x21\xdc\x8c\x21\x16" 7519 + "\x7d\x67\x6e\xf6\xcd\xda\xb6\x98" 7520 + "\x23\xab\x23\x3c\xb2\x10\xa0\x53" 7521 + "\x5a\x56\x9f\xc5\xd0\xff\xbb\xe4" 7522 + "\x98\x3c\x69\x1e\xdb\x38\x8f\x7e" 7523 + "\x0f\xd2\x98\x88\x81\x8b\x45\x67" 7524 + "\xea\x33\xf1\xeb\xe9\x97\x55\x2e" 7525 + "\xd9\xaa\xeb\x5a\xec\xda\xe1\x68" 7526 + "\xa8\x9d\x3c\x84\x7c\x05\x3d\x62" 7527 + "\x87\x8f\x03\x21\x28\x95\x0c\x89" 7528 + "\x25\x22\x4a\xb0\x93\xa9\x50\xa2" 7529 + "\x2f\x57\x6e\x18\x42\x19\x54\x0c" 7530 + "\x55\x67\xc6\x11\x49\xf4\x5c\xd2" 7531 + "\xe9\x3d\xdd\x8b\x48\x71\x21\x00" 7532 + "\xc3\x9a\x6c\x85\x74\x28\x83\x4a" 7533 + "\x1b\x31\x05\xe1\x06\x92\xe7\xda" 7534 + "\x85\x73\x78\x45\x20\x7f\xae\x13" 7535 + "\x7c\x33\x06\x22\xf4\x83\xf9\x35" 7536 + "\x3f\x6c\x71\xa8\x4e\x48\xbe\x9b" 7537 + "\xce\x8a\xba\xda\xbe\x28\x08\xf7" 7538 + "\xe2\x14\x8c\x71\xea\x72\xf9\x33" 7539 + "\xf2\x88\x3f\xd7\xbb\x69\x6c\x29" 7540 + "\x19\xdc\x84\xce\x1f\x12\x4f\xc8" 7541 + "\xaf\xa5\x04\xba\x5a\xab\xb0\xd9" 7542 + "\x14\x1f\x6c\x68\x98\x39\x89\x7a" 7543 + "\xd9\xd8\x2f\xdf\xa8\x47\x4a\x25" 7544 + "\xe2\xfb\x33\xf4\x59\x78\xe1\x68" 7545 + "\x85\xcf\xfe\x59\x20\xd4\x05\x1d" 7546 + "\x80\x99\xae\xbc\xca\xae\x0f\x2f" 7547 + "\x65\x43\x34\x8e\x7e\xac\xd3\x93" 7548 + "\x2f\xac\x6d\x14\x3d\x02\x07\x70" 7549 + "\x9d\xa4\xf3\x1b\x5c\x36\xfc\x01" 7550 + "\x73\x34\x85\x0c\x6c\xd6\xf1\xbd" 7551 + "\x3f\xdf\xee\xf5\xd9\xba\x56\xef" 7552 + "\xf4\x9b\x6b\xee\x9f\x5a\x78\x6d" 7553 + "\x32\x19\xf4\xf7\xf8\x4c\x69\x0b" 7554 + "\x4b\xbc\xbb\xb7\xf2\x85\xaf\x70" 7555 + "\x75\x24\x6c\x54\xa7\x0e\x4d\x1d" 7556 + "\x01\xbf\x08\xac\xcf\x7f\x2c\xe3" 7557 + "\x14\x89\x5e\x70\x5a\x99\x92\xcd" 7558 + "\x01\x84\xc8\xd2\xab\xe5\x4f\x58" 7559 + "\xe7\x0f\x2f\x0e\xff\x68\xea\xfd" 7560 + "\x15\xb3\x17\xe6\xb0\xe7\x85\xd8" 7561 + "\x23\x2e\x05\xc7\xc9\xc4\x46\x1f" 7562 + "\xe1\x9e\x49\x20\x23\x24\x4d\x7e" 7563 + "\x29\x65\xff\xf4\xb6\xfd\x1a\x85" 7564 + "\xc4\x16\xec\xfc\xea\x7b\xd6\x2c" 7565 + "\x43\xf8\xb7\xbf\x79\xc0\x85\xcd" 7566 + "\xef\xe1\x98\xd3\xa5\xf7\x90\x8c" 7567 + "\xe9\x7f\x80\x6b\xd2\xac\x4c\x30" 7568 + "\xa7\xc6\x61\x6c\xd2\xf9\x2c\xff" 7569 + "\x30\xbc\x22\x81\x7d\x93\x12\xe4" 7570 + "\x0a\xcd\xaf\xdd\xe8\xab\x0a\x1e" 7571 + "\x13\xa4\x27\xc3\x5f\xf7\x4b\xbb" 7572 + "\x37\x09\x4b\x91\x6f\x92\x4f\xaf" 7573 + "\x52\xee\xdf\xef\x09\x6f\xf7\x5c" 7574 + "\x6e\x12\x17\x72\x63\x57\xc7\xba" 7575 + "\x3b\x6b\x38\x32\x73\x1b\x9c\x80" 7576 + "\xc1\x7a\xc6\xcf\xcd\x35\xc0\x6b" 7577 + "\x31\x1a\x6b\xe9\xd8\x2c\x29\x3f" 7578 + "\x96\xfb\xb6\xcd\x13\x91\x3b\xc2" 7579 + "\xd2\xa3\x31\x8d\xa4\xcd\x57\xcd" 7580 + "\x13\x3d\x64\xfd\x06\xce\xe6\xdc" 7581 + "\x0c\x24\x43\x31\x40\x57\xf1\x72" 7582 + "\x17\xe3\x3a\x63\x6d\x35\xcf\x5d" 7583 + "\x97\x40\x59\xdd\xf7\x3c\x02\xf7" 7584 + "\x1c\x7e\x05\xbb\xa9\x0d\x01\xb1" 7585 + "\x8e\xc0\x30\xa9\x53\x24\xc9\x89" 7586 + "\x84\x6d\xaa\xd0\xcd\x91\xc2\x4d" 7587 + "\x91\xb0\x89\xe2\xbf\x83\x44\xaa" 7588 + "\x28\x72\x23\xa0\xc2\xad\xad\x1c" 7589 + "\xfc\x3f\x09\x7a\x0b\xdc\xc5\x1b" 7590 + "\x87\x13\xc6\x5b\x59\x8d\xf2\xc8" 7591 + "\xaf\xdf\x11\x95", 7658 7592 .rlen = 4100, 7659 7593 }, 7594 + }; 7595 + 7596 + /* 7597 + * CTS (Cipher Text Stealing) mode tests 7598 + */ 7599 + #define CTS_MODE_ENC_TEST_VECTORS 6 7600 + #define CTS_MODE_DEC_TEST_VECTORS 6 7601 + static struct cipher_testvec cts_mode_enc_tv_template[] = { 7602 + { /* from rfc3962 */ 7603 + .klen = 16, 7604 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7605 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7606 + .ilen = 17, 7607 + .input = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7608 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7609 + "\x20", 7610 + .rlen = 17, 7611 + .result = "\xc6\x35\x35\x68\xf2\xbf\x8c\xb4" 7612 + "\xd8\xa5\x80\x36\x2d\xa7\xff\x7f" 7613 + "\x97", 7614 + }, { 7615 + .klen = 16, 7616 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7617 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7618 + .ilen = 31, 7619 + .input = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7620 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7621 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7622 + "\x20\x47\x61\x75\x27\x73\x20", 7623 + .rlen = 31, 7624 + .result = "\xfc\x00\x78\x3e\x0e\xfd\xb2\xc1" 7625 + "\xd4\x45\xd4\xc8\xef\xf7\xed\x22" 7626 + "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7627 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5", 7628 + }, { 7629 + .klen = 16, 7630 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7631 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7632 + .ilen = 32, 7633 + .input = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7634 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7635 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7636 + "\x20\x47\x61\x75\x27\x73\x20\x43", 7637 + .rlen = 32, 7638 + .result = "\x39\x31\x25\x23\xa7\x86\x62\xd5" 7639 + "\xbe\x7f\xcb\xcc\x98\xeb\xf5\xa8" 7640 + "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7641 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5\x84", 7642 + }, { 7643 + .klen = 16, 7644 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7645 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7646 + .ilen = 47, 7647 + .input = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7648 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7649 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7650 + "\x20\x47\x61\x75\x27\x73\x20\x43" 7651 + "\x68\x69\x63\x6b\x65\x6e\x2c\x20" 7652 + "\x70\x6c\x65\x61\x73\x65\x2c", 7653 + .rlen = 47, 7654 + .result = "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7655 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5\x84" 7656 + "\xb3\xff\xfd\x94\x0c\x16\xa1\x8c" 7657 + "\x1b\x55\x49\xd2\xf8\x38\x02\x9e" 7658 + "\x39\x31\x25\x23\xa7\x86\x62\xd5" 7659 + "\xbe\x7f\xcb\xcc\x98\xeb\xf5", 7660 + }, { 7661 + .klen = 16, 7662 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7663 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7664 + .ilen = 48, 7665 + .input = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7666 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7667 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7668 + "\x20\x47\x61\x75\x27\x73\x20\x43" 7669 + "\x68\x69\x63\x6b\x65\x6e\x2c\x20" 7670 + "\x70\x6c\x65\x61\x73\x65\x2c\x20", 7671 + .rlen = 48, 7672 + .result = "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7673 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5\x84" 7674 + "\x9d\xad\x8b\xbb\x96\xc4\xcd\xc0" 7675 + "\x3b\xc1\x03\xe1\xa1\x94\xbb\xd8" 7676 + "\x39\x31\x25\x23\xa7\x86\x62\xd5" 7677 + "\xbe\x7f\xcb\xcc\x98\xeb\xf5\xa8", 7678 + }, { 7679 + .klen = 16, 7680 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7681 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7682 + .ilen = 64, 7683 + .input = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7684 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7685 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7686 + "\x20\x47\x61\x75\x27\x73\x20\x43" 7687 + "\x68\x69\x63\x6b\x65\x6e\x2c\x20" 7688 + "\x70\x6c\x65\x61\x73\x65\x2c\x20" 7689 + "\x61\x6e\x64\x20\x77\x6f\x6e\x74" 7690 + "\x6f\x6e\x20\x73\x6f\x75\x70\x2e", 7691 + .rlen = 64, 7692 + .result = "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7693 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5\x84" 7694 + "\x39\x31\x25\x23\xa7\x86\x62\xd5" 7695 + "\xbe\x7f\xcb\xcc\x98\xeb\xf5\xa8" 7696 + "\x48\x07\xef\xe8\x36\xee\x89\xa5" 7697 + "\x26\x73\x0d\xbc\x2f\x7b\xc8\x40" 7698 + "\x9d\xad\x8b\xbb\x96\xc4\xcd\xc0" 7699 + "\x3b\xc1\x03\xe1\xa1\x94\xbb\xd8", 7700 + } 7701 + }; 7702 + 7703 + static struct cipher_testvec cts_mode_dec_tv_template[] = { 7704 + { /* from rfc3962 */ 7705 + .klen = 16, 7706 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7707 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7708 + .rlen = 17, 7709 + .result = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7710 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7711 + "\x20", 7712 + .ilen = 17, 7713 + .input = "\xc6\x35\x35\x68\xf2\xbf\x8c\xb4" 7714 + "\xd8\xa5\x80\x36\x2d\xa7\xff\x7f" 7715 + "\x97", 7716 + }, { 7717 + .klen = 16, 7718 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7719 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7720 + .rlen = 31, 7721 + .result = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7722 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7723 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7724 + "\x20\x47\x61\x75\x27\x73\x20", 7725 + .ilen = 31, 7726 + .input = "\xfc\x00\x78\x3e\x0e\xfd\xb2\xc1" 7727 + "\xd4\x45\xd4\xc8\xef\xf7\xed\x22" 7728 + "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7729 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5", 7730 + }, { 7731 + .klen = 16, 7732 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7733 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7734 + .rlen = 32, 7735 + .result = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7736 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7737 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7738 + "\x20\x47\x61\x75\x27\x73\x20\x43", 7739 + .ilen = 32, 7740 + .input = "\x39\x31\x25\x23\xa7\x86\x62\xd5" 7741 + "\xbe\x7f\xcb\xcc\x98\xeb\xf5\xa8" 7742 + "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7743 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5\x84", 7744 + }, { 7745 + .klen = 16, 7746 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7747 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7748 + .rlen = 47, 7749 + .result = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7750 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7751 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7752 + "\x20\x47\x61\x75\x27\x73\x20\x43" 7753 + "\x68\x69\x63\x6b\x65\x6e\x2c\x20" 7754 + "\x70\x6c\x65\x61\x73\x65\x2c", 7755 + .ilen = 47, 7756 + .input = "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7757 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5\x84" 7758 + "\xb3\xff\xfd\x94\x0c\x16\xa1\x8c" 7759 + "\x1b\x55\x49\xd2\xf8\x38\x02\x9e" 7760 + "\x39\x31\x25\x23\xa7\x86\x62\xd5" 7761 + "\xbe\x7f\xcb\xcc\x98\xeb\xf5", 7762 + }, { 7763 + .klen = 16, 7764 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7765 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7766 + .rlen = 48, 7767 + .result = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7768 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7769 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7770 + "\x20\x47\x61\x75\x27\x73\x20\x43" 7771 + "\x68\x69\x63\x6b\x65\x6e\x2c\x20" 7772 + "\x70\x6c\x65\x61\x73\x65\x2c\x20", 7773 + .ilen = 48, 7774 + .input = "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7775 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5\x84" 7776 + "\x9d\xad\x8b\xbb\x96\xc4\xcd\xc0" 7777 + "\x3b\xc1\x03\xe1\xa1\x94\xbb\xd8" 7778 + "\x39\x31\x25\x23\xa7\x86\x62\xd5" 7779 + "\xbe\x7f\xcb\xcc\x98\xeb\xf5\xa8", 7780 + }, { 7781 + .klen = 16, 7782 + .key = "\x63\x68\x69\x63\x6b\x65\x6e\x20" 7783 + "\x74\x65\x72\x69\x79\x61\x6b\x69", 7784 + .rlen = 64, 7785 + .result = "\x49\x20\x77\x6f\x75\x6c\x64\x20" 7786 + "\x6c\x69\x6b\x65\x20\x74\x68\x65" 7787 + "\x20\x47\x65\x6e\x65\x72\x61\x6c" 7788 + "\x20\x47\x61\x75\x27\x73\x20\x43" 7789 + "\x68\x69\x63\x6b\x65\x6e\x2c\x20" 7790 + "\x70\x6c\x65\x61\x73\x65\x2c\x20" 7791 + "\x61\x6e\x64\x20\x77\x6f\x6e\x74" 7792 + "\x6f\x6e\x20\x73\x6f\x75\x70\x2e", 7793 + .ilen = 64, 7794 + .input = "\x97\x68\x72\x68\xd6\xec\xcc\xc0" 7795 + "\xc0\x7b\x25\xe2\x5e\xcf\xe5\x84" 7796 + "\x39\x31\x25\x23\xa7\x86\x62\xd5" 7797 + "\xbe\x7f\xcb\xcc\x98\xeb\xf5\xa8" 7798 + "\x48\x07\xef\xe8\x36\xee\x89\xa5" 7799 + "\x26\x73\x0d\xbc\x2f\x7b\xc8\x40" 7800 + "\x9d\xad\x8b\xbb\x96\xc4\xcd\xc0" 7801 + "\x3b\xc1\x03\xe1\xa1\x94\xbb\xd8", 7802 + } 7660 7803 }; 7661 7804 7662 7805 /* ··· 7853 7652 { 7854 7653 .inlen = 70, 7855 7654 .outlen = 38, 7856 - .input = "Join us now and share the software " 7857 - "Join us now and share the software ", 7858 - .output = { 0xf3, 0xca, 0xcf, 0xcc, 0x53, 0x28, 0x2d, 0x56, 7859 - 0xc8, 0xcb, 0x2f, 0x57, 0x48, 0xcc, 0x4b, 0x51, 7860 - 0x28, 0xce, 0x48, 0x2c, 0x4a, 0x55, 0x28, 0xc9, 7861 - 0x48, 0x55, 0x28, 0xce, 0x4f, 0x2b, 0x29, 0x07, 7862 - 0x71, 0xbc, 0x08, 0x2b, 0x01, 0x00 }, 7655 + .input = "Join us now and share the software " 7656 + "Join us now and share the software ", 7657 + .output = "\xf3\xca\xcf\xcc\x53\x28\x2d\x56" 7658 + "\xc8\xcb\x2f\x57\x48\xcc\x4b\x51" 7659 + "\x28\xce\x48\x2c\x4a\x55\x28\xc9" 7660 + "\x48\x55\x28\xce\x4f\x2b\x29\x07" 7661 + "\x71\xbc\x08\x2b\x01\x00", 7863 7662 }, { 7864 7663 .inlen = 191, 7865 7664 .outlen = 122, 7866 7665 .input = "This document describes a compression method based on the DEFLATE" 7867 - "compression algorithm. This document defines the application of " 7868 - "the DEFLATE algorithm to the IP Payload Compression Protocol.", 7869 - .output = { 0x5d, 0x8d, 0x31, 0x0e, 0xc2, 0x30, 0x10, 0x04, 7870 - 0xbf, 0xb2, 0x2f, 0xc8, 0x1f, 0x10, 0x04, 0x09, 7871 - 0x89, 0xc2, 0x85, 0x3f, 0x70, 0xb1, 0x2f, 0xf8, 7872 - 0x24, 0xdb, 0x67, 0xd9, 0x47, 0xc1, 0xef, 0x49, 7873 - 0x68, 0x12, 0x51, 0xae, 0x76, 0x67, 0xd6, 0x27, 7874 - 0x19, 0x88, 0x1a, 0xde, 0x85, 0xab, 0x21, 0xf2, 7875 - 0x08, 0x5d, 0x16, 0x1e, 0x20, 0x04, 0x2d, 0xad, 7876 - 0xf3, 0x18, 0xa2, 0x15, 0x85, 0x2d, 0x69, 0xc4, 7877 - 0x42, 0x83, 0x23, 0xb6, 0x6c, 0x89, 0x71, 0x9b, 7878 - 0xef, 0xcf, 0x8b, 0x9f, 0xcf, 0x33, 0xca, 0x2f, 7879 - 0xed, 0x62, 0xa9, 0x4c, 0x80, 0xff, 0x13, 0xaf, 7880 - 0x52, 0x37, 0xed, 0x0e, 0x52, 0x6b, 0x59, 0x02, 7881 - 0xd9, 0x4e, 0xe8, 0x7a, 0x76, 0x1d, 0x02, 0x98, 7882 - 0xfe, 0x8a, 0x87, 0x83, 0xa3, 0x4f, 0x56, 0x8a, 7883 - 0xb8, 0x9e, 0x8e, 0x5c, 0x57, 0xd3, 0xa0, 0x79, 7884 - 0xfa, 0x02 }, 7666 + "compression algorithm. This document defines the application of " 7667 + "the DEFLATE algorithm to the IP Payload Compression Protocol.", 7668 + .output = "\x5d\x8d\x31\x0e\xc2\x30\x10\x04" 7669 + "\xbf\xb2\x2f\xc8\x1f\x10\x04\x09" 7670 + "\x89\xc2\x85\x3f\x70\xb1\x2f\xf8" 7671 + "\x24\xdb\x67\xd9\x47\xc1\xef\x49" 7672 + "\x68\x12\x51\xae\x76\x67\xd6\x27" 7673 + "\x19\x88\x1a\xde\x85\xab\x21\xf2" 7674 + "\x08\x5d\x16\x1e\x20\x04\x2d\xad" 7675 + "\xf3\x18\xa2\x15\x85\x2d\x69\xc4" 7676 + "\x42\x83\x23\xb6\x6c\x89\x71\x9b" 7677 + "\xef\xcf\x8b\x9f\xcf\x33\xca\x2f" 7678 + "\xed\x62\xa9\x4c\x80\xff\x13\xaf" 7679 + "\x52\x37\xed\x0e\x52\x6b\x59\x02" 7680 + "\xd9\x4e\xe8\x7a\x76\x1d\x02\x98" 7681 + "\xfe\x8a\x87\x83\xa3\x4f\x56\x8a" 7682 + "\xb8\x9e\x8e\x5c\x57\xd3\xa0\x79" 7683 + "\xfa\x02", 7885 7684 }, 7886 7685 }; 7887 7686 ··· 7889 7688 { 7890 7689 .inlen = 122, 7891 7690 .outlen = 191, 7892 - .input = { 0x5d, 0x8d, 0x31, 0x0e, 0xc2, 0x30, 0x10, 0x04, 7893 - 0xbf, 0xb2, 0x2f, 0xc8, 0x1f, 0x10, 0x04, 0x09, 7894 - 0x89, 0xc2, 0x85, 0x3f, 0x70, 0xb1, 0x2f, 0xf8, 7895 - 0x24, 0xdb, 0x67, 0xd9, 0x47, 0xc1, 0xef, 0x49, 7896 - 0x68, 0x12, 0x51, 0xae, 0x76, 0x67, 0xd6, 0x27, 7897 - 0x19, 0x88, 0x1a, 0xde, 0x85, 0xab, 0x21, 0xf2, 7898 - 0x08, 0x5d, 0x16, 0x1e, 0x20, 0x04, 0x2d, 0xad, 7899 - 0xf3, 0x18, 0xa2, 0x15, 0x85, 0x2d, 0x69, 0xc4, 7900 - 0x42, 0x83, 0x23, 0xb6, 0x6c, 0x89, 0x71, 0x9b, 7901 - 0xef, 0xcf, 0x8b, 0x9f, 0xcf, 0x33, 0xca, 0x2f, 7902 - 0xed, 0x62, 0xa9, 0x4c, 0x80, 0xff, 0x13, 0xaf, 7903 - 0x52, 0x37, 0xed, 0x0e, 0x52, 0x6b, 0x59, 0x02, 7904 - 0xd9, 0x4e, 0xe8, 0x7a, 0x76, 0x1d, 0x02, 0x98, 7905 - 0xfe, 0x8a, 0x87, 0x83, 0xa3, 0x4f, 0x56, 0x8a, 7906 - 0xb8, 0x9e, 0x8e, 0x5c, 0x57, 0xd3, 0xa0, 0x79, 7907 - 0xfa, 0x02 }, 7691 + .input = "\x5d\x8d\x31\x0e\xc2\x30\x10\x04" 7692 + "\xbf\xb2\x2f\xc8\x1f\x10\x04\x09" 7693 + "\x89\xc2\x85\x3f\x70\xb1\x2f\xf8" 7694 + "\x24\xdb\x67\xd9\x47\xc1\xef\x49" 7695 + "\x68\x12\x51\xae\x76\x67\xd6\x27" 7696 + "\x19\x88\x1a\xde\x85\xab\x21\xf2" 7697 + "\x08\x5d\x16\x1e\x20\x04\x2d\xad" 7698 + "\xf3\x18\xa2\x15\x85\x2d\x69\xc4" 7699 + "\x42\x83\x23\xb6\x6c\x89\x71\x9b" 7700 + "\xef\xcf\x8b\x9f\xcf\x33\xca\x2f" 7701 + "\xed\x62\xa9\x4c\x80\xff\x13\xaf" 7702 + "\x52\x37\xed\x0e\x52\x6b\x59\x02" 7703 + "\xd9\x4e\xe8\x7a\x76\x1d\x02\x98" 7704 + "\xfe\x8a\x87\x83\xa3\x4f\x56\x8a" 7705 + "\xb8\x9e\x8e\x5c\x57\xd3\xa0\x79" 7706 + "\xfa\x02", 7908 7707 .output = "This document describes a compression method based on the DEFLATE" 7909 - "compression algorithm. This document defines the application of " 7910 - "the DEFLATE algorithm to the IP Payload Compression Protocol.", 7708 + "compression algorithm. This document defines the application of " 7709 + "the DEFLATE algorithm to the IP Payload Compression Protocol.", 7911 7710 }, { 7912 7711 .inlen = 38, 7913 7712 .outlen = 70, 7914 - .input = { 0xf3, 0xca, 0xcf, 0xcc, 0x53, 0x28, 0x2d, 0x56, 7915 - 0xc8, 0xcb, 0x2f, 0x57, 0x48, 0xcc, 0x4b, 0x51, 7916 - 0x28, 0xce, 0x48, 0x2c, 0x4a, 0x55, 0x28, 0xc9, 7917 - 0x48, 0x55, 0x28, 0xce, 0x4f, 0x2b, 0x29, 0x07, 7918 - 0x71, 0xbc, 0x08, 0x2b, 0x01, 0x00 }, 7713 + .input = "\xf3\xca\xcf\xcc\x53\x28\x2d\x56" 7714 + "\xc8\xcb\x2f\x57\x48\xcc\x4b\x51" 7715 + "\x28\xce\x48\x2c\x4a\x55\x28\xc9" 7716 + "\x48\x55\x28\xce\x4f\x2b\x29\x07" 7717 + "\x71\xbc\x08\x2b\x01\x00", 7919 7718 .output = "Join us now and share the software " 7920 - "Join us now and share the software ", 7719 + "Join us now and share the software ", 7921 7720 }, 7922 7721 }; 7923 7722 ··· 7932 7731 .inlen = 70, 7933 7732 .outlen = 46, 7934 7733 .input = "Join us now and share the software " 7935 - "Join us now and share the software ", 7936 - .output = { 0x00, 0x0d, 0x4a, 0x6f, 0x69, 0x6e, 0x20, 0x75, 7937 - 0x73, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x61, 0x6e, 7938 - 0x64, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x20, 7939 - 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 7940 - 0x77, 0x70, 0x01, 0x01, 0x4a, 0x6f, 0x69, 0x6e, 7941 - 0x3d, 0x88, 0x00, 0x11, 0x00, 0x00 }, 7734 + "Join us now and share the software ", 7735 + .output = "\x00\x0d\x4a\x6f\x69\x6e\x20\x75" 7736 + "\x73\x20\x6e\x6f\x77\x20\x61\x6e" 7737 + "\x64\x20\x73\x68\x61\x72\x65\x20" 7738 + "\x74\x68\x65\x20\x73\x6f\x66\x74" 7739 + "\x77\x70\x01\x01\x4a\x6f\x69\x6e" 7740 + "\x3d\x88\x00\x11\x00\x00", 7942 7741 }, { 7943 7742 .inlen = 159, 7944 7743 .outlen = 133, 7945 7744 .input = "This document describes a compression method based on the LZO " 7946 - "compression algorithm. This document defines the application of " 7947 - "the LZO algorithm used in UBIFS.", 7948 - .output = { 0x00, 0x2b, 0x54, 0x68, 0x69, 0x73, 0x20, 0x64, 7949 - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x20, 7950 - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 7951 - 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 7952 - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 7953 - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x62, 7954 - 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 7955 - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x5a, 0x4f, 0x2b, 7956 - 0x8c, 0x00, 0x0d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 7957 - 0x69, 0x74, 0x68, 0x6d, 0x2e, 0x20, 0x20, 0x54, 7958 - 0x68, 0x69, 0x73, 0x2a, 0x54, 0x01, 0x02, 0x66, 7959 - 0x69, 0x6e, 0x65, 0x73, 0x94, 0x06, 0x05, 0x61, 7960 - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x76, 7961 - 0x0a, 0x6f, 0x66, 0x88, 0x02, 0x60, 0x09, 0x27, 7962 - 0xf0, 0x00, 0x0c, 0x20, 0x75, 0x73, 0x65, 0x64, 7963 - 0x20, 0x69, 0x6e, 0x20, 0x55, 0x42, 0x49, 0x46, 7964 - 0x53, 0x2e, 0x11, 0x00, 0x00 }, 7745 + "compression algorithm. This document defines the application of " 7746 + "the LZO algorithm used in UBIFS.", 7747 + .output = "\x00\x2b\x54\x68\x69\x73\x20\x64" 7748 + "\x6f\x63\x75\x6d\x65\x6e\x74\x20" 7749 + "\x64\x65\x73\x63\x72\x69\x62\x65" 7750 + "\x73\x20\x61\x20\x63\x6f\x6d\x70" 7751 + "\x72\x65\x73\x73\x69\x6f\x6e\x20" 7752 + "\x6d\x65\x74\x68\x6f\x64\x20\x62" 7753 + "\x61\x73\x65\x64\x20\x6f\x6e\x20" 7754 + "\x74\x68\x65\x20\x4c\x5a\x4f\x2b" 7755 + "\x8c\x00\x0d\x61\x6c\x67\x6f\x72" 7756 + "\x69\x74\x68\x6d\x2e\x20\x20\x54" 7757 + "\x68\x69\x73\x2a\x54\x01\x02\x66" 7758 + "\x69\x6e\x65\x73\x94\x06\x05\x61" 7759 + "\x70\x70\x6c\x69\x63\x61\x74\x76" 7760 + "\x0a\x6f\x66\x88\x02\x60\x09\x27" 7761 + "\xf0\x00\x0c\x20\x75\x73\x65\x64" 7762 + "\x20\x69\x6e\x20\x55\x42\x49\x46" 7763 + "\x53\x2e\x11\x00\x00", 7965 7764 }, 7966 7765 }; 7967 7766 ··· 7969 7768 { 7970 7769 .inlen = 133, 7971 7770 .outlen = 159, 7972 - .input = { 0x00, 0x2b, 0x54, 0x68, 0x69, 0x73, 0x20, 0x64, 7973 - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x20, 7974 - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 7975 - 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 7976 - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 7977 - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x62, 7978 - 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 7979 - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x5a, 0x4f, 0x2b, 7980 - 0x8c, 0x00, 0x0d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 7981 - 0x69, 0x74, 0x68, 0x6d, 0x2e, 0x20, 0x20, 0x54, 7982 - 0x68, 0x69, 0x73, 0x2a, 0x54, 0x01, 0x02, 0x66, 7983 - 0x69, 0x6e, 0x65, 0x73, 0x94, 0x06, 0x05, 0x61, 7984 - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x76, 7985 - 0x0a, 0x6f, 0x66, 0x88, 0x02, 0x60, 0x09, 0x27, 7986 - 0xf0, 0x00, 0x0c, 0x20, 0x75, 0x73, 0x65, 0x64, 7987 - 0x20, 0x69, 0x6e, 0x20, 0x55, 0x42, 0x49, 0x46, 7988 - 0x53, 0x2e, 0x11, 0x00, 0x00 }, 7771 + .input = "\x00\x2b\x54\x68\x69\x73\x20\x64" 7772 + "\x6f\x63\x75\x6d\x65\x6e\x74\x20" 7773 + "\x64\x65\x73\x63\x72\x69\x62\x65" 7774 + "\x73\x20\x61\x20\x63\x6f\x6d\x70" 7775 + "\x72\x65\x73\x73\x69\x6f\x6e\x20" 7776 + "\x6d\x65\x74\x68\x6f\x64\x20\x62" 7777 + "\x61\x73\x65\x64\x20\x6f\x6e\x20" 7778 + "\x74\x68\x65\x20\x4c\x5a\x4f\x2b" 7779 + "\x8c\x00\x0d\x61\x6c\x67\x6f\x72" 7780 + "\x69\x74\x68\x6d\x2e\x20\x20\x54" 7781 + "\x68\x69\x73\x2a\x54\x01\x02\x66" 7782 + "\x69\x6e\x65\x73\x94\x06\x05\x61" 7783 + "\x70\x70\x6c\x69\x63\x61\x74\x76" 7784 + "\x0a\x6f\x66\x88\x02\x60\x09\x27" 7785 + "\xf0\x00\x0c\x20\x75\x73\x65\x64" 7786 + "\x20\x69\x6e\x20\x55\x42\x49\x46" 7787 + "\x53\x2e\x11\x00\x00", 7989 7788 .output = "This document describes a compression method based on the LZO " 7990 - "compression algorithm. This document defines the application of " 7991 - "the LZO algorithm used in UBIFS.", 7789 + "compression algorithm. This document defines the application of " 7790 + "the LZO algorithm used in UBIFS.", 7992 7791 }, { 7993 7792 .inlen = 46, 7994 7793 .outlen = 70, 7995 - .input = { 0x00, 0x0d, 0x4a, 0x6f, 0x69, 0x6e, 0x20, 0x75, 7996 - 0x73, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x61, 0x6e, 7997 - 0x64, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x20, 7998 - 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 7999 - 0x77, 0x70, 0x01, 0x01, 0x4a, 0x6f, 0x69, 0x6e, 8000 - 0x3d, 0x88, 0x00, 0x11, 0x00, 0x00 }, 7794 + .input = "\x00\x0d\x4a\x6f\x69\x6e\x20\x75" 7795 + "\x73\x20\x6e\x6f\x77\x20\x61\x6e" 7796 + "\x64\x20\x73\x68\x61\x72\x65\x20" 7797 + "\x74\x68\x65\x20\x73\x6f\x66\x74" 7798 + "\x77\x70\x01\x01\x4a\x6f\x69\x6e" 7799 + "\x3d\x88\x00\x11\x00\x00", 8001 7800 .output = "Join us now and share the software " 8002 - "Join us now and share the software ", 7801 + "Join us now and share the software ", 8003 7802 }, 8004 7803 }; 8005 7804 ··· 8010 7809 8011 7810 static struct hash_testvec michael_mic_tv_template[] = { 8012 7811 { 8013 - .key = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 7812 + .key = "\x00\x00\x00\x00\x00\x00\x00\x00", 8014 7813 .ksize = 8, 8015 - .plaintext = { }, 7814 + .plaintext = zeroed_string, 8016 7815 .psize = 0, 8017 - .digest = { 0x82, 0x92, 0x5c, 0x1c, 0xa1, 0xd1, 0x30, 0xb8 } 7816 + .digest = "\x82\x92\x5c\x1c\xa1\xd1\x30\xb8", 8018 7817 }, 8019 7818 { 8020 - .key = { 0x82, 0x92, 0x5c, 0x1c, 0xa1, 0xd1, 0x30, 0xb8 }, 7819 + .key = "\x82\x92\x5c\x1c\xa1\xd1\x30\xb8", 8021 7820 .ksize = 8, 8022 - .plaintext = { 'M' }, 7821 + .plaintext = "M", 8023 7822 .psize = 1, 8024 - .digest = { 0x43, 0x47, 0x21, 0xca, 0x40, 0x63, 0x9b, 0x3f } 7823 + .digest = "\x43\x47\x21\xca\x40\x63\x9b\x3f", 8025 7824 }, 8026 7825 { 8027 - .key = { 0x43, 0x47, 0x21, 0xca, 0x40, 0x63, 0x9b, 0x3f }, 7826 + .key = "\x43\x47\x21\xca\x40\x63\x9b\x3f", 8028 7827 .ksize = 8, 8029 - .plaintext = { 'M', 'i' }, 7828 + .plaintext = "Mi", 8030 7829 .psize = 2, 8031 - .digest = { 0xe8, 0xf9, 0xbe, 0xca, 0xe9, 0x7e, 0x5d, 0x29 } 7830 + .digest = "\xe8\xf9\xbe\xca\xe9\x7e\x5d\x29", 8032 7831 }, 8033 7832 { 8034 - .key = { 0xe8, 0xf9, 0xbe, 0xca, 0xe9, 0x7e, 0x5d, 0x29 }, 7833 + .key = "\xe8\xf9\xbe\xca\xe9\x7e\x5d\x29", 8035 7834 .ksize = 8, 8036 - .plaintext = { 'M', 'i', 'c' }, 7835 + .plaintext = "Mic", 8037 7836 .psize = 3, 8038 - .digest = { 0x90, 0x03, 0x8f, 0xc6, 0xcf, 0x13, 0xc1, 0xdb } 7837 + .digest = "\x90\x03\x8f\xc6\xcf\x13\xc1\xdb", 8039 7838 }, 8040 7839 { 8041 - .key = { 0x90, 0x03, 0x8f, 0xc6, 0xcf, 0x13, 0xc1, 0xdb }, 7840 + .key = "\x90\x03\x8f\xc6\xcf\x13\xc1\xdb", 8042 7841 .ksize = 8, 8043 - .plaintext = { 'M', 'i', 'c', 'h' }, 7842 + .plaintext = "Mich", 8044 7843 .psize = 4, 8045 - .digest = { 0xd5, 0x5e, 0x10, 0x05, 0x10, 0x12, 0x89, 0x86 } 7844 + .digest = "\xd5\x5e\x10\x05\x10\x12\x89\x86", 8046 7845 }, 8047 7846 { 8048 - .key = { 0xd5, 0x5e, 0x10, 0x05, 0x10, 0x12, 0x89, 0x86 }, 7847 + .key = "\xd5\x5e\x10\x05\x10\x12\x89\x86", 8049 7848 .ksize = 8, 8050 - .plaintext = { 'M', 'i', 'c', 'h', 'a', 'e', 'l' }, 7849 + .plaintext = "Michael", 8051 7850 .psize = 7, 8052 - .digest = { 0x0a, 0x94, 0x2b, 0x12, 0x4e, 0xca, 0xa5, 0x46 }, 7851 + .digest = "\x0a\x94\x2b\x12\x4e\xca\xa5\x46", 8053 7852 } 8054 7853 }; 8055 7854 ··· 8061 7860 static struct hash_testvec crc32c_tv_template[] = { 8062 7861 { 8063 7862 .psize = 0, 8064 - .digest = { 0x00, 0x00, 0x00, 0x00 } 7863 + .digest = "\x00\x00\x00\x00", 8065 7864 }, 8066 7865 { 8067 - .key = { 0x87, 0xa9, 0xcb, 0xed }, 7866 + .key = "\x87\xa9\xcb\xed", 8068 7867 .ksize = 4, 8069 7868 .psize = 0, 8070 - .digest = { 0x78, 0x56, 0x34, 0x12 }, 7869 + .digest = "\x78\x56\x34\x12", 8071 7870 }, 8072 7871 { 8073 - .key = { 0xff, 0xff, 0xff, 0xff }, 7872 + .key = "\xff\xff\xff\xff", 8074 7873 .ksize = 4, 8075 - .plaintext = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 8076 - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 8077 - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 8078 - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 8079 - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 }, 7874 + .plaintext = "\x01\x02\x03\x04\x05\x06\x07\x08" 7875 + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" 7876 + "\x11\x12\x13\x14\x15\x16\x17\x18" 7877 + "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20" 7878 + "\x21\x22\x23\x24\x25\x26\x27\x28", 8080 7879 .psize = 40, 8081 - .digest = { 0x7f, 0x15, 0x2c, 0x0e } 7880 + .digest = "\x7f\x15\x2c\x0e", 8082 7881 }, 8083 7882 { 8084 - .key = { 0xff, 0xff, 0xff, 0xff }, 7883 + .key = "\xff\xff\xff\xff", 8085 7884 .ksize = 4, 8086 - .plaintext = { 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 8087 - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 8088 - 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 8089 - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 8090 - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50 }, 7885 + .plaintext = "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30" 7886 + "\x31\x32\x33\x34\x35\x36\x37\x38" 7887 + "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40" 7888 + "\x41\x42\x43\x44\x45\x46\x47\x48" 7889 + "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50", 8091 7890 .psize = 40, 8092 - .digest = { 0xf6, 0xeb, 0x80, 0xe9 } 7891 + .digest = "\xf6\xeb\x80\xe9", 8093 7892 }, 8094 7893 { 8095 - .key = { 0xff, 0xff, 0xff, 0xff }, 7894 + .key = "\xff\xff\xff\xff", 8096 7895 .ksize = 4, 8097 - .plaintext = { 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 8098 - 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 8099 - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 8100 - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 8101 - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78 }, 7896 + .plaintext = "\x51\x52\x53\x54\x55\x56\x57\x58" 7897 + "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60" 7898 + "\x61\x62\x63\x64\x65\x66\x67\x68" 7899 + "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70" 7900 + "\x71\x72\x73\x74\x75\x76\x77\x78", 8102 7901 .psize = 40, 8103 - .digest = { 0xed, 0xbd, 0x74, 0xde } 7902 + .digest = "\xed\xbd\x74\xde", 8104 7903 }, 8105 7904 { 8106 - .key = { 0xff, 0xff, 0xff, 0xff }, 7905 + .key = "\xff\xff\xff\xff", 8107 7906 .ksize = 4, 8108 - .plaintext = { 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 8109 - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 8110 - 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 8111 - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 8112 - 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0 }, 7907 + .plaintext = "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80" 7908 + "\x81\x82\x83\x84\x85\x86\x87\x88" 7909 + "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90" 7910 + "\x91\x92\x93\x94\x95\x96\x97\x98" 7911 + "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0", 8113 7912 .psize = 40, 8114 - .digest = { 0x62, 0xc8, 0x79, 0xd5 } 7913 + .digest = "\x62\xc8\x79\xd5", 8115 7914 }, 8116 7915 { 8117 - .key = { 0xff, 0xff, 0xff, 0xff }, 7916 + .key = "\xff\xff\xff\xff", 8118 7917 .ksize = 4, 8119 - .plaintext = { 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 8120 - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 8121 - 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 8122 - 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 8123 - 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8 }, 7918 + .plaintext = "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8" 7919 + "\xa9\xaa\xab\xac\xad\xae\xaf\xb0" 7920 + "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8" 7921 + "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0" 7922 + "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8", 8124 7923 .psize = 40, 8125 - .digest = { 0xd0, 0x9a, 0x97, 0xba } 7924 + .digest = "\xd0\x9a\x97\xba", 8126 7925 }, 8127 7926 { 8128 - .key = { 0xff, 0xff, 0xff, 0xff }, 7927 + .key = "\xff\xff\xff\xff", 8129 7928 .ksize = 4, 8130 - .plaintext = { 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 8131 - 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 8132 - 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 8133 - 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 8134 - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0 }, 7929 + .plaintext = "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0" 7930 + "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8" 7931 + "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0" 7932 + "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8" 7933 + "\xe9\xea\xeb\xec\xed\xee\xef\xf0", 8135 7934 .psize = 40, 8136 - .digest = { 0x13, 0xd9, 0x29, 0x2b } 7935 + .digest = "\x13\xd9\x29\x2b", 8137 7936 }, 8138 7937 { 8139 - .key = { 0x80, 0xea, 0xd3, 0xf1 }, 7938 + .key = "\x80\xea\xd3\xf1", 8140 7939 .ksize = 4, 8141 - .plaintext = { 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 8142 - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 8143 - 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 8144 - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 8145 - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50 }, 7940 + .plaintext = "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30" 7941 + "\x31\x32\x33\x34\x35\x36\x37\x38" 7942 + "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40" 7943 + "\x41\x42\x43\x44\x45\x46\x47\x48" 7944 + "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50", 8146 7945 .psize = 40, 8147 - .digest = { 0x0c, 0xb5, 0xe2, 0xa2 } 7946 + .digest = "\x0c\xb5\xe2\xa2", 8148 7947 }, 8149 7948 { 8150 - .key = { 0xf3, 0x4a, 0x1d, 0x5d }, 7949 + .key = "\xf3\x4a\x1d\x5d", 8151 7950 .ksize = 4, 8152 - .plaintext = { 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 8153 - 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 8154 - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 8155 - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 8156 - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78 }, 7951 + .plaintext = "\x51\x52\x53\x54\x55\x56\x57\x58" 7952 + "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60" 7953 + "\x61\x62\x63\x64\x65\x66\x67\x68" 7954 + "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70" 7955 + "\x71\x72\x73\x74\x75\x76\x77\x78", 8157 7956 .psize = 40, 8158 - .digest = { 0xd1, 0x7f, 0xfb, 0xa6 } 7957 + .digest = "\xd1\x7f\xfb\xa6", 8159 7958 }, 8160 7959 { 8161 - .key = { 0x2e, 0x80, 0x04, 0x59 }, 7960 + .key = "\x2e\x80\x04\x59", 8162 7961 .ksize = 4, 8163 - .plaintext = { 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 8164 - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 8165 - 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 8166 - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 8167 - 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0 }, 7962 + .plaintext = "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80" 7963 + "\x81\x82\x83\x84\x85\x86\x87\x88" 7964 + "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90" 7965 + "\x91\x92\x93\x94\x95\x96\x97\x98" 7966 + "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0", 8168 7967 .psize = 40, 8169 - .digest = { 0x59, 0x33, 0xe6, 0x7a } 7968 + .digest = "\x59\x33\xe6\x7a", 8170 7969 }, 8171 7970 { 8172 - .key = { 0xa6, 0xcc, 0x19, 0x85 }, 7971 + .key = "\xa6\xcc\x19\x85", 8173 7972 .ksize = 4, 8174 - .plaintext = { 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 8175 - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 8176 - 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 8177 - 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 8178 - 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8 }, 7973 + .plaintext = "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8" 7974 + "\xa9\xaa\xab\xac\xad\xae\xaf\xb0" 7975 + "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8" 7976 + "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0" 7977 + "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8", 8179 7978 .psize = 40, 8180 - .digest = { 0xbe, 0x03, 0x01, 0xd2 } 7979 + .digest = "\xbe\x03\x01\xd2", 8181 7980 }, 8182 7981 { 8183 - .key = { 0x41, 0xfc, 0xfe, 0x2d }, 7982 + .key = "\x41\xfc\xfe\x2d", 8184 7983 .ksize = 4, 8185 - .plaintext = { 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 8186 - 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 8187 - 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 8188 - 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 8189 - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0 }, 7984 + .plaintext = "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0" 7985 + "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8" 7986 + "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0" 7987 + "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8" 7988 + "\xe9\xea\xeb\xec\xed\xee\xef\xf0", 8190 7989 .psize = 40, 8191 - .digest = { 0x75, 0xd3, 0xc5, 0x24 } 7990 + .digest = "\x75\xd3\xc5\x24", 8192 7991 }, 8193 7992 { 8194 - .key = { 0xff, 0xff, 0xff, 0xff }, 7993 + .key = "\xff\xff\xff\xff", 8195 7994 .ksize = 4, 8196 - .plaintext = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 8197 - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 8198 - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 8199 - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 8200 - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 8201 - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 8202 - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 8203 - 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 8204 - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 8205 - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 8206 - 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 8207 - 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 8208 - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 8209 - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 8210 - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 8211 - 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 8212 - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 8213 - 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 8214 - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 8215 - 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 8216 - 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 8217 - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 8218 - 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 8219 - 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 8220 - 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 8221 - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 8222 - 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 8223 - 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 8224 - 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 8225 - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0 }, 7995 + .plaintext = "\x01\x02\x03\x04\x05\x06\x07\x08" 7996 + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" 7997 + "\x11\x12\x13\x14\x15\x16\x17\x18" 7998 + "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20" 7999 + "\x21\x22\x23\x24\x25\x26\x27\x28" 8000 + "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30" 8001 + "\x31\x32\x33\x34\x35\x36\x37\x38" 8002 + "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40" 8003 + "\x41\x42\x43\x44\x45\x46\x47\x48" 8004 + "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50" 8005 + "\x51\x52\x53\x54\x55\x56\x57\x58" 8006 + "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60" 8007 + "\x61\x62\x63\x64\x65\x66\x67\x68" 8008 + "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70" 8009 + "\x71\x72\x73\x74\x75\x76\x77\x78" 8010 + "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80" 8011 + "\x81\x82\x83\x84\x85\x86\x87\x88" 8012 + "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90" 8013 + "\x91\x92\x93\x94\x95\x96\x97\x98" 8014 + "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0" 8015 + "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8" 8016 + "\xa9\xaa\xab\xac\xad\xae\xaf\xb0" 8017 + "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8" 8018 + "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0" 8019 + "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8" 8020 + "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0" 8021 + "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8" 8022 + "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0" 8023 + "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8" 8024 + "\xe9\xea\xeb\xec\xed\xee\xef\xf0", 8226 8025 .psize = 240, 8227 - .digest = { 0x75, 0xd3, 0xc5, 0x24 }, 8026 + .digest = "\x75\xd3\xc5\x24", 8228 8027 .np = 2, 8229 8028 .tap = { 31, 209 } 8230 8029 }, ··· 8233 8032 /* 8234 8033 * Cipher speed tests 8235 8034 */ 8236 - static struct cipher_speed aes_speed_template[] = { 8237 - { .klen = 16, .blen = 16, }, 8238 - { .klen = 16, .blen = 64, }, 8239 - { .klen = 16, .blen = 256, }, 8240 - { .klen = 16, .blen = 1024, }, 8241 - { .klen = 16, .blen = 8192, }, 8242 - { .klen = 24, .blen = 16, }, 8243 - { .klen = 24, .blen = 64, }, 8244 - { .klen = 24, .blen = 256, }, 8245 - { .klen = 24, .blen = 1024, }, 8246 - { .klen = 24, .blen = 8192, }, 8247 - { .klen = 32, .blen = 16, }, 8248 - { .klen = 32, .blen = 64, }, 8249 - { .klen = 32, .blen = 256, }, 8250 - { .klen = 32, .blen = 1024, }, 8251 - { .klen = 32, .blen = 8192, }, 8252 - 8253 - /* End marker */ 8254 - { .klen = 0, .blen = 0, } 8255 - }; 8256 - 8257 - static struct cipher_speed aes_lrw_speed_template[] = { 8258 - { .klen = 32, .blen = 16, }, 8259 - { .klen = 32, .blen = 64, }, 8260 - { .klen = 32, .blen = 256, }, 8261 - { .klen = 32, .blen = 1024, }, 8262 - { .klen = 32, .blen = 8192, }, 8263 - { .klen = 40, .blen = 16, }, 8264 - { .klen = 40, .blen = 64, }, 8265 - { .klen = 40, .blen = 256, }, 8266 - { .klen = 40, .blen = 1024, }, 8267 - { .klen = 40, .blen = 8192, }, 8268 - { .klen = 48, .blen = 16, }, 8269 - { .klen = 48, .blen = 64, }, 8270 - { .klen = 48, .blen = 256, }, 8271 - { .klen = 48, .blen = 1024, }, 8272 - { .klen = 48, .blen = 8192, }, 8273 - 8274 - /* End marker */ 8275 - { .klen = 0, .blen = 0, } 8276 - }; 8277 - 8278 - static struct cipher_speed aes_xts_speed_template[] = { 8279 - { .klen = 32, .blen = 16, }, 8280 - { .klen = 32, .blen = 64, }, 8281 - { .klen = 32, .blen = 256, }, 8282 - { .klen = 32, .blen = 1024, }, 8283 - { .klen = 32, .blen = 8192, }, 8284 - { .klen = 48, .blen = 16, }, 8285 - { .klen = 48, .blen = 64, }, 8286 - { .klen = 48, .blen = 256, }, 8287 - { .klen = 48, .blen = 1024, }, 8288 - { .klen = 48, .blen = 8192, }, 8289 - { .klen = 64, .blen = 16, }, 8290 - { .klen = 64, .blen = 64, }, 8291 - { .klen = 64, .blen = 256, }, 8292 - { .klen = 64, .blen = 1024, }, 8293 - { .klen = 64, .blen = 8192, }, 8294 - 8295 - /* End marker */ 8296 - { .klen = 0, .blen = 0, } 8297 - }; 8298 - 8299 - static struct cipher_speed des3_ede_speed_template[] = { 8300 - { .klen = 24, .blen = 16, }, 8301 - { .klen = 24, .blen = 64, }, 8302 - { .klen = 24, .blen = 256, }, 8303 - { .klen = 24, .blen = 1024, }, 8304 - { .klen = 24, .blen = 8192, }, 8305 - 8306 - /* End marker */ 8307 - { .klen = 0, .blen = 0, } 8308 - }; 8309 - 8310 - static struct cipher_speed twofish_speed_template[] = { 8311 - { .klen = 16, .blen = 16, }, 8312 - { .klen = 16, .blen = 64, }, 8313 - { .klen = 16, .blen = 256, }, 8314 - { .klen = 16, .blen = 1024, }, 8315 - { .klen = 16, .blen = 8192, }, 8316 - { .klen = 24, .blen = 16, }, 8317 - { .klen = 24, .blen = 64, }, 8318 - { .klen = 24, .blen = 256, }, 8319 - { .klen = 24, .blen = 1024, }, 8320 - { .klen = 24, .blen = 8192, }, 8321 - { .klen = 32, .blen = 16, }, 8322 - { .klen = 32, .blen = 64, }, 8323 - { .klen = 32, .blen = 256, }, 8324 - { .klen = 32, .blen = 1024, }, 8325 - { .klen = 32, .blen = 8192, }, 8326 - 8327 - /* End marker */ 8328 - { .klen = 0, .blen = 0, } 8329 - }; 8330 - 8331 - static struct cipher_speed blowfish_speed_template[] = { 8332 - /* Don't support blowfish keys > 256 bit in this test */ 8333 - { .klen = 8, .blen = 16, }, 8334 - { .klen = 8, .blen = 64, }, 8335 - { .klen = 8, .blen = 256, }, 8336 - { .klen = 8, .blen = 1024, }, 8337 - { .klen = 8, .blen = 8192, }, 8338 - { .klen = 32, .blen = 16, }, 8339 - { .klen = 32, .blen = 64, }, 8340 - { .klen = 32, .blen = 256, }, 8341 - { .klen = 32, .blen = 1024, }, 8342 - { .klen = 32, .blen = 8192, }, 8343 - 8344 - /* End marker */ 8345 - { .klen = 0, .blen = 0, } 8346 - }; 8347 - 8348 - static struct cipher_speed des_speed_template[] = { 8349 - { .klen = 8, .blen = 16, }, 8350 - { .klen = 8, .blen = 64, }, 8351 - { .klen = 8, .blen = 256, }, 8352 - { .klen = 8, .blen = 1024, }, 8353 - { .klen = 8, .blen = 8192, }, 8354 - 8355 - /* End marker */ 8356 - { .klen = 0, .blen = 0, } 8357 - }; 8035 + static u8 speed_template_8[] = {8, 0}; 8036 + static u8 speed_template_24[] = {24, 0}; 8037 + static u8 speed_template_8_32[] = {8, 32, 0}; 8038 + static u8 speed_template_16_32[] = {16, 32, 0}; 8039 + static u8 speed_template_16_24_32[] = {16, 24, 32, 0}; 8040 + static u8 speed_template_32_40_48[] = {32, 40, 48, 0}; 8041 + static u8 speed_template_32_48_64[] = {32, 48, 64, 0}; 8358 8042 8359 8043 /* 8360 8044 * Digest speed tests 8361 8045 */ 8362 8046 static struct hash_speed generic_hash_speed_template[] = { 8363 - { .blen = 16, .plen = 16, }, 8047 + { .blen = 16, .plen = 16, }, 8364 8048 { .blen = 64, .plen = 16, }, 8365 8049 { .blen = 64, .plen = 64, }, 8366 8050 { .blen = 256, .plen = 16, }, ··· 8270 8184 8271 8185 /* End marker */ 8272 8186 { .blen = 0, .plen = 0, } 8273 - }; 8274 - 8275 - static struct cipher_speed camellia_speed_template[] = { 8276 - { .klen = 16, .blen = 16, }, 8277 - { .klen = 16, .blen = 64, }, 8278 - { .klen = 16, .blen = 256, }, 8279 - { .klen = 16, .blen = 1024, }, 8280 - { .klen = 16, .blen = 8192, }, 8281 - { .klen = 24, .blen = 16, }, 8282 - { .klen = 24, .blen = 64, }, 8283 - { .klen = 24, .blen = 256, }, 8284 - { .klen = 24, .blen = 1024, }, 8285 - { .klen = 24, .blen = 8192, }, 8286 - { .klen = 32, .blen = 16, }, 8287 - { .klen = 32, .blen = 64, }, 8288 - { .klen = 32, .blen = 256, }, 8289 - { .klen = 32, .blen = 1024, }, 8290 - { .klen = 32, .blen = 8192, }, 8291 - 8292 - /* End marker */ 8293 - { .klen = 0, .blen = 0, } 8294 - }; 8295 - 8296 - static struct cipher_speed salsa20_speed_template[] = { 8297 - { .klen = 16, .blen = 16, }, 8298 - { .klen = 16, .blen = 64, }, 8299 - { .klen = 16, .blen = 256, }, 8300 - { .klen = 16, .blen = 1024, }, 8301 - { .klen = 16, .blen = 8192, }, 8302 - { .klen = 32, .blen = 16, }, 8303 - { .klen = 32, .blen = 64, }, 8304 - { .klen = 32, .blen = 256, }, 8305 - { .klen = 32, .blen = 1024, }, 8306 - { .klen = 32, .blen = 8192, }, 8307 - 8308 - /* End marker */ 8309 - { .klen = 0, .blen = 0, } 8310 8187 }; 8311 8188 8312 8189 #endif /* _CRYPTO_TCRYPT_H */
+4 -4
crypto/tea.c
··· 267 267 .cia_decrypt = xeta_decrypt } } 268 268 }; 269 269 270 - static int __init init(void) 270 + static int __init tea_mod_init(void) 271 271 { 272 272 int ret = 0; 273 273 ··· 292 292 return ret; 293 293 } 294 294 295 - static void __exit fini(void) 295 + static void __exit tea_mod_fini(void) 296 296 { 297 297 crypto_unregister_alg(&tea_alg); 298 298 crypto_unregister_alg(&xtea_alg); ··· 302 302 MODULE_ALIAS("xtea"); 303 303 MODULE_ALIAS("xeta"); 304 304 305 - module_init(init); 306 - module_exit(fini); 305 + module_init(tea_mod_init); 306 + module_exit(tea_mod_fini); 307 307 308 308 MODULE_LICENSE("GPL"); 309 309 MODULE_DESCRIPTION("TEA, XTEA & XETA Cryptographic Algorithms");
+4 -4
crypto/tgr192.c
··· 663 663 .dia_final = tgr128_final}} 664 664 }; 665 665 666 - static int __init init(void) 666 + static int __init tgr192_mod_init(void) 667 667 { 668 668 int ret = 0; 669 669 ··· 688 688 return ret; 689 689 } 690 690 691 - static void __exit fini(void) 691 + static void __exit tgr192_mod_fini(void) 692 692 { 693 693 crypto_unregister_alg(&tgr192); 694 694 crypto_unregister_alg(&tgr160); ··· 698 698 MODULE_ALIAS("tgr160"); 699 699 MODULE_ALIAS("tgr128"); 700 700 701 - module_init(init); 702 - module_exit(fini); 701 + module_init(tgr192_mod_init); 702 + module_exit(tgr192_mod_fini); 703 703 704 704 MODULE_LICENSE("GPL"); 705 705 MODULE_DESCRIPTION("Tiger Message Digest Algorithm");
+4 -4
crypto/twofish.c
··· 197 197 .cia_decrypt = twofish_decrypt } } 198 198 }; 199 199 200 - static int __init init(void) 200 + static int __init twofish_mod_init(void) 201 201 { 202 202 return crypto_register_alg(&alg); 203 203 } 204 204 205 - static void __exit fini(void) 205 + static void __exit twofish_mod_fini(void) 206 206 { 207 207 crypto_unregister_alg(&alg); 208 208 } 209 209 210 - module_init(init); 211 - module_exit(fini); 210 + module_init(twofish_mod_init); 211 + module_exit(twofish_mod_fini); 212 212 213 213 MODULE_LICENSE("GPL"); 214 214 MODULE_DESCRIPTION ("Twofish Cipher Algorithm");
+4 -4
crypto/wp512.c
··· 1146 1146 .dia_final = wp256_final } } 1147 1147 }; 1148 1148 1149 - static int __init init(void) 1149 + static int __init wp512_mod_init(void) 1150 1150 { 1151 1151 int ret = 0; 1152 1152 ··· 1172 1172 return ret; 1173 1173 } 1174 1174 1175 - static void __exit fini(void) 1175 + static void __exit wp512_mod_fini(void) 1176 1176 { 1177 1177 crypto_unregister_alg(&wp512); 1178 1178 crypto_unregister_alg(&wp384); ··· 1182 1182 MODULE_ALIAS("wp384"); 1183 1183 MODULE_ALIAS("wp256"); 1184 1184 1185 - module_init(init); 1186 - module_exit(fini); 1185 + module_init(wp512_mod_init); 1186 + module_exit(wp512_mod_fini); 1187 1187 1188 1188 MODULE_LICENSE("GPL"); 1189 1189 MODULE_DESCRIPTION("Whirlpool Message Digest Algorithm");
+13 -13
drivers/char/hw_random/omap-rng.c
··· 1 1 /* 2 - * drivers/char/hw_random/omap-rng.c 3 - * 4 - * RNG driver for TI OMAP CPU family 2 + * omap-rng.c - RNG driver for TI OMAP CPU family 5 3 * 6 4 * Author: Deepak Saxena <dsaxena@plexity.net> 7 5 * ··· 13 15 * This file is licensed under the terms of the GNU General Public 14 16 * License version 2. This program is licensed "as is" without any 15 17 * warranty of any kind, whether express or implied. 16 - * 17 - * TODO: 18 - * 19 - * - Make status updated be interrupt driven so we don't poll 20 - * 21 18 */ 22 19 23 20 #include <linux/module.h> ··· 48 55 static struct clk *rng_ick; 49 56 static struct platform_device *rng_dev; 50 57 51 - static u32 omap_rng_read_reg(int reg) 58 + static inline u32 omap_rng_read_reg(int reg) 52 59 { 53 60 return __raw_readl(rng_base + reg); 54 61 } 55 62 56 - static void omap_rng_write_reg(int reg, u32 val) 63 + static inline void omap_rng_write_reg(int reg, u32 val) 57 64 { 58 65 __raw_writel(val, rng_base + reg); 59 66 } 60 67 61 - /* REVISIT: Does the status bit really work on 16xx? */ 62 68 static int omap_rng_data_present(struct hwrng *rng, int wait) 63 69 { 64 70 int data, i; ··· 66 74 data = omap_rng_read_reg(RNG_STAT_REG) ? 0 : 1; 67 75 if (data || !wait) 68 76 break; 77 + /* RNG produces data fast enough (2+ MBit/sec, even 78 + * during "rngtest" loads, that these delays don't 79 + * seem to trigger. We *could* use the RNG IRQ, but 80 + * that'd be higher overhead ... so why bother? 81 + */ 69 82 udelay(10); 70 83 } 71 84 return data; ··· 98 101 * A bit ugly, and it will never actually happen but there can 99 102 * be only one RNG and this catches any bork 100 103 */ 101 - BUG_ON(rng_dev); 104 + if (rng_dev) 105 + return -EBUSY; 102 106 103 107 if (cpu_is_omap24xx()) { 104 108 rng_ick = clk_get(NULL, "rng_ick"); ··· 122 124 return -EBUSY; 123 125 124 126 dev_set_drvdata(&pdev->dev, mem); 125 - rng_base = (u32 __iomem *)io_p2v(res->start); 127 + rng_base = (u32 __force __iomem *)io_p2v(res->start); 126 128 127 129 ret = hwrng_register(&omap_rng_ops); 128 130 if (ret) { ··· 180 182 181 183 #endif 182 184 185 + /* work with hotplug and coldplug */ 186 + MODULE_ALIAS("platform:omap_rng"); 183 187 184 188 static struct platform_driver omap_rng_driver = { 185 189 .driver = {
+14
drivers/crypto/Kconfig
··· 27 27 tristate "PadLock driver for AES algorithm" 28 28 depends on CRYPTO_DEV_PADLOCK 29 29 select CRYPTO_BLKCIPHER 30 + select CRYPTO_AES 30 31 help 31 32 Use VIA PadLock for AES algorithm. 32 33 ··· 101 100 102 101 This version of SHA implements a 256 bit hash with 128 bits of 103 102 security against collision attacks. 103 + 104 + config CRYPTO_SHA512_S390 105 + tristate "SHA384 and SHA512 digest algorithm" 106 + depends on S390 107 + select CRYPTO_ALGAPI 108 + help 109 + This is the s390 hardware accelerated implementation of the 110 + SHA512 secure hash standard. 111 + 112 + This version of SHA implements a 512 bit hash with 256 bits of 113 + security against collision attacks. The code also includes SHA-384, 114 + a 384 bit hash with 192 bits of security against collision attacks. 115 + 104 116 105 117 config CRYPTO_DES_S390 106 118 tristate "DES and Triple DES cipher algorithms"
+19 -301
drivers/crypto/padlock-aes.c
··· 5 5 * 6 6 * Copyright (c) 2004 Michal Ludvig <michal@logix.cz> 7 7 * 8 - * Key expansion routine taken from crypto/aes_generic.c 9 - * 10 - * This program is free software; you can redistribute it and/or modify 11 - * it under the terms of the GNU General Public License as published by 12 - * the Free Software Foundation; either version 2 of the License, or 13 - * (at your option) any later version. 14 - * 15 - * --------------------------------------------------------------------------- 16 - * Copyright (c) 2002, Dr Brian Gladman <brg@gladman.me.uk>, Worcester, UK. 17 - * All rights reserved. 18 - * 19 - * LICENSE TERMS 20 - * 21 - * The free distribution and use of this software in both source and binary 22 - * form is allowed (with or without changes) provided that: 23 - * 24 - * 1. distributions of this source code include the above copyright 25 - * notice, this list of conditions and the following disclaimer; 26 - * 27 - * 2. distributions in binary form include the above copyright 28 - * notice, this list of conditions and the following disclaimer 29 - * in the documentation and/or other associated materials; 30 - * 31 - * 3. the copyright holder's name is not used to endorse products 32 - * built using this software without specific written permission. 33 - * 34 - * ALTERNATIVELY, provided that this notice is retained in full, this product 35 - * may be distributed under the terms of the GNU General Public License (GPL), 36 - * in which case the provisions of the GPL apply INSTEAD OF those given above. 37 - * 38 - * DISCLAIMER 39 - * 40 - * This software is provided 'as is' with no explicit or implied warranties 41 - * in respect of its properties, including, but not limited to, correctness 42 - * and/or fitness for purpose. 43 - * --------------------------------------------------------------------------- 44 8 */ 45 9 46 10 #include <crypto/algapi.h> ··· 17 53 #include <linux/kernel.h> 18 54 #include <asm/byteorder.h> 19 55 #include "padlock.h" 20 - 21 - #define AES_EXTENDED_KEY_SIZE 64 /* in uint32_t units */ 22 - #define AES_EXTENDED_KEY_SIZE_B (AES_EXTENDED_KEY_SIZE * sizeof(uint32_t)) 23 56 24 57 /* Control word. */ 25 58 struct cword { ··· 31 70 32 71 /* Whenever making any changes to the following 33 72 * structure *make sure* you keep E, d_data 34 - * and cword aligned on 16 Bytes boundaries!!! */ 73 + * and cword aligned on 16 Bytes boundaries and 74 + * the Hardware can access 16 * 16 bytes of E and d_data 75 + * (only the first 15 * 16 bytes matter but the HW reads 76 + * more). 77 + */ 35 78 struct aes_ctx { 79 + u32 E[AES_MAX_KEYLENGTH_U32] 80 + __attribute__ ((__aligned__(PADLOCK_ALIGNMENT))); 81 + u32 d_data[AES_MAX_KEYLENGTH_U32] 82 + __attribute__ ((__aligned__(PADLOCK_ALIGNMENT))); 36 83 struct { 37 84 struct cword encrypt; 38 85 struct cword decrypt; 39 86 } cword; 40 87 u32 *D; 41 - int key_length; 42 - u32 E[AES_EXTENDED_KEY_SIZE] 43 - __attribute__ ((__aligned__(PADLOCK_ALIGNMENT))); 44 - u32 d_data[AES_EXTENDED_KEY_SIZE] 45 - __attribute__ ((__aligned__(PADLOCK_ALIGNMENT))); 46 88 }; 47 - 48 - /* ====== Key management routines ====== */ 49 - 50 - static inline uint32_t 51 - generic_rotr32 (const uint32_t x, const unsigned bits) 52 - { 53 - const unsigned n = bits % 32; 54 - return (x >> n) | (x << (32 - n)); 55 - } 56 - 57 - static inline uint32_t 58 - generic_rotl32 (const uint32_t x, const unsigned bits) 59 - { 60 - const unsigned n = bits % 32; 61 - return (x << n) | (x >> (32 - n)); 62 - } 63 - 64 - #define rotl generic_rotl32 65 - #define rotr generic_rotr32 66 - 67 - /* 68 - * #define byte(x, nr) ((unsigned char)((x) >> (nr*8))) 69 - */ 70 - static inline uint8_t 71 - byte(const uint32_t x, const unsigned n) 72 - { 73 - return x >> (n << 3); 74 - } 75 - 76 - #define E_KEY ctx->E 77 - #define D_KEY ctx->D 78 - 79 - static uint8_t pow_tab[256]; 80 - static uint8_t log_tab[256]; 81 - static uint8_t sbx_tab[256]; 82 - static uint8_t isb_tab[256]; 83 - static uint32_t rco_tab[10]; 84 - static uint32_t ft_tab[4][256]; 85 - static uint32_t it_tab[4][256]; 86 - 87 - static uint32_t fl_tab[4][256]; 88 - static uint32_t il_tab[4][256]; 89 - 90 - static inline uint8_t 91 - f_mult (uint8_t a, uint8_t b) 92 - { 93 - uint8_t aa = log_tab[a], cc = aa + log_tab[b]; 94 - 95 - return pow_tab[cc + (cc < aa ? 1 : 0)]; 96 - } 97 - 98 - #define ff_mult(a,b) (a && b ? f_mult(a, b) : 0) 99 - 100 - #define f_rn(bo, bi, n, k) \ 101 - bo[n] = ft_tab[0][byte(bi[n],0)] ^ \ 102 - ft_tab[1][byte(bi[(n + 1) & 3],1)] ^ \ 103 - ft_tab[2][byte(bi[(n + 2) & 3],2)] ^ \ 104 - ft_tab[3][byte(bi[(n + 3) & 3],3)] ^ *(k + n) 105 - 106 - #define i_rn(bo, bi, n, k) \ 107 - bo[n] = it_tab[0][byte(bi[n],0)] ^ \ 108 - it_tab[1][byte(bi[(n + 3) & 3],1)] ^ \ 109 - it_tab[2][byte(bi[(n + 2) & 3],2)] ^ \ 110 - it_tab[3][byte(bi[(n + 1) & 3],3)] ^ *(k + n) 111 - 112 - #define ls_box(x) \ 113 - ( fl_tab[0][byte(x, 0)] ^ \ 114 - fl_tab[1][byte(x, 1)] ^ \ 115 - fl_tab[2][byte(x, 2)] ^ \ 116 - fl_tab[3][byte(x, 3)] ) 117 - 118 - #define f_rl(bo, bi, n, k) \ 119 - bo[n] = fl_tab[0][byte(bi[n],0)] ^ \ 120 - fl_tab[1][byte(bi[(n + 1) & 3],1)] ^ \ 121 - fl_tab[2][byte(bi[(n + 2) & 3],2)] ^ \ 122 - fl_tab[3][byte(bi[(n + 3) & 3],3)] ^ *(k + n) 123 - 124 - #define i_rl(bo, bi, n, k) \ 125 - bo[n] = il_tab[0][byte(bi[n],0)] ^ \ 126 - il_tab[1][byte(bi[(n + 3) & 3],1)] ^ \ 127 - il_tab[2][byte(bi[(n + 2) & 3],2)] ^ \ 128 - il_tab[3][byte(bi[(n + 1) & 3],3)] ^ *(k + n) 129 - 130 - static void 131 - gen_tabs (void) 132 - { 133 - uint32_t i, t; 134 - uint8_t p, q; 135 - 136 - /* log and power tables for GF(2**8) finite field with 137 - 0x011b as modular polynomial - the simplest prmitive 138 - root is 0x03, used here to generate the tables */ 139 - 140 - for (i = 0, p = 1; i < 256; ++i) { 141 - pow_tab[i] = (uint8_t) p; 142 - log_tab[p] = (uint8_t) i; 143 - 144 - p ^= (p << 1) ^ (p & 0x80 ? 0x01b : 0); 145 - } 146 - 147 - log_tab[1] = 0; 148 - 149 - for (i = 0, p = 1; i < 10; ++i) { 150 - rco_tab[i] = p; 151 - 152 - p = (p << 1) ^ (p & 0x80 ? 0x01b : 0); 153 - } 154 - 155 - for (i = 0; i < 256; ++i) { 156 - p = (i ? pow_tab[255 - log_tab[i]] : 0); 157 - q = ((p >> 7) | (p << 1)) ^ ((p >> 6) | (p << 2)); 158 - p ^= 0x63 ^ q ^ ((q >> 6) | (q << 2)); 159 - sbx_tab[i] = p; 160 - isb_tab[p] = (uint8_t) i; 161 - } 162 - 163 - for (i = 0; i < 256; ++i) { 164 - p = sbx_tab[i]; 165 - 166 - t = p; 167 - fl_tab[0][i] = t; 168 - fl_tab[1][i] = rotl (t, 8); 169 - fl_tab[2][i] = rotl (t, 16); 170 - fl_tab[3][i] = rotl (t, 24); 171 - 172 - t = ((uint32_t) ff_mult (2, p)) | 173 - ((uint32_t) p << 8) | 174 - ((uint32_t) p << 16) | ((uint32_t) ff_mult (3, p) << 24); 175 - 176 - ft_tab[0][i] = t; 177 - ft_tab[1][i] = rotl (t, 8); 178 - ft_tab[2][i] = rotl (t, 16); 179 - ft_tab[3][i] = rotl (t, 24); 180 - 181 - p = isb_tab[i]; 182 - 183 - t = p; 184 - il_tab[0][i] = t; 185 - il_tab[1][i] = rotl (t, 8); 186 - il_tab[2][i] = rotl (t, 16); 187 - il_tab[3][i] = rotl (t, 24); 188 - 189 - t = ((uint32_t) ff_mult (14, p)) | 190 - ((uint32_t) ff_mult (9, p) << 8) | 191 - ((uint32_t) ff_mult (13, p) << 16) | 192 - ((uint32_t) ff_mult (11, p) << 24); 193 - 194 - it_tab[0][i] = t; 195 - it_tab[1][i] = rotl (t, 8); 196 - it_tab[2][i] = rotl (t, 16); 197 - it_tab[3][i] = rotl (t, 24); 198 - } 199 - } 200 - 201 - #define star_x(x) (((x) & 0x7f7f7f7f) << 1) ^ ((((x) & 0x80808080) >> 7) * 0x1b) 202 - 203 - #define imix_col(y,x) \ 204 - u = star_x(x); \ 205 - v = star_x(u); \ 206 - w = star_x(v); \ 207 - t = w ^ (x); \ 208 - (y) = u ^ v ^ w; \ 209 - (y) ^= rotr(u ^ t, 8) ^ \ 210 - rotr(v ^ t, 16) ^ \ 211 - rotr(t,24) 212 - 213 - /* initialise the key schedule from the user supplied key */ 214 - 215 - #define loop4(i) \ 216 - { t = rotr(t, 8); t = ls_box(t) ^ rco_tab[i]; \ 217 - t ^= E_KEY[4 * i]; E_KEY[4 * i + 4] = t; \ 218 - t ^= E_KEY[4 * i + 1]; E_KEY[4 * i + 5] = t; \ 219 - t ^= E_KEY[4 * i + 2]; E_KEY[4 * i + 6] = t; \ 220 - t ^= E_KEY[4 * i + 3]; E_KEY[4 * i + 7] = t; \ 221 - } 222 - 223 - #define loop6(i) \ 224 - { t = rotr(t, 8); t = ls_box(t) ^ rco_tab[i]; \ 225 - t ^= E_KEY[6 * i]; E_KEY[6 * i + 6] = t; \ 226 - t ^= E_KEY[6 * i + 1]; E_KEY[6 * i + 7] = t; \ 227 - t ^= E_KEY[6 * i + 2]; E_KEY[6 * i + 8] = t; \ 228 - t ^= E_KEY[6 * i + 3]; E_KEY[6 * i + 9] = t; \ 229 - t ^= E_KEY[6 * i + 4]; E_KEY[6 * i + 10] = t; \ 230 - t ^= E_KEY[6 * i + 5]; E_KEY[6 * i + 11] = t; \ 231 - } 232 - 233 - #define loop8(i) \ 234 - { t = rotr(t, 8); ; t = ls_box(t) ^ rco_tab[i]; \ 235 - t ^= E_KEY[8 * i]; E_KEY[8 * i + 8] = t; \ 236 - t ^= E_KEY[8 * i + 1]; E_KEY[8 * i + 9] = t; \ 237 - t ^= E_KEY[8 * i + 2]; E_KEY[8 * i + 10] = t; \ 238 - t ^= E_KEY[8 * i + 3]; E_KEY[8 * i + 11] = t; \ 239 - t = E_KEY[8 * i + 4] ^ ls_box(t); \ 240 - E_KEY[8 * i + 12] = t; \ 241 - t ^= E_KEY[8 * i + 5]; E_KEY[8 * i + 13] = t; \ 242 - t ^= E_KEY[8 * i + 6]; E_KEY[8 * i + 14] = t; \ 243 - t ^= E_KEY[8 * i + 7]; E_KEY[8 * i + 15] = t; \ 244 - } 245 89 246 90 /* Tells whether the ACE is capable to generate 247 91 the extended key for a given key_len. */ ··· 87 321 struct aes_ctx *ctx = aes_ctx(tfm); 88 322 const __le32 *key = (const __le32 *)in_key; 89 323 u32 *flags = &tfm->crt_flags; 90 - uint32_t i, t, u, v, w; 91 - uint32_t P[AES_EXTENDED_KEY_SIZE]; 92 - uint32_t rounds; 324 + struct crypto_aes_ctx gen_aes; 93 325 94 326 if (key_len % 8) { 95 327 *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; 96 328 return -EINVAL; 97 329 } 98 - 99 - ctx->key_length = key_len; 100 330 101 331 /* 102 332 * If the hardware is capable of generating the extended key ··· 101 339 */ 102 340 ctx->D = ctx->E; 103 341 104 - E_KEY[0] = le32_to_cpu(key[0]); 105 - E_KEY[1] = le32_to_cpu(key[1]); 106 - E_KEY[2] = le32_to_cpu(key[2]); 107 - E_KEY[3] = le32_to_cpu(key[3]); 342 + ctx->E[0] = le32_to_cpu(key[0]); 343 + ctx->E[1] = le32_to_cpu(key[1]); 344 + ctx->E[2] = le32_to_cpu(key[2]); 345 + ctx->E[3] = le32_to_cpu(key[3]); 108 346 109 347 /* Prepare control words. */ 110 348 memset(&ctx->cword, 0, sizeof(ctx->cword)); ··· 123 361 ctx->cword.encrypt.keygen = 1; 124 362 ctx->cword.decrypt.keygen = 1; 125 363 126 - switch (key_len) { 127 - case 16: 128 - t = E_KEY[3]; 129 - for (i = 0; i < 10; ++i) 130 - loop4 (i); 131 - break; 132 - 133 - case 24: 134 - E_KEY[4] = le32_to_cpu(key[4]); 135 - t = E_KEY[5] = le32_to_cpu(key[5]); 136 - for (i = 0; i < 8; ++i) 137 - loop6 (i); 138 - break; 139 - 140 - case 32: 141 - E_KEY[4] = le32_to_cpu(key[4]); 142 - E_KEY[5] = le32_to_cpu(key[5]); 143 - E_KEY[6] = le32_to_cpu(key[6]); 144 - t = E_KEY[7] = le32_to_cpu(key[7]); 145 - for (i = 0; i < 7; ++i) 146 - loop8 (i); 147 - break; 364 + if (crypto_aes_expand_key(&gen_aes, in_key, key_len)) { 365 + *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; 366 + return -EINVAL; 148 367 } 149 368 150 - D_KEY[0] = E_KEY[0]; 151 - D_KEY[1] = E_KEY[1]; 152 - D_KEY[2] = E_KEY[2]; 153 - D_KEY[3] = E_KEY[3]; 154 - 155 - for (i = 4; i < key_len + 24; ++i) { 156 - imix_col (D_KEY[i], E_KEY[i]); 157 - } 158 - 159 - /* PadLock needs a different format of the decryption key. */ 160 - rounds = 10 + (key_len - 16) / 4; 161 - 162 - for (i = 0; i < rounds; i++) { 163 - P[((i + 1) * 4) + 0] = D_KEY[((rounds - i - 1) * 4) + 0]; 164 - P[((i + 1) * 4) + 1] = D_KEY[((rounds - i - 1) * 4) + 1]; 165 - P[((i + 1) * 4) + 2] = D_KEY[((rounds - i - 1) * 4) + 2]; 166 - P[((i + 1) * 4) + 3] = D_KEY[((rounds - i - 1) * 4) + 3]; 167 - } 168 - 169 - P[0] = E_KEY[(rounds * 4) + 0]; 170 - P[1] = E_KEY[(rounds * 4) + 1]; 171 - P[2] = E_KEY[(rounds * 4) + 2]; 172 - P[3] = E_KEY[(rounds * 4) + 3]; 173 - 174 - memcpy(D_KEY, P, AES_EXTENDED_KEY_SIZE_B); 175 - 369 + memcpy(ctx->E, gen_aes.key_enc, AES_MAX_KEYLENGTH); 370 + memcpy(ctx->D, gen_aes.key_dec, AES_MAX_KEYLENGTH); 176 371 return 0; 177 372 } 178 373 ··· 394 675 return -ENODEV; 395 676 } 396 677 397 - gen_tabs(); 398 678 if ((ret = crypto_register_alg(&aes_alg))) 399 679 goto aes_err; 400 680
+6 -2
include/crypto/aes.h
··· 14 14 #define AES_KEYSIZE_192 24 15 15 #define AES_KEYSIZE_256 32 16 16 #define AES_BLOCK_SIZE 16 17 + #define AES_MAX_KEYLENGTH (15 * 16) 18 + #define AES_MAX_KEYLENGTH_U32 (AES_MAX_KEYLENGTH / sizeof(u32)) 17 19 18 20 struct crypto_aes_ctx { 19 21 u32 key_length; 20 - u32 key_enc[60]; 21 - u32 key_dec[60]; 22 + u32 key_enc[AES_MAX_KEYLENGTH_U32]; 23 + u32 key_dec[AES_MAX_KEYLENGTH_U32]; 22 24 }; 23 25 24 26 extern u32 crypto_ft_tab[4][256]; ··· 29 27 extern u32 crypto_il_tab[4][256]; 30 28 31 29 int crypto_aes_set_key(struct crypto_tfm *tfm, const u8 *in_key, 30 + unsigned int key_len); 31 + int crypto_aes_expand_key(struct crypto_aes_ctx *ctx, const u8 *in_key, 32 32 unsigned int key_len); 33 33 #endif
-7
include/linux/crypto.h
··· 317 317 /* 318 318 * Algorithm query interface. 319 319 */ 320 - #ifdef CONFIG_CRYPTO 321 320 int crypto_has_alg(const char *name, u32 type, u32 mask); 322 - #else 323 - static inline int crypto_has_alg(const char *name, u32 type, u32 mask) 324 - { 325 - return 0; 326 - } 327 - #endif 328 321 329 322 /* 330 323 * Transforms: user-instantiated objects which encapsulate algorithms