diff options
| author | jsing <> | 2017-05-06 20:37:25 +0000 |
|---|---|---|
| committer | jsing <> | 2017-05-06 20:37:25 +0000 |
| commit | 0869d93fa2822cd7c9118eab9c9868d0d91ba3d7 (patch) | |
| tree | 93525fc35ada38404416d83084837f1f94d46be3 /src/lib/libssl/ssl_versions.c | |
| parent | 850f97a57e4dd087f849a5ab8913e6ea9e4788cf (diff) | |
| download | openbsd-0869d93fa2822cd7c9118eab9c9868d0d91ba3d7.tar.gz openbsd-0869d93fa2822cd7c9118eab9c9868d0d91ba3d7.tar.bz2 openbsd-0869d93fa2822cd7c9118eab9c9868d0d91ba3d7.zip | |
Provide SSL{,_CTX}_set_{min,max}_proto_version() functions.
Rides minor bump.
ok beck@
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/ssl_versions.c | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/src/lib/libssl/ssl_versions.c b/src/lib/libssl/ssl_versions.c index 6e17cdac6c..240a2498aa 100644 --- a/src/lib/libssl/ssl_versions.c +++ b/src/lib/libssl/ssl_versions.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_versions.c,v 1.2 2017/05/06 16:18:36 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_versions.c,v 1.3 2017/05/06 20:37:25 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -35,6 +35,52 @@ ssl_clamp_version_range(uint16_t *min_ver, uint16_t *max_ver, | |||
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | int | 37 | int |
| 38 | ssl_version_set_min(const SSL_METHOD *meth, uint16_t ver, uint16_t max_ver, | ||
| 39 | uint16_t *out_ver) | ||
| 40 | { | ||
| 41 | uint16_t min_version, max_version; | ||
| 42 | |||
| 43 | if (ver == 0) { | ||
| 44 | *out_ver = meth->internal->min_version; | ||
| 45 | return 1; | ||
| 46 | } | ||
| 47 | |||
| 48 | min_version = ver; | ||
| 49 | max_version = max_ver; | ||
| 50 | |||
| 51 | if (!ssl_clamp_version_range(&min_version, &max_version, | ||
| 52 | meth->internal->min_version, meth->internal->max_version)) | ||
| 53 | return 0; | ||
| 54 | |||
| 55 | *out_ver = min_version; | ||
| 56 | |||
| 57 | return 1; | ||
| 58 | } | ||
| 59 | |||
| 60 | int | ||
| 61 | ssl_version_set_max(const SSL_METHOD *meth, uint16_t ver, uint16_t min_ver, | ||
| 62 | uint16_t *out_ver) | ||
| 63 | { | ||
| 64 | uint16_t min_version, max_version; | ||
| 65 | |||
| 66 | if (ver == 0) { | ||
| 67 | *out_ver = meth->internal->max_version; | ||
| 68 | return 1; | ||
| 69 | } | ||
| 70 | |||
| 71 | min_version = min_ver; | ||
| 72 | max_version = ver; | ||
| 73 | |||
| 74 | if (!ssl_clamp_version_range(&min_version, &max_version, | ||
| 75 | meth->internal->min_version, meth->internal->max_version)) | ||
| 76 | return 0; | ||
| 77 | |||
| 78 | *out_ver = max_version; | ||
| 79 | |||
| 80 | return 1; | ||
| 81 | } | ||
| 82 | |||
| 83 | int | ||
| 38 | ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) | 84 | ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) |
| 39 | { | 85 | { |
| 40 | uint16_t min_version, max_version; | 86 | uint16_t min_version, max_version; |
