Update .cvsignore
[openssl.git] / crypto / aes / aes.h
index f708f6f34b17f33e57888a6160d1a5f1a1d8d76e..949a754a0fe0183e5e895eee1a49b9dbd462e5a6 100644 (file)
 #ifndef HEADER_AES_H
 #define HEADER_AES_H
 
+#include <openssl/opensslconf.h>
+
 #ifdef OPENSSL_NO_AES
 #error AES is disabled.
 #endif
 
-static const int AES_DECRYPT = 0;
-static const int AES_ENCRYPT = 1;
+#define AES_ENCRYPT    1
+#define AES_DECRYPT    0
+
 /* Because array size can't be a const in C, the following two are macros.
    Both sizes are in bytes. */
 #define AES_MAXNR 14
@@ -69,7 +72,11 @@ extern "C" {
 
 /* This should be a hidden type, but EVP requires that the size be known */
 struct aes_key_st {
+#ifdef AES_LONG
     unsigned long rd_key[4 *(AES_MAXNR + 1)];
+#else
+    unsigned int rd_key[4 *(AES_MAXNR + 1)];
+#endif
     int rounds;
 };
 typedef struct aes_key_st AES_KEY;
@@ -92,16 +99,34 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
        const unsigned long length, const AES_KEY *key,
        unsigned char *ivec, const int enc);
 void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
+       unsigned long length, const AES_KEY *key,
+       unsigned char *ivec, int *num, const int enc);
+void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
        const unsigned long length, const AES_KEY *key,
        unsigned char *ivec, int *num, const int enc);
-void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,
+void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
        const unsigned long length, const AES_KEY *key,
+       unsigned char *ivec, int *num, const int enc);
+void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out,
+                           const int nbits,const AES_KEY *key,
+                           unsigned char *ivec,const int enc);
+void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,
+       unsigned long length, const AES_KEY *key,
        unsigned char *ivec, int *num);
 void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
        const unsigned long length, const AES_KEY *key,
-       unsigned char counter[AES_BLOCK_SIZE],
+       unsigned char ivec[AES_BLOCK_SIZE],
        unsigned char ecount_buf[AES_BLOCK_SIZE],
        unsigned int *num);
+/* NB: the IV is _two_ blocks long */
+void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
+                    const unsigned long length, const AES_KEY *key,
+                    unsigned char *ivec, const int enc);
+/* NB: the IV is _four_ blocks long */
+void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
+                       const unsigned long length, const AES_KEY *key,
+                       const AES_KEY *key2, const unsigned char *ivec,
+                       const int enc);
 
 
 #ifdef  __cplusplus