diff options
author | jsing <> | 2018-02-08 05:56:49 +0000 |
---|---|---|
committer | jsing <> | 2018-02-08 05:56:49 +0000 |
commit | 301cd3fd1c4d17417a8493c71729c759ffcaf161 (patch) | |
tree | 0abe458cace64c392a0381ff03a5068a69ab19c6 /src/lib/libtls/tls_util.c | |
parent | 427ccd3eed962ca8e1dcfdbedde0f36b48b047de (diff) | |
download | openbsd-301cd3fd1c4d17417a8493c71729c759ffcaf161.tar.gz openbsd-301cd3fd1c4d17417a8493c71729c759ffcaf161.tar.bz2 openbsd-301cd3fd1c4d17417a8493c71729c759ffcaf161.zip |
Split keypair handling out into its own file - it had already appeared
in multiple locations.
ok beck@
Diffstat (limited to '')
-rw-r--r-- | src/lib/libtls/tls_util.c | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/src/lib/libtls/tls_util.c b/src/lib/libtls/tls_util.c index f9df287ca8..06b60597af 100644 --- a/src/lib/libtls/tls_util.c +++ b/src/lib/libtls/tls_util.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls_util.c,v 1.10 2018/02/05 00:52:24 jsing Exp $ */ | 1 | /* $OpenBSD: tls_util.c,v 1.11 2018/02/08 05:56:49 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
4 | * Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org> | 4 | * Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org> |
@@ -25,6 +25,41 @@ | |||
25 | #include "tls.h" | 25 | #include "tls.h" |
26 | #include "tls_internal.h" | 26 | #include "tls_internal.h" |
27 | 27 | ||
28 | static void * | ||
29 | memdup(const void *in, size_t len) | ||
30 | { | ||
31 | void *out; | ||
32 | |||
33 | if ((out = malloc(len)) == NULL) | ||
34 | return NULL; | ||
35 | memcpy(out, in, len); | ||
36 | return out; | ||
37 | } | ||
38 | |||
39 | int | ||
40 | tls_set_mem(char **dest, size_t *destlen, const void *src, size_t srclen) | ||
41 | { | ||
42 | free(*dest); | ||
43 | *dest = NULL; | ||
44 | *destlen = 0; | ||
45 | if (src != NULL) | ||
46 | if ((*dest = memdup(src, srclen)) == NULL) | ||
47 | return -1; | ||
48 | *destlen = srclen; | ||
49 | return 0; | ||
50 | } | ||
51 | |||
52 | int | ||
53 | tls_set_string(const char **dest, const char *src) | ||
54 | { | ||
55 | free((char *)*dest); | ||
56 | *dest = NULL; | ||
57 | if (src != NULL) | ||
58 | if ((*dest = strdup(src)) == NULL) | ||
59 | return -1; | ||
60 | return 0; | ||
61 | } | ||
62 | |||
28 | /* | 63 | /* |
29 | * Extract the host and port from a colon separated value. For a literal IPv6 | 64 | * Extract the host and port from a colon separated value. For a literal IPv6 |
30 | * address the address must be contained with square braces. If a host and | 65 | * address the address must be contained with square braces. If a host and |