2 * Copyright 2019-2020 The OpenSSL Project Authors. All Rights Reserved.
4 * Licensed under the Apache License 2.0 (the "License"). You may not use
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
10 #ifndef OPENSSL_NO_SIV
12 typedef struct siv128_context SIV128_CONTEXT
;
14 SIV128_CONTEXT
*CRYPTO_siv128_new(const unsigned char *key
, int klen
,
15 EVP_CIPHER
*cbc
, EVP_CIPHER
*ctr
,
16 OSSL_LIB_CTX
*libctx
, const char *propq
);
17 int CRYPTO_siv128_init(SIV128_CONTEXT
*ctx
, const unsigned char *key
, int klen
,
18 const EVP_CIPHER
*cbc
, const EVP_CIPHER
*ctr
,
19 OSSL_LIB_CTX
*libctx
, const char *propq
);
20 int CRYPTO_siv128_copy_ctx(SIV128_CONTEXT
*dest
, SIV128_CONTEXT
*src
);
21 int CRYPTO_siv128_aad(SIV128_CONTEXT
*ctx
, const unsigned char *aad
,
23 int CRYPTO_siv128_encrypt(SIV128_CONTEXT
*ctx
,
24 const unsigned char *in
, unsigned char *out
,
26 int CRYPTO_siv128_decrypt(SIV128_CONTEXT
*ctx
,
27 const unsigned char *in
, unsigned char *out
,
29 int CRYPTO_siv128_finish(SIV128_CONTEXT
*ctx
);
30 int CRYPTO_siv128_set_tag(SIV128_CONTEXT
*ctx
, const unsigned char *tag
,
32 int CRYPTO_siv128_get_tag(SIV128_CONTEXT
*ctx
, unsigned char *tag
, size_t len
);
33 int CRYPTO_siv128_cleanup(SIV128_CONTEXT
*ctx
);
34 int CRYPTO_siv128_speed(SIV128_CONTEXT
*ctx
, int arg
);
36 #endif /* OPENSSL_NO_SIV */