aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2014-12-29 16:06:33 +0100
committerAris Adamantiadis <aris@0xbadc0de.be>2014-12-29 16:06:33 +0100
commit3880a8ed80a4b1e2c052bd62f328bba2f869d5ae (patch)
tree991cefe889d1c313685cd4693b96b94de7e93af3
parent0e969e0316fe6437898c31ca57a3d187e5ee59f1 (diff)
downloadlibssh-3880a8ed80a4b1e2c052bd62f328bba2f869d5ae.tar.gz
libssh-3880a8ed80a4b1e2c052bd62f328bba2f869d5ae.tar.xz
libssh-3880a8ed80a4b1e2c052bd62f328bba2f869d5ae.zip
Fix the dh.c build with libgcrypt
Fixes bug reported by gentoo at https://bugs.gentoo.org/show_bug.cgi?id=533424 The function was only used by EDCSA backend which are not supported by the libgcrypt code anyway.
-rw-r--r--include/libssh/dh.h2
-rw-r--r--src/dh.c11
2 files changed, 9 insertions, 4 deletions
diff --git a/include/libssh/dh.h b/include/libssh/dh.h
index f28b9169..89872e30 100644
--- a/include/libssh/dh.h
+++ b/include/libssh/dh.h
@@ -49,7 +49,9 @@ int hashbufin_add_cookie(ssh_session session, unsigned char *cookie);
int hashbufout_add_cookie(ssh_session session);
int generate_session_keys(ssh_session session);
bignum make_string_bn(ssh_string string);
+#ifdef HAVE_LIBCRYPTO
void make_string_bn_inplace(ssh_string string, bignum bnout);
+#endif /* HAVE_LIBCRYPTO */
ssh_string make_bignum_string(bignum num);
#endif /* DH_H_ */
diff --git a/src/dh.c b/src/dh.c
index 84355d48..010a1dda 100644
--- a/src/dh.c
+++ b/src/dh.c
@@ -407,14 +407,17 @@ bignum make_string_bn(ssh_string string){
return bn;
}
+#ifdef HAVE_LIBCRYPTO
+/** @internal
+ * @brief converts the content of a SSH string in an already allocated bignum
+ * @warning only available with OpenSSL builds
+ */
void make_string_bn_inplace(ssh_string string, bignum bnout) {
unsigned int len = ssh_string_len(string);
-#ifdef HAVE_LIBGCRYPT
- #error "unsupported"
-#elif defined HAVE_LIBCRYPTO
bignum_bin2bn(string->data, len, bnout);
-#endif
}
+#endif /* HAVE_LIBCRYPTO */
+
ssh_string dh_get_e(ssh_session session) {
return make_bignum_string(session->next_crypto->e);