X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=include%2Fopenssl%2Fmodes.h;h=0934482c5682cac606cdb1c77acf40e6f8b94ce2;hp=bf987cce22f2aaec34fd38b9a5d667fbdd22bfb2;hb=b1ceb439f234a998db84f27a3a245dab95d322ab;hpb=6de98b4fb6265f8a4b2e5b599d6714ff937dca6b;ds=sidebyside diff --git a/include/openssl/modes.h b/include/openssl/modes.h index bf987cce22..0934482c56 100644 --- a/include/openssl/modes.h +++ b/include/openssl/modes.h @@ -11,6 +11,7 @@ # define HEADER_MODES_H # include +# include # ifdef __cplusplus extern "C" { @@ -201,6 +202,32 @@ int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len); void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx); # endif /* OPENSSL_NO_OCB */ +# ifndef OPENSSL_NO_SIV + +typedef struct siv128_context SIV128_CONTEXT; + +# define SIV_LEN 16 + +SIV128_CONTEXT *CRYPTO_siv128_new(const unsigned char *key, int klen, EVP_CIPHER* cbc, EVP_CIPHER* ctr); +int CRYPTO_siv128_init(SIV128_CONTEXT *ctx, const unsigned char *key, int klen, + const EVP_CIPHER* cbc, const EVP_CIPHER* ctr); +int CRYPTO_siv128_copy_ctx(SIV128_CONTEXT *dest, SIV128_CONTEXT *src); +int CRYPTO_siv128_aad(SIV128_CONTEXT *ctx, const unsigned char *aad, + size_t len); +int CRYPTO_siv128_encrypt(SIV128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_siv128_decrypt(SIV128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_siv128_finish(SIV128_CONTEXT *ctx); +int CRYPTO_siv128_set_tag(SIV128_CONTEXT *ctx, const unsigned char *tag, size_t len); +int CRYPTO_siv128_get_tag(SIV128_CONTEXT *ctx, unsigned char *tag, size_t len); +int CRYPTO_siv128_cleanup(SIV128_CONTEXT *ctx); +int CRYPTO_siv128_speed(SIV128_CONTEXT *ctx, int arg); + +# endif /* OPENSSL_NO_SIV */ + # ifdef __cplusplus } # endif