urtw: suppress set but not used warnings
[unleashed.git] / lib / libcrypto / modes / modes.h
bloba532cb3f412a99bba21c727a324f11404312e2e3
1 /* $OpenBSD: modes.h,v 1.2 2014/06/12 15:49:30 deraadt Exp $ */
2 /* ====================================================================
3 * Copyright (c) 2008 The OpenSSL Project. All rights reserved.
5 * Rights for redistribution and usage in source and binary
6 * forms are granted according to the OpenSSL license.
7 */
9 #include <stddef.h>
11 typedef void (*block128_f)(const unsigned char in[16],
12 unsigned char out[16],
13 const void *key);
15 typedef void (*cbc128_f)(const unsigned char *in, unsigned char *out,
16 size_t len, const void *key,
17 unsigned char ivec[16], int enc);
19 typedef void (*ctr128_f)(const unsigned char *in, unsigned char *out,
20 size_t blocks, const void *key,
21 const unsigned char ivec[16]);
23 typedef void (*ccm128_f)(const unsigned char *in, unsigned char *out,
24 size_t blocks, const void *key,
25 const unsigned char ivec[16],unsigned char cmac[16]);
27 void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out,
28 size_t len, const void *key,
29 unsigned char ivec[16], block128_f block);
30 void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,
31 size_t len, const void *key,
32 unsigned char ivec[16], block128_f block);
34 void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out,
35 size_t len, const void *key,
36 unsigned char ivec[16], unsigned char ecount_buf[16],
37 unsigned int *num, block128_f block);
39 void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out,
40 size_t len, const void *key,
41 unsigned char ivec[16], unsigned char ecount_buf[16],
42 unsigned int *num, ctr128_f ctr);
44 void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out,
45 size_t len, const void *key,
46 unsigned char ivec[16], int *num,
47 block128_f block);
49 void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
50 size_t len, const void *key,
51 unsigned char ivec[16], int *num,
52 int enc, block128_f block);
53 void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out,
54 size_t length, const void *key,
55 unsigned char ivec[16], int *num,
56 int enc, block128_f block);
57 void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out,
58 size_t bits, const void *key,
59 unsigned char ivec[16], int *num,
60 int enc, block128_f block);
62 size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, unsigned char *out,
63 size_t len, const void *key,
64 unsigned char ivec[16], block128_f block);
65 size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out,
66 size_t len, const void *key,
67 unsigned char ivec[16], cbc128_f cbc);
68 size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, unsigned char *out,
69 size_t len, const void *key,
70 unsigned char ivec[16], block128_f block);
71 size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,
72 size_t len, const void *key,
73 unsigned char ivec[16], cbc128_f cbc);
75 size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, unsigned char *out,
76 size_t len, const void *key,
77 unsigned char ivec[16], block128_f block);
78 size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out,
79 size_t len, const void *key,
80 unsigned char ivec[16], cbc128_f cbc);
81 size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, unsigned char *out,
82 size_t len, const void *key,
83 unsigned char ivec[16], block128_f block);
84 size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out,
85 size_t len, const void *key,
86 unsigned char ivec[16], cbc128_f cbc);
88 typedef struct gcm128_context GCM128_CONTEXT;
90 GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block);
91 void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block);
92 void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv,
93 size_t len);
94 int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad,
95 size_t len);
96 int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
97 const unsigned char *in, unsigned char *out,
98 size_t len);
99 int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
100 const unsigned char *in, unsigned char *out,
101 size_t len);
102 int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,
103 const unsigned char *in, unsigned char *out,
104 size_t len, ctr128_f stream);
105 int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,
106 const unsigned char *in, unsigned char *out,
107 size_t len, ctr128_f stream);
108 int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx,const unsigned char *tag,
109 size_t len);
110 void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len);
111 void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx);
113 typedef struct ccm128_context CCM128_CONTEXT;
115 void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx,
116 unsigned int M, unsigned int L, void *key,block128_f block);
117 int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx,
118 const unsigned char *nonce, size_t nlen, size_t mlen);
119 void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx,
120 const unsigned char *aad, size_t alen);
121 int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx,
122 const unsigned char *inp, unsigned char *out, size_t len);
123 int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx,
124 const unsigned char *inp, unsigned char *out, size_t len);
125 int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx,
126 const unsigned char *inp, unsigned char *out, size_t len,
127 ccm128_f stream);
128 int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx,
129 const unsigned char *inp, unsigned char *out, size_t len,
130 ccm128_f stream);
131 size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len);
133 typedef struct xts128_context XTS128_CONTEXT;
135 int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16],
136 const unsigned char *inp, unsigned char *out, size_t len, int enc);