Hanno Böck commited on 2012-05-04 11:05:06
Zeige 3 geänderte Dateien mit 318 Einfügungen und 2 Löschungen.
... | ... |
@@ -1,4 +1,5 @@ |
1 | 1 |
AUX 2.2.22-envvars-std.in 1071 RMD160 4613555ac600a4941ccd43128f98a9f6a95ba57d SHA1 b69dc500bb49fb14c801c6ab130a624c24e4d7fa SHA256 1721b424f2335640e49d71e671a4be15424d29fe90f55fe4f52bd241a998d3ee |
2 |
+AUX apache-2.2.14-staticdhparameters.diff 11745 RMD160 3aa5d2a5fd56b55fbfac372241ed47431146b262 SHA1 ae91f275450cce294f6700bcb12fb7851fd7070f SHA256 1fecd496f7df6438cf44b331a0b15d6ceaa0522fcb20d7246772f10f7c3c41df |
|
2 | 3 |
AUX apache-noip.diff 417 RMD160 8e16f7ff130cea52449a25aafbbdeb78919d9eae SHA1 7c19a0236e4eff23bee6e69ee6708a24529a974c SHA256 c9ed84fec20e69f711600261a395a3d4b3ae2685318f6354c4d2ebd01c0ec4cc |
3 | 4 |
AUX apache-tlsext-workaround.diff 395 RMD160 c756f0e935e4392d44c57a202fd73af173b3b9b2 SHA1 f9619250609d4bd1bddc3e28e23f61cfedb93c09 SHA256 ee0b535bc401ae6b4028d4fa238198f067cacab936d69596c4d8b4ca1ea23619 |
4 | 5 |
AUX httpd-2.2.16-ecc.diff 8236 RMD160 604f1124c168805b7702a6ca4a26ee7004fbab0b SHA1 3badbccc36c21710ef1c60f47963bcc631c00917 SHA256 e7fe97852875de06372d8413248fa20419946e2ab7de5198c93bffa6b5a68461 |
... | ... |
@@ -19,5 +20,5 @@ EBUILD apache-2.2.17.ebuild 2800 RMD160 c2aa5d7da738e45373e0cc7339e413bad3557e5a |
19 | 20 |
EBUILD apache-2.2.20.ebuild 2787 RMD160 33bcf018695ad8e6ce3beca2e1ce1479b7839f5a SHA1 5cb5d1cc61539e4c1bcb55fee6f5dff3b417bae4 SHA256 85f904c57696b368656837e5b195f8b2210ac703103d1a46ce7801f9983cd9ef |
20 | 21 |
EBUILD apache-2.2.21-r1.ebuild 2878 RMD160 aebdac0ad671ac05b1c7bf112a4a4e855012608a SHA1 d0ec2d7e7c4ffa517e6f7102886363f493e4b48c SHA256 e492085938fba74ae3e623f4bc8916986a0260db7666db3dee6fbcdcef71d8d2 |
21 | 22 |
EBUILD apache-2.2.21.ebuild 2783 RMD160 18b86737a93ad332064e358b4078fea9c078c301 SHA1 7c8c3ac29b59c08823971f663bb4fde46ec9f3f6 SHA256 6695358dcc6ff20aec9508aaa2dca7df1fcbca92250df269a5b810b4dd129e75 |
22 |
-EBUILD apache-2.2.22-r1.ebuild 3144 RMD160 c5130c8c6edc5d684048e500d76c440dcf9ed9ef SHA1 1023434f888861822c5095e728b27c966c82b335 SHA256 be789e723540f07ade3e701ea285ce2f7a88c08f191704929eecbcfc4f12d5c2 |
|
23 |
+EBUILD apache-2.2.22-r1.ebuild 3206 RMD160 2fe9d60ea36de0540bce18cba003a4c18191802a SHA1 3e26be46b7480b5cf2e4341f37c7ea81002062d7 SHA256 4c72b2164c32c34e85c6a8e99c68464e5505eeb79bf94eed7ad1d62ba2045c0e |
|
23 | 24 |
EBUILD apache-2.2.22.ebuild 3001 RMD160 aa73c429658766b1ff9361259939794d8f267d78 SHA1 03d45671feb3621197c4a7c3d2e5550df7386db5 SHA256 cf930cea2f7e8a8bd2f7cabe7de9ecf56efb33d10bd3fe2d70acaa6e86cebb0c |
... | ... |
@@ -105,7 +105,8 @@ RDEPEND="${RDEPEND} |
105 | 105 |
# init script fixup - should be rolled into next tarball #389965 |
106 | 106 |
src_prepare() { |
107 | 107 |
epatch "${FILESDIR}"/apache-noip.diff |
108 |
- epatch "${FILESDIR}"/httpd-2.2.16-ecc.diff |
|
108 |
+ #epatch "${FILESDIR}"/httpd-2.2.16-ecc.diff |
|
109 |
+ #epatch "${FILESDIR}"/apache-2.2.14-staticdhparameters.diff |
|
109 | 110 |
apache-2_src_prepare |
110 | 111 |
sed -i -e 's/! test -f/test -f/' "${GENTOO_PATCHDIR}"/init/apache2.initd || die "Failed to fix init script" |
111 | 112 |
cp ${FILESDIR}/2.2.22-envvars-std.in ${S}/support/envvars-std.in || die "Failed to apply LD_PRELOAD fix" |
... | ... |
@@ -0,0 +1,314 @@ |
1 |
+diff -ru httpd-2.2.14.orig/modules/ssl/mod_ssl.c httpd-2.2.14.new/modules/ssl/mod_ssl.c |
|
2 |
+--- httpd-2.2.14.orig/modules/ssl/mod_ssl.c 2009-05-19 13:44:59.000000000 +0200 |
|
3 |
++++ httpd-2.2.14.new/modules/ssl/mod_ssl.c 2010-07-06 11:56:50.897588899 +0200 |
|
4 |
+@@ -108,6 +108,9 @@ |
|
5 |
+ SSL_CMD_SRV(CertificateKeyFile, TAKE1, |
|
6 |
+ "SSL Server Private Key file " |
|
7 |
+ "(`/path/to/file' - PEM or DER encoded)") |
|
8 |
++ SSL_CMD_SRV(DHParametersFile, TAKE1, |
|
9 |
++ "SSL Server Diffie-Hellman parameters file " |
|
10 |
++ "(`/path/to/file' - PEM or DER encoded)") |
|
11 |
+ SSL_CMD_SRV(CertificateChainFile, TAKE1, |
|
12 |
+ "SSL Server CA Certificate Chain file " |
|
13 |
+ "(`/path/to/file' - PEM encoded)") |
|
14 |
+diff -ru httpd-2.2.14.orig/modules/ssl/ssl_engine_config.c httpd-2.2.14.new/modules/ssl/ssl_engine_config.c |
|
15 |
+--- httpd-2.2.14.orig/modules/ssl/ssl_engine_config.c 2009-05-19 13:44:59.000000000 +0200 |
|
16 |
++++ httpd-2.2.14.new/modules/ssl/ssl_engine_config.c 2010-07-06 11:56:50.897588899 +0200 |
|
17 |
+@@ -72,6 +72,7 @@ |
|
18 |
+ mc->tVHostKeys = apr_hash_make(pool); |
|
19 |
+ mc->tPrivateKey = apr_hash_make(pool); |
|
20 |
+ mc->tPublicCert = apr_hash_make(pool); |
|
21 |
++ mc->tDHParams = apr_hash_make(pool); |
|
22 |
+ #if defined(HAVE_OPENSSL_ENGINE_H) && defined(HAVE_ENGINE_INIT) |
|
23 |
+ mc->szCryptoDevice = NULL; |
|
24 |
+ #endif |
|
25 |
+@@ -156,6 +157,9 @@ |
|
26 |
+ mctx->pks = apr_pcalloc(p, sizeof(*mctx->pks)); |
|
27 |
+ |
|
28 |
+ /* mctx->pks->... certs/keys are set during module init */ |
|
29 |
++ |
|
30 |
++ mctx->pks->dhparams_file = NULL; |
|
31 |
++ mctx->pks->dhparams = NULL; |
|
32 |
+ } |
|
33 |
+ |
|
34 |
+ static SSLSrvConfigRec *ssl_config_server_new(apr_pool_t *p) |
|
35 |
+@@ -246,6 +250,7 @@ |
|
36 |
+ |
|
37 |
+ cfgMergeString(pks->ca_name_path); |
|
38 |
+ cfgMergeString(pks->ca_name_file); |
|
39 |
++ cfgMergeString(pks->dhparams_file); |
|
40 |
+ } |
|
41 |
+ |
|
42 |
+ /* |
|
43 |
+@@ -762,6 +767,22 @@ |
|
44 |
+ return NULL; |
|
45 |
+ } |
|
46 |
+ |
|
47 |
++const char *ssl_cmd_SSLDHParametersFile(cmd_parms *cmd, |
|
48 |
++ void *dcfg, |
|
49 |
++ const char *arg) |
|
50 |
++{ |
|
51 |
++ SSLSrvConfigRec *sc = mySrvConfig(cmd->server); |
|
52 |
++ const char *err; |
|
53 |
++ |
|
54 |
++ if ((err = ssl_cmd_check_file(cmd, &arg))) { |
|
55 |
++ return err; |
|
56 |
++ } |
|
57 |
++ |
|
58 |
++ sc->server->pks->dhparams_file = arg; |
|
59 |
++ |
|
60 |
++ return NULL; |
|
61 |
++} |
|
62 |
++ |
|
63 |
+ const char *ssl_cmd_SSLCertificateKeyFile(cmd_parms *cmd, |
|
64 |
+ void *dcfg, |
|
65 |
+ const char *arg) |
|
66 |
+diff -ru httpd-2.2.14.orig/modules/ssl/ssl_engine_init.c httpd-2.2.14.new/modules/ssl/ssl_engine_init.c |
|
67 |
+--- httpd-2.2.14.orig/modules/ssl/ssl_engine_init.c 2009-08-16 17:53:12.000000000 +0200 |
|
68 |
++++ httpd-2.2.14.new/modules/ssl/ssl_engine_init.c 2010-07-06 11:56:50.897588899 +0200 |
|
69 |
+@@ -723,6 +723,42 @@ |
|
70 |
+ } |
|
71 |
+ } |
|
72 |
+ |
|
73 |
++static int ssl_server_import_dhparams(server_rec *s, |
|
74 |
++ modssl_ctx_t *mctx, |
|
75 |
++ const char *id) |
|
76 |
++{ |
|
77 |
++ SSLModConfigRec *mc = myModConfig(s); |
|
78 |
++ ssl_asn1_t *asn1; |
|
79 |
++ MODSSL_D2I_DHparams_CONST unsigned char *ptr; |
|
80 |
++ DH *dhparams = NULL; |
|
81 |
++ |
|
82 |
++ if (!(asn1 = ssl_asn1_table_get(mc->tDHParams, id))) { |
|
83 |
++ return FALSE; |
|
84 |
++ } |
|
85 |
++ |
|
86 |
++ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, |
|
87 |
++ "Configuring server Diffie-Hellman parameters"); |
|
88 |
++ |
|
89 |
++ ptr = asn1->cpData; |
|
90 |
++ if (!(dhparams = d2i_DHparams(NULL, &ptr, asn1->nData))) { |
|
91 |
++ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, |
|
92 |
++ "Unable to import server Diffie-Hellman parameters"); |
|
93 |
++ ssl_log_ssl_error(APLOG_MARK, APLOG_ERR, s); |
|
94 |
++ ssl_die(); |
|
95 |
++ } |
|
96 |
++ |
|
97 |
++ if (SSL_CTX_set_tmp_dh(mctx->ssl_ctx, dhparams) <= 0) { |
|
98 |
++ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, |
|
99 |
++ "Unable to configure server Diffie-Hellman parameters"); |
|
100 |
++ ssl_log_ssl_error(APLOG_MARK, APLOG_ERR, s); |
|
101 |
++ ssl_die(); |
|
102 |
++ } |
|
103 |
++ |
|
104 |
++ mctx->pks->dhparams = dhparams; |
|
105 |
++ |
|
106 |
++ return TRUE; |
|
107 |
++} |
|
108 |
++ |
|
109 |
+ static int ssl_server_import_cert(server_rec *s, |
|
110 |
+ modssl_ctx_t *mctx, |
|
111 |
+ const char *id, |
|
112 |
+@@ -882,16 +918,18 @@ |
|
113 |
+ apr_pool_t *ptemp, |
|
114 |
+ modssl_ctx_t *mctx) |
|
115 |
+ { |
|
116 |
+- const char *rsa_id, *dsa_id; |
|
117 |
++ const char *rsa_id, *dsa_id, *dh_id; |
|
118 |
+ const char *vhost_id = mctx->sc->vhost_id; |
|
119 |
+ int i; |
|
120 |
+ int have_rsa, have_dsa; |
|
121 |
+ |
|
122 |
+ rsa_id = ssl_asn1_table_keyfmt(ptemp, vhost_id, SSL_AIDX_RSA); |
|
123 |
+ dsa_id = ssl_asn1_table_keyfmt(ptemp, vhost_id, SSL_AIDX_DSA); |
|
124 |
++ dh_id = apr_pstrcat(ptemp, vhost_id, ":", "DH", NULL); |
|
125 |
+ |
|
126 |
+ have_rsa = ssl_server_import_cert(s, mctx, rsa_id, SSL_AIDX_RSA); |
|
127 |
+ have_dsa = ssl_server_import_cert(s, mctx, dsa_id, SSL_AIDX_DSA); |
|
128 |
++ (void)ssl_server_import_dhparams(s, mctx, dh_id); |
|
129 |
+ |
|
130 |
+ if (!(have_rsa || have_dsa)) { |
|
131 |
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, |
|
132 |
+@@ -1265,6 +1303,7 @@ |
|
133 |
+ MODSSL_CFG_ITEM_FREE(EVP_PKEY_free, |
|
134 |
+ mctx->pks->keys[i]); |
|
135 |
+ } |
|
136 |
++ MODSSL_CFG_ITEM_FREE(DH_free, mctx->pks->dhparams); |
|
137 |
+ } |
|
138 |
+ |
|
139 |
+ apr_status_t ssl_init_ModuleKill(void *data) |
|
140 |
+diff -ru httpd-2.2.14.orig/modules/ssl/ssl_engine_pphrase.c httpd-2.2.14.new/modules/ssl/ssl_engine_pphrase.c |
|
141 |
+--- httpd-2.2.14.orig/modules/ssl/ssl_engine_pphrase.c 2009-09-16 22:06:05.000000000 +0200 |
|
142 |
++++ httpd-2.2.14.new/modules/ssl/ssl_engine_pphrase.c 2010-07-06 11:56:50.897588899 +0200 |
|
143 |
+@@ -144,6 +144,7 @@ |
|
144 |
+ unsigned char *ucp; |
|
145 |
+ long int length; |
|
146 |
+ X509 *pX509Cert; |
|
147 |
++ DH *pDHParams; |
|
148 |
+ BOOL bReadable; |
|
149 |
+ apr_array_header_t *aPassPhrase; |
|
150 |
+ int nPassPhrase; |
|
151 |
+@@ -192,8 +193,10 @@ |
|
152 |
+ pServ->defn_name, pServ->defn_line_number); |
|
153 |
+ ssl_die(); |
|
154 |
+ } |
|
155 |
++ |
|
156 |
+ algoCert = SSL_ALGO_UNKNOWN; |
|
157 |
+ algoKey = SSL_ALGO_UNKNOWN; |
|
158 |
++ |
|
159 |
+ for (i = 0, j = 0; i < SSL_AIDX_MAX && sc->server->pks->cert_files[i] != NULL; i++) { |
|
160 |
+ |
|
161 |
+ apr_cpystrn(szPath, sc->server->pks->cert_files[i], sizeof(szPath)); |
|
162 |
+@@ -517,6 +520,45 @@ |
|
163 |
+ */ |
|
164 |
+ EVP_PKEY_free(pPrivateKey); |
|
165 |
+ } |
|
166 |
++ |
|
167 |
++ /* |
|
168 |
++ * Read in Diffie-Hellman parameters file if such a file is |
|
169 |
++ * specified. |
|
170 |
++ */ |
|
171 |
++ if (sc->server->pks->dhparams_file) { |
|
172 |
++ apr_cpystrn(szPath, sc->server->pks->dhparams_file, sizeof(szPath)); |
|
173 |
++ if ((rv = exists_and_readable(szPath, p, NULL)) != APR_SUCCESS) { |
|
174 |
++ ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, |
|
175 |
++ "Init: Can't open server Diffie-Hellman parameters file %s", |
|
176 |
++ szPath); |
|
177 |
++ ssl_die(); |
|
178 |
++ } |
|
179 |
++ if ((pDHParams = SSL_read_DHparams(szPath, NULL, NULL)) == NULL) { |
|
180 |
++ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, |
|
181 |
++ "Init: Unable to read server Diffie-Hellman parameters from file %s", szPath); |
|
182 |
++ ssl_log_ssl_error(APLOG_MARK, APLOG_ERR, s); |
|
183 |
++ ssl_die(); |
|
184 |
++ } |
|
185 |
++ |
|
186 |
++ /* |
|
187 |
++ * Insert the DH params into global module configuration |
|
188 |
++ * to let it survive the processing between the 1st Apache |
|
189 |
++ * API init round (where we operate here) and the 2nd |
|
190 |
++ * Apache init round (where it will be actually used to |
|
191 |
++ * configure mod_ssl's per-server configuration |
|
192 |
++ * structures). |
|
193 |
++ */ |
|
194 |
++ cp = asn1_table_vhost_key(mc, p, cpVHostID, "DH"); |
|
195 |
++ length = i2d_DHparams(pDHParams, NULL); |
|
196 |
++ ucp = ssl_asn1_table_set(mc->tDHParams, cp, length); |
|
197 |
++ (void)i2d_DHparams(pDHParams, &ucp); /* 2nd arg increments */ |
|
198 |
++ |
|
199 |
++ /* |
|
200 |
++ * Free the DH structure |
|
201 |
++ */ |
|
202 |
++ DH_free(pDHParams); |
|
203 |
++ } |
|
204 |
++ |
|
205 |
+ } |
|
206 |
+ |
|
207 |
+ /* |
|
208 |
+diff -ru httpd-2.2.14.orig/modules/ssl/ssl_private.h httpd-2.2.14.new/modules/ssl/ssl_private.h |
|
209 |
+--- httpd-2.2.14.orig/modules/ssl/ssl_private.h 2009-05-19 13:44:59.000000000 +0200 |
|
210 |
++++ httpd-2.2.14.new/modules/ssl/ssl_private.h 2010-07-06 11:56:50.897588899 +0200 |
|
211 |
+@@ -378,6 +378,7 @@ |
|
212 |
+ void *pTmpKeys[SSL_TMP_KEY_MAX]; |
|
213 |
+ apr_hash_t *tPublicCert; |
|
214 |
+ apr_hash_t *tPrivateKey; |
|
215 |
++ apr_hash_t *tDHParams; |
|
216 |
+ #if defined(HAVE_OPENSSL_ENGINE_H) && defined(HAVE_ENGINE_INIT) |
|
217 |
+ const char *szCryptoDevice; |
|
218 |
+ #endif |
|
219 |
+@@ -394,8 +395,10 @@ |
|
220 |
+ */ |
|
221 |
+ const char *cert_files[SSL_AIDX_MAX]; |
|
222 |
+ const char *key_files[SSL_AIDX_MAX]; |
|
223 |
++ const char *dhparams_file; |
|
224 |
+ X509 *certs[SSL_AIDX_MAX]; |
|
225 |
+ EVP_PKEY *keys[SSL_AIDX_MAX]; |
|
226 |
++ DH *dhparams; |
|
227 |
+ |
|
228 |
+ /** Certificates which specify the set of CA names which should be |
|
229 |
+ * sent in the CertificateRequest message: */ |
|
230 |
+@@ -510,6 +513,7 @@ |
|
231 |
+ const char *ssl_cmd_SSLRandomSeed(cmd_parms *, void *, const char *, const char *, const char *); |
|
232 |
+ const char *ssl_cmd_SSLEngine(cmd_parms *, void *, const char *); |
|
233 |
+ const char *ssl_cmd_SSLCipherSuite(cmd_parms *, void *, const char *); |
|
234 |
++const char *ssl_cmd_SSLDHParametersFile(cmd_parms *, void *, const char *); |
|
235 |
+ const char *ssl_cmd_SSLCertificateFile(cmd_parms *, void *, const char *); |
|
236 |
+ const char *ssl_cmd_SSLCertificateKeyFile(cmd_parms *, void *, const char *); |
|
237 |
+ const char *ssl_cmd_SSLCertificateChainFile(cmd_parms *, void *, const char *); |
|
238 |
+diff -ru httpd-2.2.14.orig/modules/ssl/ssl_toolkit_compat.h httpd-2.2.14.new/modules/ssl/ssl_toolkit_compat.h |
|
239 |
+--- httpd-2.2.14.orig/modules/ssl/ssl_toolkit_compat.h 2009-05-19 13:44:59.000000000 +0200 |
|
240 |
++++ httpd-2.2.14.new/modules/ssl/ssl_toolkit_compat.h 2010-07-06 11:56:50.897588899 +0200 |
|
241 |
+@@ -100,9 +100,11 @@ |
|
242 |
+ #if (OPENSSL_VERSION_NUMBER >= 0x00908000) |
|
243 |
+ # define MODSSL_D2I_PrivateKey_CONST const |
|
244 |
+ # define MODSSL_D2I_X509_CONST const |
|
245 |
++# define MODSSL_D2I_DHparams_CONST const |
|
246 |
+ #else |
|
247 |
+ # define MODSSL_D2I_PrivateKey_CONST |
|
248 |
+ # define MODSSL_D2I_X509_CONST |
|
249 |
++# define MODSSL_D2I_DHparams_CONST |
|
250 |
+ #endif |
|
251 |
+ |
|
252 |
+ #if (OPENSSL_VERSION_NUMBER >= 0x00909000) |
|
253 |
+@@ -117,8 +119,10 @@ |
|
254 |
+ |
|
255 |
+ #if (OPENSSL_VERSION_NUMBER < 0x00904000) |
|
256 |
+ #define modssl_PEM_read_bio_X509(b, x, cb, arg) PEM_read_bio_X509(b, x, cb) |
|
257 |
++#define modssl_PEM_read_bio_DHparams(b, x, cb, arg) PEM_read_bio_DHparams(b, x, cb) |
|
258 |
+ #else |
|
259 |
+ #define modssl_PEM_read_bio_X509(b, x, cb, arg) PEM_read_bio_X509(b, x, cb, arg) |
|
260 |
++#define modssl_PEM_read_bio_DHparams(b, x, cb, arg) PEM_read_bio_DHparams(b, x, cb, arg) |
|
261 |
+ #endif |
|
262 |
+ |
|
263 |
+ #define modssl_PEM_X509_INFO_read_bio PEM_X509_INFO_read_bio |
|
264 |
+diff -ru httpd-2.2.14.orig/modules/ssl/ssl_util_ssl.c httpd-2.2.14.new/modules/ssl/ssl_util_ssl.c |
|
265 |
+--- httpd-2.2.14.orig/modules/ssl/ssl_util_ssl.c 2009-08-06 09:28:47.000000000 +0200 |
|
266 |
++++ httpd-2.2.14.new/modules/ssl/ssl_util_ssl.c 2010-07-06 11:56:50.897588899 +0200 |
|
267 |
+@@ -115,6 +115,47 @@ |
|
268 |
+ return rc; |
|
269 |
+ } |
|
270 |
+ |
|
271 |
++DH *SSL_read_DHparams(char* filename, DH **DHparams, modssl_read_bio_cb_fn *cb) |
|
272 |
++{ |
|
273 |
++ DH *rc; |
|
274 |
++ BIO *bioS; |
|
275 |
++ BIO *bioF; |
|
276 |
++ |
|
277 |
++ /* 1. try PEM (= DER+Base64+headers) */ |
|
278 |
++ if ((bioS=BIO_new_file(filename, "r")) == NULL) |
|
279 |
++ return NULL; |
|
280 |
++ rc = modssl_PEM_read_bio_DHparams (bioS, DHparams, cb, NULL); |
|
281 |
++ BIO_free(bioS); |
|
282 |
++ |
|
283 |
++ if (rc == NULL) { |
|
284 |
++ /* 2. try DER+Base64 */ |
|
285 |
++ if ((bioS=BIO_new_file(filename, "r")) == NULL) |
|
286 |
++ return NULL; |
|
287 |
++ |
|
288 |
++ if ((bioF = BIO_new(BIO_f_base64())) == NULL) { |
|
289 |
++ BIO_free(bioS); |
|
290 |
++ return NULL; |
|
291 |
++ } |
|
292 |
++ bioS = BIO_push(bioF, bioS); |
|
293 |
++ rc = d2i_DHparams_bio(bioS, NULL); |
|
294 |
++ BIO_free_all(bioS); |
|
295 |
++ |
|
296 |
++ if (rc == NULL) { |
|
297 |
++ /* 3. try plain DER */ |
|
298 |
++ if ((bioS=BIO_new_file(filename, "r")) == NULL) |
|
299 |
++ return NULL; |
|
300 |
++ rc = d2i_DHparams_bio(bioS, NULL); |
|
301 |
++ BIO_free(bioS); |
|
302 |
++ } |
|
303 |
++ } |
|
304 |
++ if (rc != NULL && DHparams != NULL) { |
|
305 |
++ if (*DHparams != NULL) |
|
306 |
++ DH_free(*DHparams); |
|
307 |
++ *DHparams = rc; |
|
308 |
++ } |
|
309 |
++ return rc; |
|
310 |
++} |
|
311 |
++ |
|
312 |
+ #if SSL_LIBRARY_VERSION <= 0x00904100 |
|
313 |
+ static EVP_PKEY *d2i_PrivateKey_bio(BIO *bio, EVP_PKEY **key) |
|
314 |
+ { |
|
0 | 315 |