diff --git a/src/crypt.c b/src/crypt.c index 378d352..f7967c3 100644 --- a/src/crypt.c +++ b/src/crypt.c @@ -38,7 +38,7 @@ #include "libssh2_priv.h" #include -#ifdef LIBSSH2_CRYPT_NONE +#if LIBSSH2_CRYPT_NONE /* {{{ libssh2_crypt_none_crypt * Minimalist cipher: VERY secure *wink* */ @@ -59,7 +59,7 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_none = { libssh2_crypt_none_crypt, NULL }; -#endif +#endif /* LIBSSH2_CRYPT_NONE */ #define MAKE_INIT(name, cipher) \ static int name (LIBSSH2_SESSION *session, \ @@ -127,7 +127,7 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_3des_cbc = { &dtor }; -#if OPENSSL_VERSION_NUMBER >= 0x00907000L && !defined(OPENSSL_NO_AES) +#if LIBSSH2_AES static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_aes128_cbc = { "aes128-cbc", 16, /* blocksize */ @@ -172,9 +172,9 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_rijndael_cbc_lysator_liu_se = { &crypt, &dtor }; -#endif /* OPENSSL_VERSION_NUMBER >= 0x00907000L && !defined(OPENSSL_NO_AES)*/ +#endif /* LIBSSH2_AES */ -#ifndef OPENSSL_NO_BLOWFISH +#if LIBSSH2_BLOWFISH static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_blowfish_cbc = { "blowfish-cbc", 8, /* blocksize */ @@ -185,9 +185,9 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_blowfish_cbc = { &crypt, &dtor }; -#endif /* ! OPENSSL_NO_BLOWFISH */ +#endif /* LIBSSH2_BLOWFISH */ -#ifndef OPENSSL_NO_CAST +#if LIBSSH2_CAST static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_cast128_cbc = { "cast128-cbc", 8, /* blocksize */ @@ -198,9 +198,9 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_cast128_cbc = { &crypt, &dtor }; -#endif /* ! OPENSSL_NO_CAST */ +#endif /* LIBSSH2_CAST */ -#ifndef OPENSSL_NO_RC4 +#if LIBSSH2_RC4 static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_arcfour = { "arcfour", 8, /* blocksize */ @@ -211,29 +211,29 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_arcfour = { &crypt, &dtor }; -#endif /* ! OPENSSL_NO_RC4 */ +#endif /* LIBSSH2_RC4 */ static LIBSSH2_CRYPT_METHOD *_libssh2_crypt_methods[] = { -#if OPENSSL_VERSION_NUMBER >= 0x00907000L && !defined(OPENSSL_NO_AES) +#if LIBSSH2_AES &libssh2_crypt_method_aes256_cbc, &libssh2_crypt_method_rijndael_cbc_lysator_liu_se, /* == aes256-cbc */ &libssh2_crypt_method_aes192_cbc, &libssh2_crypt_method_aes128_cbc, -#endif /* OPENSSL_VERSION_NUMBER >= 0x00907000L && !defined(OPENSSL_NO_AES) */ -#ifndef OPENSSL_NO_BLOWFISH +#endif /* LIBSSH2_AES */ +#if LIBSSH2_BLOWFISH &libssh2_crypt_method_blowfish_cbc, -#endif /* ! OPENSSL_NO_BLOWFISH */ -#ifndef OPENSSL_NO_RC4 +#endif /* LIBSSH2_BLOWFISH */ +#if LIBSSH2_RC4 &libssh2_crypt_method_arcfour, -#endif /* ! OPENSSL_NO_RC4 */ -#ifndef OPENSSL_NO_CAST +#endif /* LIBSSH2_RC4 */ +#if LIBSSH2_CAST &libssh2_crypt_method_cast128_cbc, -#endif /* ! OPENSSL_NO_CAST */ -#ifndef OPENSSL_NO_DES +#endif /* LIBSSH2_CAST */ +#if LIBSSH2_3DES &libssh2_crypt_method_3des_cbc, -#endif /* ! OPENSSL_NO_DES */ -#ifdef LIBSSH2_CRYPT_NONE - &libssh2_crypt_method_none, +#endif /* LIBSSH2_DES */ +#if LIBSSH2_CRYPT_NONE + &libssh2_crypt_method_none, #endif NULL }; diff --git a/src/hostkey.c b/src/hostkey.c index a07a442..1708313 100644 --- a/src/hostkey.c +++ b/src/hostkey.c @@ -45,7 +45,7 @@ #include #endif -#ifndef OPENSSL_NO_RSA +#if LIBSSH2_RSA /* *********** * ssh-rsa * *********** */ @@ -281,9 +281,9 @@ static LIBSSH2_HOSTKEY_METHOD libssh2_hostkey_method_ssh_rsa = { NULL, /* encrypt */ libssh2_hostkey_method_ssh_rsa_dtor, }; -#endif /* ! OPENSSL_NO_RSA */ +#endif /* LIBSSH2_RSA */ -#ifndef OPENSSL_NO_DSA +#if LIBSSH2_DSA /* *********** * ssh-dss * *********** */ @@ -526,15 +526,15 @@ static LIBSSH2_HOSTKEY_METHOD libssh2_hostkey_method_ssh_dss = { NULL, /* encrypt */ libssh2_hostkey_method_ssh_dss_dtor, }; -#endif /* ! OPENSSL_NO_DSA */ +#endif /* LIBSSH2_DSA */ static LIBSSH2_HOSTKEY_METHOD *_libssh2_hostkey_methods[] = { -#ifndef OPENSSL_NO_RSA +#if LIBSSH2_RSA &libssh2_hostkey_method_ssh_rsa, -#endif /* ! OPENSSL_NO_RSA */ -#ifndef OPENSSL_NO_DSA +#endif /* LIBSSH2_RSA */ +#if LIBSSH2_DSA &libssh2_hostkey_method_ssh_dss, -#endif /* ! OPENSSL_NO_DSA */ +#endif /* LIBSSH2_DSA */ NULL }; @@ -556,7 +556,7 @@ LIBSSH2_API const char *libssh2_hostkey_hash(LIBSSH2_SESSION *session, int hash_ case LIBSSH2_HOSTKEY_HASH_MD5: return (char *)session->server_hostkey_md5; break; -#endif /* ! LIBSSH2_MD5 */ +#endif /* LIBSSH2_MD5 */ case LIBSSH2_HOSTKEY_HASH_SHA1: return (char *)session->server_hostkey_sha1; break; diff --git a/src/libgcrypt.h b/src/libgcrypt.h index c75593b..a9936c0 100644 --- a/src/libgcrypt.h +++ b/src/libgcrypt.h @@ -39,6 +39,17 @@ #define LIBSSH2_MD5 1 +#define LIBSSH2_HMAC_RIPEMD 1 + +#define LIBSSH2_AES 1 +#define LIBSSH2_BLOWFISH 1 +#define LIBSSH2_RC4 1 +#define LIBSSH2_CAST 1 +#define LIBSSH2_3DES 1 + +#define LIBSSH2_RSA 1 +#define LIBSSH2_DSA 1 + #define MD5_DIGEST_LENGTH 16 #define SHA_DIGEST_LENGTH 20 diff --git a/src/mac.c b/src/mac.c index af0f7c2..cc03070 100644 --- a/src/mac.c +++ b/src/mac.c @@ -37,7 +37,7 @@ #include "libssh2_priv.h" -#ifdef LIBSSH2_MAC_NONE +#if LIBSSH2_MAC_NONE /* {{{ libssh2_mac_none_MAC * Minimalist MAC: No MAC */ @@ -206,7 +206,7 @@ static LIBSSH2_MAC_METHOD libssh2_mac_method_hmac_md5_96 = { libssh2_mac_method_common_dtor, }; -#ifndef OPENSSL_NO_RIPEMD +#if LIBSSH2_HMAC_RIPEMD /* {{{ libssh2_mac_method_hmac_ripemd160_hash * Calculate hash using ripemd160 value */ @@ -249,18 +249,18 @@ static LIBSSH2_MAC_METHOD libssh2_mac_method_hmac_ripemd160_openssh_com = { libssh2_mac_method_hmac_ripemd160_hash, libssh2_mac_method_common_dtor, }; -#endif /* ! OPENSSL_NO_RIPEMD */ +#endif /* LIBSSH2_HMAC_RIPEMD */ static LIBSSH2_MAC_METHOD *_libssh2_mac_methods[] = { &libssh2_mac_method_hmac_sha1, &libssh2_mac_method_hmac_sha1_96, &libssh2_mac_method_hmac_md5, &libssh2_mac_method_hmac_md5_96, -#ifndef OPENSSL_NO_RIPEMD +#if LIBSSH2_HMAC_RIPEMD &libssh2_mac_method_hmac_ripemd160, &libssh2_mac_method_hmac_ripemd160_openssh_com, -#endif /* ! OPENSSL_NO_RIPEMD */ -#ifdef LIBSSH2_MAC_NONE +#endif /* LIBSSH2_HMAC_RIPEMD */ +#if LIBSSH2_MAC_NONE &libssh2_mac_method_none, #endif /* LIBSSH2_MAC_NONE */ NULL diff --git a/src/openssl.h b/src/openssl.h index 85edb8e..06e441a 100644 --- a/src/openssl.h +++ b/src/openssl.h @@ -35,6 +35,7 @@ * OF SUCH DAMAGE. */ +#include #include #ifndef OPENSSL_NO_MD5 #include @@ -44,12 +45,60 @@ #include #include -#ifndef OPENSSL_NO_MD5 +#ifdef OPENSSL_NO_RSA +# define LIBSSH2_RSA 0 +#else +# define LIBSSH2_RSA 1 +#endif + +#ifdef OPENSSL_NO_DSA +# define LIBSSH2_DSA 0 +#else +# define LIBSSH2_DSA 1 +#endif + +#ifdef OPENSSL_NO_MD5 # define LIBSSH2_MD5 0 #else # define LIBSSH2_MD5 1 #endif +#ifdef OPENSSL_NO_RIPEMD +# define LIBSSH2_HMAC_RIPEMD 0 +#else +# define LIBSSH2_HMAC_RIPEMD 1 +#endif + +#if OPENSSL_VERSION_NUMBER >= 0x00907000L && !defined(OPENSSL_NO_AES) +# define LIBSSH2_AES 1 +#else +# define LIBSSH2_AES 0 +#endif + +#ifdef OPENSSL_NO_BLOWFISH +# define LIBSSH2_BLOWFISH 0 +#else +# define LIBSSH2_BLOWFISH 1 +#endif + +#ifdef OPENSSL_NO_RC4 +# define LIBSSH2_RC4 0 +#else +# define LIBSSH2_RC4 1 +#endif + +#ifdef OPENSSL_NO_CAST +# define LIBSSH2_CAST 0 +#else +# define LIBSSH2_CAST 1 +#endif + +#ifdef OPENSSL_NO_3DES +# define LIBSSH2_3DES 0 +#else +# define LIBSSH2_3DES 1 +#endif + #define libssh2_random(buf, len) \ RAND_bytes ((buf), (len))