diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2017-01-29 15:12:58 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2017-01-30 13:00:18 +0000 |
commit | 787ebcafcd82daf5809ef308f8b6d6bbec17b354 (patch) | |
tree | 43f8a8e4ead1e66482d9c1d4a223e42db91621ce /ssl | |
parent | 91410d40cbc2f63bf6c27c01f9f002ef7bcc3277 (diff) |
Update macros.
Use TLS_MAX_SIGALGCNT for the maximum number of entries in the
signature algorithms array.
Use TLS_MAX_SIGSTRING_LEN for the maxiumum length of each signature
component instead of a magic number.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2301)
Diffstat (limited to 'ssl')
-rw-r--r-- | ssl/t1_lib.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c index 6f7ef965be..c906061341 100644 --- a/ssl/t1_lib.c +++ b/ssl/t1_lib.c @@ -1715,11 +1715,12 @@ int SSL_get_shared_sigalgs(SSL *s, int idx, return (int)s->cert->shared_sigalgslen; } -#define MAX_SIGALGLEN (TLSEXT_hash_num * TLSEXT_signature_num * 2) +/* Maximum possible number of unique entries in sigalgs array */ +#define TLS_MAX_SIGALGCNT (OSSL_NELEM(sigalg_lookup_tbl) * 2) typedef struct { size_t sigalgcnt; - int sigalgs[MAX_SIGALGLEN]; + int sigalgs[TLS_MAX_SIGALGCNT]; } sig_cb_st; static void get_sigorhash(int *psig, int *phash, const char *str) @@ -1738,16 +1739,18 @@ static void get_sigorhash(int *psig, int *phash, const char *str) *phash = OBJ_ln2nid(str); } } +/* Maximum length of a signature algorithm string component */ +#define TLS_MAX_SIGSTRING_LEN 40 static int sig_cb(const char *elem, int len, void *arg) { sig_cb_st *sarg = arg; size_t i; - char etmp[40], *p; + char etmp[TLS_MAX_SIGSTRING_LEN], *p; int sig_alg = NID_undef, hash_alg = NID_undef; if (elem == NULL) return 0; - if (sarg->sigalgcnt == MAX_SIGALGLEN) + if (sarg->sigalgcnt == TLS_MAX_SIGALGCNT) return 0; if (len > (int)(sizeof(etmp) - 1)) return 0; |