summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp/evp_locl.h
diff options
context:
space:
mode:
authorjsing <>2014-05-15 13:53:47 +0000
committerjsing <>2014-05-15 13:53:47 +0000
commit913c052f3efbb5dc0f2b7866824da20593470b34 (patch)
treefd0906417d1eccc2db6e54f415726272f17bb826 /src/lib/libcrypto/evp/evp_locl.h
parentc7bee58156162d7faa5269011e51ac838785e058 (diff)
downloadopenbsd-913c052f3efbb5dc0f2b7866824da20593470b34.tar.gz
openbsd-913c052f3efbb5dc0f2b7866824da20593470b34.tar.bz2
openbsd-913c052f3efbb5dc0f2b7866824da20593470b34.zip
Add an AEAD EVP interface to libcrypto, along with AES-GCM AEAD
implementations. This largely pulls in Adam Langley's AEAD patches from Chromium's OpenSSL. ok miod@
Diffstat (limited to 'src/lib/libcrypto/evp/evp_locl.h')
-rw-r--r--src/lib/libcrypto/evp/evp_locl.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/libcrypto/evp/evp_locl.h b/src/lib/libcrypto/evp/evp_locl.h
index 673c85f8bd..6f9218eafc 100644
--- a/src/lib/libcrypto/evp/evp_locl.h
+++ b/src/lib/libcrypto/evp/evp_locl.h
@@ -342,3 +342,25 @@ void evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx);
342 342
343int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 343int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
344 ASN1_TYPE *param, const EVP_CIPHER *c, const EVP_MD *md, int en_de); 344 ASN1_TYPE *param, const EVP_CIPHER *c, const EVP_MD *md, int en_de);
345
346/* EVP_AEAD represents a specific AEAD algorithm. */
347struct evp_aead_st {
348 unsigned char key_len;
349 unsigned char nonce_len;
350 unsigned char overhead;
351 unsigned char max_tag_len;
352
353 int (*init)(struct evp_aead_ctx_st*, const unsigned char *key,
354 size_t key_len, size_t tag_len);
355 void (*cleanup)(struct evp_aead_ctx_st*);
356
357 ssize_t (*seal)(const struct evp_aead_ctx_st *ctx, unsigned char *out,
358 size_t max_out_len, const unsigned char *nonce, size_t nonce_len,
359 const unsigned char *in, size_t in_len, const unsigned char *ad,
360 size_t ad_len);
361
362 ssize_t (*open)(const struct evp_aead_ctx_st *ctx, unsigned char *out,
363 size_t max_out_len, const unsigned char *nonce, size_t nonce_len,
364 const unsigned char *in, size_t in_len, const unsigned char *ad,
365 size_t ad_len);
366};