crypto: Fixes for recent Heimdal changes
[openafs.git] / src / crypto / hcrypto / kernel / evp-algs.c
1 /* A cut down set of hcrypto EVP ciphers for kernel use */
2
3 #include <config.h>
4 #include <evp.h>
5 #include <evp-hcrypto.h>
6 #include <aes.h>
7 #include <sha.h>
8
9 static int
10 aes_init(EVP_CIPHER_CTX *ctx,
11          const unsigned char * key,
12          const unsigned char * iv,
13          int encp)
14 {
15     AES_KEY *k = ctx->cipher_data;
16     if (ctx->encrypt)
17         AES_set_encrypt_key(key, ctx->cipher->key_len * 8, k);
18     else
19         AES_set_decrypt_key(key, ctx->cipher->key_len * 8, k);
20     return 1;
21 }
22
23 static int
24 aes_do_cipher(EVP_CIPHER_CTX *ctx,
25               unsigned char *out,
26               const unsigned char *in,
27               unsigned int size)
28 {
29     AES_KEY *k = ctx->cipher_data;
30     if (ctx->flags & EVP_CIPH_CFB8_MODE)
31         AES_cfb8_encrypt(in, out, size, k, ctx->iv, ctx->encrypt);
32     else
33         AES_cbc_encrypt(in, out, size, k, ctx->iv, ctx->encrypt);
34     return 1;
35 }
36
37 const EVP_CIPHER *
38 EVP_hckernel_aes_128_cbc(void)
39 {
40     static const EVP_CIPHER aes_128_cbc = {
41         0,
42         16,
43         16,
44         16,
45         EVP_CIPH_CBC_MODE,
46         aes_init,
47         aes_do_cipher,
48         NULL,
49         sizeof(AES_KEY),
50         NULL,
51         NULL,
52         NULL,
53         NULL
54     };
55
56     return &aes_128_cbc;
57 }
58
59 const EVP_CIPHER *
60 EVP_hckernel_aes_256_cbc(void)
61 {
62     static const EVP_CIPHER aes_256_cbc = {
63         0,
64         16,
65         32,
66         16,
67         EVP_CIPH_CBC_MODE,
68         aes_init,
69         aes_do_cipher,
70         NULL,
71         sizeof(AES_KEY),
72         NULL,
73         NULL,
74         NULL,
75         NULL
76     };
77     return &aes_256_cbc;
78 }
79
80 const EVP_MD *
81 EVP_hckernel_sha1(void)
82 {
83     static const struct hc_evp_md sha1 = {
84         20,
85         64,
86         sizeof(SHA_CTX),
87         (hc_evp_md_init)SHA1_Init,
88         (hc_evp_md_update)SHA1_Update,
89         (hc_evp_md_final)SHA1_Final,
90         NULL
91     };
92     return &sha1;
93 }
94
95 const EVP_MD *
96 EVP_hckernel_sha256(void) {
97     return NULL;
98 }
99
100 const EVP_MD *
101 EVP_hckernel_sha384(void) {
102     return NULL;
103 }
104
105 const EVP_MD *
106 EVP_hckernel_sha512(void) {
107     return NULL;
108 }
109
110 const EVP_MD *
111 EVP_hckernel_md5(void) {
112     return NULL;
113 }
114
115 const EVP_MD *
116 EVP_hckernel_md4(void) {
117     return NULL;
118 }
119
120 const EVP_MD *
121 EVP_hckernel_md2(void) {
122     return NULL;
123 }
124
125 const EVP_CIPHER *
126 EVP_hckernel_rc2_cbc(void) {
127     return NULL;
128 }
129
130 const EVP_CIPHER *
131 EVP_hckernel_rc2_40_cbc(void) {
132     return NULL;
133 }
134
135 const EVP_CIPHER *
136 EVP_hckernel_rc2_64_cbc(void) {
137     return NULL;
138 }
139
140 const EVP_CIPHER *
141 EVP_hckernel_rc4(void) {
142     return NULL;
143 }
144
145 const EVP_CIPHER *
146 EVP_hckernel_rc4_40(void) {
147     return NULL;
148 }
149
150 const EVP_CIPHER *
151 EVP_hckernel_des_cbc(void) {
152     return NULL;
153 }
154
155 const EVP_CIPHER *
156 EVP_hckernel_des_ede3_cbc(void) {
157     return NULL;
158 }
159
160 const EVP_CIPHER *
161 EVP_hckernel_aes_192_cbc(void) {
162     return NULL;
163 }
164
165 const EVP_CIPHER *
166 EVP_hckernel_aes_128_cfb8(void) {
167     return NULL;
168 }
169
170 const EVP_CIPHER *
171 EVP_hckernel_aes_192_cfb8(void) {
172     return NULL;
173 }
174
175 const EVP_CIPHER *
176 EVP_hckernel_aes_256_cfb8(void) {
177     return NULL;
178 }
179
180 const EVP_CIPHER *
181 EVP_hckernel_camellia_128_cbc(void) {
182     return NULL;
183 }
184
185 const EVP_CIPHER *
186 EVP_hckernel_camellia_192_cbc(void) {
187     return NULL;
188 }
189
190 const EVP_CIPHER *
191 EVP_hckernel_camellia_256_cbc(void) {
192     return NULL;
193 }
194
195 void
196 hcrypto_validate(void) {
197     return;
198 }