diff options
Diffstat (limited to 'ssl')
| -rw-r--r-- | ssl/d1_pkt.c | 4 | ||||
| -rw-r--r-- | ssl/ssl_ciph.c | 10 | ||||
| -rw-r--r-- | ssl/ssl_lib.c | 8 | ||||
| -rw-r--r-- | ssl/t1_lib.c | 6 | 
4 files changed, 19 insertions, 9 deletions
diff --git a/ssl/d1_pkt.c b/ssl/d1_pkt.c index f5deddf7706a..23aa9dbce484 100644 --- a/ssl/d1_pkt.c +++ b/ssl/d1_pkt.c @@ -293,14 +293,12 @@ dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char *priority)          return (-1);      } -    /* insert should not fail, since duplicates are dropped */      if (pqueue_insert(queue->q, item) == NULL) { -        SSLerr(SSL_F_DTLS1_BUFFER_RECORD, ERR_R_INTERNAL_ERROR); +        /* Must be a duplicate so ignore it */          if (rdata->rbuf.buf != NULL)              OPENSSL_free(rdata->rbuf.buf);          OPENSSL_free(rdata);          pitem_free(item); -        return (-1);      }      return (1); diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c index ccdf00fa1b3f..58dcddfddc23 100644 --- a/ssl/ssl_ciph.c +++ b/ssl/ssl_ciph.c @@ -56,7 +56,7 @@   * [including the GNU Public Licence.]   */  /* ==================================================================== - * Copyright (c) 1998-2007 The OpenSSL Project.  All rights reserved. + * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.   *   * Redistribution and use in source and binary forms, with or without   * modification, are permitted provided that the following conditions @@ -1406,11 +1406,17 @@ static int ssl_cipher_process_rulestr(const char *rule_str,  static int check_suiteb_cipher_list(const SSL_METHOD *meth, CERT *c,                                      const char **prule_str)  { -    unsigned int suiteb_flags = 0, suiteb_comb2 = 0; +    unsigned int suiteb_flags = 0; +# ifndef OPENSSL_NO_ECDH +    unsigned int suiteb_comb2 = 0; +#endif +      if (strncmp(*prule_str, "SUITEB128ONLY", 13) == 0) {          suiteb_flags = SSL_CERT_FLAG_SUITEB_128_LOS_ONLY;      } else if (strncmp(*prule_str, "SUITEB128C2", 11) == 0) { +# ifndef OPENSSL_NO_ECDH          suiteb_comb2 = 1; +# endif          suiteb_flags = SSL_CERT_FLAG_SUITEB_128_LOS;      } else if (strncmp(*prule_str, "SUITEB128", 9) == 0) {          suiteb_flags = SSL_CERT_FLAG_SUITEB_128_LOS; diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index aa0cbdb98720..cfcfe76b9ce1 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -2259,10 +2259,10 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher)      int rsa_tmp_export, dh_tmp_export, kl;      unsigned long mask_k, mask_a, emask_k, emask_a;  #ifndef OPENSSL_NO_ECDSA -    int have_ecc_cert, ecdsa_ok, ecc_pkey_size; +    int have_ecc_cert, ecdsa_ok;  #endif  #ifndef OPENSSL_NO_ECDH -    int have_ecdh_tmp, ecdh_ok; +    int have_ecdh_tmp, ecdh_ok, ecc_pkey_size;  #endif  #ifndef OPENSSL_NO_EC      X509 *x = NULL; @@ -2405,7 +2405,9 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher)          if (!(cpk->valid_flags & CERT_PKEY_SIGN))              ecdsa_ok = 0;          ecc_pkey = X509_get_pubkey(x); +# ifndef OPENSSL_NO_ECDH          ecc_pkey_size = (ecc_pkey != NULL) ? EVP_PKEY_bits(ecc_pkey) : 0; +# endif          EVP_PKEY_free(ecc_pkey);          if ((x->sig_alg) && (x->sig_alg->algorithm)) {              signature_nid = OBJ_obj2nid(x->sig_alg->algorithm); @@ -2467,7 +2469,7 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher)  #define ku_reject(x, usage) \          (((x)->ex_flags & EXFLAG_KUSAGE) && !((x)->ex_kusage & (usage))) -#ifndef OPENSSL_NO_EC +#ifndef OPENSSL_NO_ECDH  int ssl_check_srvr_ecc_cert_and_alg(X509 *x, SSL *s)  { diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c index 8cb8816f9b13..55f918d10851 100644 --- a/ssl/t1_lib.c +++ b/ssl/t1_lib.c @@ -500,7 +500,11 @@ static int tls1_get_curvelist(SSL *s, int sess,              } else  # endif              { -                if (!s->server || s->cert->ecdh_tmp_auto) { +                if (!s->server +# ifndef OPENSSL_NO_ECDH +                        || s->cert->ecdh_tmp_auto +# endif +                    ) {                      *pcurves = eccurves_auto;                      pcurveslen = sizeof(eccurves_auto);                  } else {  | 
