OpenSSL
1.0.1c
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
crypto
engine
eng_fat.c
Go to the documentation of this file.
1
/* crypto/engine/eng_fat.c */
2
/* ====================================================================
3
* Copyright (c) 1999-2001 The OpenSSL Project. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
*
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in
14
* the documentation and/or other materials provided with the
15
* distribution.
16
*
17
* 3. All advertising materials mentioning features or use of this
18
* software must display the following acknowledgment:
19
* "This product includes software developed by the OpenSSL Project
20
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
21
*
22
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23
* endorse or promote products derived from this software without
24
* prior written permission. For written permission, please contact
25
*
[email protected]
.
26
*
27
* 5. Products derived from this software may not be called "OpenSSL"
28
* nor may "OpenSSL" appear in their names without prior written
29
* permission of the OpenSSL Project.
30
*
31
* 6. Redistributions of any form whatsoever must retain the following
32
* acknowledgment:
33
* "This product includes software developed by the OpenSSL Project
34
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
35
*
36
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47
* OF THE POSSIBILITY OF SUCH DAMAGE.
48
* ====================================================================
49
*
50
* This product includes cryptographic software written by Eric Young
51
* (
[email protected]
). This product includes software written by Tim
52
* Hudson (
[email protected]
).
53
*
54
*/
55
/* ====================================================================
56
* Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
57
* ECDH support in OpenSSL originally developed by
58
* SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
59
*/
60
61
#include "
eng_int.h
"
62
#include <
openssl/conf.h
>
63
64
int
ENGINE_set_default
(
ENGINE
*
e
,
unsigned
int
flags
)
65
{
66
if
((flags &
ENGINE_METHOD_CIPHERS
) && !
ENGINE_set_default_ciphers
(e))
67
return
0;
68
if
((flags &
ENGINE_METHOD_DIGESTS
) && !
ENGINE_set_default_digests
(e))
69
return
0;
70
#ifndef OPENSSL_NO_RSA
71
if
((flags &
ENGINE_METHOD_RSA
) && !
ENGINE_set_default_RSA
(e))
72
return
0;
73
#endif
74
#ifndef OPENSSL_NO_DSA
75
if
((flags &
ENGINE_METHOD_DSA
) && !
ENGINE_set_default_DSA
(e))
76
return
0;
77
#endif
78
#ifndef OPENSSL_NO_DH
79
if
((flags &
ENGINE_METHOD_DH
) && !
ENGINE_set_default_DH
(e))
80
return
0;
81
#endif
82
#ifndef OPENSSL_NO_ECDH
83
if
((flags &
ENGINE_METHOD_ECDH
) && !
ENGINE_set_default_ECDH
(e))
84
return
0;
85
#endif
86
#ifndef OPENSSL_NO_ECDSA
87
if
((flags &
ENGINE_METHOD_ECDSA
) && !
ENGINE_set_default_ECDSA
(e))
88
return
0;
89
#endif
90
if
((flags &
ENGINE_METHOD_RAND
) && !
ENGINE_set_default_RAND
(e))
91
return
0;
92
if
((flags &
ENGINE_METHOD_PKEY_METHS
)
93
&& !
ENGINE_set_default_pkey_meths
(e))
94
return
0;
95
if
((flags &
ENGINE_METHOD_PKEY_ASN1_METHS
)
96
&& !
ENGINE_set_default_pkey_asn1_meths
(e))
97
return
0;
98
return
1;
99
}
100
101
/* Set default algorithms using a string */
102
103
static
int
int_def_cb(
const
char
*alg,
int
len
,
void
*
arg
)
104
{
105
unsigned
int
*pflags =
arg
;
106
if
(!strncmp(alg,
"ALL"
, len))
107
*pflags |=
ENGINE_METHOD_ALL
;
108
else
if
(!strncmp(alg,
"RSA"
, len))
109
*pflags |=
ENGINE_METHOD_RSA
;
110
else
if
(!strncmp(alg,
"DSA"
, len))
111
*pflags |=
ENGINE_METHOD_DSA
;
112
else
if
(!strncmp(alg,
"ECDH"
, len))
113
*pflags |=
ENGINE_METHOD_ECDH
;
114
else
if
(!strncmp(alg,
"ECDSA"
, len))
115
*pflags |=
ENGINE_METHOD_ECDSA
;
116
else
if
(!strncmp(alg,
"DH"
, len))
117
*pflags |=
ENGINE_METHOD_DH
;
118
else
if
(!strncmp(alg,
"RAND"
, len))
119
*pflags |=
ENGINE_METHOD_RAND
;
120
else
if
(!strncmp(alg,
"CIPHERS"
, len))
121
*pflags |=
ENGINE_METHOD_CIPHERS
;
122
else
if
(!strncmp(alg,
"DIGESTS"
, len))
123
*pflags |=
ENGINE_METHOD_DIGESTS
;
124
else
if
(!strncmp(alg,
"PKEY"
, len))
125
*pflags |=
126
ENGINE_METHOD_PKEY_METHS
|
ENGINE_METHOD_PKEY_ASN1_METHS
;
127
else
if
(!strncmp(alg,
"PKEY_CRYPTO"
, len))
128
*pflags |=
ENGINE_METHOD_PKEY_METHS
;
129
else
if
(!strncmp(alg,
"PKEY_ASN1"
, len))
130
*pflags |=
ENGINE_METHOD_PKEY_ASN1_METHS
;
131
else
132
return
0;
133
return
1;
134
}
135
136
137
int
ENGINE_set_default_string
(
ENGINE
*
e
,
const
char
*def_list)
138
{
139
unsigned
int
flags
= 0;
140
if
(!
CONF_parse_list
(def_list,
','
, 1, int_def_cb, &flags))
141
{
142
ENGINEerr
(
ENGINE_F_ENGINE_SET_DEFAULT_STRING
,
143
ENGINE_R_INVALID_STRING
);
144
ERR_add_error_data
(2,
"str="
,def_list);
145
return
0;
146
}
147
return
ENGINE_set_default
(e, flags);
148
}
149
150
int
ENGINE_register_complete
(
ENGINE
*
e
)
151
{
152
ENGINE_register_ciphers
(e);
153
ENGINE_register_digests
(e);
154
#ifndef OPENSSL_NO_RSA
155
ENGINE_register_RSA
(e);
156
#endif
157
#ifndef OPENSSL_NO_DSA
158
ENGINE_register_DSA
(e);
159
#endif
160
#ifndef OPENSSL_NO_DH
161
ENGINE_register_DH
(e);
162
#endif
163
#ifndef OPENSSL_NO_ECDH
164
ENGINE_register_ECDH
(e);
165
#endif
166
#ifndef OPENSSL_NO_ECDSA
167
ENGINE_register_ECDSA
(e);
168
#endif
169
ENGINE_register_RAND
(e);
170
ENGINE_register_pkey_meths
(e);
171
return
1;
172
}
173
174
int
ENGINE_register_all_complete
(
void
)
175
{
176
ENGINE
*
e
;
177
178
for
(e=
ENGINE_get_first
() ;
e
; e=
ENGINE_get_next
(e))
179
if
(!(e->
flags
&
ENGINE_FLAGS_NO_REGISTER_ALL
))
180
ENGINE_register_complete
(e);
181
return
1;
182
}
Generated on Thu Jan 10 2013 09:53:36 for OpenSSL by
1.8.2