aboutsummaryrefslogtreecommitdiff
path: root/src/pki.c
diff options
context:
space:
mode:
authorJakub Jelen <jjelen@redhat.com>2018-11-22 10:43:18 +0100
committerAndreas Schneider <asn@cryptomilk.org>2018-11-30 16:21:18 +0100
commitd2434c69c008aa1cd3bd488ca6bc524da0e4ca3a (patch)
tree9c7e75f20d783734a4644dcd81cf1766ea62adb6 /src/pki.c
parent7f83a1efae6a7da19e18268d6298fc11b4e68c57 (diff)
downloadlibssh-d2434c69c008aa1cd3bd488ca6bc524da0e4ca3a.tar.gz
libssh-d2434c69c008aa1cd3bd488ca6bc524da0e4ca3a.tar.xz
libssh-d2434c69c008aa1cd3bd488ca6bc524da0e4ca3a.zip
pki: Separate signature extraction and verification
Initial solution proposed by Tilo Eckert <tilo.eckert@flam.de> Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/pki.c')
-rw-r--r--src/pki.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/pki.c b/src/pki.c
index 2bbf813c..0080b539 100644
--- a/src/pki.c
+++ b/src/pki.c
@@ -1919,20 +1919,14 @@ int ssh_pki_import_signature_blob(const ssh_string sig_blob,
return SSH_OK;
}
-int ssh_pki_signature_verify_blob(ssh_session session,
- ssh_string sig_blob,
- const ssh_key key,
- unsigned char *digest,
- size_t dlen)
+int ssh_pki_signature_verify(ssh_session session,
+ ssh_signature sig,
+ const ssh_key key,
+ unsigned char *digest,
+ size_t dlen)
{
- ssh_signature sig;
int rc;
- rc = ssh_pki_import_signature_blob(sig_blob, key, &sig);
- if (rc < 0) {
- return SSH_ERROR;
- }
-
SSH_LOG(SSH_LOG_FUNCTIONS,
"Going to verify a %s type signature",
sig->type_c);
@@ -2000,8 +1994,6 @@ int ssh_pki_signature_verify_blob(ssh_session session,
hlen);
}
- ssh_signature_free(sig);
-
return rc;
}