From 67ccc0330c19f41440ee8e416417a9ae608a7a02 Mon Sep 17 00:00:00 2001 From: vit9696 Date: Sat, 6 Apr 2019 12:16:59 +0300 Subject: [PATCH] RsaTool: Fix openssl compatibility --- Tools/RsaTool/RsaTool | Bin 14588 -> 14420 bytes Tools/RsaTool/RsaTool.c | 9 ++-- Tools/RsaTool/openssl_compat.h | 78 +++------------------------------ 3 files changed, 11 insertions(+), 76 deletions(-) diff --git a/Tools/RsaTool/RsaTool b/Tools/RsaTool/RsaTool index 49aa24171f8bc9d8ead09c5687252a2a014f8ef3..13f2b6e63e2f04dcfc0a6ee62e7efa9b085c41d6 100755 GIT binary patch literal 14420 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 diff --git a/Tools/RsaTool/RsaTool.c b/Tools/RsaTool/RsaTool.c index 897c9809..e1946fe4 100644 --- a/Tools/RsaTool/RsaTool.c +++ b/Tools/RsaTool/RsaTool.c @@ -6,7 +6,6 @@ * support for additional RSA key sizes. (platform/system/core,git/libmincrypt * /tools/DumpPublicKey.java). Uses the OpenSSL X509 and BIGNUM library. */ -#include #include #include #include @@ -15,7 +14,7 @@ * and output a pre-processed version of keys for use by RSA verification * routines. */ -int check(RSA* key) { +static int check(RSA* key) { const BIGNUM *n, *e; int public_exponent, modulus; RSA_get0_key(key, &n, &e, NULL); @@ -33,7 +32,7 @@ int check(RSA* key) { } return 1; } -void native_to_big(unsigned char *data, size_t size) { +static void native_to_big(unsigned char *data, size_t size) { size_t i, tmp = 1; if (*(unsigned char *)&tmp == 1) { fprintf(stderr, "WARNING: Assuming little endian encoding.\n"); @@ -46,7 +45,7 @@ void native_to_big(unsigned char *data, size_t size) { fprintf(stderr, "WARNING: Assuming big endian encoding.\n"); } } -void print_data(void *data, size_t size) { +static void print_data(void *data, size_t size) { size_t i; static size_t block = 0; if (data == NULL) { @@ -64,7 +63,7 @@ void print_data(void *data, size_t size) { } /* Pre-processes and outputs RSA public key to standard out. */ -void output(RSA* key) { +static void output(RSA* key) { int i, nwords; const BIGNUM *key_n; BIGNUM *N = NULL; diff --git a/Tools/RsaTool/openssl_compat.h b/Tools/RsaTool/openssl_compat.h index 546f41e3..72cec6ca 100644 --- a/Tools/RsaTool/openssl_compat.h +++ b/Tools/RsaTool/openssl_compat.h @@ -14,81 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#ifndef _OPENSSL_COMPAT_H -#define _OPENSSL_COMPAT_H +#ifndef OPENSSL_COMPAT_H +#define OPENSSL_COMPAT_H #include -#include +#include #include -#include - -int ssh_compatible_openssl(long, long); - -#if OPENSSL_VERSION_NUMBER < 0x10000001L -# define LIBCRYPTO_EVP_INL_TYPE unsigned int -#else -# define LIBCRYPTO_EVP_INL_TYPE size_t -#endif - -#ifndef OPENSSL_RSA_MAX_MODULUS_BITS -# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 -#endif -#ifndef OPENSSL_DSA_MAX_MODULUS_BITS -# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 -#endif - -#ifndef OPENSSL_HAVE_EVPCTR -# define EVP_aes_128_ctr evp_aes_128_ctr -# define EVP_aes_192_ctr evp_aes_128_ctr -# define EVP_aes_256_ctr evp_aes_128_ctr -const EVP_CIPHER *evp_aes_128_ctr(void); -void ssh_aes_ctr_iv(EVP_CIPHER_CTX *, int, u_char *, size_t); -#endif - -/* Avoid some #ifdef. Code that uses these is unreachable without GCM */ -#if !defined(OPENSSL_HAVE_EVPGCM) && !defined(EVP_CTRL_GCM_SET_IV_FIXED) -# define EVP_CTRL_GCM_SET_IV_FIXED -1 -# define EVP_CTRL_GCM_IV_GEN -1 -# define EVP_CTRL_GCM_SET_TAG -1 -# define EVP_CTRL_GCM_GET_TAG -1 -#endif - -/* Replace missing EVP_CIPHER_CTX_ctrl() with something that returns failure */ -#ifndef HAVE_EVP_CIPHER_CTX_CTRL -# ifdef OPENSSL_HAVE_EVPGCM -# error AES-GCM enabled without EVP_CIPHER_CTX_ctrl /* shouldn't happen */ -# else -# define EVP_CIPHER_CTX_ctrl(a,b,c,d) (0) -# endif -#endif - -#if defined(HAVE_EVP_RIPEMD160) -# if defined(OPENSSL_NO_RIPEMD) || defined(OPENSSL_NO_RMD160) -# undef HAVE_EVP_RIPEMD160 -# endif -#endif - -/* - * We overload some of the OpenSSL crypto functions with ssh_* equivalents - * to automatically handle OpenSSL engine initialisation. - * - * In order for the compat library to call the real functions, it must - * define SSH_DONT_OVERLOAD_OPENSSL_FUNCS before including this file and - * implement the ssh_* equivalents. - */ -#ifndef SSH_DONT_OVERLOAD_OPENSSL_FUNCS - -# ifdef USE_OPENSSL_ENGINE -# ifdef OpenSSL_add_all_algorithms -# undef OpenSSL_add_all_algorithms -# endif -# define OpenSSL_add_all_algorithms() ssh_OpenSSL_add_all_algorithms() -# endif - -void ssh_OpenSSL_add_all_algorithms(void); - -#endif /* SSH_DONT_OVERLOAD_OPENSSL_FUNCS */ +#ifndef HAVE_RSA_GET0_KEY /** * Get the RSA parameters * @@ -114,7 +47,9 @@ RSA_get0_key(const RSA *rsa, const BIGNUM **n, *d = rsa ? rsa->d : NULL; } } +#endif +#ifndef HAVE_RSA_SET0_KEY /** * Set the RSA parameters * @@ -151,6 +86,7 @@ RSA_set0_key(RSA *rsa, BIGNUM *n, BIGNUM *e, BIGNUM *d) return 1; } +#endif #endif /* _OPENSSL_COMPAT_H */