diff options
author | Anderson Toshiyuki Sasaki <ansasaki@redhat.com> | 2019-04-25 18:02:56 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2019-05-13 16:37:51 +0200 |
commit | 58b3b2696c9080dfbd21132a1b05604ef064d880 (patch) | |
tree | ba8b6d270add6b809e92f68fc742ca50a8579ec7 /src/pki_crypto.c | |
parent | 20c03c289e59d32a2e0f2b61aea5b15ab4900579 (diff) | |
download | libssh-58b3b2696c9080dfbd21132a1b05604ef064d880.tar.gz libssh-58b3b2696c9080dfbd21132a1b05604ef064d880.tar.xz libssh-58b3b2696c9080dfbd21132a1b05604ef064d880.zip |
pki_crypto: Change SSH_KEYTYPE_ED25519 position in switches
The goal here is to avoid errors due to fall through when
HAVE_OPENSSL_ECC is not defined.
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/pki_crypto.c')
-rw-r--r-- | src/pki_crypto.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/src/pki_crypto.c b/src/pki_crypto.c index 2290a693..d0db5cf0 100644 --- a/src/pki_crypto.c +++ b/src/pki_crypto.c @@ -1277,6 +1277,12 @@ ssh_string pki_publickey_to_blob(const ssh_key key) break; } + case SSH_KEYTYPE_ED25519: + rc = pki_ed25519_public_key_to_blob(buffer, key); + if (rc == SSH_ERROR){ + goto fail; + } + break; case SSH_KEYTYPE_ECDSA_P256: case SSH_KEYTYPE_ECDSA_P384: case SSH_KEYTYPE_ECDSA_P521: @@ -1312,12 +1318,6 @@ ssh_string pki_publickey_to_blob(const ssh_key key) break; #endif - case SSH_KEYTYPE_ED25519: - rc = pki_ed25519_public_key_to_blob(buffer, key); - if (rc == SSH_ERROR){ - goto fail; - } - break; case SSH_KEYTYPE_UNKNOWN: default: goto fail; @@ -1537,6 +1537,9 @@ ssh_string pki_signature_to_blob(const ssh_signature sig) case SSH_KEYTYPE_RSA1: sig_blob = ssh_string_copy(sig->rsa_sig); break; + case SSH_KEYTYPE_ED25519: + sig_blob = pki_ed25519_sig_to_blob(sig); + break; case SSH_KEYTYPE_ECDSA_P256: case SSH_KEYTYPE_ECDSA_P384: case SSH_KEYTYPE_ECDSA_P521: @@ -1544,9 +1547,6 @@ ssh_string pki_signature_to_blob(const ssh_signature sig) sig_blob = pki_ecdsa_signature_to_blob(sig); break; #endif - case SSH_KEYTYPE_ED25519: - sig_blob = pki_ed25519_sig_to_blob(sig); - break; default: case SSH_KEYTYPE_UNKNOWN: SSH_LOG(SSH_LOG_WARN, "Unknown signature key type: %s", sig->type_c); @@ -1821,6 +1821,12 @@ ssh_signature pki_signature_from_blob(const ssh_key pubkey, goto error; } break; + case SSH_KEYTYPE_ED25519: + rc = pki_ed25519_sig_from_blob(sig, sig_blob); + if (rc != SSH_OK){ + goto error; + } + break; case SSH_KEYTYPE_ECDSA_P256: case SSH_KEYTYPE_ECDSA_P384: case SSH_KEYTYPE_ECDSA_P521: @@ -1834,12 +1840,6 @@ ssh_signature pki_signature_from_blob(const ssh_key pubkey, } break; #endif - case SSH_KEYTYPE_ED25519: - rc = pki_ed25519_sig_from_blob(sig, sig_blob); - if (rc != SSH_OK){ - goto error; - } - break; default: case SSH_KEYTYPE_UNKNOWN: SSH_LOG(SSH_LOG_WARN, "Unknown signature type"); @@ -2006,6 +2006,13 @@ ssh_signature pki_do_sign_hash(const ssh_key privkey, } sig->dsa_sig = NULL; break; + case SSH_KEYTYPE_ED25519: + rc = pki_ed25519_sign(privkey, sig, hash, hlen); + if (rc != SSH_OK){ + ssh_signature_free(sig); + return NULL; + } + break; case SSH_KEYTYPE_ECDSA_P256: case SSH_KEYTYPE_ECDSA_P384: case SSH_KEYTYPE_ECDSA_P521: @@ -2027,13 +2034,6 @@ ssh_signature pki_do_sign_hash(const ssh_key privkey, break; #endif /* HAVE_OPENSSL_ECC */ - case SSH_KEYTYPE_ED25519: - rc = pki_ed25519_sign(privkey, sig, hash, hlen); - if (rc != SSH_OK){ - ssh_signature_free(sig); - return NULL; - } - break; case SSH_KEYTYPE_UNKNOWN: default: ssh_signature_free(sig); |