- char *name;
- int (*encrypt)(void *pt, int ptlen, void *key, int keylen,
- void *ct, int *ctlen);
- int (*decrypt)(void *ct, int ctlen, void *key, int keylen,
- void *pt, int *ptlen);
- int (*hash)(void *pt, int ptlen, void *tag, int *taglen);
- int (*hmac)(void *ct, int ctlen, void *key, int keylen,
- void *tag, int *taglen);
+ const char *(*init)(void);
+ unsigned long (*encrypt)(const void *key, const int keylen, void *iv,
+ const void *pt, void *ct, const int tlen);
+ unsigned long (*decrypt)(const void *key, const int keylen, void *iv,
+ const void *ct, void *pt, const int tlen);
+ unsigned long (*hash)(const void *pt, const int tlen,
+ void *tag, int *taglen);
+ unsigned long (*hmac)(const void *key, const int keylen,
+ const void *pt, const int tlen,
+ void *tag, int *taglen);
+ const char *(*errstr)(const unsigned long err);