X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fmodes%2Fmodes.h;h=e1ebd45a3653f00775b278cbae60ebc423348220;hb=c857a80c9dccf82de94137410c754b18e893a55d;hp=50dc01852d4936fb295ffc109583092899f2035e;hpb=d31fed73e25391cd71a0de488d88724db78f6f8a;p=oweals%2Fopenssl.git diff --git a/crypto/modes/modes.h b/crypto/modes/modes.h index 50dc01852d..e1ebd45a36 100644 --- a/crypto/modes/modes.h +++ b/crypto/modes/modes.h @@ -7,6 +7,9 @@ #include +#ifdef __cplusplus +extern "C" { +#endif typedef void (*block128_f)(const unsigned char in[16], unsigned char out[16], const void *key); @@ -134,6 +137,7 @@ typedef struct xts128_context XTS128_CONTEXT; int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16], const unsigned char *inp, unsigned char *out, size_t len, int enc); + size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, unsigned char *out, const unsigned char *in, size_t inlen, block128_f block); @@ -147,3 +151,28 @@ size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv, size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv, unsigned char *out, const unsigned char *in, size_t inlen, block128_f block); + +typedef struct ocb128_context OCB128_CONTEXT; + +OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, block128_f encrypt, block128_f decrypt); +int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx,void *keyenc, void *keydec,block128_f encrypt,block128_f decrypt); +int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, + void *keyenc, void *keydec); +int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, + size_t len, size_t taglen); +int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, + size_t len); +int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx,const unsigned char *tag, + size_t len); +int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len); +void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx); + +#ifdef __cplusplus +} +#endif