summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_versions.c
diff options
context:
space:
mode:
authorjsing <>2017-05-06 20:37:25 +0000
committerjsing <>2017-05-06 20:37:25 +0000
commit792684dc457d44526f35586cb1671d67604bf5b1 (patch)
tree93525fc35ada38404416d83084837f1f94d46be3 /src/lib/libssl/ssl_versions.c
parent93ad7dce844283fb07b0d09b99999f2f71b47bd5 (diff)
downloadopenbsd-792684dc457d44526f35586cb1671d67604bf5b1.tar.gz
openbsd-792684dc457d44526f35586cb1671d67604bf5b1.tar.bz2
openbsd-792684dc457d44526f35586cb1671d67604bf5b1.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.c48
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
37int 37int
38ssl_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
60int
61ssl_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
83int
38ssl_enabled_version_range(SSL *s, uint16_t *min_ver, uint16_t *max_ver) 84ssl_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;