status update, probably last commit
[rofl0r-kripto.git] / include / kripto / ae.h
blobbc8e80687a69bf50922c9384786af0b91c04c0aa
1 #ifndef KRIPTO_AE_H
2 #define KRIPTO_AE_H
4 #include <stddef.h>
6 typedef struct kripto_ae_desc kripto_ae_desc;
7 typedef struct kripto_ae kripto_ae;
9 extern kripto_ae *kripto_ae_create
11 const kripto_ae_desc *desc,
12 unsigned int rounds,
13 const void *key,
14 unsigned int key_len,
15 const void *iv,
16 unsigned int iv_len,
17 unsigned int tag_len
20 extern kripto_ae *kripto_ae_recreate
22 kripto_ae *s,
23 unsigned int rounds,
24 const void *key,
25 unsigned int key_len,
26 const void *iv,
27 unsigned int iv_len,
28 unsigned int tag_len
31 extern void kripto_ae_encrypt
33 kripto_ae *s,
34 const void *pt,
35 void *ct,
36 size_t len
39 extern void kripto_ae_decrypt
41 kripto_ae *s,
42 const void *ct,
43 void *pt,
44 size_t len
47 extern void kripto_ae_header
49 kripto_ae *s,
50 const void *header,
51 size_t len
54 extern void kripto_ae_tag
56 kripto_ae *s,
57 void *tag,
58 unsigned int len
61 extern void kripto_ae_destroy(kripto_ae *s);
63 extern unsigned int kripto_ae_multof(const kripto_ae *s);
65 extern const kripto_ae_desc *kripto_ae_getdesc(const kripto_ae *s);
67 extern unsigned int kripto_ae_maxkey(const kripto_ae_desc *desc);
69 extern unsigned int kripto_ae_maxiv(const kripto_ae_desc *desc);
71 extern unsigned int kripto_ae_maxtag(const kripto_ae_desc *desc);
73 #endif