summaryrefslogtreecommitdiffstats
path: root/src/crypto/cipher/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/cipher/internal.h')
-rw-r--r--src/crypto/cipher/internal.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/crypto/cipher/internal.h b/src/crypto/cipher/internal.h
index bc1e2de..605b8cb 100644
--- a/src/crypto/cipher/internal.h
+++ b/src/crypto/cipher/internal.h
@@ -59,7 +59,7 @@
#include <openssl/base.h>
-#include <openssl/asn1t.h>
+#include <openssl/aead.h>
#if defined(__cplusplus)
extern "C" {
@@ -79,8 +79,13 @@ struct evp_aead_st {
uint8_t overhead;
uint8_t max_tag_len;
+ /* init initialises an |evp_aead_ctx_st|. If this call returns zero then
+ * |cleanup| will not be called for that context. */
int (*init)(struct evp_aead_ctx_st *, const uint8_t *key,
size_t key_len, size_t tag_len);
+ int (*init_with_direction)(struct evp_aead_ctx_st *, const uint8_t *key,
+ size_t key_len, size_t tag_len,
+ enum evp_aead_direction_t dir);
void (*cleanup)(struct evp_aead_ctx_st *);
int (*seal)(const struct evp_aead_ctx_st *ctx, uint8_t *out,
@@ -92,6 +97,9 @@ struct evp_aead_st {
size_t *out_len, size_t max_out_len, const uint8_t *nonce,
size_t nonce_len, const uint8_t *in, size_t in_len,
const uint8_t *ad, size_t ad_len);
+
+ int (*get_rc4_state)(const struct evp_aead_ctx_st *ctx,
+ const RC4_KEY **out_key);
};