Use LIBSSH2_* instead of OPENSSL_NO_* (should ultimately be possible

to chose by ./configure?).
This commit is contained in:
Simon Josefsson 2007-01-17 15:01:29 +00:00
parent 6873ada0b7
commit c090ac7ed1
5 changed files with 98 additions and 38 deletions

View File

@ -38,7 +38,7 @@
#include "libssh2_priv.h" #include "libssh2_priv.h"
#include <openssl/evp.h> #include <openssl/evp.h>
#ifdef LIBSSH2_CRYPT_NONE #if LIBSSH2_CRYPT_NONE
/* {{{ libssh2_crypt_none_crypt /* {{{ libssh2_crypt_none_crypt
* Minimalist cipher: VERY secure *wink* * Minimalist cipher: VERY secure *wink*
*/ */
@ -59,7 +59,7 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_none = {
libssh2_crypt_none_crypt, libssh2_crypt_none_crypt,
NULL NULL
}; };
#endif #endif /* LIBSSH2_CRYPT_NONE */
#define MAKE_INIT(name, cipher) \ #define MAKE_INIT(name, cipher) \
static int name (LIBSSH2_SESSION *session, \ static int name (LIBSSH2_SESSION *session, \
@ -127,7 +127,7 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_3des_cbc = {
&dtor &dtor
}; };
#if OPENSSL_VERSION_NUMBER >= 0x00907000L && !defined(OPENSSL_NO_AES) #if LIBSSH2_AES
static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_aes128_cbc = { static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_aes128_cbc = {
"aes128-cbc", "aes128-cbc",
16, /* blocksize */ 16, /* blocksize */
@ -172,9 +172,9 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_rijndael_cbc_lysator_liu_se = {
&crypt, &crypt,
&dtor &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 = { static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_blowfish_cbc = {
"blowfish-cbc", "blowfish-cbc",
8, /* blocksize */ 8, /* blocksize */
@ -185,9 +185,9 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_blowfish_cbc = {
&crypt, &crypt,
&dtor &dtor
}; };
#endif /* ! OPENSSL_NO_BLOWFISH */ #endif /* LIBSSH2_BLOWFISH */
#ifndef OPENSSL_NO_CAST #if LIBSSH2_CAST
static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_cast128_cbc = { static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_cast128_cbc = {
"cast128-cbc", "cast128-cbc",
8, /* blocksize */ 8, /* blocksize */
@ -198,9 +198,9 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_cast128_cbc = {
&crypt, &crypt,
&dtor &dtor
}; };
#endif /* ! OPENSSL_NO_CAST */ #endif /* LIBSSH2_CAST */
#ifndef OPENSSL_NO_RC4 #if LIBSSH2_RC4
static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_arcfour = { static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_arcfour = {
"arcfour", "arcfour",
8, /* blocksize */ 8, /* blocksize */
@ -211,28 +211,28 @@ static LIBSSH2_CRYPT_METHOD libssh2_crypt_method_arcfour = {
&crypt, &crypt,
&dtor &dtor
}; };
#endif /* ! OPENSSL_NO_RC4 */ #endif /* LIBSSH2_RC4 */
static LIBSSH2_CRYPT_METHOD *_libssh2_crypt_methods[] = { 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_aes256_cbc,
&libssh2_crypt_method_rijndael_cbc_lysator_liu_se, /* == aes256-cbc */ &libssh2_crypt_method_rijndael_cbc_lysator_liu_se, /* == aes256-cbc */
&libssh2_crypt_method_aes192_cbc, &libssh2_crypt_method_aes192_cbc,
&libssh2_crypt_method_aes128_cbc, &libssh2_crypt_method_aes128_cbc,
#endif /* OPENSSL_VERSION_NUMBER >= 0x00907000L && !defined(OPENSSL_NO_AES) */ #endif /* LIBSSH2_AES */
#ifndef OPENSSL_NO_BLOWFISH #if LIBSSH2_BLOWFISH
&libssh2_crypt_method_blowfish_cbc, &libssh2_crypt_method_blowfish_cbc,
#endif /* ! OPENSSL_NO_BLOWFISH */ #endif /* LIBSSH2_BLOWFISH */
#ifndef OPENSSL_NO_RC4 #if LIBSSH2_RC4
&libssh2_crypt_method_arcfour, &libssh2_crypt_method_arcfour,
#endif /* ! OPENSSL_NO_RC4 */ #endif /* LIBSSH2_RC4 */
#ifndef OPENSSL_NO_CAST #if LIBSSH2_CAST
&libssh2_crypt_method_cast128_cbc, &libssh2_crypt_method_cast128_cbc,
#endif /* ! OPENSSL_NO_CAST */ #endif /* LIBSSH2_CAST */
#ifndef OPENSSL_NO_DES #if LIBSSH2_3DES
&libssh2_crypt_method_3des_cbc, &libssh2_crypt_method_3des_cbc,
#endif /* ! OPENSSL_NO_DES */ #endif /* LIBSSH2_DES */
#ifdef LIBSSH2_CRYPT_NONE #if LIBSSH2_CRYPT_NONE
&libssh2_crypt_method_none, &libssh2_crypt_method_none,
#endif #endif
NULL NULL

View File

@ -45,7 +45,7 @@
#include <sys/uio.h> #include <sys/uio.h>
#endif #endif
#ifndef OPENSSL_NO_RSA #if LIBSSH2_RSA
/* *********** /* ***********
* ssh-rsa * * ssh-rsa *
*********** */ *********** */
@ -281,9 +281,9 @@ static LIBSSH2_HOSTKEY_METHOD libssh2_hostkey_method_ssh_rsa = {
NULL, /* encrypt */ NULL, /* encrypt */
libssh2_hostkey_method_ssh_rsa_dtor, libssh2_hostkey_method_ssh_rsa_dtor,
}; };
#endif /* ! OPENSSL_NO_RSA */ #endif /* LIBSSH2_RSA */
#ifndef OPENSSL_NO_DSA #if LIBSSH2_DSA
/* *********** /* ***********
* ssh-dss * * ssh-dss *
*********** */ *********** */
@ -526,15 +526,15 @@ static LIBSSH2_HOSTKEY_METHOD libssh2_hostkey_method_ssh_dss = {
NULL, /* encrypt */ NULL, /* encrypt */
libssh2_hostkey_method_ssh_dss_dtor, libssh2_hostkey_method_ssh_dss_dtor,
}; };
#endif /* ! OPENSSL_NO_DSA */ #endif /* LIBSSH2_DSA */
static LIBSSH2_HOSTKEY_METHOD *_libssh2_hostkey_methods[] = { static LIBSSH2_HOSTKEY_METHOD *_libssh2_hostkey_methods[] = {
#ifndef OPENSSL_NO_RSA #if LIBSSH2_RSA
&libssh2_hostkey_method_ssh_rsa, &libssh2_hostkey_method_ssh_rsa,
#endif /* ! OPENSSL_NO_RSA */ #endif /* LIBSSH2_RSA */
#ifndef OPENSSL_NO_DSA #if LIBSSH2_DSA
&libssh2_hostkey_method_ssh_dss, &libssh2_hostkey_method_ssh_dss,
#endif /* ! OPENSSL_NO_DSA */ #endif /* LIBSSH2_DSA */
NULL NULL
}; };
@ -556,7 +556,7 @@ LIBSSH2_API const char *libssh2_hostkey_hash(LIBSSH2_SESSION *session, int hash_
case LIBSSH2_HOSTKEY_HASH_MD5: case LIBSSH2_HOSTKEY_HASH_MD5:
return (char *)session->server_hostkey_md5; return (char *)session->server_hostkey_md5;
break; break;
#endif /* ! LIBSSH2_MD5 */ #endif /* LIBSSH2_MD5 */
case LIBSSH2_HOSTKEY_HASH_SHA1: case LIBSSH2_HOSTKEY_HASH_SHA1:
return (char *)session->server_hostkey_sha1; return (char *)session->server_hostkey_sha1;
break; break;

View File

@ -39,6 +39,17 @@
#define LIBSSH2_MD5 1 #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 MD5_DIGEST_LENGTH 16
#define SHA_DIGEST_LENGTH 20 #define SHA_DIGEST_LENGTH 20

View File

@ -37,7 +37,7 @@
#include "libssh2_priv.h" #include "libssh2_priv.h"
#ifdef LIBSSH2_MAC_NONE #if LIBSSH2_MAC_NONE
/* {{{ libssh2_mac_none_MAC /* {{{ libssh2_mac_none_MAC
* Minimalist MAC: No MAC * Minimalist MAC: No MAC
*/ */
@ -206,7 +206,7 @@ static LIBSSH2_MAC_METHOD libssh2_mac_method_hmac_md5_96 = {
libssh2_mac_method_common_dtor, libssh2_mac_method_common_dtor,
}; };
#ifndef OPENSSL_NO_RIPEMD #if LIBSSH2_HMAC_RIPEMD
/* {{{ libssh2_mac_method_hmac_ripemd160_hash /* {{{ libssh2_mac_method_hmac_ripemd160_hash
* Calculate hash using ripemd160 value * 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_hmac_ripemd160_hash,
libssh2_mac_method_common_dtor, libssh2_mac_method_common_dtor,
}; };
#endif /* ! OPENSSL_NO_RIPEMD */ #endif /* LIBSSH2_HMAC_RIPEMD */
static LIBSSH2_MAC_METHOD *_libssh2_mac_methods[] = { static LIBSSH2_MAC_METHOD *_libssh2_mac_methods[] = {
&libssh2_mac_method_hmac_sha1, &libssh2_mac_method_hmac_sha1,
&libssh2_mac_method_hmac_sha1_96, &libssh2_mac_method_hmac_sha1_96,
&libssh2_mac_method_hmac_md5, &libssh2_mac_method_hmac_md5,
&libssh2_mac_method_hmac_md5_96, &libssh2_mac_method_hmac_md5_96,
#ifndef OPENSSL_NO_RIPEMD #if LIBSSH2_HMAC_RIPEMD
&libssh2_mac_method_hmac_ripemd160, &libssh2_mac_method_hmac_ripemd160,
&libssh2_mac_method_hmac_ripemd160_openssh_com, &libssh2_mac_method_hmac_ripemd160_openssh_com,
#endif /* ! OPENSSL_NO_RIPEMD */ #endif /* LIBSSH2_HMAC_RIPEMD */
#ifdef LIBSSH2_MAC_NONE #if LIBSSH2_MAC_NONE
&libssh2_mac_method_none, &libssh2_mac_method_none,
#endif /* LIBSSH2_MAC_NONE */ #endif /* LIBSSH2_MAC_NONE */
NULL NULL

View File

@ -35,6 +35,7 @@
* OF SUCH DAMAGE. * OF SUCH DAMAGE.
*/ */
#include <openssl/opensslconf.h>
#include <openssl/sha.h> #include <openssl/sha.h>
#ifndef OPENSSL_NO_MD5 #ifndef OPENSSL_NO_MD5
#include <openssl/md5.h> #include <openssl/md5.h>
@ -44,12 +45,60 @@
#include <openssl/bn.h> #include <openssl/bn.h>
#include <openssl/pem.h> #include <openssl/pem.h>
#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 # define LIBSSH2_MD5 0
#else #else
# define LIBSSH2_MD5 1 # define LIBSSH2_MD5 1
#endif #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) \ #define libssh2_random(buf, len) \
RAND_bytes ((buf), (len)) RAND_bytes ((buf), (len))