aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Schwabe2019-05-10 14:11:08 +0200
committerGert Doering2019-06-08 09:00:47 +0200
commitf636d11ff50658c18e0b90b20d641dc54b63e517 (patch)
treea37181496b2b8f17fd59ad8cb1d2cbc2548543e1
parentc4d5bcd7c90abbab2378ac865e326933b0ff1e1c (diff)
downloadopenvpn-f636d11ff50658c18e0b90b20d641dc54b63e517.zip
openvpn-f636d11ff50658c18e0b90b20d641dc54b63e517.tar.gz
Write key to stdout if filename is not given
This change is preperation for changing the way --genkey works. Acked-by: David Sommerseth <davids@openvpn.net> Message-Id: <20190510121114.30468-2-arne@rfc2549.org> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg18445.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
-rw-r--r--src/openvpn/crypto.c13
-rw-r--r--src/openvpn/tls_crypt.c13
2 files changed, 22 insertions, 4 deletions
diff --git a/src/openvpn/crypto.c b/src/openvpn/crypto.c
index ff9dbfd..eb56421 100644
--- a/src/openvpn/crypto.c
+++ b/src/openvpn/crypto.c
@@ -1465,8 +1465,13 @@ write_key_file(const int nkeys, const char *filename)
buf_printf(&out, "%s\n", static_key_foot);
+ /* write key file to stdout if no filename given */
+ if (!filename || strcmp(filename, "")==0)
+ {
+ printf("%s\n", BPTR(&out));
+ }
/* write key file, now formatted in out, to file */
- if (!buffer_write_file(filename, &out))
+ else if (!buffer_write_file(filename, &out))
{
nbits = -1;
}
@@ -1870,7 +1875,11 @@ write_pem_key_file(const char *filename, const char *pem_name)
goto cleanup;
}
- if (!buffer_write_file(filename, &server_key_pem))
+ if (!filename || strcmp(filename, "")==0)
+ {
+ printf("%s\n", BPTR(&server_key_pem));
+ }
+ else if (!buffer_write_file(filename, &server_key_pem))
{
msg(M_ERR, "ERROR: could not write key file");
goto cleanup;
diff --git a/src/openvpn/tls_crypt.c b/src/openvpn/tls_crypt.c
index d6a8225..e8889e9 100644
--- a/src/openvpn/tls_crypt.c
+++ b/src/openvpn/tls_crypt.c
@@ -697,7 +697,16 @@ tls_crypt_v2_write_client_key_file(const char *filename,
goto cleanup;
}
- if (!buffer_write_file(filename, &client_key_pem))
+ const char *client_filename = filename;
+ const char *client_inline = NULL;
+
+ if (!filename || streq(filename, ""))
+ {
+ printf("%s\n", BPTR(&client_key_pem));
+ client_filename = INLINE_FILE_TAG;
+ client_inline = (const char *)BPTR(&client_key_pem);
+ }
+ else if (!buffer_write_file(filename, &client_key_pem))
{
msg(M_FATAL, "ERROR: could not write client key file");
goto cleanup;
@@ -708,7 +717,7 @@ tls_crypt_v2_write_client_key_file(const char *filename,
struct buffer test_wrapped_client_key;
msg(D_GENKEY, "Testing client-side key loading...");
tls_crypt_v2_init_client_key(&test_client_key, &test_wrapped_client_key,
- filename, NULL);
+ client_filename, client_inline);
free_key_ctx_bi(&test_client_key);
/* Sanity check: unwrap and load client key (as "server") */