diff options
author | djm@openbsd.org <djm@openbsd.org> | 2022-10-28 00:43:08 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2022-10-28 12:47:00 +1100 |
commit | 3fbc58bb249d967cc43ebdc554f6781bb73d4a58 (patch) | |
tree | 0826bace579721c5621269a1629c5ef8cd8fdfa0 /ssh-ed25519-sk.c | |
parent | a1deb6cdbbe6afaab74ecb08fcb62db5739267be (diff) | |
download | openssh-git-3fbc58bb249d967cc43ebdc554f6781bb73d4a58.tar.gz |
upstream: refactor sshkey_sign() and sshkey_verify()
feedback/ok markus@
OpenBSD-Commit-ID: 368e662c128c99d05cc043b1308d2b6c71a4d3cc
Diffstat (limited to 'ssh-ed25519-sk.c')
-rw-r--r-- | ssh-ed25519-sk.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/ssh-ed25519-sk.c b/ssh-ed25519-sk.c index eba835d9..1eef5424 100644 --- a/ssh-ed25519-sk.c +++ b/ssh-ed25519-sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ed25519-sk.c,v 1.12 2022/10/28 00:41:52 djm Exp $ */ +/* $OpenBSD: ssh-ed25519-sk.c,v 1.13 2022/10/28 00:43:08 djm Exp $ */ /* * Copyright (c) 2019 Markus Friedl. All rights reserved. * @@ -94,10 +94,10 @@ ssh_ed25519_sk_deserialize_public(const char *ktype, struct sshbuf *b, return 0; } -int +static int ssh_ed25519_sk_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat, + const u_char *sig, size_t siglen, + const u_char *data, size_t dlen, const char *alg, u_int compat, struct sshkey_sig_details **detailsp) { struct sshbuf *b = NULL; @@ -122,10 +122,10 @@ ssh_ed25519_sk_verify(const struct sshkey *key, if (key == NULL || sshkey_type_plain(key->type) != KEY_ED25519_SK || key->ed25519_pk == NULL || - signature == NULL || signaturelen == 0) + sig == NULL || siglen == 0) return SSH_ERR_INVALID_ARGUMENT; - if ((b = sshbuf_from(signature, signaturelen)) == NULL) + if ((b = sshbuf_from(sig, siglen)) == NULL) return SSH_ERR_ALLOC_FAIL; if (sshbuf_get_cstring(b, &ktype, NULL) != 0 || sshbuf_get_string_direct(b, &sigblob, &len) != 0 || @@ -156,7 +156,7 @@ ssh_ed25519_sk_verify(const struct sshkey *key, } if (ssh_digest_memory(SSH_DIGEST_SHA256, key->sk_application, strlen(key->sk_application), apphash, sizeof(apphash)) != 0 || - ssh_digest_memory(SSH_DIGEST_SHA256, data, datalen, + ssh_digest_memory(SSH_DIGEST_SHA256, data, dlen, msghash, sizeof(msghash)) != 0) { r = SSH_ERR_INVALID_ARGUMENT; goto out; @@ -230,6 +230,8 @@ static const struct sshkey_impl_funcs sshkey_ed25519_sk_funcs = { /* .ssh_deserialize_public = */ ssh_ed25519_sk_deserialize_public, /* .generate = */ NULL, /* .copy_public = */ ssh_ed25519_sk_copy_public, + /* .sign = */ NULL, + /* .verify = */ ssh_ed25519_sk_verify, }; const struct sshkey_impl sshkey_ed25519_sk_impl = { |