24 #ifndef POLARSSL_BLOWFISH_H
25 #define POLARSSL_BLOWFISH_H
27 #if !defined(POLARSSL_CONFIG_FILE)
30 #include POLARSSL_CONFIG_FILE
35 #if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32)
37 typedef UINT32 uint32_t;
42 #define BLOWFISH_ENCRYPT 1
43 #define BLOWFISH_DECRYPT 0
44 #define BLOWFISH_MAX_KEY 448
45 #define BLOWFISH_MIN_KEY 32
46 #define BLOWFISH_ROUNDS 16
47 #define BLOWFISH_BLOCKSIZE 8
49 #define POLARSSL_ERR_BLOWFISH_INVALID_KEY_LENGTH -0x0016
50 #define POLARSSL_ERR_BLOWFISH_INVALID_INPUT_LENGTH -0x0018
52 #if !defined(POLARSSL_BLOWFISH_ALT)
94 unsigned int keysize );
109 unsigned char output[BLOWFISH_BLOCKSIZE] );
111 #if defined(POLARSSL_CIPHER_MODE_CBC)
139 const unsigned char *input,
140 unsigned char *output );
143 #if defined(POLARSSL_CIPHER_MODE_CFB)
170 const unsigned char *input,
171 unsigned char *output );
174 #if defined(POLARSSL_CIPHER_MODE_CTR)
197 unsigned char stream_block[BLOWFISH_BLOCKSIZE],
198 const unsigned char *input,
199 unsigned char *output );
207 #include "blowfish_alt.h"
int blowfish_setkey(blowfish_context *ctx, const unsigned char *key, unsigned int keysize)
Blowfish key schedule.
void blowfish_init(blowfish_context *ctx)
Initialize Blowfish context.
Configuration options (set of defines)
void blowfish_free(blowfish_context *ctx)
Clear Blowfish context.
int blowfish_crypt_ecb(blowfish_context *ctx, int mode, const unsigned char input[BLOWFISH_BLOCKSIZE], unsigned char output[BLOWFISH_BLOCKSIZE])
Blowfish-ECB block encryption/decryption.
#define BLOWFISH_ROUNDS
Rounds to use.
#define BLOWFISH_BLOCKSIZE
int blowfish_crypt_ctr(blowfish_context *ctx, size_t length, size_t *nc_off, unsigned char nonce_counter[BLOWFISH_BLOCKSIZE], unsigned char stream_block[BLOWFISH_BLOCKSIZE], const unsigned char *input, unsigned char *output)
Blowfish-CTR buffer encryption/decryption.
int blowfish_crypt_cfb64(blowfish_context *ctx, int mode, size_t length, size_t *iv_off, unsigned char iv[BLOWFISH_BLOCKSIZE], const unsigned char *input, unsigned char *output)
Blowfish CFB buffer encryption/decryption.
Blowfish context structure.
int blowfish_crypt_cbc(blowfish_context *ctx, int mode, size_t length, unsigned char iv[BLOWFISH_BLOCKSIZE], const unsigned char *input, unsigned char *output)
Blowfish-CBC buffer encryption/decryption Length should be a multiple of the block size (8 bytes) ...