aboutsummaryrefslogtreecommitdiff
path: root/src/openvpn/options.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/openvpn/options.c')
-rw-r--r--src/openvpn/options.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/openvpn/options.c b/src/openvpn/options.c
index 772323d..4e19d7c 100644
--- a/src/openvpn/options.c
+++ b/src/openvpn/options.c
@@ -7979,6 +7979,20 @@ add_option(struct options *options,
}
options->ncp_ciphers = p[1];
}
+ else if (streq(p[0], "key-derivation") && p[1])
+ {
+ VERIFY_PERMISSION(OPT_P_NCP)
+#ifdef HAVE_EXPORT_KEYING_MATERIAL
+ if (streq(p[1], "tls-ekm"))
+ {
+ options->data_channel_use_ekm = true;
+ }
+ else
+#endif
+ {
+ msg(msglevel, "Unknown key-derivation method %s", p[1]);
+ }
+ }
else if (streq(p[0], "ncp-disable") && !p[1])
{
VERIFY_PERMISSION(OPT_P_GENERAL|OPT_P_INSTANCE);
@@ -8707,6 +8721,11 @@ add_option(struct options *options,
"\"EXPORTER\"");
goto err;
}
+ if (streq(p[1], EXPORT_KEY_DATA_LABEL))
+ {
+ msg(msglevel, "Keying material exporter label must not be '"
+ EXPORT_KEY_DATA_LABEL "'.");
+ }
if (ekm_length < 16 || ekm_length > 4095)
{
msg(msglevel, "Invalid keying material exporter length");