AEAD Tests.
[oweals/openssl.git] / crypto / evp / evp_locl.h
index 08c0a66d39c79c60107f0315d463841aeb59d1cc..c0f9fdf50b72089d6cb40b0d4acde26ab6d4eaf1 100644 (file)
@@ -348,6 +348,30 @@ int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
                             ASN1_TYPE *param,
                             const EVP_CIPHER *c, const EVP_MD *md, int en_de);
 
+/* EVP_AEAD represents a specific AEAD algorithm. */
+struct evp_aead_st {
+       unsigned char key_len;
+       unsigned char nonce_len;
+       unsigned char overhead;
+       unsigned char max_tag_len;
+
+       int (*init) (struct evp_aead_ctx_st*, const unsigned char *key,
+                    size_t key_len, size_t tag_len);
+       void (*cleanup) (struct evp_aead_ctx_st*);
+
+       ssize_t (*seal) (const struct evp_aead_ctx_st *ctx,
+                        unsigned char *out, size_t max_out_len,
+                        const unsigned char *nonce, size_t nonce_len,
+                        const unsigned char *in, size_t in_len,
+                        const unsigned char *ad, size_t ad_len);
+
+       ssize_t (*open) (const struct evp_aead_ctx_st *ctx,
+                        unsigned char *out, size_t max_out_len,
+                        const unsigned char *nonce, size_t nonce_len,
+                        const unsigned char *in, size_t in_len,
+                        const unsigned char *ad, size_t ad_len);
+};
+
 #ifdef OPENSSL_FIPS
 
 #ifdef OPENSSL_DOING_MAKEDEPEND