| OLD | NEW |
| 1 /* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ | 1 /* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ |
| 2 /* ==================================================================== | 2 /* ==================================================================== |
| 3 * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. | 3 * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 | 51 |
| 52 #ifndef HEADER_AES_H | 52 #ifndef HEADER_AES_H |
| 53 #define HEADER_AES_H | 53 #define HEADER_AES_H |
| 54 | 54 |
| 55 #include <openssl/opensslconf.h> | 55 #include <openssl/opensslconf.h> |
| 56 | 56 |
| 57 #ifdef OPENSSL_NO_AES | 57 #ifdef OPENSSL_NO_AES |
| 58 #error AES is disabled. | 58 #error AES is disabled. |
| 59 #endif | 59 #endif |
| 60 | 60 |
| 61 #include <stddef.h> |
| 62 |
| 61 #define AES_ENCRYPT 1 | 63 #define AES_ENCRYPT 1 |
| 62 #define AES_DECRYPT 0 | 64 #define AES_DECRYPT 0 |
| 63 | 65 |
| 64 /* Because array size can't be a const in C, the following two are macros. | 66 /* Because array size can't be a const in C, the following two are macros. |
| 65 Both sizes are in bytes. */ | 67 Both sizes are in bytes. */ |
| 66 #define AES_MAXNR 14 | 68 #define AES_MAXNR 14 |
| 67 #define AES_BLOCK_SIZE 16 | 69 #define AES_BLOCK_SIZE 16 |
| 68 | 70 |
| 69 #ifdef OPENSSL_FIPS | |
| 70 #define FIPS_AES_SIZE_T int | |
| 71 #endif | |
| 72 | |
| 73 #ifdef __cplusplus | 71 #ifdef __cplusplus |
| 74 extern "C" { | 72 extern "C" { |
| 75 #endif | 73 #endif |
| 76 | 74 |
| 77 /* This should be a hidden type, but EVP requires that the size be known */ | 75 /* This should be a hidden type, but EVP requires that the size be known */ |
| 78 struct aes_key_st { | 76 struct aes_key_st { |
| 79 #ifdef AES_LONG | 77 #ifdef AES_LONG |
| 80 unsigned long rd_key[4 *(AES_MAXNR + 1)]; | 78 unsigned long rd_key[4 *(AES_MAXNR + 1)]; |
| 81 #else | 79 #else |
| 82 unsigned int rd_key[4 *(AES_MAXNR + 1)]; | 80 unsigned int rd_key[4 *(AES_MAXNR + 1)]; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 93 AES_KEY *key); | 91 AES_KEY *key); |
| 94 | 92 |
| 95 void AES_encrypt(const unsigned char *in, unsigned char *out, | 93 void AES_encrypt(const unsigned char *in, unsigned char *out, |
| 96 const AES_KEY *key); | 94 const AES_KEY *key); |
| 97 void AES_decrypt(const unsigned char *in, unsigned char *out, | 95 void AES_decrypt(const unsigned char *in, unsigned char *out, |
| 98 const AES_KEY *key); | 96 const AES_KEY *key); |
| 99 | 97 |
| 100 void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, | 98 void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, |
| 101 const AES_KEY *key, const int enc); | 99 const AES_KEY *key, const int enc); |
| 102 void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, | 100 void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, |
| 103 » const unsigned long length, const AES_KEY *key, | 101 » size_t length, const AES_KEY *key, |
| 104 unsigned char *ivec, const int enc); | 102 unsigned char *ivec, const int enc); |
| 105 void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, | 103 void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, |
| 106 » const unsigned long length, const AES_KEY *key, | 104 » size_t length, const AES_KEY *key, |
| 107 unsigned char *ivec, int *num, const int enc); | 105 unsigned char *ivec, int *num, const int enc); |
| 108 void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, | 106 void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, |
| 109 » const unsigned long length, const AES_KEY *key, | 107 » size_t length, const AES_KEY *key, |
| 110 unsigned char *ivec, int *num, const int enc); | 108 unsigned char *ivec, int *num, const int enc); |
| 111 void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, | 109 void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, |
| 112 » const unsigned long length, const AES_KEY *key, | 110 » size_t length, const AES_KEY *key, |
| 113 unsigned char *ivec, int *num, const int enc); | 111 unsigned char *ivec, int *num, const int enc); |
| 114 void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out, | |
| 115 const int nbits,const AES_KEY *key, | |
| 116 unsigned char *ivec,const int enc); | |
| 117 void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, | 112 void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, |
| 118 » const unsigned long length, const AES_KEY *key, | 113 » size_t length, const AES_KEY *key, |
| 119 unsigned char *ivec, int *num); | 114 unsigned char *ivec, int *num); |
| 120 void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, | 115 void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, |
| 121 » const unsigned long length, const AES_KEY *key, | 116 » size_t length, const AES_KEY *key, |
| 122 unsigned char ivec[AES_BLOCK_SIZE], | 117 unsigned char ivec[AES_BLOCK_SIZE], |
| 123 unsigned char ecount_buf[AES_BLOCK_SIZE], | 118 unsigned char ecount_buf[AES_BLOCK_SIZE], |
| 124 unsigned int *num); | 119 unsigned int *num); |
| 125 | |
| 126 /* For IGE, see also http://www.links.org/files/openssl-ige.pdf */ | |
| 127 /* NB: the IV is _two_ blocks long */ | 120 /* NB: the IV is _two_ blocks long */ |
| 128 void AES_ige_encrypt(const unsigned char *in, unsigned char *out, | 121 void AES_ige_encrypt(const unsigned char *in, unsigned char *out, |
| 129 » » const unsigned long length, const AES_KEY *key, | 122 » » size_t length, const AES_KEY *key, |
| 130 unsigned char *ivec, const int enc); | 123 unsigned char *ivec, const int enc); |
| 131 /* NB: the IV is _four_ blocks long */ | 124 /* NB: the IV is _four_ blocks long */ |
| 132 void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, | 125 void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, |
| 133 » » » const unsigned long length, const AES_KEY *key, | 126 » » » size_t length, const AES_KEY *key, |
| 134 const AES_KEY *key2, const unsigned char *ivec, | 127 const AES_KEY *key2, const unsigned char *ivec, |
| 135 const int enc); | 128 const int enc); |
| 136 | 129 |
| 137 int AES_wrap_key(AES_KEY *key, const unsigned char *iv, | 130 int AES_wrap_key(AES_KEY *key, const unsigned char *iv, |
| 138 unsigned char *out, | 131 unsigned char *out, |
| 139 const unsigned char *in, unsigned int inlen); | 132 const unsigned char *in, unsigned int inlen); |
| 140 int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, | 133 int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, |
| 141 unsigned char *out, | 134 unsigned char *out, |
| 142 const unsigned char *in, unsigned int inlen); | 135 const unsigned char *in, unsigned int inlen); |
| 143 | 136 |
| 137 |
| 144 #ifdef __cplusplus | 138 #ifdef __cplusplus |
| 145 } | 139 } |
| 146 #endif | 140 #endif |
| 147 | 141 |
| 148 #endif /* !HEADER_AES_H */ | 142 #endif /* !HEADER_AES_H */ |
| OLD | NEW |