Update pre10
This commit is contained in:
@@ -255,7 +255,7 @@ int ca_main(int argc, char **argv)
|
||||
int batch = 0, default_op = 1, doupdatedb = 0, ext_copy = EXT_COPY_NONE;
|
||||
int keyformat = FORMAT_PEM, multirdn = 0, notext = 0, output_der = 0;
|
||||
int ret = 1, email_dn = 1, req = 0, verbose = 0, gencrl = 0, dorevoke = 0;
|
||||
int rand_ser = 0, i, j, selfsign = 0;
|
||||
int rand_ser = 0, i, j, selfsign = 0, def_nid, def_ret;
|
||||
long crldays = 0, crlhours = 0, crlsec = 0, days = 0;
|
||||
unsigned long chtype = MBSTRING_ASC, certopt = 0;
|
||||
X509 *x509 = NULL, *x509p = NULL, *x = NULL;
|
||||
@@ -728,24 +728,28 @@ end_of_options:
|
||||
}
|
||||
}
|
||||
|
||||
if (md == NULL && (md = lookup_conf(conf, section, ENV_DEFAULT_MD)) == NULL)
|
||||
goto end;
|
||||
|
||||
if (strcmp(md, "null") == 0) {
|
||||
def_ret = EVP_PKEY_get_default_digest_nid(pkey, &def_nid);
|
||||
/*
|
||||
* EVP_PKEY_get_default_digest_nid() returns 2 if the digest is
|
||||
* mandatory for this algorithm.
|
||||
*/
|
||||
if (def_ret == 2 && def_nid == NID_undef) {
|
||||
/* The signing algorithm requires there to be no digest */
|
||||
dgst = EVP_md_null();
|
||||
} else if (md == NULL
|
||||
&& (md = lookup_conf(conf, section, ENV_DEFAULT_MD)) == NULL) {
|
||||
goto end;
|
||||
} else {
|
||||
if (strcmp(md, "default") == 0) {
|
||||
int def_nid;
|
||||
if (EVP_PKEY_get_default_digest_nid(pkey, &def_nid) <= 0) {
|
||||
if (def_ret <= 0) {
|
||||
BIO_puts(bio_err, "no default digest\n");
|
||||
goto end;
|
||||
}
|
||||
md = (char *)OBJ_nid2sn(def_nid);
|
||||
}
|
||||
|
||||
if (!opt_md(md, &dgst)) {
|
||||
if (!opt_md(md, &dgst))
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (req) {
|
||||
|
||||
+10
-1
@@ -1601,10 +1601,19 @@ static int do_sign_init(EVP_MD_CTX *ctx, EVP_PKEY *pkey,
|
||||
const EVP_MD *md, STACK_OF(OPENSSL_STRING) *sigopts)
|
||||
{
|
||||
EVP_PKEY_CTX *pkctx = NULL;
|
||||
int i;
|
||||
int i, def_nid;
|
||||
|
||||
if (ctx == NULL)
|
||||
return 0;
|
||||
/*
|
||||
* EVP_PKEY_get_default_digest_nid() returns 2 if the digest is mandatory
|
||||
* for this algorithm.
|
||||
*/
|
||||
if (EVP_PKEY_get_default_digest_nid(pkey, &def_nid) == 2
|
||||
&& def_nid == NID_undef) {
|
||||
/* The signing algorithm requires there to be no digest */
|
||||
md = NULL;
|
||||
}
|
||||
if (!EVP_DigestSignInit(ctx, &pkctx, md, NULL, pkey))
|
||||
return 0;
|
||||
for (i = 0; i < sk_OPENSSL_STRING_num(sigopts); i++) {
|
||||
|
||||
+7
-7
@@ -595,7 +595,7 @@ typedef enum OPTION_choice {
|
||||
OPT_CT, OPT_NOCT, OPT_CTLOG_FILE,
|
||||
#endif
|
||||
OPT_DANE_TLSA_RRDATA, OPT_DANE_EE_NO_NAME,
|
||||
OPT_FORCE_PHA,
|
||||
OPT_ENABLE_PHA,
|
||||
OPT_R_ENUM
|
||||
} OPTION_CHOICE;
|
||||
|
||||
@@ -786,7 +786,7 @@ const OPTIONS s_client_options[] = {
|
||||
#endif
|
||||
{"keylogfile", OPT_KEYLOG_FILE, '>', "Write TLS secrets to file"},
|
||||
{"early_data", OPT_EARLY_DATA, '<', "File to send as early data"},
|
||||
{"force_pha", OPT_FORCE_PHA, '-', "Force-enable post-handshake-authentication"},
|
||||
{"enable_pha", OPT_ENABLE_PHA, '-', "Enable post-handshake-authentication"},
|
||||
{NULL, OPT_EOF, 0x00, NULL}
|
||||
};
|
||||
|
||||
@@ -975,7 +975,7 @@ int s_client_main(int argc, char **argv)
|
||||
int isdtls = 0;
|
||||
#endif
|
||||
char *psksessf = NULL;
|
||||
int force_pha = 0;
|
||||
int enable_pha = 0;
|
||||
|
||||
FD_ZERO(&readfds);
|
||||
FD_ZERO(&writefds);
|
||||
@@ -1492,8 +1492,8 @@ int s_client_main(int argc, char **argv)
|
||||
case OPT_EARLY_DATA:
|
||||
early_data_file = opt_arg();
|
||||
break;
|
||||
case OPT_FORCE_PHA:
|
||||
force_pha = 1;
|
||||
case OPT_ENABLE_PHA:
|
||||
enable_pha = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1944,8 +1944,8 @@ int s_client_main(int argc, char **argv)
|
||||
if (con == NULL)
|
||||
goto end;
|
||||
|
||||
if (force_pha)
|
||||
SSL_force_post_handshake_auth(con);
|
||||
if (enable_pha)
|
||||
SSL_set_post_handshake_auth(con, 1);
|
||||
|
||||
if (sess_in != NULL) {
|
||||
SSL_SESSION *sess;
|
||||
|
||||
Reference in New Issue
Block a user