summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/engine')
-rw-r--r--src/lib/libcrypto/engine/Makefile390
-rw-r--r--src/lib/libcrypto/engine/eng_all.c3
-rw-r--r--src/lib/libcrypto/engine/eng_cnf.c9
-rw-r--r--src/lib/libcrypto/engine/eng_err.c3
-rw-r--r--src/lib/libcrypto/engine/eng_int.h2
-rw-r--r--src/lib/libcrypto/engine/eng_pkey.c42
-rw-r--r--src/lib/libcrypto/engine/engine.h16
7 files changed, 326 insertions, 139 deletions
diff --git a/src/lib/libcrypto/engine/Makefile b/src/lib/libcrypto/engine/Makefile
index 13f211a0ae..47cc619b8a 100644
--- a/src/lib/libcrypto/engine/Makefile
+++ b/src/lib/libcrypto/engine/Makefile
@@ -82,88 +82,142 @@ clean:
82 82
83# DO NOT DELETE THIS LINE -- make depend depends on it. 83# DO NOT DELETE THIS LINE -- make depend depends on it.
84 84
85eng_all.o: ../../e_os.h ../../include/openssl/bio.h 85eng_all.o: ../../e_os.h ../../include/openssl/asn1.h
86eng_all.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 86eng_all.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
87eng_all.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 87eng_all.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
88eng_all.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 88eng_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
89eng_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h 89eng_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
90eng_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h 90eng_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
91eng_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h 91eng_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
92eng_all.o: ../cryptlib.h eng_all.c eng_int.h 92eng_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
93eng_cnf.o: ../../e_os.h ../../include/openssl/bio.h 93eng_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
94eng_cnf.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h 94eng_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
95eng_cnf.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h 95eng_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
96eng_all.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
97eng_all.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_all.c eng_int.h
98eng_cnf.o: ../../e_os.h ../../include/openssl/asn1.h
99eng_cnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
100eng_cnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
101eng_cnf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
102eng_cnf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
96eng_cnf.o: ../../include/openssl/engine.h ../../include/openssl/err.h 103eng_cnf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
97eng_cnf.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h 104eng_cnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
98eng_cnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 105eng_cnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
99eng_cnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 106eng_cnf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
100eng_cnf.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_cnf.c eng_int.h 107eng_cnf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
108eng_cnf.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
109eng_cnf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
110eng_cnf.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
111eng_cnf.o: ../cryptlib.h eng_cnf.c eng_int.h
101eng_cryptodev.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h 112eng_cryptodev.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
102eng_cryptodev.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h 113eng_cryptodev.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
103eng_cryptodev.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 114eng_cryptodev.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
104eng_cryptodev.o: ../../include/openssl/evp.h ../../include/openssl/obj_mac.h 115eng_cryptodev.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
116eng_cryptodev.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
117eng_cryptodev.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
118eng_cryptodev.o: ../../include/openssl/obj_mac.h
105eng_cryptodev.o: ../../include/openssl/objects.h 119eng_cryptodev.o: ../../include/openssl/objects.h
106eng_cryptodev.o: ../../include/openssl/opensslconf.h 120eng_cryptodev.o: ../../include/openssl/opensslconf.h
107eng_cryptodev.o: ../../include/openssl/opensslv.h 121eng_cryptodev.o: ../../include/openssl/opensslv.h
108eng_cryptodev.o: ../../include/openssl/ossl_typ.h 122eng_cryptodev.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
109eng_cryptodev.o: ../../include/openssl/safestack.h 123eng_cryptodev.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
110eng_cryptodev.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h 124eng_cryptodev.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
125eng_cryptodev.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
111eng_cryptodev.o: eng_cryptodev.c 126eng_cryptodev.o: eng_cryptodev.c
112eng_ctrl.o: ../../e_os.h ../../include/openssl/bio.h 127eng_ctrl.o: ../../e_os.h ../../include/openssl/asn1.h
113eng_ctrl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 128eng_ctrl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
114eng_ctrl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 129eng_ctrl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
115eng_ctrl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 130eng_ctrl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
116eng_ctrl.o: ../../include/openssl/opensslconf.h 131eng_ctrl.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
132eng_ctrl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
133eng_ctrl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
134eng_ctrl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
117eng_ctrl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 135eng_ctrl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
118eng_ctrl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 136eng_ctrl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
119eng_ctrl.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_ctrl.c eng_int.h 137eng_ctrl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
120eng_dyn.o: ../../e_os.h ../../include/openssl/bio.h 138eng_ctrl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
121eng_dyn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 139eng_ctrl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_ctrl.c eng_int.h
122eng_dyn.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h 140eng_dyn.o: ../../e_os.h ../../include/openssl/asn1.h
141eng_dyn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
142eng_dyn.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
143eng_dyn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
144eng_dyn.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
123eng_dyn.o: ../../include/openssl/engine.h ../../include/openssl/err.h 145eng_dyn.o: ../../include/openssl/engine.h ../../include/openssl/err.h
124eng_dyn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h 146eng_dyn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
125eng_dyn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 147eng_dyn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
126eng_dyn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 148eng_dyn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
127eng_dyn.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_dyn.c eng_int.h 149eng_dyn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
128eng_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h 150eng_dyn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
129eng_err.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 151eng_dyn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
130eng_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 152eng_dyn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
153eng_dyn.o: ../cryptlib.h eng_dyn.c eng_int.h
154eng_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
155eng_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
156eng_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
157eng_err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
158eng_err.o: ../../include/openssl/engine.h ../../include/openssl/err.h
159eng_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
160eng_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
131eng_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h 161eng_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
132eng_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h 162eng_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
163eng_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
133eng_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h 164eng_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
165eng_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
134eng_err.o: eng_err.c 166eng_err.o: eng_err.c
135eng_fat.o: ../../e_os.h ../../include/openssl/bio.h 167eng_fat.o: ../../e_os.h ../../include/openssl/asn1.h
136eng_fat.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h 168eng_fat.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
137eng_fat.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h 169eng_fat.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
170eng_fat.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
171eng_fat.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
138eng_fat.o: ../../include/openssl/engine.h ../../include/openssl/err.h 172eng_fat.o: ../../include/openssl/engine.h ../../include/openssl/err.h
139eng_fat.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h 173eng_fat.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
140eng_fat.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 174eng_fat.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
141eng_fat.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 175eng_fat.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
142eng_fat.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_fat.c eng_int.h 176eng_fat.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
143eng_init.o: ../../e_os.h ../../include/openssl/bio.h 177eng_fat.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
144eng_init.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 178eng_fat.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
145eng_init.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 179eng_fat.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
146eng_init.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 180eng_fat.o: ../cryptlib.h eng_fat.c eng_int.h
147eng_init.o: ../../include/openssl/opensslconf.h 181eng_init.o: ../../e_os.h ../../include/openssl/asn1.h
182eng_init.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
183eng_init.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
184eng_init.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
185eng_init.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
186eng_init.o: ../../include/openssl/err.h ../../include/openssl/evp.h
187eng_init.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
188eng_init.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
148eng_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 189eng_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
149eng_init.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 190eng_init.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
150eng_init.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_init.c eng_int.h 191eng_init.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
151eng_lib.o: ../../e_os.h ../../include/openssl/bio.h 192eng_init.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
152eng_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 193eng_init.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_init.c eng_int.h
153eng_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 194eng_lib.o: ../../e_os.h ../../include/openssl/asn1.h
154eng_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 195eng_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
155eng_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h 196eng_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
156eng_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h 197eng_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
157eng_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 198eng_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
158eng_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h eng_lib.c 199eng_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
159eng_list.o: ../../e_os.h ../../include/openssl/bio.h 200eng_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
160eng_list.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 201eng_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
161eng_list.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 202eng_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
162eng_list.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 203eng_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
163eng_list.o: ../../include/openssl/opensslconf.h 204eng_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
205eng_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
206eng_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
207eng_lib.o: ../cryptlib.h eng_int.h eng_lib.c
208eng_list.o: ../../e_os.h ../../include/openssl/asn1.h
209eng_list.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
210eng_list.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
211eng_list.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
212eng_list.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
213eng_list.o: ../../include/openssl/err.h ../../include/openssl/evp.h
214eng_list.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
215eng_list.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
164eng_list.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 216eng_list.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
165eng_list.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 217eng_list.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
166eng_list.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h eng_list.c 218eng_list.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
219eng_list.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
220eng_list.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h eng_list.c
167eng_openssl.o: ../../e_os.h ../../include/openssl/asn1.h 221eng_openssl.o: ../../e_os.h ../../include/openssl/asn1.h
168eng_openssl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h 222eng_openssl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
169eng_openssl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h 223eng_openssl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
@@ -183,106 +237,166 @@ eng_openssl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
183eng_openssl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h 237eng_openssl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
184eng_openssl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_openssl.c 238eng_openssl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_openssl.c
185eng_padlock.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h 239eng_padlock.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
186eng_padlock.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h 240eng_padlock.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
187eng_padlock.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h 241eng_padlock.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
242eng_padlock.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
243eng_padlock.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
188eng_padlock.o: ../../include/openssl/engine.h ../../include/openssl/err.h 244eng_padlock.o: ../../include/openssl/engine.h ../../include/openssl/err.h
189eng_padlock.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h 245eng_padlock.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
190eng_padlock.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h 246eng_padlock.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
191eng_padlock.o: ../../include/openssl/opensslconf.h 247eng_padlock.o: ../../include/openssl/opensslconf.h
192eng_padlock.o: ../../include/openssl/opensslv.h 248eng_padlock.o: ../../include/openssl/opensslv.h
193eng_padlock.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h 249eng_padlock.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
194eng_padlock.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 250eng_padlock.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
195eng_padlock.o: ../../include/openssl/symhacks.h eng_padlock.c 251eng_padlock.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
196eng_pkey.o: ../../e_os.h ../../include/openssl/bio.h 252eng_padlock.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
197eng_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 253eng_padlock.o: ../../include/openssl/x509_vfy.h eng_padlock.c
198eng_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 254eng_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
199eng_pkey.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 255eng_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
200eng_pkey.o: ../../include/openssl/opensslconf.h 256eng_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
257eng_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
258eng_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
259eng_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
260eng_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
261eng_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
201eng_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 262eng_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
202eng_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 263eng_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
203eng_pkey.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h eng_pkey.c 264eng_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
265eng_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
266eng_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h eng_pkey.c
204eng_table.o: ../../e_os.h ../../include/openssl/asn1.h 267eng_table.o: ../../e_os.h ../../include/openssl/asn1.h
205eng_table.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h 268eng_table.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
206eng_table.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h 269eng_table.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
207eng_table.o: ../../include/openssl/engine.h ../../include/openssl/err.h 270eng_table.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
208eng_table.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h 271eng_table.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
209eng_table.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h 272eng_table.o: ../../include/openssl/err.h ../../include/openssl/evp.h
273eng_table.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
274eng_table.o: ../../include/openssl/objects.h
210eng_table.o: ../../include/openssl/opensslconf.h 275eng_table.o: ../../include/openssl/opensslconf.h
211eng_table.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 276eng_table.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
212eng_table.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 277eng_table.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
213eng_table.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h 278eng_table.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
279eng_table.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
280eng_table.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h
214eng_table.o: eng_table.c 281eng_table.o: eng_table.c
215tb_cipher.o: ../../e_os.h ../../include/openssl/bio.h 282tb_cipher.o: ../../e_os.h ../../include/openssl/asn1.h
216tb_cipher.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 283tb_cipher.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
217tb_cipher.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 284tb_cipher.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
218tb_cipher.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 285tb_cipher.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
286tb_cipher.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
287tb_cipher.o: ../../include/openssl/err.h ../../include/openssl/evp.h
288tb_cipher.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
289tb_cipher.o: ../../include/openssl/objects.h
219tb_cipher.o: ../../include/openssl/opensslconf.h 290tb_cipher.o: ../../include/openssl/opensslconf.h
220tb_cipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 291tb_cipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
221tb_cipher.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 292tb_cipher.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
222tb_cipher.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h 293tb_cipher.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
294tb_cipher.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
295tb_cipher.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h
223tb_cipher.o: tb_cipher.c 296tb_cipher.o: tb_cipher.c
224tb_dh.o: ../../e_os.h ../../include/openssl/bio.h 297tb_dh.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
225tb_dh.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 298tb_dh.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
226tb_dh.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 299tb_dh.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
227tb_dh.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 300tb_dh.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
301tb_dh.o: ../../include/openssl/engine.h ../../include/openssl/err.h
302tb_dh.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
303tb_dh.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
228tb_dh.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h 304tb_dh.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
229tb_dh.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h 305tb_dh.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
306tb_dh.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
230tb_dh.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h 307tb_dh.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
308tb_dh.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
231tb_dh.o: ../cryptlib.h eng_int.h tb_dh.c 309tb_dh.o: ../cryptlib.h eng_int.h tb_dh.c
232tb_digest.o: ../../e_os.h ../../include/openssl/bio.h 310tb_digest.o: ../../e_os.h ../../include/openssl/asn1.h
233tb_digest.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 311tb_digest.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
234tb_digest.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 312tb_digest.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
235tb_digest.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 313tb_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
314tb_digest.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
315tb_digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
316tb_digest.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
317tb_digest.o: ../../include/openssl/objects.h
236tb_digest.o: ../../include/openssl/opensslconf.h 318tb_digest.o: ../../include/openssl/opensslconf.h
237tb_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 319tb_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
238tb_digest.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 320tb_digest.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
239tb_digest.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h 321tb_digest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
322tb_digest.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
323tb_digest.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h
240tb_digest.o: tb_digest.c 324tb_digest.o: tb_digest.c
241tb_dsa.o: ../../e_os.h ../../include/openssl/bio.h 325tb_dsa.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
242tb_dsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 326tb_dsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
243tb_dsa.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 327tb_dsa.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
244tb_dsa.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 328tb_dsa.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
329tb_dsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
330tb_dsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
331tb_dsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
245tb_dsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h 332tb_dsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
246tb_dsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h 333tb_dsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
334tb_dsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
247tb_dsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h 335tb_dsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
336tb_dsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
248tb_dsa.o: ../cryptlib.h eng_int.h tb_dsa.c 337tb_dsa.o: ../cryptlib.h eng_int.h tb_dsa.c
249tb_ecdh.o: ../../e_os.h ../../include/openssl/bio.h 338tb_ecdh.o: ../../e_os.h ../../include/openssl/asn1.h
250tb_ecdh.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 339tb_ecdh.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
251tb_ecdh.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 340tb_ecdh.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
252tb_ecdh.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 341tb_ecdh.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
253tb_ecdh.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h 342tb_ecdh.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
254tb_ecdh.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h 343tb_ecdh.o: ../../include/openssl/err.h ../../include/openssl/evp.h
255tb_ecdh.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h 344tb_ecdh.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
256tb_ecdh.o: ../cryptlib.h eng_int.h tb_ecdh.c 345tb_ecdh.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
257tb_ecdsa.o: ../../e_os.h ../../include/openssl/bio.h 346tb_ecdh.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
258tb_ecdsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 347tb_ecdh.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
259tb_ecdsa.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 348tb_ecdh.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
260tb_ecdsa.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 349tb_ecdh.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
261tb_ecdsa.o: ../../include/openssl/opensslconf.h 350tb_ecdh.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h tb_ecdh.c
351tb_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h
352tb_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
353tb_ecdsa.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
354tb_ecdsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
355tb_ecdsa.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
356tb_ecdsa.o: ../../include/openssl/err.h ../../include/openssl/evp.h
357tb_ecdsa.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
358tb_ecdsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
262tb_ecdsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 359tb_ecdsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
263tb_ecdsa.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 360tb_ecdsa.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
264tb_ecdsa.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h tb_ecdsa.c 361tb_ecdsa.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
265tb_rand.o: ../../e_os.h ../../include/openssl/bio.h 362tb_ecdsa.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
266tb_rand.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 363tb_ecdsa.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h tb_ecdsa.c
267tb_rand.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 364tb_rand.o: ../../e_os.h ../../include/openssl/asn1.h
268tb_rand.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 365tb_rand.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
269tb_rand.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h 366tb_rand.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
270tb_rand.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h 367tb_rand.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
271tb_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h 368tb_rand.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
272tb_rand.o: ../cryptlib.h eng_int.h tb_rand.c 369tb_rand.o: ../../include/openssl/err.h ../../include/openssl/evp.h
273tb_rsa.o: ../../e_os.h ../../include/openssl/bio.h 370tb_rand.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
371tb_rand.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
372tb_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
373tb_rand.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
374tb_rand.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
375tb_rand.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
376tb_rand.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h tb_rand.c
377tb_rsa.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
274tb_rsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 378tb_rsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
275tb_rsa.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 379tb_rsa.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
276tb_rsa.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 380tb_rsa.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
381tb_rsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
382tb_rsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
383tb_rsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
277tb_rsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h 384tb_rsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
278tb_rsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h 385tb_rsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
386tb_rsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
279tb_rsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h 387tb_rsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
388tb_rsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
280tb_rsa.o: ../cryptlib.h eng_int.h tb_rsa.c 389tb_rsa.o: ../cryptlib.h eng_int.h tb_rsa.c
281tb_store.o: ../../e_os.h ../../include/openssl/bio.h 390tb_store.o: ../../e_os.h ../../include/openssl/asn1.h
282tb_store.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h 391tb_store.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
283tb_store.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h 392tb_store.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
284tb_store.o: ../../include/openssl/err.h ../../include/openssl/lhash.h 393tb_store.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
285tb_store.o: ../../include/openssl/opensslconf.h 394tb_store.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
395tb_store.o: ../../include/openssl/err.h ../../include/openssl/evp.h
396tb_store.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
397tb_store.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
286tb_store.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h 398tb_store.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
287tb_store.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h 399tb_store.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
288tb_store.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h tb_store.c 400tb_store.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
401tb_store.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
402tb_store.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h tb_store.c
diff --git a/src/lib/libcrypto/engine/eng_all.c b/src/lib/libcrypto/engine/eng_all.c
index 8599046717..d29cd57dc2 100644
--- a/src/lib/libcrypto/engine/eng_all.c
+++ b/src/lib/libcrypto/engine/eng_all.c
@@ -107,6 +107,9 @@ void ENGINE_load_builtin_engines(void)
107#if defined(__OpenBSD__) || defined(__FreeBSD__) 107#if defined(__OpenBSD__) || defined(__FreeBSD__)
108 ENGINE_load_cryptodev(); 108 ENGINE_load_cryptodev();
109#endif 109#endif
110#if defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_NO_CAPIENG)
111 ENGINE_load_capi();
112#endif
110#endif 113#endif
111 } 114 }
112 115
diff --git a/src/lib/libcrypto/engine/eng_cnf.c b/src/lib/libcrypto/engine/eng_cnf.c
index a97e01e619..8417ddaaef 100644
--- a/src/lib/libcrypto/engine/eng_cnf.c
+++ b/src/lib/libcrypto/engine/eng_cnf.c
@@ -98,6 +98,8 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf)
98 CONF_VALUE *ecmd; 98 CONF_VALUE *ecmd;
99 char *ctrlname, *ctrlvalue; 99 char *ctrlname, *ctrlvalue;
100 ENGINE *e = NULL; 100 ENGINE *e = NULL;
101 int soft = 0;
102
101 name = skip_dot(name); 103 name = skip_dot(name);
102#ifdef ENGINE_CONF_DEBUG 104#ifdef ENGINE_CONF_DEBUG
103 fprintf(stderr, "Configuring engine %s\n", name); 105 fprintf(stderr, "Configuring engine %s\n", name);
@@ -125,6 +127,8 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf)
125 /* Override engine name to use */ 127 /* Override engine name to use */
126 if (!strcmp(ctrlname, "engine_id")) 128 if (!strcmp(ctrlname, "engine_id"))
127 name = ctrlvalue; 129 name = ctrlvalue;
130 else if (!strcmp(ctrlname, "soft_load"))
131 soft = 1;
128 /* Load a dynamic ENGINE */ 132 /* Load a dynamic ENGINE */
129 else if (!strcmp(ctrlname, "dynamic_path")) 133 else if (!strcmp(ctrlname, "dynamic_path"))
130 { 134 {
@@ -147,6 +151,11 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf)
147 if (!e) 151 if (!e)
148 { 152 {
149 e = ENGINE_by_id(name); 153 e = ENGINE_by_id(name);
154 if (!e && soft)
155 {
156 ERR_clear_error();
157 return 1;
158 }
150 if (!e) 159 if (!e)
151 return 0; 160 return 0;
152 } 161 }
diff --git a/src/lib/libcrypto/engine/eng_err.c b/src/lib/libcrypto/engine/eng_err.c
index 369f2e22d3..574ffbb5c0 100644
--- a/src/lib/libcrypto/engine/eng_err.c
+++ b/src/lib/libcrypto/engine/eng_err.c
@@ -1,6 +1,6 @@
1/* crypto/engine/eng_err.c */ 1/* crypto/engine/eng_err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
@@ -92,6 +92,7 @@ static ERR_STRING_DATA ENGINE_str_functs[]=
92{ERR_FUNC(ENGINE_F_ENGINE_LIST_REMOVE), "ENGINE_LIST_REMOVE"}, 92{ERR_FUNC(ENGINE_F_ENGINE_LIST_REMOVE), "ENGINE_LIST_REMOVE"},
93{ERR_FUNC(ENGINE_F_ENGINE_LOAD_PRIVATE_KEY), "ENGINE_load_private_key"}, 93{ERR_FUNC(ENGINE_F_ENGINE_LOAD_PRIVATE_KEY), "ENGINE_load_private_key"},
94{ERR_FUNC(ENGINE_F_ENGINE_LOAD_PUBLIC_KEY), "ENGINE_load_public_key"}, 94{ERR_FUNC(ENGINE_F_ENGINE_LOAD_PUBLIC_KEY), "ENGINE_load_public_key"},
95{ERR_FUNC(ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT), "ENGINE_load_ssl_client_cert"},
95{ERR_FUNC(ENGINE_F_ENGINE_NEW), "ENGINE_new"}, 96{ERR_FUNC(ENGINE_F_ENGINE_NEW), "ENGINE_new"},
96{ERR_FUNC(ENGINE_F_ENGINE_REMOVE), "ENGINE_remove"}, 97{ERR_FUNC(ENGINE_F_ENGINE_REMOVE), "ENGINE_remove"},
97{ERR_FUNC(ENGINE_F_ENGINE_SET_DEFAULT_STRING), "ENGINE_set_default_string"}, 98{ERR_FUNC(ENGINE_F_ENGINE_SET_DEFAULT_STRING), "ENGINE_set_default_string"},
diff --git a/src/lib/libcrypto/engine/eng_int.h b/src/lib/libcrypto/engine/eng_int.h
index a5b1edebf4..a66f107a44 100644
--- a/src/lib/libcrypto/engine/eng_int.h
+++ b/src/lib/libcrypto/engine/eng_int.h
@@ -170,6 +170,8 @@ struct engine_st
170 ENGINE_LOAD_KEY_PTR load_privkey; 170 ENGINE_LOAD_KEY_PTR load_privkey;
171 ENGINE_LOAD_KEY_PTR load_pubkey; 171 ENGINE_LOAD_KEY_PTR load_pubkey;
172 172
173 ENGINE_SSL_CLIENT_CERT_PTR load_ssl_client_cert;
174
173 const ENGINE_CMD_DEFN *cmd_defns; 175 const ENGINE_CMD_DEFN *cmd_defns;
174 int flags; 176 int flags;
175 /* reference count on the structure itself */ 177 /* reference count on the structure itself */
diff --git a/src/lib/libcrypto/engine/eng_pkey.c b/src/lib/libcrypto/engine/eng_pkey.c
index bc8b21abec..1dfa2e3664 100644
--- a/src/lib/libcrypto/engine/eng_pkey.c
+++ b/src/lib/libcrypto/engine/eng_pkey.c
@@ -69,6 +69,13 @@ int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f)
69 return 1; 69 return 1;
70 } 70 }
71 71
72int ENGINE_set_load_ssl_client_cert_function(ENGINE *e,
73 ENGINE_SSL_CLIENT_CERT_PTR loadssl_f)
74 {
75 e->load_ssl_client_cert = loadssl_f;
76 return 1;
77 }
78
72ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e) 79ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e)
73 { 80 {
74 return e->load_privkey; 81 return e->load_privkey;
@@ -79,6 +86,11 @@ ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e)
79 return e->load_pubkey; 86 return e->load_pubkey;
80 } 87 }
81 88
89ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE *e)
90 {
91 return e->load_ssl_client_cert;
92 }
93
82/* API functions to load public/private keys */ 94/* API functions to load public/private keys */
83 95
84EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, 96EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id,
@@ -152,3 +164,33 @@ EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,
152 } 164 }
153 return pkey; 165 return pkey;
154 } 166 }
167
168int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s,
169 STACK_OF(X509_NAME) *ca_dn, X509 **pcert, EVP_PKEY **ppkey,
170 STACK_OF(X509) **pother, UI_METHOD *ui_method, void *callback_data)
171 {
172
173 if(e == NULL)
174 {
175 ENGINEerr(ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT,
176 ERR_R_PASSED_NULL_PARAMETER);
177 return 0;
178 }
179 CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
180 if(e->funct_ref == 0)
181 {
182 CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
183 ENGINEerr(ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT,
184 ENGINE_R_NOT_INITIALISED);
185 return 0;
186 }
187 CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
188 if (!e->load_ssl_client_cert)
189 {
190 ENGINEerr(ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT,
191 ENGINE_R_NO_LOAD_FUNCTION);
192 return 0;
193 }
194 return e->load_ssl_client_cert(e, s, ca_dn, pcert, ppkey, pother,
195 ui_method, callback_data);
196 }
diff --git a/src/lib/libcrypto/engine/engine.h b/src/lib/libcrypto/engine/engine.h
index 3ec59338ff..f503595ece 100644
--- a/src/lib/libcrypto/engine/engine.h
+++ b/src/lib/libcrypto/engine/engine.h
@@ -93,6 +93,8 @@
93#include <openssl/err.h> 93#include <openssl/err.h>
94#endif 94#endif
95 95
96#include <openssl/x509.h>
97
96#include <openssl/ossl_typ.h> 98#include <openssl/ossl_typ.h>
97#include <openssl/symhacks.h> 99#include <openssl/symhacks.h>
98 100
@@ -278,6 +280,9 @@ typedef int (*ENGINE_CTRL_FUNC_PTR)(ENGINE *, int, long, void *, void (*f)(void)
278/* Generic load_key function pointer */ 280/* Generic load_key function pointer */
279typedef EVP_PKEY * (*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, 281typedef EVP_PKEY * (*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *,
280 UI_METHOD *ui_method, void *callback_data); 282 UI_METHOD *ui_method, void *callback_data);
283typedef int (*ENGINE_SSL_CLIENT_CERT_PTR)(ENGINE *, SSL *ssl,
284 STACK_OF(X509_NAME) *ca_dn, X509 **pcert, EVP_PKEY **pkey,
285 STACK_OF(X509) **pother, UI_METHOD *ui_method, void *callback_data);
281/* These callback types are for an ENGINE's handler for cipher and digest logic. 286/* These callback types are for an ENGINE's handler for cipher and digest logic.
282 * These handlers have these prototypes; 287 * These handlers have these prototypes;
283 * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); 288 * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid);
@@ -334,6 +339,9 @@ void ENGINE_load_ubsec(void);
334void ENGINE_load_cryptodev(void); 339void ENGINE_load_cryptodev(void);
335void ENGINE_load_padlock(void); 340void ENGINE_load_padlock(void);
336void ENGINE_load_builtin_engines(void); 341void ENGINE_load_builtin_engines(void);
342#ifndef OPENSSL_NO_CAPIENG
343void ENGINE_load_capi(void);
344#endif
337 345
338/* Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation 346/* Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation
339 * "registry" handling. */ 347 * "registry" handling. */
@@ -459,6 +467,8 @@ int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f);
459int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); 467int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f);
460int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f); 468int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f);
461int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); 469int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f);
470int ENGINE_set_load_ssl_client_cert_function(ENGINE *e,
471 ENGINE_SSL_CLIENT_CERT_PTR loadssl_f);
462int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); 472int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f);
463int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); 473int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f);
464int ENGINE_set_flags(ENGINE *e, int flags); 474int ENGINE_set_flags(ENGINE *e, int flags);
@@ -494,6 +504,7 @@ ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e);
494ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); 504ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e);
495ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); 505ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e);
496ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); 506ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e);
507ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE *e);
497ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); 508ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e);
498ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); 509ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e);
499const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); 510const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid);
@@ -529,6 +540,10 @@ EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id,
529 UI_METHOD *ui_method, void *callback_data); 540 UI_METHOD *ui_method, void *callback_data);
530EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, 541EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,
531 UI_METHOD *ui_method, void *callback_data); 542 UI_METHOD *ui_method, void *callback_data);
543int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s,
544 STACK_OF(X509_NAME) *ca_dn, X509 **pcert, EVP_PKEY **ppkey,
545 STACK_OF(X509) **pother,
546 UI_METHOD *ui_method, void *callback_data);
532 547
533/* This returns a pointer for the current ENGINE structure that 548/* This returns a pointer for the current ENGINE structure that
534 * is (by default) performing any RSA operations. The value returned 549 * is (by default) performing any RSA operations. The value returned
@@ -723,6 +738,7 @@ void ERR_load_ENGINE_strings(void);
723#define ENGINE_F_ENGINE_LIST_REMOVE 121 738#define ENGINE_F_ENGINE_LIST_REMOVE 121
724#define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 739#define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150
725#define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 740#define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151
741#define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 192
726#define ENGINE_F_ENGINE_NEW 122 742#define ENGINE_F_ENGINE_NEW 122
727#define ENGINE_F_ENGINE_REMOVE 123 743#define ENGINE_F_ENGINE_REMOVE 123
728#define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 744#define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189