diff --git a/include/libssh/wrapper.h b/include/libssh/wrapper.h index df415bb5..8857ec7c 100644 --- a/include/libssh/wrapper.h +++ b/include/libssh/wrapper.h @@ -33,7 +33,8 @@ enum ssh_digest_e { SSH_DIGEST_AUTO=0, SSH_DIGEST_SHA1=1, SSH_DIGEST_SHA256, - SSH_DIGEST_SHA512 + SSH_DIGEST_SHA384, + SSH_DIGEST_SHA512, }; enum ssh_kdf_digest { diff --git a/tests/unittests/torture_pki.c b/tests/unittests/torture_pki.c index 5df79e21..9e1757f7 100644 --- a/tests/unittests/torture_pki.c +++ b/tests/unittests/torture_pki.c @@ -147,6 +147,7 @@ const char *hash_signatures[] = { "", /* Not used here */ "ssh-rsa", "rsa-sha2-256", + "", /* Not used; there is no rsa-sha2-384 */ "rsa-sha2-512", }; @@ -155,6 +156,7 @@ int hash_lengths[] = { 0, /* Not used here */ 20, 32, + 48, /* Not used; there is no rsa-sha2-384 */ 64, }; @@ -195,6 +197,11 @@ static void torture_pki_verify_mismatch(void **state) hash_length = ((hash == SSH_DIGEST_AUTO) ? skey_attrs.sig_length : hash_lengths[hash]); + /* SHA384 is used only internaly for ECDSA. Skip it. */ + if (hash == SSH_DIGEST_SHA384) { + continue; + } + SSH_LOG(SSH_LOG_TRACE, "Creating signature %d with hash %d", sig_type, hash);