williamr@2
|
1 |
/* crypto/evp/evp.h */
|
williamr@2
|
2 |
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
williamr@2
|
3 |
* All rights reserved.
|
williamr@2
|
4 |
*
|
williamr@2
|
5 |
* This package is an SSL implementation written
|
williamr@2
|
6 |
* by Eric Young (eay@cryptsoft.com).
|
williamr@2
|
7 |
* The implementation was written so as to conform with Netscapes SSL.
|
williamr@2
|
8 |
*
|
williamr@2
|
9 |
* This library is free for commercial and non-commercial use as long as
|
williamr@2
|
10 |
* the following conditions are aheared to. The following conditions
|
williamr@2
|
11 |
* apply to all code found in this distribution, be it the RC4, RSA,
|
williamr@2
|
12 |
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
williamr@2
|
13 |
* included with this distribution is covered by the same copyright terms
|
williamr@2
|
14 |
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
williamr@2
|
15 |
*
|
williamr@2
|
16 |
* Copyright remains Eric Young's, and as such any Copyright notices in
|
williamr@2
|
17 |
* the code are not to be removed.
|
williamr@2
|
18 |
* If this package is used in a product, Eric Young should be given attribution
|
williamr@2
|
19 |
* as the author of the parts of the library used.
|
williamr@2
|
20 |
* This can be in the form of a textual message at program startup or
|
williamr@2
|
21 |
* in documentation (online or textual) provided with the package.
|
williamr@2
|
22 |
*
|
williamr@2
|
23 |
* Redistribution and use in source and binary forms, with or without
|
williamr@2
|
24 |
* modification, are permitted provided that the following conditions
|
williamr@2
|
25 |
* are met:
|
williamr@2
|
26 |
* 1. Redistributions of source code must retain the copyright
|
williamr@2
|
27 |
* notice, this list of conditions and the following disclaimer.
|
williamr@2
|
28 |
* 2. Redistributions in binary form must reproduce the above copyright
|
williamr@2
|
29 |
* notice, this list of conditions and the following disclaimer in the
|
williamr@2
|
30 |
* documentation and/or other materials provided with the distribution.
|
williamr@2
|
31 |
* 3. All advertising materials mentioning features or use of this software
|
williamr@2
|
32 |
* must display the following acknowledgement:
|
williamr@2
|
33 |
* "This product includes cryptographic software written by
|
williamr@2
|
34 |
* Eric Young (eay@cryptsoft.com)"
|
williamr@2
|
35 |
* The word 'cryptographic' can be left out if the rouines from the library
|
williamr@2
|
36 |
* being used are not cryptographic related :-).
|
williamr@2
|
37 |
* 4. If you include any Windows specific code (or a derivative thereof) from
|
williamr@2
|
38 |
* the apps directory (application code) you must include an acknowledgement:
|
williamr@2
|
39 |
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
williamr@2
|
40 |
*
|
williamr@2
|
41 |
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
williamr@2
|
42 |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
williamr@2
|
43 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
williamr@2
|
44 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
williamr@2
|
45 |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
williamr@2
|
46 |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
williamr@2
|
47 |
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
williamr@2
|
48 |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
williamr@2
|
49 |
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
williamr@2
|
50 |
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
williamr@2
|
51 |
* SUCH DAMAGE.
|
williamr@2
|
52 |
*
|
williamr@2
|
53 |
* The licence and distribution terms for any publically available version or
|
williamr@2
|
54 |
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
williamr@2
|
55 |
* copied and put under another distribution licence
|
williamr@2
|
56 |
* [including the GNU Public Licence.]
|
williamr@2
|
57 |
*/
|
williamr@2
|
58 |
/*
|
williamr@2
|
59 |
© Portions copyright (c) 2006 Nokia Corporation. All rights reserved.
|
williamr@2
|
60 |
*/
|
williamr@2
|
61 |
|
williamr@2
|
62 |
#ifndef HEADER_ENVELOPE_H
|
williamr@2
|
63 |
#define HEADER_ENVELOPE_H
|
williamr@2
|
64 |
|
williamr@2
|
65 |
#if (defined(__SYMBIAN32__) && !defined(SYMBIAN))
|
williamr@2
|
66 |
#define SYMBIAN
|
williamr@2
|
67 |
#endif
|
williamr@2
|
68 |
|
williamr@2
|
69 |
#ifdef SYMBIAN
|
williamr@2
|
70 |
#include <e32def.h>
|
williamr@2
|
71 |
#endif
|
williamr@2
|
72 |
#ifdef OPENSSL_ALGORITHM_DEFINES
|
williamr@2
|
73 |
# include <openssl/opensslconf.h>
|
williamr@2
|
74 |
#else
|
williamr@2
|
75 |
# define OPENSSL_ALGORITHM_DEFINES
|
williamr@2
|
76 |
# include <openssl/opensslconf.h>
|
williamr@2
|
77 |
# undef OPENSSL_ALGORITHM_DEFINES
|
williamr@2
|
78 |
#endif
|
williamr@2
|
79 |
|
williamr@2
|
80 |
#include <openssl/ossl_typ.h>
|
williamr@2
|
81 |
|
williamr@2
|
82 |
#include <openssl/symhacks.h>
|
williamr@2
|
83 |
|
williamr@2
|
84 |
#ifndef OPENSSL_NO_BIO
|
williamr@2
|
85 |
#include <openssl/bio.h>
|
williamr@2
|
86 |
#endif
|
williamr@2
|
87 |
|
williamr@2
|
88 |
/*
|
williamr@2
|
89 |
#define EVP_RC2_KEY_SIZE 16
|
williamr@2
|
90 |
#define EVP_RC4_KEY_SIZE 16
|
williamr@2
|
91 |
#define EVP_BLOWFISH_KEY_SIZE 16
|
williamr@2
|
92 |
#define EVP_CAST5_KEY_SIZE 16
|
williamr@2
|
93 |
#define EVP_RC5_32_12_16_KEY_SIZE 16
|
williamr@2
|
94 |
*/
|
williamr@2
|
95 |
#define EVP_MAX_MD_SIZE 64 /* longest known is SHA512 */
|
williamr@2
|
96 |
#define EVP_MAX_KEY_LENGTH 32
|
williamr@2
|
97 |
#define EVP_MAX_IV_LENGTH 16
|
williamr@2
|
98 |
#define EVP_MAX_BLOCK_LENGTH 32
|
williamr@2
|
99 |
|
williamr@2
|
100 |
#define PKCS5_SALT_LEN 8
|
williamr@2
|
101 |
/* Default PKCS#5 iteration count */
|
williamr@2
|
102 |
#define PKCS5_DEFAULT_ITER 2048
|
williamr@2
|
103 |
|
williamr@2
|
104 |
#include <openssl/objects.h>
|
williamr@2
|
105 |
|
williamr@2
|
106 |
#define EVP_PK_RSA 0x0001
|
williamr@2
|
107 |
#define EVP_PK_DSA 0x0002
|
williamr@2
|
108 |
#define EVP_PK_DH 0x0004
|
williamr@2
|
109 |
#define EVP_PK_EC 0x0008
|
williamr@2
|
110 |
#define EVP_PKT_SIGN 0x0010
|
williamr@2
|
111 |
#define EVP_PKT_ENC 0x0020
|
williamr@2
|
112 |
#define EVP_PKT_EXCH 0x0040
|
williamr@2
|
113 |
#define EVP_PKS_RSA 0x0100
|
williamr@2
|
114 |
#define EVP_PKS_DSA 0x0200
|
williamr@2
|
115 |
#define EVP_PKS_EC 0x0400
|
williamr@2
|
116 |
#define EVP_PKT_EXP 0x1000 /* <= 512 bit key */
|
williamr@2
|
117 |
|
williamr@2
|
118 |
#define EVP_PKEY_NONE NID_undef
|
williamr@2
|
119 |
#define EVP_PKEY_RSA NID_rsaEncryption
|
williamr@2
|
120 |
#define EVP_PKEY_RSA2 NID_rsa
|
williamr@2
|
121 |
#define EVP_PKEY_DSA NID_dsa
|
williamr@2
|
122 |
#define EVP_PKEY_DSA1 NID_dsa_2
|
williamr@2
|
123 |
#define EVP_PKEY_DSA2 NID_dsaWithSHA
|
williamr@2
|
124 |
#define EVP_PKEY_DSA3 NID_dsaWithSHA1
|
williamr@2
|
125 |
#define EVP_PKEY_DSA4 NID_dsaWithSHA1_2
|
williamr@2
|
126 |
#define EVP_PKEY_DH NID_dhKeyAgreement
|
williamr@2
|
127 |
#define EVP_PKEY_EC NID_X9_62_id_ecPublicKey
|
williamr@2
|
128 |
|
williamr@2
|
129 |
#ifdef __cplusplus
|
williamr@2
|
130 |
extern "C" {
|
williamr@2
|
131 |
#endif
|
williamr@2
|
132 |
|
williamr@2
|
133 |
/* Type needs to be a bit field
|
williamr@2
|
134 |
* Sub-type needs to be for variations on the method, as in, can it do
|
williamr@2
|
135 |
* arbitrary encryption.... */
|
williamr@2
|
136 |
struct evp_pkey_st
|
williamr@2
|
137 |
{
|
williamr@2
|
138 |
int type;
|
williamr@2
|
139 |
int save_type;
|
williamr@2
|
140 |
int references;
|
williamr@2
|
141 |
union {
|
williamr@2
|
142 |
char *ptr;
|
williamr@2
|
143 |
#ifndef OPENSSL_NO_RSA
|
williamr@2
|
144 |
struct rsa_st *rsa; /* RSA */
|
williamr@2
|
145 |
#endif
|
williamr@2
|
146 |
#ifndef OPENSSL_NO_DSA
|
williamr@2
|
147 |
struct dsa_st *dsa; /* DSA */
|
williamr@2
|
148 |
#endif
|
williamr@2
|
149 |
#ifndef OPENSSL_NO_DH
|
williamr@2
|
150 |
struct dh_st *dh; /* DH */
|
williamr@2
|
151 |
#endif
|
williamr@2
|
152 |
#ifndef OPENSSL_NO_EC
|
williamr@2
|
153 |
struct ec_key_st *ec; /* ECC */
|
williamr@2
|
154 |
#endif
|
williamr@2
|
155 |
} pkey;
|
williamr@2
|
156 |
int save_parameters;
|
williamr@2
|
157 |
STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */
|
williamr@2
|
158 |
} /* EVP_PKEY */;
|
williamr@2
|
159 |
|
williamr@2
|
160 |
#define EVP_PKEY_MO_SIGN 0x0001
|
williamr@2
|
161 |
#define EVP_PKEY_MO_VERIFY 0x0002
|
williamr@2
|
162 |
#define EVP_PKEY_MO_ENCRYPT 0x0004
|
williamr@2
|
163 |
#define EVP_PKEY_MO_DECRYPT 0x0008
|
williamr@2
|
164 |
|
williamr@2
|
165 |
#if 0
|
williamr@2
|
166 |
/* This structure is required to tie the message digest and signing together.
|
williamr@2
|
167 |
* The lookup can be done by md/pkey_method, oid, oid/pkey_method, or
|
williamr@2
|
168 |
* oid, md and pkey.
|
williamr@2
|
169 |
* This is required because for various smart-card perform the digest and
|
williamr@2
|
170 |
* signing/verification on-board. To handle this case, the specific
|
williamr@2
|
171 |
* EVP_MD and EVP_PKEY_METHODs need to be closely associated.
|
williamr@2
|
172 |
* When a PKEY is created, it will have a EVP_PKEY_METHOD associated with it.
|
williamr@2
|
173 |
* This can either be software or a token to provide the required low level
|
williamr@2
|
174 |
* routines.
|
williamr@2
|
175 |
*/
|
williamr@2
|
176 |
typedef struct evp_pkey_md_st
|
williamr@2
|
177 |
{
|
williamr@2
|
178 |
int oid;
|
williamr@2
|
179 |
EVP_MD *md;
|
williamr@2
|
180 |
EVP_PKEY_METHOD *pkey;
|
williamr@2
|
181 |
} EVP_PKEY_MD;
|
williamr@2
|
182 |
|
williamr@2
|
183 |
#define EVP_rsa_md2() \
|
williamr@2
|
184 |
EVP_PKEY_MD_add(NID_md2WithRSAEncryption,\
|
williamr@2
|
185 |
EVP_rsa_pkcs1(),EVP_md2())
|
williamr@2
|
186 |
#define EVP_rsa_md5() \
|
williamr@2
|
187 |
EVP_PKEY_MD_add(NID_md5WithRSAEncryption,\
|
williamr@2
|
188 |
EVP_rsa_pkcs1(),EVP_md5())
|
williamr@2
|
189 |
#define EVP_rsa_sha0() \
|
williamr@2
|
190 |
EVP_PKEY_MD_add(NID_shaWithRSAEncryption,\
|
williamr@2
|
191 |
EVP_rsa_pkcs1(),EVP_sha())
|
williamr@2
|
192 |
#define EVP_rsa_sha1() \
|
williamr@2
|
193 |
EVP_PKEY_MD_add(NID_sha1WithRSAEncryption,\
|
williamr@2
|
194 |
EVP_rsa_pkcs1(),EVP_sha1())
|
williamr@2
|
195 |
#define EVP_rsa_ripemd160() \
|
williamr@2
|
196 |
EVP_PKEY_MD_add(NID_ripemd160WithRSA,\
|
williamr@2
|
197 |
EVP_rsa_pkcs1(),EVP_ripemd160())
|
williamr@2
|
198 |
#define EVP_rsa_mdc2() \
|
williamr@2
|
199 |
EVP_PKEY_MD_add(NID_mdc2WithRSA,\
|
williamr@2
|
200 |
EVP_rsa_octet_string(),EVP_mdc2())
|
williamr@2
|
201 |
#define EVP_dsa_sha() \
|
williamr@2
|
202 |
EVP_PKEY_MD_add(NID_dsaWithSHA,\
|
williamr@2
|
203 |
EVP_dsa(),EVP_sha())
|
williamr@2
|
204 |
#define EVP_dsa_sha1() \
|
williamr@2
|
205 |
EVP_PKEY_MD_add(NID_dsaWithSHA1,\
|
williamr@2
|
206 |
EVP_dsa(),EVP_sha1())
|
williamr@2
|
207 |
|
williamr@2
|
208 |
typedef struct evp_pkey_method_st
|
williamr@2
|
209 |
{
|
williamr@2
|
210 |
char *name;
|
williamr@2
|
211 |
int flags;
|
williamr@2
|
212 |
int type; /* RSA, DSA, an SSLeay specific constant */
|
williamr@2
|
213 |
int oid; /* For the pub-key type */
|
williamr@2
|
214 |
int encrypt_oid; /* pub/priv key encryption */
|
williamr@2
|
215 |
|
williamr@2
|
216 |
int (*sign)();
|
williamr@2
|
217 |
int (*verify)();
|
williamr@2
|
218 |
struct {
|
williamr@2
|
219 |
int (*set)(); /* get and/or set the underlying type */
|
williamr@2
|
220 |
int (*get)();
|
williamr@2
|
221 |
int (*encrypt)();
|
williamr@2
|
222 |
int (*decrypt)();
|
williamr@2
|
223 |
int (*i2d)();
|
williamr@2
|
224 |
int (*d2i)();
|
williamr@2
|
225 |
int (*dup)();
|
williamr@2
|
226 |
} pub,priv;
|
williamr@2
|
227 |
int (*set_asn1_parameters)();
|
williamr@2
|
228 |
int (*get_asn1_parameters)();
|
williamr@2
|
229 |
} EVP_PKEY_METHOD;
|
williamr@2
|
230 |
#endif
|
williamr@2
|
231 |
|
williamr@2
|
232 |
#ifndef EVP_MD
|
williamr@2
|
233 |
struct env_md_st
|
williamr@2
|
234 |
{
|
williamr@2
|
235 |
int type;
|
williamr@2
|
236 |
int pkey_type;
|
williamr@2
|
237 |
int md_size;
|
williamr@2
|
238 |
unsigned long flags;
|
williamr@2
|
239 |
int (*init)(EVP_MD_CTX *ctx);
|
williamr@2
|
240 |
int (*update)(EVP_MD_CTX *ctx,const void *data,size_t count);
|
williamr@2
|
241 |
int (*final)(EVP_MD_CTX *ctx,unsigned char *md);
|
williamr@2
|
242 |
int (*copy)(EVP_MD_CTX *to,const EVP_MD_CTX *from);
|
williamr@2
|
243 |
int (*cleanup)(EVP_MD_CTX *ctx);
|
williamr@2
|
244 |
|
williamr@2
|
245 |
/* FIXME: prototype these some day */
|
williamr@2
|
246 |
int (*sign)(int type, const unsigned char *m, unsigned int m_length,
|
williamr@2
|
247 |
unsigned char *sigret, unsigned int *siglen, void *key);
|
williamr@2
|
248 |
int (*verify)(int type, const unsigned char *m, unsigned int m_length,
|
williamr@2
|
249 |
const unsigned char *sigbuf, unsigned int siglen,
|
williamr@2
|
250 |
void *key);
|
williamr@2
|
251 |
int required_pkey_type[5]; /*EVP_PKEY_xxx */
|
williamr@2
|
252 |
int block_size;
|
williamr@2
|
253 |
int ctx_size; /* how big does the ctx->md_data need to be */
|
williamr@2
|
254 |
} /* EVP_MD */;
|
williamr@2
|
255 |
|
williamr@2
|
256 |
typedef int evp_sign_method(int type,const unsigned char *m,
|
williamr@2
|
257 |
unsigned int m_length,unsigned char *sigret,
|
williamr@2
|
258 |
unsigned int *siglen, void *key);
|
williamr@2
|
259 |
typedef int evp_verify_method(int type,const unsigned char *m,
|
williamr@2
|
260 |
unsigned int m_length,const unsigned char *sigbuf,
|
williamr@2
|
261 |
unsigned int siglen, void *key);
|
williamr@2
|
262 |
|
williamr@2
|
263 |
#define EVP_MD_FLAG_ONESHOT 0x0001 /* digest can only handle a single
|
williamr@2
|
264 |
* block */
|
williamr@2
|
265 |
|
williamr@2
|
266 |
#define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0}
|
williamr@2
|
267 |
|
williamr@2
|
268 |
#ifndef OPENSSL_NO_DSA
|
williamr@2
|
269 |
#define EVP_PKEY_DSA_method (evp_sign_method *)DSA_sign, \
|
williamr@2
|
270 |
(evp_verify_method *)DSA_verify, \
|
williamr@2
|
271 |
{EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3, \
|
williamr@2
|
272 |
EVP_PKEY_DSA4,0}
|
williamr@2
|
273 |
#else
|
williamr@2
|
274 |
#define EVP_PKEY_DSA_method EVP_PKEY_NULL_method
|
williamr@2
|
275 |
#endif
|
williamr@2
|
276 |
|
williamr@2
|
277 |
#ifndef OPENSSL_NO_ECDSA
|
williamr@2
|
278 |
#define EVP_PKEY_ECDSA_method (evp_sign_method *)ECDSA_sign, \
|
williamr@2
|
279 |
(evp_verify_method *)ECDSA_verify, \
|
williamr@2
|
280 |
{EVP_PKEY_EC,0,0,0}
|
williamr@2
|
281 |
#else
|
williamr@2
|
282 |
#define EVP_PKEY_ECDSA_method EVP_PKEY_NULL_method
|
williamr@2
|
283 |
#endif
|
williamr@2
|
284 |
|
williamr@2
|
285 |
#ifndef OPENSSL_NO_RSA
|
williamr@2
|
286 |
#define EVP_PKEY_RSA_method (evp_sign_method *)RSA_sign, \
|
williamr@2
|
287 |
(evp_verify_method *)RSA_verify, \
|
williamr@2
|
288 |
{EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0}
|
williamr@2
|
289 |
#define EVP_PKEY_RSA_ASN1_OCTET_STRING_method \
|
williamr@2
|
290 |
(evp_sign_method *)RSA_sign_ASN1_OCTET_STRING, \
|
williamr@2
|
291 |
(evp_verify_method *)RSA_verify_ASN1_OCTET_STRING, \
|
williamr@2
|
292 |
{EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0}
|
williamr@2
|
293 |
#else
|
williamr@2
|
294 |
#define EVP_PKEY_RSA_method EVP_PKEY_NULL_method
|
williamr@2
|
295 |
#define EVP_PKEY_RSA_ASN1_OCTET_STRING_method EVP_PKEY_NULL_method
|
williamr@2
|
296 |
#endif
|
williamr@2
|
297 |
|
williamr@2
|
298 |
#endif /* !EVP_MD */
|
williamr@2
|
299 |
|
williamr@2
|
300 |
struct env_md_ctx_st
|
williamr@2
|
301 |
{
|
williamr@2
|
302 |
const EVP_MD *digest;
|
williamr@2
|
303 |
ENGINE *engine; /* functional reference if 'digest' is ENGINE-provided */
|
williamr@2
|
304 |
unsigned long flags;
|
williamr@2
|
305 |
void *md_data;
|
williamr@2
|
306 |
} /* EVP_MD_CTX */;
|
williamr@2
|
307 |
|
williamr@2
|
308 |
/* values for EVP_MD_CTX flags */
|
williamr@2
|
309 |
|
williamr@2
|
310 |
#define EVP_MD_CTX_FLAG_ONESHOT 0x0001 /* digest update will be called
|
williamr@2
|
311 |
* once only */
|
williamr@2
|
312 |
#define EVP_MD_CTX_FLAG_CLEANED 0x0002 /* context has already been
|
williamr@2
|
313 |
* cleaned */
|
williamr@2
|
314 |
#define EVP_MD_CTX_FLAG_REUSE 0x0004 /* Don't free up ctx->md_data
|
williamr@2
|
315 |
* in EVP_MD_CTX_cleanup */
|
williamr@2
|
316 |
|
williamr@2
|
317 |
struct evp_cipher_st
|
williamr@2
|
318 |
{
|
williamr@2
|
319 |
int nid;
|
williamr@2
|
320 |
int block_size;
|
williamr@2
|
321 |
int key_len; /* Default value for variable length ciphers */
|
williamr@2
|
322 |
int iv_len;
|
williamr@2
|
323 |
unsigned long flags; /* Various flags */
|
williamr@2
|
324 |
int (*init)(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
williamr@2
|
325 |
const unsigned char *iv, int enc); /* init key */
|
williamr@2
|
326 |
int (*do_cipher)(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
williamr@2
|
327 |
const unsigned char *in, unsigned int inl);/* encrypt/decrypt data */
|
williamr@2
|
328 |
int (*cleanup)(EVP_CIPHER_CTX *); /* cleanup ctx */
|
williamr@2
|
329 |
int ctx_size; /* how big ctx->cipher_data needs to be */
|
williamr@2
|
330 |
int (*set_asn1_parameters)(EVP_CIPHER_CTX *, ASN1_TYPE *); /* Populate a ASN1_TYPE with parameters */
|
williamr@2
|
331 |
int (*get_asn1_parameters)(EVP_CIPHER_CTX *, ASN1_TYPE *); /* Get parameters from a ASN1_TYPE */
|
williamr@2
|
332 |
int (*ctrl)(EVP_CIPHER_CTX *, int type, int arg, void *ptr); /* Miscellaneous operations */
|
williamr@2
|
333 |
void *app_data; /* Application data */
|
williamr@2
|
334 |
} /* EVP_CIPHER */;
|
williamr@2
|
335 |
|
williamr@2
|
336 |
/* Values for cipher flags */
|
williamr@2
|
337 |
|
williamr@2
|
338 |
/* Modes for ciphers */
|
williamr@2
|
339 |
|
williamr@2
|
340 |
#define EVP_CIPH_STREAM_CIPHER 0x0
|
williamr@2
|
341 |
#define EVP_CIPH_ECB_MODE 0x1
|
williamr@2
|
342 |
#define EVP_CIPH_CBC_MODE 0x2
|
williamr@2
|
343 |
#define EVP_CIPH_CFB_MODE 0x3
|
williamr@2
|
344 |
#define EVP_CIPH_OFB_MODE 0x4
|
williamr@2
|
345 |
#define EVP_CIPH_MODE 0x7
|
williamr@2
|
346 |
/* Set if variable length cipher */
|
williamr@2
|
347 |
#define EVP_CIPH_VARIABLE_LENGTH 0x8
|
williamr@2
|
348 |
/* Set if the iv handling should be done by the cipher itself */
|
williamr@2
|
349 |
#define EVP_CIPH_CUSTOM_IV 0x10
|
williamr@2
|
350 |
/* Set if the cipher's init() function should be called if key is NULL */
|
williamr@2
|
351 |
#define EVP_CIPH_ALWAYS_CALL_INIT 0x20
|
williamr@2
|
352 |
/* Call ctrl() to init cipher parameters */
|
williamr@2
|
353 |
#define EVP_CIPH_CTRL_INIT 0x40
|
williamr@2
|
354 |
/* Don't use standard key length function */
|
williamr@2
|
355 |
#define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80
|
williamr@2
|
356 |
/* Don't use standard block padding */
|
williamr@2
|
357 |
#define EVP_CIPH_NO_PADDING 0x100
|
williamr@2
|
358 |
/* cipher handles random key generation */
|
williamr@2
|
359 |
#define EVP_CIPH_RAND_KEY 0x200
|
williamr@2
|
360 |
|
williamr@2
|
361 |
/* ctrl() values */
|
williamr@2
|
362 |
|
williamr@2
|
363 |
#define EVP_CTRL_INIT 0x0
|
williamr@2
|
364 |
#define EVP_CTRL_SET_KEY_LENGTH 0x1
|
williamr@2
|
365 |
#define EVP_CTRL_GET_RC2_KEY_BITS 0x2
|
williamr@2
|
366 |
#define EVP_CTRL_SET_RC2_KEY_BITS 0x3
|
williamr@2
|
367 |
#define EVP_CTRL_GET_RC5_ROUNDS 0x4
|
williamr@2
|
368 |
#define EVP_CTRL_SET_RC5_ROUNDS 0x5
|
williamr@2
|
369 |
#define EVP_CTRL_RAND_KEY 0x6
|
williamr@2
|
370 |
|
williamr@2
|
371 |
typedef struct evp_cipher_info_st
|
williamr@2
|
372 |
{
|
williamr@2
|
373 |
const EVP_CIPHER *cipher;
|
williamr@2
|
374 |
unsigned char iv[EVP_MAX_IV_LENGTH];
|
williamr@2
|
375 |
} EVP_CIPHER_INFO;
|
williamr@2
|
376 |
|
williamr@2
|
377 |
struct evp_cipher_ctx_st
|
williamr@2
|
378 |
{
|
williamr@2
|
379 |
const EVP_CIPHER *cipher;
|
williamr@2
|
380 |
ENGINE *engine; /* functional reference if 'cipher' is ENGINE-provided */
|
williamr@2
|
381 |
int encrypt; /* encrypt or decrypt */
|
williamr@2
|
382 |
int buf_len; /* number we have left */
|
williamr@2
|
383 |
|
williamr@2
|
384 |
unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */
|
williamr@2
|
385 |
unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */
|
williamr@2
|
386 |
unsigned char buf[EVP_MAX_BLOCK_LENGTH];/* saved partial block */
|
williamr@2
|
387 |
int num; /* used by cfb/ofb mode */
|
williamr@2
|
388 |
|
williamr@2
|
389 |
void *app_data; /* application stuff */
|
williamr@2
|
390 |
int key_len; /* May change for variable length cipher */
|
williamr@2
|
391 |
unsigned long flags; /* Various flags */
|
williamr@2
|
392 |
void *cipher_data; /* per EVP data */
|
williamr@2
|
393 |
int final_used;
|
williamr@2
|
394 |
int block_mask;
|
williamr@2
|
395 |
unsigned char final[EVP_MAX_BLOCK_LENGTH];/* possible final block */
|
williamr@2
|
396 |
} /* EVP_CIPHER_CTX */;
|
williamr@2
|
397 |
|
williamr@2
|
398 |
typedef struct evp_Encode_Ctx_st
|
williamr@2
|
399 |
{
|
williamr@2
|
400 |
int num; /* number saved in a partial encode/decode */
|
williamr@2
|
401 |
int length; /* The length is either the output line length
|
williamr@2
|
402 |
* (in input bytes) or the shortest input line
|
williamr@2
|
403 |
* length that is ok. Once decoding begins,
|
williamr@2
|
404 |
* the length is adjusted up each time a longer
|
williamr@2
|
405 |
* line is decoded */
|
williamr@2
|
406 |
unsigned char enc_data[80]; /* data to encode */
|
williamr@2
|
407 |
int line_num; /* number read on current line */
|
williamr@2
|
408 |
int expect_nl;
|
williamr@2
|
409 |
} EVP_ENCODE_CTX;
|
williamr@2
|
410 |
|
williamr@2
|
411 |
/* Password based encryption function */
|
williamr@2
|
412 |
typedef int (EVP_PBE_KEYGEN)(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
|
williamr@2
|
413 |
ASN1_TYPE *param, const EVP_CIPHER *cipher,
|
williamr@2
|
414 |
const EVP_MD *md, int en_de);
|
williamr@2
|
415 |
|
williamr@2
|
416 |
#ifndef OPENSSL_NO_RSA
|
williamr@2
|
417 |
#define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
|
williamr@2
|
418 |
(char *)(rsa))
|
williamr@2
|
419 |
#endif
|
williamr@2
|
420 |
|
williamr@2
|
421 |
#ifndef OPENSSL_NO_DSA
|
williamr@2
|
422 |
#define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
|
williamr@2
|
423 |
(char *)(dsa))
|
williamr@2
|
424 |
#endif
|
williamr@2
|
425 |
|
williamr@2
|
426 |
#ifndef OPENSSL_NO_DH
|
williamr@2
|
427 |
#define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\
|
williamr@2
|
428 |
(char *)(dh))
|
williamr@2
|
429 |
#endif
|
williamr@2
|
430 |
|
williamr@2
|
431 |
#ifndef OPENSSL_NO_EC
|
williamr@2
|
432 |
#define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC,\
|
williamr@2
|
433 |
(char *)(eckey))
|
williamr@2
|
434 |
#endif
|
williamr@2
|
435 |
|
williamr@2
|
436 |
/* Add some extra combinations */
|
williamr@2
|
437 |
#define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a))
|
williamr@2
|
438 |
#define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a))
|
williamr@2
|
439 |
#define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a))
|
williamr@2
|
440 |
#define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a))
|
williamr@2
|
441 |
|
williamr@2
|
442 |
int EVP_MD_type(const EVP_MD *md);
|
williamr@2
|
443 |
#define EVP_MD_nid(e) EVP_MD_type(e)
|
williamr@2
|
444 |
#define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e))
|
williamr@2
|
445 |
int EVP_MD_pkey_type(const EVP_MD *md);
|
williamr@2
|
446 |
int EVP_MD_size(const EVP_MD *md);
|
williamr@2
|
447 |
int EVP_MD_block_size(const EVP_MD *md);
|
williamr@2
|
448 |
|
williamr@2
|
449 |
const EVP_MD * EVP_MD_CTX_md(const EVP_MD_CTX *ctx);
|
williamr@2
|
450 |
#define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e))
|
williamr@2
|
451 |
#define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e))
|
williamr@2
|
452 |
#define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e))
|
williamr@2
|
453 |
|
williamr@2
|
454 |
int EVP_CIPHER_nid(const EVP_CIPHER *cipher);
|
williamr@2
|
455 |
#define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e))
|
williamr@2
|
456 |
int EVP_CIPHER_block_size(const EVP_CIPHER *cipher);
|
williamr@2
|
457 |
int EVP_CIPHER_key_length(const EVP_CIPHER *cipher);
|
williamr@2
|
458 |
int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher);
|
williamr@2
|
459 |
unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher);
|
williamr@2
|
460 |
#define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE)
|
williamr@2
|
461 |
|
williamr@2
|
462 |
const EVP_CIPHER * EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
463 |
int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
464 |
int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
465 |
int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
466 |
int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
467 |
void * EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
468 |
void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data);
|
williamr@2
|
469 |
#define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c))
|
williamr@2
|
470 |
unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
471 |
#define EVP_CIPHER_CTX_mode(e) (EVP_CIPHER_CTX_flags(e) & EVP_CIPH_MODE)
|
williamr@2
|
472 |
|
williamr@2
|
473 |
#define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80)
|
williamr@2
|
474 |
#define EVP_DECODE_LENGTH(l) ((l+3)/4*3+80)
|
williamr@2
|
475 |
|
williamr@2
|
476 |
#define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c)
|
williamr@2
|
477 |
#define EVP_SignInit(a,b) EVP_DigestInit(a,b)
|
williamr@2
|
478 |
#define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c)
|
williamr@2
|
479 |
#define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c)
|
williamr@2
|
480 |
#define EVP_VerifyInit(a,b) EVP_DigestInit(a,b)
|
williamr@2
|
481 |
#define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c)
|
williamr@2
|
482 |
#define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e)
|
williamr@2
|
483 |
#define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e)
|
williamr@2
|
484 |
|
williamr@2
|
485 |
#ifdef CONST_STRICT
|
williamr@2
|
486 |
IMPORT_C void BIO_set_md(BIO *,const EVP_MD *md);
|
williamr@2
|
487 |
#else
|
williamr@2
|
488 |
# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)md)
|
williamr@2
|
489 |
#endif
|
williamr@2
|
490 |
#define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)mdp)
|
williamr@2
|
491 |
#define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(char *)mdcp)
|
williamr@2
|
492 |
#define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(char *)mdcp)
|
williamr@2
|
493 |
#define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL)
|
williamr@2
|
494 |
#define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp)
|
williamr@2
|
495 |
|
williamr@2
|
496 |
int EVP_Cipher(EVP_CIPHER_CTX *c,
|
williamr@2
|
497 |
unsigned char *out,
|
williamr@2
|
498 |
const unsigned char *in,
|
williamr@2
|
499 |
unsigned int inl);
|
williamr@2
|
500 |
|
williamr@2
|
501 |
#define EVP_add_cipher_alias(n,alias) \
|
williamr@2
|
502 |
OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n))
|
williamr@2
|
503 |
#define EVP_add_digest_alias(n,alias) \
|
williamr@2
|
504 |
OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n))
|
williamr@2
|
505 |
#define EVP_delete_cipher_alias(alias) \
|
williamr@2
|
506 |
OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS);
|
williamr@2
|
507 |
#define EVP_delete_digest_alias(alias) \
|
williamr@2
|
508 |
OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS);
|
williamr@2
|
509 |
|
williamr@2
|
510 |
IMPORT_C void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
|
williamr@2
|
511 |
IMPORT_C int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
|
williamr@2
|
512 |
IMPORT_C EVP_MD_CTX *EVP_MD_CTX_create(void);
|
williamr@2
|
513 |
IMPORT_C void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
|
williamr@2
|
514 |
IMPORT_C int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out,const EVP_MD_CTX *in);
|
williamr@2
|
515 |
IMPORT_C void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
|
williamr@2
|
516 |
IMPORT_C void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
|
williamr@2
|
517 |
IMPORT_C int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx,int flags);
|
williamr@2
|
518 |
IMPORT_C int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
|
williamr@2
|
519 |
IMPORT_C int EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d,
|
williamr@2
|
520 |
size_t cnt);
|
williamr@2
|
521 |
IMPORT_C int EVP_DigestFinal_ex(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
|
williamr@2
|
522 |
IMPORT_C int EVP_Digest(const void *data, size_t count,
|
williamr@2
|
523 |
unsigned char *md, unsigned int *size, const EVP_MD *type, ENGINE *impl);
|
williamr@2
|
524 |
|
williamr@2
|
525 |
IMPORT_C int EVP_MD_CTX_copy(EVP_MD_CTX *out,const EVP_MD_CTX *in);
|
williamr@2
|
526 |
IMPORT_C int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
|
williamr@2
|
527 |
IMPORT_C int EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
|
williamr@2
|
528 |
|
williamr@2
|
529 |
IMPORT_C int EVP_read_pw_string(char *buf,int length,const char *prompt,int verify);
|
williamr@2
|
530 |
IMPORT_C void EVP_set_pw_prompt(const char *prompt);
|
williamr@2
|
531 |
IMPORT_C char * EVP_get_pw_prompt(void);
|
williamr@2
|
532 |
|
williamr@2
|
533 |
IMPORT_C int EVP_BytesToKey(const EVP_CIPHER *type,const EVP_MD *md,
|
williamr@2
|
534 |
const unsigned char *salt, const unsigned char *data,
|
williamr@2
|
535 |
int datal, int count, unsigned char *key,unsigned char *iv);
|
williamr@2
|
536 |
|
williamr@2
|
537 |
IMPORT_C int EVP_EncryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher,
|
williamr@2
|
538 |
const unsigned char *key, const unsigned char *iv);
|
williamr@2
|
539 |
IMPORT_C int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
|
williamr@2
|
540 |
const unsigned char *key, const unsigned char *iv);
|
williamr@2
|
541 |
IMPORT_C int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
williamr@2
|
542 |
int *outl, const unsigned char *in, int inl);
|
williamr@2
|
543 |
IMPORT_C int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
|
williamr@2
|
544 |
IMPORT_C int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
|
williamr@2
|
545 |
|
williamr@2
|
546 |
IMPORT_C int EVP_DecryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher,
|
williamr@2
|
547 |
const unsigned char *key, const unsigned char *iv);
|
williamr@2
|
548 |
IMPORT_C int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
|
williamr@2
|
549 |
const unsigned char *key, const unsigned char *iv);
|
williamr@2
|
550 |
IMPORT_C int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
williamr@2
|
551 |
int *outl, const unsigned char *in, int inl);
|
williamr@2
|
552 |
IMPORT_C int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
|
williamr@2
|
553 |
IMPORT_C int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
|
williamr@2
|
554 |
|
williamr@2
|
555 |
IMPORT_C int EVP_CipherInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher,
|
williamr@2
|
556 |
const unsigned char *key,const unsigned char *iv,
|
williamr@2
|
557 |
int enc);
|
williamr@2
|
558 |
IMPORT_C int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
|
williamr@2
|
559 |
const unsigned char *key,const unsigned char *iv,
|
williamr@2
|
560 |
int enc);
|
williamr@2
|
561 |
IMPORT_C int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
williamr@2
|
562 |
int *outl, const unsigned char *in, int inl);
|
williamr@2
|
563 |
IMPORT_C int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
|
williamr@2
|
564 |
IMPORT_C int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
|
williamr@2
|
565 |
|
williamr@2
|
566 |
IMPORT_C int EVP_SignFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s,
|
williamr@2
|
567 |
EVP_PKEY *pkey);
|
williamr@2
|
568 |
|
williamr@2
|
569 |
IMPORT_C int EVP_VerifyFinal(EVP_MD_CTX *ctx,const unsigned char *sigbuf,
|
williamr@2
|
570 |
unsigned int siglen,EVP_PKEY *pkey);
|
williamr@2
|
571 |
|
williamr@2
|
572 |
IMPORT_C int EVP_OpenInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *type,
|
williamr@2
|
573 |
const unsigned char *ek, int ekl, const unsigned char *iv,
|
williamr@2
|
574 |
EVP_PKEY *priv);
|
williamr@2
|
575 |
IMPORT_C int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
|
williamr@2
|
576 |
|
williamr@2
|
577 |
IMPORT_C int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
|
williamr@2
|
578 |
unsigned char **ek, int *ekl, unsigned char *iv,
|
williamr@2
|
579 |
EVP_PKEY **pubk, int npubk);
|
williamr@2
|
580 |
IMPORT_C int EVP_SealFinal(EVP_CIPHER_CTX *ctx,unsigned char *out,int *outl);
|
williamr@2
|
581 |
|
williamr@2
|
582 |
IMPORT_C void EVP_EncodeInit(EVP_ENCODE_CTX *ctx);
|
williamr@2
|
583 |
IMPORT_C void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl,
|
williamr@2
|
584 |
const unsigned char *in,int inl);
|
williamr@2
|
585 |
IMPORT_C void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl);
|
williamr@2
|
586 |
IMPORT_C int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n);
|
williamr@2
|
587 |
|
williamr@2
|
588 |
IMPORT_C void EVP_DecodeInit(EVP_ENCODE_CTX *ctx);
|
williamr@2
|
589 |
IMPORT_C int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl,
|
williamr@2
|
590 |
const unsigned char *in, int inl);
|
williamr@2
|
591 |
IMPORT_C int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned
|
williamr@2
|
592 |
char *out, int *outl);
|
williamr@2
|
593 |
IMPORT_C int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n);
|
williamr@2
|
594 |
|
williamr@2
|
595 |
IMPORT_C void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
|
williamr@2
|
596 |
IMPORT_C int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
|
williamr@2
|
597 |
IMPORT_C EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
|
williamr@2
|
598 |
IMPORT_C void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);
|
williamr@2
|
599 |
IMPORT_C int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
|
williamr@2
|
600 |
IMPORT_C int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad);
|
williamr@2
|
601 |
IMPORT_C int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
|
williamr@2
|
602 |
IMPORT_C int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key);
|
williamr@2
|
603 |
|
williamr@2
|
604 |
#ifndef OPENSSL_NO_BIO
|
williamr@2
|
605 |
IMPORT_C BIO_METHOD *BIO_f_md(void);
|
williamr@2
|
606 |
IMPORT_C BIO_METHOD *BIO_f_base64(void);
|
williamr@2
|
607 |
IMPORT_C BIO_METHOD *BIO_f_cipher(void);
|
williamr@2
|
608 |
IMPORT_C BIO_METHOD *BIO_f_reliable(void);
|
williamr@2
|
609 |
IMPORT_C void BIO_set_cipher(BIO *b,const EVP_CIPHER *c,const unsigned char *k,
|
williamr@2
|
610 |
const unsigned char *i, int enc);
|
williamr@2
|
611 |
#endif
|
williamr@2
|
612 |
|
williamr@2
|
613 |
IMPORT_C const EVP_MD *EVP_md_null(void);
|
williamr@2
|
614 |
#ifndef OPENSSL_NO_MD2
|
williamr@2
|
615 |
IMPORT_C const EVP_MD *EVP_md2(void);
|
williamr@2
|
616 |
#endif
|
williamr@2
|
617 |
#ifndef OPENSSL_NO_MD5
|
williamr@2
|
618 |
IMPORT_C const EVP_MD *EVP_md5(void);
|
williamr@2
|
619 |
#endif
|
williamr@2
|
620 |
#ifndef OPENSSL_NO_SHA
|
williamr@2
|
621 |
IMPORT_C const EVP_MD *EVP_sha(void);
|
williamr@2
|
622 |
IMPORT_C const EVP_MD *EVP_sha1(void);
|
williamr@2
|
623 |
IMPORT_C const EVP_MD *EVP_dss(void);
|
williamr@2
|
624 |
IMPORT_C const EVP_MD *EVP_dss1(void);
|
williamr@2
|
625 |
#endif
|
williamr@2
|
626 |
IMPORT_C const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */
|
williamr@2
|
627 |
#ifndef OPENSSL_NO_DES
|
williamr@2
|
628 |
IMPORT_C const EVP_CIPHER *EVP_des_ecb(void);
|
williamr@2
|
629 |
IMPORT_C const EVP_CIPHER *EVP_des_ede(void);
|
williamr@2
|
630 |
IMPORT_C const EVP_CIPHER *EVP_des_ede3(void);
|
williamr@2
|
631 |
IMPORT_C const EVP_CIPHER *EVP_des_ede_ecb(void);
|
williamr@2
|
632 |
IMPORT_C const EVP_CIPHER *EVP_des_ede3_ecb(void);
|
williamr@2
|
633 |
IMPORT_C const EVP_CIPHER *EVP_des_cfb64(void);
|
williamr@2
|
634 |
# define EVP_des_cfb EVP_des_cfb64
|
williamr@2
|
635 |
IMPORT_C const EVP_CIPHER *EVP_des_cfb1(void);
|
williamr@2
|
636 |
IMPORT_C const EVP_CIPHER *EVP_des_cfb8(void);
|
williamr@2
|
637 |
IMPORT_C const EVP_CIPHER *EVP_des_ede_cfb64(void);
|
williamr@2
|
638 |
# define EVP_des_ede_cfb EVP_des_ede_cfb64
|
williamr@2
|
639 |
#if 0
|
williamr@2
|
640 |
IMPORT_C const EVP_CIPHER *EVP_des_ede_cfb1(void);
|
williamr@2
|
641 |
IMPORT_C const EVP_CIPHER *EVP_des_ede_cfb8(void);
|
williamr@2
|
642 |
#endif
|
williamr@2
|
643 |
IMPORT_C const EVP_CIPHER *EVP_des_ede3_cfb64(void);
|
williamr@2
|
644 |
# define EVP_des_ede3_cfb EVP_des_ede3_cfb64
|
williamr@2
|
645 |
IMPORT_C const EVP_CIPHER *EVP_des_ede3_cfb1(void);
|
williamr@2
|
646 |
IMPORT_C const EVP_CIPHER *EVP_des_ede3_cfb8(void);
|
williamr@2
|
647 |
IMPORT_C const EVP_CIPHER *EVP_des_ofb(void);
|
williamr@2
|
648 |
IMPORT_C const EVP_CIPHER *EVP_des_ede_ofb(void);
|
williamr@2
|
649 |
IMPORT_C const EVP_CIPHER *EVP_des_ede3_ofb(void);
|
williamr@2
|
650 |
IMPORT_C const EVP_CIPHER *EVP_des_cbc(void);
|
williamr@2
|
651 |
IMPORT_C const EVP_CIPHER *EVP_des_ede_cbc(void);
|
williamr@2
|
652 |
IMPORT_C const EVP_CIPHER *EVP_des_ede3_cbc(void);
|
williamr@2
|
653 |
IMPORT_C const EVP_CIPHER *EVP_desx_cbc(void);
|
williamr@2
|
654 |
/* This should now be supported through the dev_crypto ENGINE. But also, why are
|
williamr@2
|
655 |
* rc4 and md5 declarations made here inside a "NO_DES" precompiler branch? */
|
williamr@2
|
656 |
#if 0
|
williamr@2
|
657 |
# ifdef OPENSSL_OPENBSD_DEV_CRYPTO
|
williamr@2
|
658 |
IMPORT_C const EVP_CIPHER *EVP_dev_crypto_des_ede3_cbc(void);
|
williamr@2
|
659 |
IMPORT_C const EVP_CIPHER *EVP_dev_crypto_rc4(void);
|
williamr@2
|
660 |
IMPORT_C const EVP_MD *EVP_dev_crypto_md5(void);
|
williamr@2
|
661 |
# endif
|
williamr@2
|
662 |
#endif
|
williamr@2
|
663 |
#endif
|
williamr@2
|
664 |
#ifndef OPENSSL_NO_RC4
|
williamr@2
|
665 |
IMPORT_C const EVP_CIPHER *EVP_rc4(void);
|
williamr@2
|
666 |
IMPORT_C const EVP_CIPHER *EVP_rc4_40(void);
|
williamr@2
|
667 |
#endif
|
williamr@2
|
668 |
#ifndef OPENSSL_NO_RC2
|
williamr@2
|
669 |
IMPORT_C const EVP_CIPHER *EVP_rc2_ecb(void);
|
williamr@2
|
670 |
IMPORT_C const EVP_CIPHER *EVP_rc2_cbc(void);
|
williamr@2
|
671 |
IMPORT_C const EVP_CIPHER *EVP_rc2_40_cbc(void);
|
williamr@2
|
672 |
IMPORT_C const EVP_CIPHER *EVP_rc2_64_cbc(void);
|
williamr@2
|
673 |
IMPORT_C const EVP_CIPHER *EVP_rc2_cfb64(void);
|
williamr@2
|
674 |
# define EVP_rc2_cfb EVP_rc2_cfb64
|
williamr@2
|
675 |
IMPORT_C const EVP_CIPHER *EVP_rc2_ofb(void);
|
williamr@2
|
676 |
#endif
|
williamr@2
|
677 |
#ifndef OPENSSL_NO_AES
|
williamr@2
|
678 |
IMPORT_C const EVP_CIPHER *EVP_aes_128_ecb(void);
|
williamr@2
|
679 |
IMPORT_C const EVP_CIPHER *EVP_aes_128_cbc(void);
|
williamr@2
|
680 |
IMPORT_C const EVP_CIPHER *EVP_aes_128_cfb1(void);
|
williamr@2
|
681 |
IMPORT_C const EVP_CIPHER *EVP_aes_128_cfb8(void);
|
williamr@2
|
682 |
IMPORT_C const EVP_CIPHER *EVP_aes_128_cfb128(void);
|
williamr@2
|
683 |
# define EVP_aes_128_cfb EVP_aes_128_cfb128
|
williamr@2
|
684 |
IMPORT_C const EVP_CIPHER *EVP_aes_128_ofb(void);
|
williamr@2
|
685 |
#if 0
|
williamr@2
|
686 |
IMPORT_C const EVP_CIPHER *EVP_aes_128_ctr(void);
|
williamr@2
|
687 |
#endif
|
williamr@2
|
688 |
IMPORT_C const EVP_CIPHER *EVP_aes_192_ecb(void);
|
williamr@2
|
689 |
IMPORT_C const EVP_CIPHER *EVP_aes_192_cbc(void);
|
williamr@2
|
690 |
IMPORT_C const EVP_CIPHER *EVP_aes_192_cfb1(void);
|
williamr@2
|
691 |
IMPORT_C const EVP_CIPHER *EVP_aes_192_cfb8(void);
|
williamr@2
|
692 |
IMPORT_C const EVP_CIPHER *EVP_aes_192_cfb128(void);
|
williamr@2
|
693 |
# define EVP_aes_192_cfb EVP_aes_192_cfb128
|
williamr@2
|
694 |
IMPORT_C const EVP_CIPHER *EVP_aes_192_ofb(void);
|
williamr@2
|
695 |
#if 0
|
williamr@2
|
696 |
IMPORT_C const EVP_CIPHER *EVP_aes_192_ctr(void);
|
williamr@2
|
697 |
#endif
|
williamr@2
|
698 |
IMPORT_C const EVP_CIPHER *EVP_aes_256_ecb(void);
|
williamr@2
|
699 |
IMPORT_C const EVP_CIPHER *EVP_aes_256_cbc(void);
|
williamr@2
|
700 |
IMPORT_C const EVP_CIPHER *EVP_aes_256_cfb1(void);
|
williamr@2
|
701 |
IMPORT_C const EVP_CIPHER *EVP_aes_256_cfb8(void);
|
williamr@2
|
702 |
IMPORT_C const EVP_CIPHER *EVP_aes_256_cfb128(void);
|
williamr@2
|
703 |
# define EVP_aes_256_cfb EVP_aes_256_cfb128
|
williamr@2
|
704 |
IMPORT_C const EVP_CIPHER *EVP_aes_256_ofb(void);
|
williamr@2
|
705 |
#if 0
|
williamr@2
|
706 |
IMPORT_C const EVP_CIPHER *EVP_aes_256_ctr(void);
|
williamr@2
|
707 |
#endif
|
williamr@2
|
708 |
#endif
|
williamr@2
|
709 |
|
williamr@2
|
710 |
IMPORT_C void OPENSSL_add_all_algorithms_noconf(void);
|
williamr@2
|
711 |
IMPORT_C void OPENSSL_add_all_algorithms_conf(void);
|
williamr@2
|
712 |
|
williamr@2
|
713 |
#ifdef OPENSSL_LOAD_CONF
|
williamr@2
|
714 |
#define OpenSSL_add_all_algorithms() \
|
williamr@2
|
715 |
OPENSSL_add_all_algorithms_conf()
|
williamr@2
|
716 |
#else
|
williamr@2
|
717 |
#define OpenSSL_add_all_algorithms() \
|
williamr@2
|
718 |
OPENSSL_add_all_algorithms_noconf()
|
williamr@2
|
719 |
#endif
|
williamr@2
|
720 |
|
williamr@2
|
721 |
IMPORT_C void OpenSSL_add_all_ciphers(void);
|
williamr@2
|
722 |
IMPORT_C void OpenSSL_add_all_digests(void);
|
williamr@2
|
723 |
#define SSLeay_add_all_algorithms() OpenSSL_add_all_algorithms()
|
williamr@2
|
724 |
#define SSLeay_add_all_ciphers() OpenSSL_add_all_ciphers()
|
williamr@2
|
725 |
#define SSLeay_add_all_digests() OpenSSL_add_all_digests()
|
williamr@2
|
726 |
|
williamr@2
|
727 |
IMPORT_C int EVP_add_cipher(const EVP_CIPHER *cipher);
|
williamr@2
|
728 |
IMPORT_C int EVP_add_digest(const EVP_MD *digest);
|
williamr@2
|
729 |
|
williamr@2
|
730 |
IMPORT_C const EVP_CIPHER *EVP_get_cipherbyname(const char *name);
|
williamr@2
|
731 |
IMPORT_C const EVP_MD *EVP_get_digestbyname(const char *name);
|
williamr@2
|
732 |
IMPORT_C void EVP_cleanup(void);
|
williamr@2
|
733 |
|
williamr@2
|
734 |
IMPORT_C int EVP_PKEY_decrypt(unsigned char *dec_key,
|
williamr@2
|
735 |
const unsigned char *enc_key,int enc_key_len,
|
williamr@2
|
736 |
EVP_PKEY *private_key);
|
williamr@2
|
737 |
IMPORT_C int EVP_PKEY_encrypt(unsigned char *enc_key,
|
williamr@2
|
738 |
const unsigned char *key,int key_len,
|
williamr@2
|
739 |
EVP_PKEY *pub_key);
|
williamr@2
|
740 |
IMPORT_C int EVP_PKEY_type(int type);
|
williamr@2
|
741 |
IMPORT_C int EVP_PKEY_bits(EVP_PKEY *pkey);
|
williamr@2
|
742 |
IMPORT_C int EVP_PKEY_size(EVP_PKEY *pkey);
|
williamr@2
|
743 |
IMPORT_C int EVP_PKEY_assign(EVP_PKEY *pkey,int type,char *key);
|
williamr@2
|
744 |
|
williamr@2
|
745 |
#ifndef OPENSSL_NO_RSA
|
williamr@2
|
746 |
struct rsa_st;
|
williamr@2
|
747 |
IMPORT_C int EVP_PKEY_set1_RSA(EVP_PKEY *pkey,struct rsa_st *key);
|
williamr@2
|
748 |
IMPORT_C struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey);
|
williamr@2
|
749 |
#endif
|
williamr@2
|
750 |
#ifndef OPENSSL_NO_DSA
|
williamr@2
|
751 |
struct dsa_st;
|
williamr@2
|
752 |
IMPORT_C int EVP_PKEY_set1_DSA(EVP_PKEY *pkey,struct dsa_st *key);
|
williamr@2
|
753 |
IMPORT_C struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey);
|
williamr@2
|
754 |
#endif
|
williamr@2
|
755 |
#ifndef OPENSSL_NO_DH
|
williamr@2
|
756 |
struct dh_st;
|
williamr@2
|
757 |
IMPORT_C int EVP_PKEY_set1_DH(EVP_PKEY *pkey,struct dh_st *key);
|
williamr@2
|
758 |
IMPORT_C struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey);
|
williamr@2
|
759 |
#endif
|
williamr@2
|
760 |
|
williamr@2
|
761 |
IMPORT_C EVP_PKEY * EVP_PKEY_new(void);
|
williamr@2
|
762 |
IMPORT_C void EVP_PKEY_free(EVP_PKEY *pkey);
|
williamr@2
|
763 |
|
williamr@2
|
764 |
IMPORT_C EVP_PKEY * d2i_PublicKey(int type,EVP_PKEY **a, const unsigned char **pp,
|
williamr@2
|
765 |
long length);
|
williamr@2
|
766 |
IMPORT_C int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp);
|
williamr@2
|
767 |
|
williamr@2
|
768 |
IMPORT_C EVP_PKEY * d2i_PrivateKey(int type,EVP_PKEY **a, const unsigned char **pp,
|
williamr@2
|
769 |
long length);
|
williamr@2
|
770 |
IMPORT_C EVP_PKEY * d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp,
|
williamr@2
|
771 |
long length);
|
williamr@2
|
772 |
IMPORT_C int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp);
|
williamr@2
|
773 |
|
williamr@2
|
774 |
IMPORT_C int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from);
|
williamr@2
|
775 |
IMPORT_C int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey);
|
williamr@2
|
776 |
IMPORT_C int EVP_PKEY_save_parameters(EVP_PKEY *pkey,int mode);
|
williamr@2
|
777 |
IMPORT_C int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b);
|
williamr@2
|
778 |
|
williamr@2
|
779 |
IMPORT_C int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
|
williamr@2
|
780 |
|
williamr@2
|
781 |
IMPORT_C int EVP_CIPHER_type(const EVP_CIPHER *ctx);
|
williamr@2
|
782 |
IMPORT_C int EVP_CIPHER_block_size(const EVP_CIPHER *e);
|
williamr@2
|
783 |
IMPORT_C int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
784 |
IMPORT_C int EVP_Cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, unsigned int inl);
|
williamr@2
|
785 |
IMPORT_C const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
786 |
IMPORT_C unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher);
|
williamr@2
|
787 |
IMPORT_C unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
788 |
IMPORT_C void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
789 |
IMPORT_C void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data);
|
williamr@2
|
790 |
IMPORT_C int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher);
|
williamr@2
|
791 |
IMPORT_C int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
792 |
IMPORT_C int EVP_CIPHER_key_length(const EVP_CIPHER *cipher);
|
williamr@2
|
793 |
IMPORT_C int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
794 |
IMPORT_C int EVP_CIPHER_nid(const EVP_CIPHER *cipher);
|
williamr@2
|
795 |
IMPORT_C int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx);
|
williamr@2
|
796 |
IMPORT_C int EVP_MD_block_size(const EVP_MD *md) ;
|
williamr@2
|
797 |
IMPORT_C int EVP_MD_type(const EVP_MD *md);
|
williamr@2
|
798 |
IMPORT_C int EVP_MD_pkey_type(const EVP_MD *md);
|
williamr@2
|
799 |
IMPORT_C int EVP_MD_size(const EVP_MD *md);
|
williamr@2
|
800 |
IMPORT_C const EVP_MD * EVP_MD_CTX_md(const EVP_MD_CTX *ctx);
|
williamr@2
|
801 |
IMPORT_C void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
|
williamr@2
|
802 |
IMPORT_C void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
|
williamr@2
|
803 |
IMPORT_C int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags);
|
williamr@2
|
804 |
|
williamr@2
|
805 |
/* calls methods */
|
williamr@2
|
806 |
IMPORT_C int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
|
williamr@2
|
807 |
IMPORT_C int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
|
williamr@2
|
808 |
|
williamr@2
|
809 |
/* These are used by EVP_CIPHER methods */
|
williamr@2
|
810 |
IMPORT_C int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c,ASN1_TYPE *type);
|
williamr@2
|
811 |
IMPORT_C int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c,ASN1_TYPE *type);
|
williamr@2
|
812 |
|
williamr@2
|
813 |
/* PKCS5 password based encryption */
|
williamr@2
|
814 |
IMPORT_C int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
|
williamr@2
|
815 |
ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md,
|
williamr@2
|
816 |
int en_de);
|
williamr@2
|
817 |
IMPORT_C int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen,
|
williamr@2
|
818 |
const unsigned char *salt, int saltlen, int iter,
|
williamr@2
|
819 |
int keylen, unsigned char *out);
|
williamr@2
|
820 |
IMPORT_C int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
|
williamr@2
|
821 |
ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md,
|
williamr@2
|
822 |
int en_de);
|
williamr@2
|
823 |
|
williamr@2
|
824 |
IMPORT_C void PKCS5_PBE_add(void);
|
williamr@2
|
825 |
|
williamr@2
|
826 |
IMPORT_C int EVP_PBE_CipherInit (ASN1_OBJECT *pbe_obj, const char *pass, int passlen,
|
williamr@2
|
827 |
ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de);
|
williamr@2
|
828 |
IMPORT_C int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md,
|
williamr@2
|
829 |
EVP_PBE_KEYGEN *keygen);
|
williamr@2
|
830 |
IMPORT_C void EVP_PBE_cleanup(void);
|
williamr@2
|
831 |
|
williamr@2
|
832 |
/* BEGIN ERROR CODES */
|
williamr@2
|
833 |
/* The following lines are auto generated by the script mkerr.pl. Any changes
|
williamr@2
|
834 |
* made after this point may be overwritten when the script is next run.
|
williamr@2
|
835 |
*/
|
williamr@2
|
836 |
IMPORT_C void ERR_load_EVP_strings(void);
|
williamr@2
|
837 |
|
williamr@2
|
838 |
/* Error codes for the EVP functions. */
|
williamr@2
|
839 |
|
williamr@2
|
840 |
/* Function codes. */
|
williamr@2
|
841 |
#define EVP_F_AES_INIT_KEY 133
|
williamr@2
|
842 |
#define EVP_F_D2I_PKEY 100
|
williamr@2
|
843 |
#define EVP_F_DSAPKEY2PKCS8 134
|
williamr@2
|
844 |
#define EVP_F_DSA_PKEY2PKCS8 135
|
williamr@2
|
845 |
#define EVP_F_ECDSA_PKEY2PKCS8 129
|
williamr@2
|
846 |
#define EVP_F_ECKEY_PKEY2PKCS8 132
|
williamr@2
|
847 |
#define EVP_F_EVP_CIPHERINIT_EX 123
|
williamr@2
|
848 |
#define EVP_F_EVP_CIPHER_CTX_CTRL 124
|
williamr@2
|
849 |
#define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122
|
williamr@2
|
850 |
#define EVP_F_EVP_DECRYPTFINAL_EX 101
|
williamr@2
|
851 |
#define EVP_F_EVP_DIGESTINIT_EX 128
|
williamr@2
|
852 |
#define EVP_F_EVP_ENCRYPTFINAL_EX 127
|
williamr@2
|
853 |
#define EVP_F_EVP_MD_CTX_COPY_EX 110
|
williamr@2
|
854 |
#define EVP_F_EVP_OPENINIT 102
|
williamr@2
|
855 |
#define EVP_F_EVP_PBE_ALG_ADD 115
|
williamr@2
|
856 |
#define EVP_F_EVP_PBE_CIPHERINIT 116
|
williamr@2
|
857 |
#define EVP_F_EVP_PKCS82PKEY 111
|
williamr@2
|
858 |
#define EVP_F_EVP_PKEY2PKCS8_BROKEN 113
|
williamr@2
|
859 |
#define EVP_F_EVP_PKEY_COPY_PARAMETERS 103
|
williamr@2
|
860 |
#define EVP_F_EVP_PKEY_DECRYPT 104
|
williamr@2
|
861 |
#define EVP_F_EVP_PKEY_ENCRYPT 105
|
williamr@2
|
862 |
#define EVP_F_EVP_PKEY_GET1_DH 119
|
williamr@2
|
863 |
#define EVP_F_EVP_PKEY_GET1_DSA 120
|
williamr@2
|
864 |
#define EVP_F_EVP_PKEY_GET1_ECDSA 130
|
williamr@2
|
865 |
#define EVP_F_EVP_PKEY_GET1_EC_KEY 131
|
williamr@2
|
866 |
#define EVP_F_EVP_PKEY_GET1_RSA 121
|
williamr@2
|
867 |
#define EVP_F_EVP_PKEY_NEW 106
|
williamr@2
|
868 |
#define EVP_F_EVP_RIJNDAEL 126
|
williamr@2
|
869 |
#define EVP_F_EVP_SIGNFINAL 107
|
williamr@2
|
870 |
#define EVP_F_EVP_VERIFYFINAL 108
|
williamr@2
|
871 |
#define EVP_F_PKCS5_PBE_KEYIVGEN 117
|
williamr@2
|
872 |
#define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118
|
williamr@2
|
873 |
#define EVP_F_PKCS8_SET_BROKEN 112
|
williamr@2
|
874 |
#define EVP_F_RC2_MAGIC_TO_METH 109
|
williamr@2
|
875 |
#define EVP_F_RC5_CTRL 125
|
williamr@2
|
876 |
|
williamr@2
|
877 |
/* Reason codes. */
|
williamr@2
|
878 |
#define EVP_R_AES_KEY_SETUP_FAILED 143
|
williamr@2
|
879 |
#define EVP_R_ASN1_LIB 140
|
williamr@2
|
880 |
#define EVP_R_BAD_BLOCK_LENGTH 136
|
williamr@2
|
881 |
#define EVP_R_BAD_DECRYPT 100
|
williamr@2
|
882 |
#define EVP_R_BAD_KEY_LENGTH 137
|
williamr@2
|
883 |
#define EVP_R_BN_DECODE_ERROR 112
|
williamr@2
|
884 |
#define EVP_R_BN_PUBKEY_ERROR 113
|
williamr@2
|
885 |
#define EVP_R_CIPHER_PARAMETER_ERROR 122
|
williamr@2
|
886 |
#define EVP_R_CTRL_NOT_IMPLEMENTED 132
|
williamr@2
|
887 |
#define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133
|
williamr@2
|
888 |
#define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138
|
williamr@2
|
889 |
#define EVP_R_DECODE_ERROR 114
|
williamr@2
|
890 |
#define EVP_R_DIFFERENT_KEY_TYPES 101
|
williamr@2
|
891 |
#define EVP_R_ENCODE_ERROR 115
|
williamr@2
|
892 |
#define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119
|
williamr@2
|
893 |
#define EVP_R_EXPECTING_AN_RSA_KEY 127
|
williamr@2
|
894 |
#define EVP_R_EXPECTING_A_DH_KEY 128
|
williamr@2
|
895 |
#define EVP_R_EXPECTING_A_DSA_KEY 129
|
williamr@2
|
896 |
#define EVP_R_EXPECTING_A_ECDSA_KEY 141
|
williamr@2
|
897 |
#define EVP_R_EXPECTING_A_EC_KEY 142
|
williamr@2
|
898 |
#define EVP_R_INITIALIZATION_ERROR 134
|
williamr@2
|
899 |
#define EVP_R_INPUT_NOT_INITIALIZED 111
|
williamr@2
|
900 |
#define EVP_R_INVALID_KEY_LENGTH 130
|
williamr@2
|
901 |
#define EVP_R_IV_TOO_LARGE 102
|
williamr@2
|
902 |
#define EVP_R_KEYGEN_FAILURE 120
|
williamr@2
|
903 |
#define EVP_R_MISSING_PARAMETERS 103
|
williamr@2
|
904 |
#define EVP_R_NO_CIPHER_SET 131
|
williamr@2
|
905 |
#define EVP_R_NO_DIGEST_SET 139
|
williamr@2
|
906 |
#define EVP_R_NO_DSA_PARAMETERS 116
|
williamr@2
|
907 |
#define EVP_R_NO_SIGN_FUNCTION_CONFIGURED 104
|
williamr@2
|
908 |
#define EVP_R_NO_VERIFY_FUNCTION_CONFIGURED 105
|
williamr@2
|
909 |
#define EVP_R_PKCS8_UNKNOWN_BROKEN_TYPE 117
|
williamr@2
|
910 |
#define EVP_R_PUBLIC_KEY_NOT_RSA 106
|
williamr@2
|
911 |
#define EVP_R_UNKNOWN_PBE_ALGORITHM 121
|
williamr@2
|
912 |
#define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135
|
williamr@2
|
913 |
#define EVP_R_UNSUPPORTED_CIPHER 107
|
williamr@2
|
914 |
#define EVP_R_UNSUPPORTED_KEYLENGTH 123
|
williamr@2
|
915 |
#define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124
|
williamr@2
|
916 |
#define EVP_R_UNSUPPORTED_KEY_SIZE 108
|
williamr@2
|
917 |
#define EVP_R_UNSUPPORTED_PRF 125
|
williamr@2
|
918 |
#define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118
|
williamr@2
|
919 |
#define EVP_R_UNSUPPORTED_SALT_TYPE 126
|
williamr@2
|
920 |
#define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109
|
williamr@2
|
921 |
#define EVP_R_WRONG_PUBLIC_KEY_TYPE 110
|
williamr@2
|
922 |
|
williamr@2
|
923 |
#ifdef __cplusplus
|
williamr@2
|
924 |
}
|
williamr@2
|
925 |
#endif
|
williamr@2
|
926 |
#endif
|