1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. 24 */ 25 26 #ifndef _FIPS_TEST_VECTORS_H 27 #define _FIPS_TEST_VECTORS_H 28 29 #ifdef __cplusplus 30 extern "C" { 31 #endif 32 33 #define DES3_KEY_SZ 24 34 #define DES_IV_LEN 8 35 #define DES_BLOCK_SZ 8 36 37 #define AES_BLOCK_SZ 16 38 #define AES_MAX_KEY_SZ 32 39 40 #define AES_CCM_TLEN 16 41 #define AES_CCM_NONCE_SZ 7 42 #define AES_CCM_AUTHDATA_SZ 30 43 #define AES_CCM_DATA_SZ 32 /* Payload size */ 44 #define AES_CCM_CIPHER_SZ (AES_CCM_DATA_SZ + AES_CCM_TLEN) 45 46 #define AES_GCM_IV_LEN 12 47 #define AES_GCM_AAD_LEN 16 48 #define AES_GCM_DATA_SZ 16 49 #define AES_GCM_CIPHER_SZ ((AES_GCM_DATA_SZ) + ((AES_GMAC_TAG_BITS) / 8)) 50 51 #define AES_GMAC_IV_LEN 12 52 #define AES_GMAC_AAD_LEN 16 53 #define AES_GMAC_TAG_BITS 128 54 #define AES_GMAC_TAG_SZ ((AES_GMAC_TAG_BITS) / 8) 55 #define AES_GMAC_CIPHER_SZ (AES_GMAC_TAG_SZ) 56 57 #define SHA1_HASH_SZ 20 58 #define SHA256_HASH_SZ 32 59 #define SHA384_HASH_SZ 48 60 #define SHA512_HASH_SZ 64 61 62 63 extern uint8_t des3_known_key[DES3_KEY_SZ]; 64 extern uint8_t des3_cbc_known_iv[DES_IV_LEN]; 65 extern uint8_t des3_ecb_known_plaintext[DES_BLOCK_SZ]; 66 extern uint8_t des3_cbc_known_plaintext[DES_BLOCK_SZ]; 67 extern uint8_t des3_ecb_known_ciphertext[DES_BLOCK_SZ]; 68 extern uint8_t des3_cbc_known_ciphertext[DES_BLOCK_SZ]; 69 70 extern uint8_t aes_known_key[AES_MAX_KEY_SZ]; 71 extern uint8_t aes_cbc_known_initialization_vector[AES_BLOCK_SZ]; 72 extern uint8_t aes_known_plaintext[AES_BLOCK_SZ]; 73 extern uint8_t aes_ecb128_known_ciphertext[AES_BLOCK_SZ]; 74 extern uint8_t aes_cbc128_known_ciphertext[AES_BLOCK_SZ]; 75 extern uint8_t aes_ecb192_known_ciphertext[AES_BLOCK_SZ]; 76 extern uint8_t aes_cbc192_known_ciphertext[AES_BLOCK_SZ]; 77 extern uint8_t aes_ecb256_known_ciphertext[AES_BLOCK_SZ]; 78 extern uint8_t aes_cbc256_known_ciphertext[AES_BLOCK_SZ]; 79 80 extern uint8_t aes_ctr128_known_key[16]; 81 extern uint8_t aes_ctr192_known_key[24]; 82 extern uint8_t aes_ctr256_known_key[32]; 83 extern uint8_t aes_ctr_known_counter[AES_BLOCK_SZ]; 84 extern uint8_t aes_ctr_known_plaintext[AES_BLOCK_SZ]; 85 extern uint8_t aes_ctr128_known_ciphertext[AES_BLOCK_SZ]; 86 extern uint8_t aes_ctr192_known_ciphertext[AES_BLOCK_SZ]; 87 extern uint8_t aes_ctr256_known_ciphertext[AES_BLOCK_SZ]; 88 89 extern uint8_t aes_ccm128_known_key[16]; 90 extern uint8_t aes_ccm192_known_key[24]; 91 extern uint8_t aes_ccm256_known_key[32]; 92 extern uint8_t aes_ccm128_known_nonce[AES_CCM_NONCE_SZ]; 93 extern uint8_t aes_ccm192_known_nonce[AES_CCM_NONCE_SZ]; 94 extern uint8_t aes_ccm256_known_nonce[AES_CCM_NONCE_SZ]; 95 extern uint8_t aes_ccm128_known_adata[AES_CCM_AUTHDATA_SZ]; 96 extern uint8_t aes_ccm192_known_adata[AES_CCM_AUTHDATA_SZ]; 97 extern uint8_t aes_ccm256_known_adata[AES_CCM_AUTHDATA_SZ]; 98 extern uint8_t aes_ccm128_known_plaintext[AES_CCM_DATA_SZ]; 99 extern uint8_t aes_ccm192_known_plaintext[AES_CCM_DATA_SZ]; 100 extern uint8_t aes_ccm256_known_plaintext[AES_CCM_DATA_SZ]; 101 extern uint8_t aes_ccm128_known_ciphertext[AES_CCM_CIPHER_SZ]; 102 extern uint8_t aes_ccm192_known_ciphertext[AES_CCM_CIPHER_SZ]; 103 extern uint8_t aes_ccm256_known_ciphertext[AES_CCM_CIPHER_SZ]; 104 105 extern uint8_t aes_gcm128_known_key[16]; 106 extern uint8_t aes_gcm192_known_key[24]; 107 extern uint8_t aes_gcm256_known_key[32]; 108 extern uint8_t aes_gcm128_known_iv[AES_GCM_IV_LEN]; 109 extern uint8_t aes_gcm192_known_iv[AES_GCM_IV_LEN]; 110 extern uint8_t aes_gcm256_known_iv[AES_GCM_IV_LEN]; 111 extern uint8_t aes_gcm128_known_adata[AES_GCM_AAD_LEN]; 112 extern uint8_t aes_gcm192_known_adata[AES_GCM_AAD_LEN]; 113 extern uint8_t aes_gcm256_known_adata[AES_GCM_AAD_LEN]; 114 extern uint8_t aes_gcm128_known_plaintext[AES_BLOCK_SZ]; 115 extern uint8_t aes_gcm192_known_plaintext[AES_BLOCK_SZ]; 116 extern uint8_t aes_gcm256_known_plaintext[AES_BLOCK_SZ]; 117 extern uint8_t aes_gcm128_known_ciphertext[32]; 118 extern uint8_t aes_gcm192_known_ciphertext[32]; 119 extern uint8_t aes_gcm256_known_ciphertext[32]; 120 121 extern uint8_t aes_gmac128_known_key[16]; 122 extern uint8_t aes_gmac192_known_key[24]; 123 extern uint8_t aes_gmac256_known_key[32]; 124 extern uint8_t aes_gmac128_known_iv[AES_GMAC_IV_LEN]; 125 extern uint8_t aes_gmac192_known_iv[AES_GMAC_IV_LEN]; 126 extern uint8_t aes_gmac256_known_iv[AES_GMAC_IV_LEN]; 127 extern uint8_t aes_gmac128_known_tag[AES_GMAC_TAG_SZ]; 128 extern uint8_t aes_gmac192_known_tag[AES_GMAC_TAG_SZ]; 129 extern uint8_t aes_gmac256_known_tag[AES_GMAC_TAG_SZ]; 130 extern uint8_t aes_gmac128_known_adata[AES_GMAC_AAD_LEN]; 131 extern uint8_t aes_gmac192_known_adata[AES_GMAC_AAD_LEN]; 132 extern uint8_t aes_gmac256_known_adata[AES_GMAC_AAD_LEN]; 133 134 135 extern uint8_t sha1_known_hash_message[64]; 136 extern uint8_t sha1_known_digest[SHA1_HASH_SZ]; 137 extern uint8_t HMAC_known_secret_key[8]; 138 extern uint8_t known_SHA1_hmac[10]; 139 extern uint8_t hmac_sha1_known_hash_message[128]; 140 extern uint8_t sha1_hmac_known_secret_key_2[SHA1_HASH_SZ]; 141 extern uint8_t sha1_hmac_known_hash_message_2[9]; 142 extern uint8_t sha1_known_hmac_2[SHA1_HASH_SZ]; 143 144 extern uint8_t sha256_known_hash_message[64]; 145 extern uint8_t known_sha256_digest[SHA256_HASH_SZ]; 146 extern uint8_t sha384_known_hash_message[64]; 147 extern uint8_t known_sha384_digest[SHA384_HASH_SZ]; 148 extern uint8_t sha512_known_hash_message[64]; 149 extern uint8_t known_sha512_digest[SHA512_HASH_SZ]; 150 extern uint8_t sha256_hmac_known_hash_message[64]; 151 extern uint8_t sha256_hmac_known_secret_key[36]; 152 extern uint8_t known_sha256_hmac[SHA256_HASH_SZ]; 153 extern uint8_t sha256_hmac_known_hash_message_1[28]; 154 extern uint8_t sha256_hmac_known_secret_key_1[4]; 155 extern uint8_t sha256_known_hmac_1[SHA256_HASH_SZ]; 156 extern uint8_t sha256_hmac_known_hash_message_2[50]; 157 extern uint8_t sha256_hmac_known_secret_key_2[25]; 158 extern uint8_t sha256_known_hmac_2[SHA256_HASH_SZ]; 159 extern uint8_t sha384_hmac_known_secret_key[16]; 160 extern uint8_t sha384_hmac_known_hash_message[128]; 161 extern uint8_t known_sha384_hmac[SHA384_HASH_SZ]; 162 extern uint8_t sha512_hmac_known_secret_key[20]; 163 extern uint8_t sha512_hmac_known_hash_message[128]; 164 extern uint8_t known_sha512_hmac[SHA512_HASH_SZ]; 165 166 167 extern uint8_t rsa_modulus_1024[128]; 168 extern uint8_t rsa_public_exponent_1024[3]; 169 extern uint8_t rsa_private_exponent_1024[128]; 170 extern uint8_t rsa_prime1_1024[64]; 171 extern uint8_t rsa_prime2_1024[64]; 172 extern uint8_t rsa_exponent1_1024[64]; 173 extern uint8_t rsa_exponent2_1024[64]; 174 extern uint8_t rsa_coefficient_1024[64]; 175 extern uint8_t rsa_modulus_2048[256]; 176 extern uint8_t rsa_public_exponent_2048[1]; 177 extern uint8_t rsa_private_exponent_2048[256]; 178 extern uint8_t rsa_prime1_2048[128]; 179 extern uint8_t rsa_prime2_2048[128]; 180 extern uint8_t rsa_exponent1_2048[128]; 181 extern uint8_t rsa_exponent2_2048[128]; 182 extern uint8_t rsa_coefficient_2048[128]; 183 extern uint8_t rsa_known_plaintext_msg[128]; 184 extern uint8_t rsa_x509_known_signature_1024[128]; 185 extern uint8_t rsa_pkcs_known_signature_1024[128]; 186 extern uint8_t rsa_x509_known_signature_2048[256]; 187 extern uint8_t rsa_pkcs_known_signature_2048[256]; 188 189 extern uint8_t dsa_base_1024[128]; 190 extern uint8_t dsa_prime_1024[128]; 191 extern uint8_t dsa_subprime_1024[20]; 192 extern uint8_t dsa_privalue_1024[20]; 193 extern uint8_t dsa_pubvalue_1024[128]; 194 extern uint8_t dsa_known_data[20]; 195 196 extern uint8_t ec_param_oid_secp192r1[10]; 197 extern uint8_t ec_point_p192r1[49]; 198 extern uint8_t ec_value_p192r1[24]; 199 extern uint8_t ec_param_oid_secp224r1[7]; 200 extern uint8_t ec_point_p224r1[57]; 201 extern uint8_t ec_value_p224r1[28]; 202 extern uint8_t ec_param_oid_secp256r1[10]; 203 extern uint8_t ec_point_p256r1[65]; 204 extern uint8_t ec_value_p256r1[32]; 205 extern uint8_t ec_param_oid_secp384r1[7]; 206 extern uint8_t ec_point_p384r1[97]; 207 extern uint8_t ec_value_p384r1[48]; 208 extern uint8_t ec_param_oid_secp521r1[7]; 209 extern uint8_t ec_point_p521r1[133]; 210 extern uint8_t ec_value_p521r1[66]; 211 extern uint8_t ec_param_oid_sect163k1[7]; 212 extern uint8_t ec_point_t163k1[43]; 213 extern uint8_t ec_value_t163k1[21]; 214 extern uint8_t ec_param_oid_sect233k1[7]; 215 extern uint8_t ec_point_t233k1[61]; 216 extern uint8_t ec_value_t233k1[30]; 217 extern uint8_t ec_param_oid_sect283k1[7]; 218 extern uint8_t ec_point_t283k1[73]; 219 extern uint8_t ec_value_t283k1[36]; 220 extern uint8_t ec_param_oid_sect409k1[7]; 221 extern uint8_t ec_point_t409k1[105]; 222 extern uint8_t ec_value_t409k1[52]; 223 extern uint8_t ec_param_oid_sect571k1[7]; 224 extern uint8_t ec_point_t571k1[145]; 225 extern uint8_t ec_value_t571k1[72]; 226 extern uint8_t ec_param_oid_sect163r2[7]; 227 extern uint8_t ec_point_t163r2[43]; 228 extern uint8_t ec_value_t163r2[21]; 229 extern uint8_t ec_param_oid_sect233r1[7]; 230 extern uint8_t ec_point_t233r1[61]; 231 extern uint8_t ec_value_t233r1[30]; 232 extern uint8_t ec_param_oid_sect283r1[7]; 233 extern uint8_t ec_point_t283r1[73]; 234 extern uint8_t ec_value_t283r1[36]; 235 extern uint8_t ec_param_oid_sect409r1[7]; 236 extern uint8_t ec_point_t409r1[105]; 237 extern uint8_t ec_value_t409r1[52]; 238 extern uint8_t ec_param_oid_sect571r1[7]; 239 extern uint8_t ec_point_t571r1[145]; 240 extern uint8_t ec_value_t571r1[72]; 241 242 #ifdef __cplusplus 243 } 244 #endif 245 246 #endif /* _FIPS_TEST_VECTORS_H */ 247