chiark / gitweb /
site: use unaligned.h's functions, not pointer cast and ntohl
[secnet.git] / serpent.h
1 #ifndef serpent_h
2 #define serpent_h
3
4 struct keyInstance {
5       uint32_t key[8];             /* The key in binary */
6       uint32_t subkeys[33][4];  /* Serpent subkeys */
7 };
8
9 /*  Function protoypes  */
10 void serpent_makekey(struct keyInstance *key, int keyLen,
11                      const uint8_t *keyMaterial);
12 void serpentbe_makekey(struct keyInstance *key, int keyLen,
13                      const uint8_t *keyMaterial);
14
15 void serpent_encrypt(struct keyInstance *key, const uint8_t plaintext[16],
16                      uint8_t ciphertext[16]);
17 void serpentbe_encrypt(struct keyInstance *key, const uint8_t plaintext[16],
18                      uint8_t ciphertext[16]);
19
20 void serpent_decrypt(struct keyInstance *key, const uint8_t ciphertext[16],
21                      uint8_t plaintext[16]);
22 void serpentbe_decrypt(struct keyInstance *key, const uint8_t ciphertext[16],
23                      uint8_t plaintext[16]);
24
25 #endif /* serpent_h */