提交 6a096889 编写于 作者: D Dr. Stephen Henson

Update ssltest certificate handling.

Use SSL_CONF for certificate handling is ssltest.c, this changes the
behaviour slightly: the -cert and -key options are no longer recognised
and a default certificate file is not used.

This change means that -s_cert and -c_cert can be used mode than once
to support use of multiple certificates.
Reviewed-by: NMatt Caswell <matt@openssl.org>
上级 cb0585c2
...@@ -204,20 +204,6 @@ ...@@ -204,20 +204,6 @@
# include OPENSSL_UNISTD # include OPENSSL_UNISTD
#endif #endif
#ifdef OPENSSL_SYS_VMS
# define TEST_SERVER_CERT "SYS$DISK:[-.APPS]SERVER.PEM"
# define TEST_CLIENT_CERT "SYS$DISK:[-.APPS]CLIENT.PEM"
#elif defined(OPENSSL_SYS_WINCE)
# define TEST_SERVER_CERT "\\OpenSSL\\server.pem"
# define TEST_CLIENT_CERT "\\OpenSSL\\client.pem"
#elif defined(OPENSSL_SYS_NETWARE)
# define TEST_SERVER_CERT "\\openssl\\apps\\server.pem"
# define TEST_CLIENT_CERT "\\openssl\\apps\\client.pem"
#else
# define TEST_SERVER_CERT "../apps/server.pem"
# define TEST_CLIENT_CERT "../apps/client.pem"
#endif
/* /*
* There is really no standard for this, so let's assign something * There is really no standard for this, so let's assign something
* only for this test * only for this test
...@@ -965,10 +951,6 @@ int main(int argc, char *argv[]) ...@@ -965,10 +951,6 @@ int main(int argc, char *argv[])
int server_auth = 0, i; int server_auth = 0, i;
struct app_verify_arg app_verify_arg = struct app_verify_arg app_verify_arg =
{ APP_CALLBACK_STRING, 0, 0, NULL, NULL }; { APP_CALLBACK_STRING, 0, 0, NULL, NULL };
char *server_cert = TEST_SERVER_CERT;
char *server_key = NULL;
char *client_cert = TEST_CLIENT_CERT;
char *client_key = NULL;
#ifndef OPENSSL_NO_EC #ifndef OPENSSL_NO_EC
char *named_curve = NULL; char *named_curve = NULL;
#endif #endif
...@@ -1043,14 +1025,18 @@ int main(int argc, char *argv[]) ...@@ -1043,14 +1025,18 @@ int main(int argc, char *argv[])
} }
SSL_CONF_CTX_set_flags(s_cctx, SSL_CONF_CTX_set_flags(s_cctx,
SSL_CONF_FLAG_CMDLINE | SSL_CONF_FLAG_SERVER); SSL_CONF_FLAG_CMDLINE | SSL_CONF_FLAG_SERVER |
SSL_CONF_FLAG_CERTIFICATE |
SSL_CONF_FLAG_REQUIRE_PRIVATE);
if (!SSL_CONF_CTX_set1_prefix(s_cctx, "-s_")) { if (!SSL_CONF_CTX_set1_prefix(s_cctx, "-s_")) {
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
goto end; goto end;
} }
SSL_CONF_CTX_set_flags(c_cctx, SSL_CONF_CTX_set_flags(c_cctx,
SSL_CONF_FLAG_CMDLINE | SSL_CONF_FLAG_CLIENT); SSL_CONF_FLAG_CMDLINE | SSL_CONF_FLAG_CLIENT |
SSL_CONF_FLAG_CERTIFICATE |
SSL_CONF_FLAG_REQUIRE_PRIVATE);
if (!SSL_CONF_CTX_set1_prefix(c_cctx, "-c_")) { if (!SSL_CONF_CTX_set1_prefix(c_cctx, "-c_")) {
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
goto end; goto end;
...@@ -1165,30 +1151,6 @@ int main(int argc, char *argv[]) ...@@ -1165,30 +1151,6 @@ int main(int argc, char *argv[])
bytes *= 1024L; bytes *= 1024L;
if (argv[0][i - 1] == 'm') if (argv[0][i - 1] == 'm')
bytes *= 1024L * 1024L; bytes *= 1024L * 1024L;
} else if (strcmp(*argv, "-cert") == 0) {
if (--argc < 1)
goto bad;
server_cert = *(++argv);
} else if (strcmp(*argv, "-s_cert") == 0) {
if (--argc < 1)
goto bad;
server_cert = *(++argv);
} else if (strcmp(*argv, "-key") == 0) {
if (--argc < 1)
goto bad;
server_key = *(++argv);
} else if (strcmp(*argv, "-s_key") == 0) {
if (--argc < 1)
goto bad;
server_key = *(++argv);
} else if (strcmp(*argv, "-c_cert") == 0) {
if (--argc < 1)
goto bad;
client_cert = *(++argv);
} else if (strcmp(*argv, "-c_key") == 0) {
if (--argc < 1)
goto bad;
client_key = *(++argv);
} else if (strcmp(*argv, "-cipher") == 0) { } else if (strcmp(*argv, "-cipher") == 0) {
if (--argc < 1) if (--argc < 1)
goto bad; goto bad;
...@@ -1519,26 +1481,6 @@ int main(int argc, char *argv[]) ...@@ -1519,26 +1481,6 @@ int main(int argc, char *argv[])
SSL_CTX_set_tmp_rsa_callback(s_ctx, tmp_rsa_cb); SSL_CTX_set_tmp_rsa_callback(s_ctx, tmp_rsa_cb);
#endif #endif
if (!SSL_CTX_use_certificate_file(s_ctx, server_cert, SSL_FILETYPE_PEM)) {
ERR_print_errors(bio_err);
} else if (!SSL_CTX_use_PrivateKey_file(s_ctx,
(server_key ? server_key :
server_cert),
SSL_FILETYPE_PEM)) {
ERR_print_errors(bio_err);
goto end;
}
if (client_auth) {
if (!SSL_CTX_use_certificate_file(c_ctx, client_cert, SSL_FILETYPE_PEM)
|| !SSL_CTX_use_PrivateKey_file(c_ctx,
(client_key ? client_key : client_cert),
SSL_FILETYPE_PEM)) {
ERR_print_errors(bio_err);
goto end;
}
}
if ((!SSL_CTX_load_verify_locations(s_ctx, CAfile, CApath)) || if ((!SSL_CTX_load_verify_locations(s_ctx, CAfile, CApath)) ||
(!SSL_CTX_set_default_verify_paths(s_ctx)) || (!SSL_CTX_set_default_verify_paths(s_ctx)) ||
(!SSL_CTX_load_verify_locations(c_ctx, CAfile, CApath)) || (!SSL_CTX_load_verify_locations(c_ctx, CAfile, CApath)) ||
......
...@@ -10,7 +10,7 @@ if [ "$2" = "" ]; then ...@@ -10,7 +10,7 @@ if [ "$2" = "" ]; then
else else
cert="$2" cert="$2"
fi fi
ssltest="../util/shlib_wrap.sh ./ssltest -key $key -cert $cert -c_key $key -c_cert $cert" ssltest="../util/shlib_wrap.sh ./ssltest -s_key $key -s_cert $cert -c_key $key -c_cert $cert"
if ../util/shlib_wrap.sh ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key' >/dev/null; then if ../util/shlib_wrap.sh ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key' >/dev/null; then
dsa_cert=YES dsa_cert=YES
...@@ -176,13 +176,13 @@ if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then ...@@ -176,13 +176,13 @@ if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
echo skipping RSA tests echo skipping RSA tests
else else
echo 'test tls1 with 1024bit RSA, no (EC)DHE, multiple handshakes' echo 'test tls1 with 1024bit RSA, no (EC)DHE, multiple handshakes'
../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -no_ecdhe -num 10 -f -time $extra || exit 1 ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -s_cert ../apps/server2.pem -no_dhe -no_ecdhe -num 10 -f -time $extra || exit 1
if ../util/shlib_wrap.sh ../apps/openssl no-dhparam; then if ../util/shlib_wrap.sh ../apps/openssl no-dhparam; then
echo skipping RSA+DHE tests echo skipping RSA+DHE tests
else else
echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes
../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1 ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -s_cert ../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1
fi fi
fi fi
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册