X-Git-Url: https://bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=tools%2Fserver.c;h=71cfa5d39d41f624e5420a6b7f54bb4ff3018f60;hp=983fbe619f36c29181697936f8d7708aaa273ac4;hb=7561e7d6c86171257a4153d95202b0791b3612a8;hpb=16d0864818cdf24e4fb1d722fe71456c03e3fc17 diff --git a/tools/server.c b/tools/server.c index 983fbe6..71cfa5d 100644 --- a/tools/server.c +++ b/tools/server.c @@ -62,7 +62,6 @@ host_bind(const char *host, const char *port, int verbose) struct sockaddr_in6 sa6; size_t sa_len; void *addr; - char tmp[INET6_ADDRSTRLEN + 50]; int opt; sa = (struct sockaddr *)p->ai_addr; @@ -86,15 +85,19 @@ host_bind(const char *host, const char *port, int verbose) addr = NULL; sa_len = p->ai_addrlen; } - if (addr != NULL) { - if (!inet_ntop(p->ai_family, addr, tmp, sizeof tmp)) { - strcpy(tmp, ""); - } - } else { - sprintf(tmp, "", - (int)sa->sa_family); - } if (verbose) { + char tmp[INET6_ADDRSTRLEN + 50]; + + if (addr != NULL) { + if (!inet_ntop(p->ai_family, addr, + tmp, sizeof tmp)) + { + strcpy(tmp, ""); + } + } else { + sprintf(tmp, "", + (int)sa->sa_family); + } fprintf(stderr, "binding to: %s\n", tmp); } fd = socket(p->ai_family, p->ai_socktype, p->ai_protocol); @@ -330,6 +333,9 @@ sp_choose(const br_ssl_server_policy_class **pctx, case BR_SSLKEYX_ECDHE_RSA: if (pc->sk->key_type == BR_KEYTYPE_RSA) { choices->cipher_suite = st[u][0]; + if (cc->eng.session.version < BR_TLS12) { + hash_id = 0; + } choices->hash_id = hash_id; goto choose_ok; } @@ -337,6 +343,9 @@ sp_choose(const br_ssl_server_policy_class **pctx, case BR_SSLKEYX_ECDHE_ECDSA: if (pc->sk->key_type == BR_KEYTYPE_EC) { choices->cipher_suite = st[u][0]; + if (cc->eng.session.version < BR_TLS12) { + hash_id = br_sha1_ID; + } choices->hash_id = hash_id; goto choose_ok; }