sync code with last fixes and improvements from OpenBSD
This commit is contained in:
parent
f57be82572
commit
58b04bcee7
468 changed files with 9958 additions and 7882 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: ssh-keygen.c,v 1.468 2023/06/20 00:05:09 djm Exp $ */
|
||||
/* $OpenBSD: ssh-keygen.c,v 1.470 2023/07/17 04:01:10 djm Exp $ */
|
||||
/*
|
||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||
* Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||
|
@ -2200,7 +2200,7 @@ load_krl(const char *path, struct ssh_krl **krlp)
|
|||
if ((r = sshbuf_load_file(path, &krlbuf)) != 0)
|
||||
fatal_r(r, "Unable to load KRL %s", path);
|
||||
/* XXX check sigs */
|
||||
if ((r = ssh_krl_from_blob(krlbuf, krlp, NULL, 0)) != 0 ||
|
||||
if ((r = ssh_krl_from_blob(krlbuf, krlp)) != 0 ||
|
||||
*krlp == NULL)
|
||||
fatal_r(r, "Invalid KRL file %s", path);
|
||||
sshbuf_free(krlbuf);
|
||||
|
@ -2223,7 +2223,8 @@ hash_to_blob(const char *cp, u_char **blobp, size_t *lenp,
|
|||
* OpenSSH base64 hashes omit trailing '='
|
||||
* characters; put them back for decode.
|
||||
*/
|
||||
tlen = strlen(cp);
|
||||
if ((tlen = strlen(cp)) >= SIZE_MAX - 5)
|
||||
fatal_f("hash too long: %zu bytes", tlen);
|
||||
tmp = xmalloc(tlen + 4 + 1);
|
||||
strlcpy(tmp, cp, tlen + 1);
|
||||
while ((tlen % 4) != 0) {
|
||||
|
@ -2265,6 +2266,10 @@ update_krl_from_file(struct passwd *pw, const char *file, int wild_ca,
|
|||
if (!quiet)
|
||||
printf("Revoking from %s\n", path);
|
||||
while (getline(&line, &linesize, krl_spec) != -1) {
|
||||
if (linesize >= INT_MAX) {
|
||||
fatal_f("%s contains unparsable line, len=%zu",
|
||||
path, linesize);
|
||||
}
|
||||
lnum++;
|
||||
was_explicit_key = was_sha1 = was_sha256 = was_hash = 0;
|
||||
cp = line + strspn(line, " \t");
|
||||
|
@ -2438,7 +2443,7 @@ do_gen_krl(struct passwd *pw, int updating, const char *ca_key_path,
|
|||
|
||||
if ((kbuf = sshbuf_new()) == NULL)
|
||||
fatal("sshbuf_new failed");
|
||||
if (ssh_krl_to_blob(krl, kbuf, NULL, 0) != 0)
|
||||
if (ssh_krl_to_blob(krl, kbuf) != 0)
|
||||
fatal("Couldn't generate KRL");
|
||||
if ((r = sshbuf_write_file(identity_file, kbuf)) != 0)
|
||||
fatal("write %s: %s", identity_file, strerror(errno));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue