]>
Commit | Line | Data |
---|---|---|
63fc7f84 AP |
1 | /* ==================================================================== |
2 | * Copyright (c) 2008 The OpenSSL Project. All rights reserved. | |
3 | * | |
4 | * Rights for redistribution and usage in source and binary | |
5 | * forms are granted according to the OpenSSL license. | |
6 | */ | |
7 | ||
8 | #include <stddef.h> | |
9 | ||
10 | typedef void (*block128_f)(const unsigned char in[16], | |
85b2c0ce AP |
11 | unsigned char out[16], |
12 | const void *key); | |
13 | ||
fe150ac2 AP |
14 | typedef void (*cbc128_f)(const unsigned char *in, unsigned char *out, |
15 | size_t len, const void *key, | |
16 | unsigned char ivec[16], int enc); | |
17 | ||
f472ec8c AP |
18 | typedef void (*ctr128_f)(const unsigned char *in, unsigned char *out, |
19 | size_t blocks, const void *key, | |
20 | const unsigned char ivec[16]); | |
21 | ||
85b2c0ce AP |
22 | void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, |
23 | size_t len, const void *key, | |
63fc7f84 | 24 | unsigned char ivec[16], block128_f block); |
85b2c0ce AP |
25 | void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, |
26 | size_t len, const void *key, | |
63fc7f84 | 27 | unsigned char ivec[16], block128_f block); |
85b2c0ce AP |
28 | |
29 | void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, | |
30 | size_t len, const void *key, | |
31 | unsigned char ivec[16], unsigned char ecount_buf[16], | |
63fc7f84 | 32 | unsigned int *num, block128_f block); |
85b2c0ce | 33 | |
f472ec8c AP |
34 | void CRYPTO_ctr128_encrypt_ctr32(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, ctr128_f ctr); | |
38 | ||
85b2c0ce AP |
39 | void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, |
40 | size_t len, const void *key, | |
41 | unsigned char ivec[16], int *num, | |
63fc7f84 | 42 | block128_f block); |
85b2c0ce AP |
43 | |
44 | void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, | |
45 | size_t len, const void *key, | |
46 | unsigned char ivec[16], int *num, | |
63fc7f84 | 47 | int enc, block128_f block); |
85b2c0ce AP |
48 | void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, |
49 | size_t length, const void *key, | |
50 | unsigned char ivec[16], int *num, | |
63fc7f84 | 51 | int enc, block128_f block); |
85b2c0ce AP |
52 | void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, |
53 | size_t bits, const void *key, | |
54 | unsigned char ivec[16], int *num, | |
63fc7f84 | 55 | int enc, block128_f block); |
fe150ac2 AP |
56 | |
57 | size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, unsigned char *out, | |
58 | size_t len, const void *key, | |
59 | unsigned char ivec[16], block128_f block); | |
60 | size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, | |
61 | size_t len, const void *key, | |
62 | unsigned char ivec[16], cbc128_f cbc); | |
63 | size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, unsigned char *out, | |
64 | size_t len, const void *key, | |
65 | unsigned char ivec[16], block128_f block); | |
66 | size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, | |
67 | size_t len, const void *key, | |
68 | unsigned char ivec[16], cbc128_f cbc); | |
67a315b6 AP |
69 | |
70 | size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, unsigned char *out, | |
71 | size_t len, const void *key, | |
72 | unsigned char ivec[16], block128_f block); | |
73 | size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, | |
74 | size_t len, const void *key, | |
75 | unsigned char ivec[16], cbc128_f cbc); | |
76 | size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, unsigned char *out, | |
77 | size_t len, const void *key, | |
78 | unsigned char ivec[16], block128_f block); | |
79 | size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, | |
80 | size_t len, const void *key, | |
81 | unsigned char ivec[16], cbc128_f cbc); | |
19f7e5e2 BL |
82 | |
83 | typedef struct gcm128_context GCM128_CONTEXT; | |
84 | ||
6acb4ff3 | 85 | GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); |
a7a6aade | 86 | void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block); |
19f7e5e2 | 87 | void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, |
6acb4ff3 | 88 | size_t len); |
1f2502eb | 89 | int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, |
6acb4ff3 | 90 | size_t len); |
1f2502eb | 91 | int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, |
6acb4ff3 AP |
92 | const unsigned char *in, unsigned char *out, |
93 | size_t len); | |
1f2502eb | 94 | int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, |
6acb4ff3 AP |
95 | const unsigned char *in, unsigned char *out, |
96 | size_t len); | |
1f2502eb | 97 | int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, |
f71c6ace AP |
98 | const unsigned char *in, unsigned char *out, |
99 | size_t len, ctr128_f stream); | |
1f2502eb | 100 | int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, |
f71c6ace AP |
101 | const unsigned char *in, unsigned char *out, |
102 | size_t len, ctr128_f stream); | |
6acb4ff3 AP |
103 | int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx,const unsigned char *tag, |
104 | size_t len); | |
fd3dbc1d | 105 | void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); |
6acb4ff3 | 106 | void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); |
32a2d8dd | 107 | |
6386b1b3 DSH |
108 | typedef struct ccm128_context CCM128_CONTEXT; |
109 | ||
110 | void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, | |
23916810 | 111 | unsigned int M, unsigned int L, void *key,block128_f block); |
6386b1b3 | 112 | int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, |
23916810 | 113 | const unsigned char *nonce, size_t nlen, size_t mlen); |
6386b1b3 | 114 | void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, |
23916810 | 115 | const unsigned char *aad, size_t alen); |
6386b1b3 | 116 | int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, |
23916810 | 117 | const unsigned char *inp, unsigned char *out, size_t len); |
6386b1b3 | 118 | int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, |
23916810 DSH |
119 | const unsigned char *inp, unsigned char *out, size_t len); |
120 | size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); | |
6386b1b3 | 121 | |
32a2d8dd DSH |
122 | typedef struct xts128_context XTS128_CONTEXT; |
123 | ||
124 | int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char *iv, | |
23916810 | 125 | const unsigned char *inp, unsigned char *out, size_t len, int enc); |