| OLD | NEW |
| 1 /* ==================================================================== | 1 /* ==================================================================== |
| 2 * Copyright (c) 2001 The OpenSSL Project. All rights reserved. | 2 * Copyright (c) 2001 The OpenSSL Project. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * | 10 * |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 | 62 |
| 63 typedef struct | 63 typedef struct |
| 64 { | 64 { |
| 65 AES_KEY ks; | 65 AES_KEY ks; |
| 66 } EVP_AES_KEY; | 66 } EVP_AES_KEY; |
| 67 | 67 |
| 68 #define data(ctx) EVP_C_DATA(EVP_AES_KEY,ctx) | 68 #define data(ctx) EVP_C_DATA(EVP_AES_KEY,ctx) |
| 69 | 69 |
| 70 IMPLEMENT_BLOCK_CIPHER(aes_128, ks, AES, EVP_AES_KEY, | 70 IMPLEMENT_BLOCK_CIPHER(aes_128, ks, AES, EVP_AES_KEY, |
| 71 NID_aes_128, 16, 16, 16, 128, | 71 NID_aes_128, 16, 16, 16, 128, |
| 72 » » EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, | 72 » » 0, aes_init_key, NULL, |
| 73 » » aes_init_key, | 73 » » EVP_CIPHER_set_asn1_iv, |
| 74 » » NULL, NULL, NULL, NULL) | 74 » » EVP_CIPHER_get_asn1_iv, |
| 75 » » NULL) |
| 75 IMPLEMENT_BLOCK_CIPHER(aes_192, ks, AES, EVP_AES_KEY, | 76 IMPLEMENT_BLOCK_CIPHER(aes_192, ks, AES, EVP_AES_KEY, |
| 76 NID_aes_192, 16, 24, 16, 128, | 77 NID_aes_192, 16, 24, 16, 128, |
| 77 » » EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, | 78 » » 0, aes_init_key, NULL, |
| 78 » » aes_init_key, | 79 » » EVP_CIPHER_set_asn1_iv, |
| 79 » » NULL, NULL, NULL, NULL) | 80 » » EVP_CIPHER_get_asn1_iv, |
| 81 » » NULL) |
| 80 IMPLEMENT_BLOCK_CIPHER(aes_256, ks, AES, EVP_AES_KEY, | 82 IMPLEMENT_BLOCK_CIPHER(aes_256, ks, AES, EVP_AES_KEY, |
| 81 NID_aes_256, 16, 32, 16, 128, | 83 NID_aes_256, 16, 32, 16, 128, |
| 82 » » EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, | 84 » » 0, aes_init_key, NULL, |
| 83 » » aes_init_key, | 85 » » EVP_CIPHER_set_asn1_iv, |
| 84 » » NULL, NULL, NULL, NULL) | 86 » » EVP_CIPHER_get_asn1_iv, |
| 87 » » NULL) |
| 85 | 88 |
| 86 #define IMPLEMENT_AES_CFBR(ksize,cbits,flags)» IMPLEMENT_CFBR(aes,AES,EVP_AES_K
EY,ks,ksize,cbits,16,flags) | 89 #define IMPLEMENT_AES_CFBR(ksize,cbits)»IMPLEMENT_CFBR(aes,AES,EVP_AES_KEY,ks,ks
ize,cbits,16) |
| 87 | 90 |
| 88 IMPLEMENT_AES_CFBR(128,1,EVP_CIPH_FLAG_FIPS) | 91 IMPLEMENT_AES_CFBR(128,1) |
| 89 IMPLEMENT_AES_CFBR(192,1,EVP_CIPH_FLAG_FIPS) | 92 IMPLEMENT_AES_CFBR(192,1) |
| 90 IMPLEMENT_AES_CFBR(256,1,EVP_CIPH_FLAG_FIPS) | 93 IMPLEMENT_AES_CFBR(256,1) |
| 91 | 94 |
| 92 IMPLEMENT_AES_CFBR(128,8,EVP_CIPH_FLAG_FIPS) | 95 IMPLEMENT_AES_CFBR(128,8) |
| 93 IMPLEMENT_AES_CFBR(192,8,EVP_CIPH_FLAG_FIPS) | 96 IMPLEMENT_AES_CFBR(192,8) |
| 94 IMPLEMENT_AES_CFBR(256,8,EVP_CIPH_FLAG_FIPS) | 97 IMPLEMENT_AES_CFBR(256,8) |
| 95 | 98 |
| 96 static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | 99 static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, |
| 97 const unsigned char *iv, int enc) | 100 const unsigned char *iv, int enc) |
| 98 { | 101 { |
| 99 int ret; | 102 int ret; |
| 100 | 103 |
| 101 if ((ctx->cipher->flags & EVP_CIPH_MODE) == EVP_CIPH_CFB_MODE | 104 if ((ctx->cipher->flags & EVP_CIPH_MODE) == EVP_CIPH_CFB_MODE |
| 102 || (ctx->cipher->flags & EVP_CIPH_MODE) == EVP_CIPH_OFB_MODE | 105 || (ctx->cipher->flags & EVP_CIPH_MODE) == EVP_CIPH_OFB_MODE |
| 103 || enc) | 106 || enc) |
| 104 ret=AES_set_encrypt_key(key, ctx->key_len * 8, ctx->cipher_data)
; | 107 ret=AES_set_encrypt_key(key, ctx->key_len * 8, ctx->cipher_data)
; |
| 105 else | 108 else |
| 106 ret=AES_set_decrypt_key(key, ctx->key_len * 8, ctx->cipher_data)
; | 109 ret=AES_set_decrypt_key(key, ctx->key_len * 8, ctx->cipher_data)
; |
| 107 | 110 |
| 108 if(ret < 0) | 111 if(ret < 0) |
| 109 { | 112 { |
| 110 EVPerr(EVP_F_AES_INIT_KEY,EVP_R_AES_KEY_SETUP_FAILED); | 113 EVPerr(EVP_F_AES_INIT_KEY,EVP_R_AES_KEY_SETUP_FAILED); |
| 111 return 0; | 114 return 0; |
| 112 } | 115 } |
| 113 | 116 |
| 114 return 1; | 117 return 1; |
| 115 } | 118 } |
| 116 | 119 |
| 117 #endif | 120 #endif |
| OLD | NEW |