74
75 typedef struct
76 {
77 AES_KEY ks;
78 SHA_CTX head,tail,md;
79 size_t payload_length; /* AAD length in decrypt case */
80 union {
81 unsigned int tls_ver;
82 unsigned char tls_aad[16]; /* 13 used */
83 } aux;
84 } EVP_AES_HMAC_SHA1;
85
86 #define NO_PAYLOAD_LENGTH ((size_t)-1)
87
88 #if defined(AES_ASM) && ( \
89 defined(__x86_64) || defined(__x86_64__) || \
90 defined(_M_AMD64) || defined(_M_X64) || \
91 defined(__INTEL__) )
92
93 #if defined(__GNUC__) && __GNUC__>=2 && !defined(PEDANTIC)
94 # define BSWAP(x) ({ unsigned int r=(x); asm ("bswapl %0":"=r"(r):"0"(r)); r; })
95 #endif
96
97 extern unsigned int OPENSSL_ia32cap_P[2];
98 #define AESNI_CAPABLE (1<<(57-32))
99
100 int aesni_set_encrypt_key(const unsigned char *userKey, int bits,
101 AES_KEY *key);
102 int aesni_set_decrypt_key(const unsigned char *userKey, int bits,
103 AES_KEY *key);
104
105 void aesni_cbc_encrypt(const unsigned char *in,
106 unsigned char *out,
107 size_t length,
108 const AES_KEY *key,
109 unsigned char *ivec, int enc);
110
111 void aesni_cbc_sha1_enc (const void *inp, void *out, size_t blocks,
112 const AES_KEY *key, unsigned char iv[16],
113 SHA_CTX *ctx,const void *in0);
114
|
74
75 typedef struct
76 {
77 AES_KEY ks;
78 SHA_CTX head,tail,md;
79 size_t payload_length; /* AAD length in decrypt case */
80 union {
81 unsigned int tls_ver;
82 unsigned char tls_aad[16]; /* 13 used */
83 } aux;
84 } EVP_AES_HMAC_SHA1;
85
86 #define NO_PAYLOAD_LENGTH ((size_t)-1)
87
88 #if defined(AES_ASM) && ( \
89 defined(__x86_64) || defined(__x86_64__) || \
90 defined(_M_AMD64) || defined(_M_X64) || \
91 defined(__INTEL__) )
92
93 #if defined(__GNUC__) && __GNUC__>=2 && !defined(PEDANTIC)
94 # define BSWAP(x) ({ unsigned int r=(x); __asm__ ("bswapl %0":"=r"(r):"0"(r)); r; })
95 #endif
96
97 extern unsigned int OPENSSL_ia32cap_P[2];
98 #define AESNI_CAPABLE (1<<(57-32))
99
100 int aesni_set_encrypt_key(const unsigned char *userKey, int bits,
101 AES_KEY *key);
102 int aesni_set_decrypt_key(const unsigned char *userKey, int bits,
103 AES_KEY *key);
104
105 void aesni_cbc_encrypt(const unsigned char *in,
106 unsigned char *out,
107 size_t length,
108 const AES_KEY *key,
109 unsigned char *ivec, int enc);
110
111 void aesni_cbc_sha1_enc (const void *inp, void *out, size_t blocks,
112 const AES_KEY *key, unsigned char iv[16],
113 SHA_CTX *ctx,const void *in0);
114
|