-/* ====================================================================
- * Copyright (c) 2008 The OpenSSL Project. All rights reserved.
+/*
+ * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
*
- * Rights for redistribution and usage in source and binary
- * forms are granted according to the OpenSSL license.
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
*/
-#include <stddef.h>
+#ifndef HEADER_MODES_H
+# define HEADER_MODES_H
-#ifdef __cplusplus
+# include <stddef.h>
+
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
typedef void (*block128_f) (const unsigned char in[16],
unsigned char out[16], const void *key);
unsigned char *out, const unsigned char *in,
size_t inlen, block128_f block);
-#ifndef OPENSSL_NO_OCB
+# ifndef OPENSSL_NO_OCB
typedef struct ocb128_context OCB128_CONTEXT;
+typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out,
+ size_t blocks, const void *key,
+ size_t start_block_num,
+ unsigned char offset_i[16],
+ const unsigned char L_[][16],
+ unsigned char checksum[16]);
+
OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec,
- block128_f encrypt, block128_f decrypt);
+ block128_f encrypt, block128_f decrypt,
+ ocb128_f stream);
int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec,
- block128_f encrypt, block128_f decrypt);
+ block128_f encrypt, block128_f decrypt,
+ ocb128_f stream);
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);
int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len);
void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx);
-#endif /* OPENSSL_NO_OCB */
+# endif /* OPENSSL_NO_OCB */
-#ifdef __cplusplus
+# ifdef __cplusplus
}
+# endif
+
#endif