#ifndef BLOWFISH__H_INCLUDED
#define BLOWFISH__H_INCLUDED
+#include <stdint.h>
+
#define BLOWFISH_BLOCKBYTES 8
#define BLOWFISH_MAXKEYBYTES 56
#define BLOWFISH__N 16
#define BLOWFISH__PSIZE BLOWFISH__N+2
-typedef uint32 blowfish__p[BLOWFISH__PSIZE];
-typedef uint32 blowfish__s[4][256];
+typedef uint32_t blowfish__p[BLOWFISH__PSIZE];
+typedef uint32_t blowfish__s[4][256];
struct blowfish_expandedkey {
blowfish__p p;
blowfish__s s;
};
+/* It's ok to pass the [_cbc]_(en|de)crypt functions the same
+ * input and output pointers.
+ */
+
void blowfish_loadkey(struct blowfish_expandedkey *ek,
- const uint8 *key, int keybytes);
+ const uint8_t *key, int keybytes);
void blowfish_encrypt(const struct blowfish_expandedkey *ek,
- const uint8 plain[BLOWFISH_BLOCKBYTES],
- uint8 cipher[BLOWFISH_BLOCKBYTES]);
+ const uint8_t plain[BLOWFISH_BLOCKBYTES],
+ uint8_t cipher[BLOWFISH_BLOCKBYTES]);
void blowfish_decrypt(const struct blowfish_expandedkey *ek,
- const uint8 cipher[BLOWFISH_BLOCKBYTES],
- uint8 plain[BLOWFISH_BLOCKBYTES]);
+ const uint8_t cipher[BLOWFISH_BLOCKBYTES],
+ uint8_t plain[BLOWFISH_BLOCKBYTES]);
struct blowfish_cbc_state {
struct blowfish_expandedkey ek;
- uint32 chainl, chainr;
+ uint32_t chainl, chainr;
};
void blowfish_cbc_setiv(struct blowfish_cbc_state *cs,
- const uint8 iv[BLOWFISH_BLOCKBYTES]);
+ const uint8_t iv[BLOWFISH_BLOCKBYTES]);
void blowfish_cbc_encrypt(struct blowfish_cbc_state *cs,
- const uint8 plain[BLOWFISH_BLOCKBYTES],
- uint8 cipher[BLOWFISH_BLOCKBYTES]);
+ const uint8_t plain[BLOWFISH_BLOCKBYTES],
+ uint8_t cipher[BLOWFISH_BLOCKBYTES]);
void blowfish_cbc_decrypt(struct blowfish_cbc_state *cs,
- const uint8 cipher[BLOWFISH_BLOCKBYTES],
- uint8 plain[BLOWFISH_BLOCKBYTES]);
+ const uint8_t cipher[BLOWFISH_BLOCKBYTES],
+ uint8_t plain[BLOWFISH_BLOCKBYTES]);
#endif