diff options
author | jsing <> | 2014-05-15 13:53:47 +0000 |
---|---|---|
committer | jsing <> | 2014-05-15 13:53:47 +0000 |
commit | 913c052f3efbb5dc0f2b7866824da20593470b34 (patch) | |
tree | fd0906417d1eccc2db6e54f415726272f17bb826 /src/lib/libcrypto/evp/evp_locl.h | |
parent | c7bee58156162d7faa5269011e51ac838785e058 (diff) | |
download | openbsd-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.h | 22 |
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 | ||
343 | int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, | 343 | int 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. */ | ||
347 | struct 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 | }; | ||