diff options
author | djm@openbsd.org <djm@openbsd.org> | 2019-07-16 13:18:39 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-07-16 23:23:05 +1000 |
commit | 16dd8b2c78a0de106c7429e2a294d203f6bda3c7 (patch) | |
tree | c1f6e71fe7aa7985f055b6a66926def4c876dcb7 /sshkey.c | |
parent | 45478898f9590b5cc8bc7104e573b84be67443b0 (diff) |
upstream: remove mostly vestigal uuencode.[ch]; moving the only unique
functionality there (wrapping of base64-encoded data) to sshbuf functions;
feedback and ok markus@
OpenBSD-Commit-ID: 4dba6735d88c57232f6fccec8a08bdcfea44ac4c
Diffstat (limited to 'sshkey.c')
-rw-r--r-- | sshkey.c | 27 |
1 files changed, 7 insertions, 20 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.80 2019/07/15 13:16:29 djm Exp $ */ +/* $OpenBSD: sshkey.c,v 1.81 2019/07/16 13:18:39 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -1402,7 +1402,7 @@ sshkey_to_base64(const struct sshkey *key, char **b64p) return SSH_ERR_ALLOC_FAIL; if ((r = sshkey_putb(key, b)) != 0) goto out; - if ((uu = sshbuf_dtob64(b)) == NULL) { + if ((uu = sshbuf_dtob64_string(b, 0)) == NULL) { r = SSH_ERR_ALLOC_FAIL; goto out; } @@ -3709,25 +3709,12 @@ sshkey_private_to_blob2(struct sshkey *prv, struct sshbuf *blob, sshbuf_ptr(encrypted), sshbuf_len(encrypted), 0, authlen)) != 0) goto out; - /* uuencode */ - if ((b64 = sshbuf_dtob64(encoded)) == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - sshbuf_reset(blob); - if ((r = sshbuf_put(blob, MARK_BEGIN, MARK_BEGIN_LEN)) != 0) - goto out; - for (i = 0; i < strlen(b64); i++) { - if ((r = sshbuf_put_u8(blob, b64[i])) != 0) - goto out; - /* insert line breaks */ - if (i % 70 == 69 && (r = sshbuf_put_u8(blob, '\n')) != 0) - goto out; - } - if (i % 70 != 69 && (r = sshbuf_put_u8(blob, '\n')) != 0) - goto out; - if ((r = sshbuf_put(blob, MARK_END, MARK_END_LEN)) != 0) + + /* assemble uuencoded key */ + if ((r = sshbuf_put(blob, MARK_BEGIN, MARK_BEGIN_LEN)) != 0 || + (r = sshbuf_dtob64(encoded, blob, 1)) != 0 || + (r = sshbuf_put(blob, MARK_END, MARK_END_LEN)) != 0) goto out; /* success */ |