mirror of https://github.com/openssl/openssl.git
Compare commits
18 Commits
c014148c4c
...
9c6de6d028
| Author | SHA1 | Date |
|---|---|---|
|
|
9c6de6d028 | |
|
|
296f1f6dd8 | |
|
|
fd7fc90346 | |
|
|
fcb5e20ac7 | |
|
|
b9ff440dd6 | |
|
|
f77fafd16e | |
|
|
f971f14021 | |
|
|
f32e8a48d2 | |
|
|
c489a6205e | |
|
|
f17b46dba6 | |
|
|
741a3427cc | |
|
|
bc809bf4b2 | |
|
|
812604a79a | |
|
|
f09162a47f | |
|
|
36b98dbcda | |
|
|
bb972a3970 | |
|
|
3e9d4d6e4e | |
|
|
39e980c2f1 |
|
|
@ -1862,6 +1862,10 @@ my %targets = (
|
||||||
# Option "freeze" such as -std=gnu9x can't negatively interfere
|
# Option "freeze" such as -std=gnu9x can't negatively interfere
|
||||||
# with future defaults for below two targets, because MacOS X
|
# with future defaults for below two targets, because MacOS X
|
||||||
# for PPC has no future, it was discontinued by vendor in 2009.
|
# for PPC has no future, it was discontinued by vendor in 2009.
|
||||||
|
"darwin8-ppc-cc" => {
|
||||||
|
inherit_from => [ "darwin-ppc" ],
|
||||||
|
disable => [ "async" ]
|
||||||
|
},
|
||||||
"darwin-ppc-cc" => { inherit_from => [ "darwin-ppc" ] }, # Historic alias
|
"darwin-ppc-cc" => { inherit_from => [ "darwin-ppc" ] }, # Historic alias
|
||||||
"darwin-ppc" => {
|
"darwin-ppc" => {
|
||||||
inherit_from => [ "darwin-common" ],
|
inherit_from => [ "darwin-common" ],
|
||||||
|
|
@ -1871,6 +1875,10 @@ my %targets = (
|
||||||
asm_arch => 'ppc32',
|
asm_arch => 'ppc32',
|
||||||
perlasm_scheme => "osx32",
|
perlasm_scheme => "osx32",
|
||||||
},
|
},
|
||||||
|
"darwin8-ppc64-cc" => {
|
||||||
|
inherit_from => [ "darwin64-ppc" ],
|
||||||
|
disable => [ "async" ]
|
||||||
|
},
|
||||||
"darwin64-ppc-cc" => { inherit_from => [ "darwin64-ppc" ] }, # Historic alias
|
"darwin64-ppc-cc" => { inherit_from => [ "darwin64-ppc" ] }, # Historic alias
|
||||||
"darwin64-ppc" => {
|
"darwin64-ppc" => {
|
||||||
inherit_from => [ "darwin-common" ],
|
inherit_from => [ "darwin-common" ],
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,6 @@ EOF
|
||||||
|
|
||||||
my %cmd_disabler = (
|
my %cmd_disabler = (
|
||||||
ciphers => "sock",
|
ciphers => "sock",
|
||||||
genrsa => "rsa",
|
|
||||||
gendsa => "dsa",
|
gendsa => "dsa",
|
||||||
dsaparam => "dsa",
|
dsaparam => "dsa",
|
||||||
gendh => "dh",
|
gendh => "dh",
|
||||||
|
|
@ -107,7 +106,7 @@ EOF
|
||||||
# [2] = preprocessor conditional for excluding irrespective of deprecation
|
# [2] = preprocessor conditional for excluding irrespective of deprecation
|
||||||
# rsa => [ "pkey", "3_0", "rsa" ],
|
# rsa => [ "pkey", "3_0", "rsa" ],
|
||||||
# genrsa => [ "genpkey", "3_0", "rsa" ],
|
# genrsa => [ "genpkey", "3_0", "rsa" ],
|
||||||
rsautl => [ "pkeyutl", "3_0", "rsa" ],
|
rsautl => [ "pkeyutl", "3_0", "" ],
|
||||||
# dhparam => [ "pkeyparam", "3_0", "dh" ],
|
# dhparam => [ "pkeyparam", "3_0", "dh" ],
|
||||||
# dsaparam => [ "pkeyparam", "3_0", "dsa" ],
|
# dsaparam => [ "pkeyparam", "3_0", "dsa" ],
|
||||||
# dsa => [ "pkey", "3_0", "dsa" ],
|
# dsa => [ "pkey", "3_0", "dsa" ],
|
||||||
|
|
|
||||||
|
|
@ -261,10 +261,12 @@ int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,
|
||||||
|
|
||||||
cipher = ctx->op.ciph.cipher;
|
cipher = ctx->op.ciph.cipher;
|
||||||
desc = cipher->description != NULL ? cipher->description : "";
|
desc = cipher->description != NULL ? cipher->description : "";
|
||||||
|
ERR_set_mark();
|
||||||
ret = cipher->encrypt(ctx->op.ciph.algctx, out, outlen, (out == NULL ? 0 : *outlen), in, inlen);
|
ret = cipher->encrypt(ctx->op.ciph.algctx, out, outlen, (out == NULL ? 0 : *outlen), in, inlen);
|
||||||
if (ret <= 0)
|
if (ret <= 0 && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE,
|
||||||
"%s encrypt:%s", cipher->type_name, desc);
|
"%s encrypt:%s", cipher->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
legacy:
|
legacy:
|
||||||
|
|
@ -309,10 +311,12 @@ int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,
|
||||||
|
|
||||||
cipher = ctx->op.ciph.cipher;
|
cipher = ctx->op.ciph.cipher;
|
||||||
desc = cipher->description != NULL ? cipher->description : "";
|
desc = cipher->description != NULL ? cipher->description : "";
|
||||||
|
ERR_set_mark();
|
||||||
ret = cipher->decrypt(ctx->op.ciph.algctx, out, outlen, (out == NULL ? 0 : *outlen), in, inlen);
|
ret = cipher->decrypt(ctx->op.ciph.algctx, out, outlen, (out == NULL ? 0 : *outlen), in, inlen);
|
||||||
if (ret <= 0)
|
if (ret <= 0 && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE,
|
||||||
"%s decrypt:%s", cipher->type_name, desc);
|
"%s decrypt:%s", cipher->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -460,10 +460,12 @@ void *evp_keymgmt_gen(const EVP_KEYMGMT *keymgmt, void *genctx,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ERR_set_mark();
|
||||||
ret = keymgmt->gen(genctx, cb, cbarg);
|
ret = keymgmt->gen(genctx, cb, cbarg);
|
||||||
if (ret == NULL)
|
if (ret == NULL && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE,
|
||||||
"%s key generation:%s", keymgmt->type_name, desc);
|
"%s key generation:%s", keymgmt->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -426,10 +426,12 @@ int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ERR_set_mark();
|
||||||
ret = signature->digest_sign_update(pctx->op.sig.algctx, data, dsize);
|
ret = signature->digest_sign_update(pctx->op.sig.algctx, data, dsize);
|
||||||
if (ret <= 0)
|
if (ret <= 0 && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
||||||
"%s digest_sign_update:%s", signature->type_name, desc);
|
"%s digest_sign_update:%s", signature->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
legacy:
|
legacy:
|
||||||
|
|
@ -474,10 +476,12 @@ int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ERR_set_mark();
|
||||||
ret = signature->digest_verify_update(pctx->op.sig.algctx, data, dsize);
|
ret = signature->digest_verify_update(pctx->op.sig.algctx, data, dsize);
|
||||||
if (ret <= 0)
|
if (ret <= 0 && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
||||||
"%s digest_verify_update:%s", signature->type_name, desc);
|
"%s digest_verify_update:%s", signature->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
legacy:
|
legacy:
|
||||||
|
|
@ -527,11 +531,13 @@ int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,
|
||||||
pctx = dctx;
|
pctx = dctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ERR_set_mark();
|
||||||
r = signature->digest_sign_final(pctx->op.sig.algctx, sigret, siglen,
|
r = signature->digest_sign_final(pctx->op.sig.algctx, sigret, siglen,
|
||||||
sigret == NULL ? 0 : *siglen);
|
sigret == NULL ? 0 : *siglen);
|
||||||
if (!r)
|
if (!r && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
||||||
"%s digest_sign_final:%s", signature->type_name, desc);
|
"%s digest_sign_final:%s", signature->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
if (dctx == NULL && sigret != NULL)
|
if (dctx == NULL && sigret != NULL)
|
||||||
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
|
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
|
||||||
else
|
else
|
||||||
|
|
@ -638,11 +644,13 @@ int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen,
|
||||||
|
|
||||||
if (sigret != NULL)
|
if (sigret != NULL)
|
||||||
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
|
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
|
||||||
|
ERR_set_mark();
|
||||||
ret = signature->digest_sign(pctx->op.sig.algctx, sigret, siglen,
|
ret = signature->digest_sign(pctx->op.sig.algctx, sigret, siglen,
|
||||||
sigret == NULL ? 0 : *siglen, tbs, tbslen);
|
sigret == NULL ? 0 : *siglen, tbs, tbslen);
|
||||||
if (ret <= 0)
|
if (ret <= 0 && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
||||||
"%s digest_sign:%s", signature->type_name, desc);
|
"%s digest_sign:%s", signature->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -693,10 +701,12 @@ int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig,
|
||||||
pctx = dctx;
|
pctx = dctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ERR_set_mark();
|
||||||
r = signature->digest_verify_final(pctx->op.sig.algctx, sig, siglen);
|
r = signature->digest_verify_final(pctx->op.sig.algctx, sig, siglen);
|
||||||
if (!r)
|
if (!r && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
||||||
"%s digest_verify_final:%s", signature->type_name, desc);
|
"%s digest_verify_final:%s", signature->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
if (dctx == NULL)
|
if (dctx == NULL)
|
||||||
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
|
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
|
||||||
else
|
else
|
||||||
|
|
@ -769,10 +779,12 @@ int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret,
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
|
ctx->flags |= EVP_MD_CTX_FLAG_FINALISED;
|
||||||
|
ERR_set_mark();
|
||||||
ret = signature->digest_verify(pctx->op.sig.algctx, sigret, siglen, tbs, tbslen);
|
ret = signature->digest_verify(pctx->op.sig.algctx, sigret, siglen, tbs, tbslen);
|
||||||
if (ret <= 0)
|
if (ret <= 0 && ERR_count_to_mark() == 0)
|
||||||
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
ERR_raise_data(ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE,
|
||||||
"%s digest_verify:%s", signature->type_name, desc);
|
"%s digest_verify:%s", signature->type_name, desc);
|
||||||
|
ERR_clear_last_mark();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -2419,6 +2419,11 @@ static int core_pop_error_to_mark(const OSSL_CORE_HANDLE *handle)
|
||||||
return ERR_pop_to_mark();
|
return ERR_pop_to_mark();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int core_count_to_mark(const OSSL_CORE_HANDLE *handle)
|
||||||
|
{
|
||||||
|
return ERR_count_to_mark();
|
||||||
|
}
|
||||||
|
|
||||||
static void core_indicator_get_callback(OPENSSL_CORE_CTX *libctx,
|
static void core_indicator_get_callback(OPENSSL_CORE_CTX *libctx,
|
||||||
OSSL_INDICATOR_CALLBACK **cb)
|
OSSL_INDICATOR_CALLBACK **cb)
|
||||||
{
|
{
|
||||||
|
|
@ -2600,6 +2605,7 @@ static const OSSL_DISPATCH core_dispatch_[] = {
|
||||||
{ OSSL_FUNC_CORE_CLEAR_LAST_ERROR_MARK,
|
{ OSSL_FUNC_CORE_CLEAR_LAST_ERROR_MARK,
|
||||||
(void (*)(void))core_clear_last_error_mark },
|
(void (*)(void))core_clear_last_error_mark },
|
||||||
{ OSSL_FUNC_CORE_POP_ERROR_TO_MARK, (void (*)(void))core_pop_error_to_mark },
|
{ OSSL_FUNC_CORE_POP_ERROR_TO_MARK, (void (*)(void))core_pop_error_to_mark },
|
||||||
|
{ OSSL_FUNC_CORE_COUNT_TO_MARK, (void (*)(void))core_count_to_mark },
|
||||||
{ OSSL_FUNC_BIO_NEW_FILE, (void (*)(void))ossl_core_bio_new_file },
|
{ OSSL_FUNC_BIO_NEW_FILE, (void (*)(void))ossl_core_bio_new_file },
|
||||||
{ OSSL_FUNC_BIO_NEW_MEMBUF, (void (*)(void))ossl_core_bio_new_mem_buf },
|
{ OSSL_FUNC_BIO_NEW_MEMBUF, (void (*)(void))ossl_core_bio_new_mem_buf },
|
||||||
{ OSSL_FUNC_BIO_READ_EX, (void (*)(void))ossl_core_bio_read_ex },
|
{ OSSL_FUNC_BIO_READ_EX, (void (*)(void))ossl_core_bio_read_ex },
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,10 @@ provider):
|
||||||
core_new_error OSSL_FUNC_CORE_NEW_ERROR
|
core_new_error OSSL_FUNC_CORE_NEW_ERROR
|
||||||
core_set_error_debug OSSL_FUNC_CORE_SET_ERROR_DEBUG
|
core_set_error_debug OSSL_FUNC_CORE_SET_ERROR_DEBUG
|
||||||
core_vset_error OSSL_FUNC_CORE_VSET_ERROR
|
core_vset_error OSSL_FUNC_CORE_VSET_ERROR
|
||||||
|
core_set_error_mark OSSL_FUNC_CORE_SET_ERROR_MARK
|
||||||
|
core_clear_last_error_mark OSSL_FUNC_CORE_CLEAR_LAST_ERROR_MARK
|
||||||
|
core_pop_error_to_mark OSSL_FUNC_CORE_POP_ERROR_TO_MARK
|
||||||
|
core_count_to_mark OSSL_FUNC_CORE_COUNT_TO_MARK
|
||||||
core_obj_add_sigid OSSL_FUNC_CORE_OBJ_ADD_SIGID
|
core_obj_add_sigid OSSL_FUNC_CORE_OBJ_ADD_SIGID
|
||||||
core_obj_create OSSL_FUNC_CORE_OBJ_CREATE
|
core_obj_create OSSL_FUNC_CORE_OBJ_CREATE
|
||||||
CRYPTO_malloc OSSL_FUNC_CRYPTO_MALLOC
|
CRYPTO_malloc OSSL_FUNC_CRYPTO_MALLOC
|
||||||
|
|
@ -270,6 +274,33 @@ error occurred or was reported.
|
||||||
|
|
||||||
This corresponds to the OpenSSL function L<ERR_vset_error(3)>.
|
This corresponds to the OpenSSL function L<ERR_vset_error(3)>.
|
||||||
|
|
||||||
|
=item core_set_error_mark()
|
||||||
|
|
||||||
|
sets a mark on the current topmost error record if there is one.
|
||||||
|
|
||||||
|
This corresponds to the OpenSSL function L<ERR_set_mark(3)>.
|
||||||
|
|
||||||
|
=item core_clear_last_error_mark()
|
||||||
|
|
||||||
|
removes the last mark added if there is one.
|
||||||
|
|
||||||
|
This corresponds to the OpenSSL function L<ERR_clear_last_mark(3)>.
|
||||||
|
|
||||||
|
=item core_pop_error_to_mark()
|
||||||
|
|
||||||
|
pops the top of the error stack until a mark is found. The mark is then removed.
|
||||||
|
If there is no mark, the whole stack is removed.
|
||||||
|
|
||||||
|
This corresponds to the OpenSSL function L<ERR_pop_to_mark(3)>.
|
||||||
|
|
||||||
|
=item core_count_to_mark()
|
||||||
|
|
||||||
|
returns the number of entries on the error stack above the most recently
|
||||||
|
marked entry, not including that entry. If there is no mark in the error stack,
|
||||||
|
the number of entries in the error stack is returned.
|
||||||
|
|
||||||
|
This corresponds to the OpenSSL function L<ERR_count_to_mark(3)>.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
The core_obj_create() function registers a new OID and associated short name
|
The core_obj_create() function registers a new OID and associated short name
|
||||||
|
|
|
||||||
|
|
@ -590,10 +590,7 @@ int FuzzerTestOneInput(const uint8_t *buf, size_t len)
|
||||||
SSL *server;
|
SSL *server;
|
||||||
BIO *in;
|
BIO *in;
|
||||||
BIO *out;
|
BIO *out;
|
||||||
#if !defined(OPENSSL_NO_EC) \
|
|
||||||
|| (!defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0))
|
|
||||||
BIO *bio_buf;
|
BIO *bio_buf;
|
||||||
#endif
|
|
||||||
SSL_CTX *ctx;
|
SSL_CTX *ctx;
|
||||||
int ret;
|
int ret;
|
||||||
#ifndef OPENSSL_NO_DEPRECATED_3_0
|
#ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,12 @@
|
||||||
# include "crypto/rand_pool.h"
|
# include "crypto/rand_pool.h"
|
||||||
|
|
||||||
# if defined(__APPLE__) && !defined(OPENSSL_NO_APPLE_CRYPTO_RANDOM)
|
# if defined(__APPLE__) && !defined(OPENSSL_NO_APPLE_CRYPTO_RANDOM)
|
||||||
# include <Availability.h>
|
# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
|
||||||
|
# include <Availability.h>
|
||||||
|
# else
|
||||||
|
# include <TargetConditionals.h>
|
||||||
|
# include <AvailabilityMacros.h>
|
||||||
|
# endif
|
||||||
# if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200) || \
|
# if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200) || \
|
||||||
(defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 80000)
|
(defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 80000)
|
||||||
# define OPENSSL_APPLE_CRYPTO_RANDOM 1
|
# define OPENSSL_APPLE_CRYPTO_RANDOM 1
|
||||||
|
|
|
||||||
|
|
@ -106,5 +106,13 @@ typedef __uint128_t uint128_t;
|
||||||
# define OSSL_UINTMAX_MAX __MAXUINT__(ossl_uintmax_t)
|
# define OSSL_UINTMAX_MAX __MAXUINT__(ossl_uintmax_t)
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
/* Fix for cross compiling 64-bit PowerPC on OS X 10.4 */
|
||||||
|
# if defined(__APPLE__) && defined(_ARCH_PPC64)
|
||||||
|
# ifdef SIZE_MAX
|
||||||
|
# undef SIZE_MAX
|
||||||
|
# endif
|
||||||
|
# define SIZE_MAX __MAXUINT__(uint64_t)
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -253,6 +253,10 @@ OSSL_CORE_MAKE_FUNC(int, provider_up_ref,
|
||||||
OSSL_CORE_MAKE_FUNC(int, provider_free,
|
OSSL_CORE_MAKE_FUNC(int, provider_free,
|
||||||
(const OSSL_CORE_HANDLE *prov, int deactivate))
|
(const OSSL_CORE_HANDLE *prov, int deactivate))
|
||||||
|
|
||||||
|
/* Additional error functions provided by the core */
|
||||||
|
# define OSSL_FUNC_CORE_COUNT_TO_MARK 120
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, core_count_to_mark, (const OSSL_CORE_HANDLE *prov))
|
||||||
|
|
||||||
/* Functions provided by the provider to the Core, reserved numbers 1024-1535 */
|
/* Functions provided by the provider to the Core, reserved numbers 1024-1535 */
|
||||||
# define OSSL_FUNC_PROVIDER_TEARDOWN 1024
|
# define OSSL_FUNC_PROVIDER_TEARDOWN 1024
|
||||||
OSSL_CORE_MAKE_FUNC(void, provider_teardown, (void *provctx))
|
OSSL_CORE_MAKE_FUNC(void, provider_teardown, (void *provctx))
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,7 @@ static OSSL_FUNC_core_vset_error_fn *c_vset_error;
|
||||||
static OSSL_FUNC_core_set_error_mark_fn *c_set_error_mark;
|
static OSSL_FUNC_core_set_error_mark_fn *c_set_error_mark;
|
||||||
static OSSL_FUNC_core_clear_last_error_mark_fn *c_clear_last_error_mark;
|
static OSSL_FUNC_core_clear_last_error_mark_fn *c_clear_last_error_mark;
|
||||||
static OSSL_FUNC_core_pop_error_to_mark_fn *c_pop_error_to_mark;
|
static OSSL_FUNC_core_pop_error_to_mark_fn *c_pop_error_to_mark;
|
||||||
|
static OSSL_FUNC_core_count_to_mark_fn *c_count_to_mark;
|
||||||
static OSSL_FUNC_CRYPTO_malloc_fn *c_CRYPTO_malloc;
|
static OSSL_FUNC_CRYPTO_malloc_fn *c_CRYPTO_malloc;
|
||||||
static OSSL_FUNC_CRYPTO_zalloc_fn *c_CRYPTO_zalloc;
|
static OSSL_FUNC_CRYPTO_zalloc_fn *c_CRYPTO_zalloc;
|
||||||
static OSSL_FUNC_CRYPTO_free_fn *c_CRYPTO_free;
|
static OSSL_FUNC_CRYPTO_free_fn *c_CRYPTO_free;
|
||||||
|
|
@ -834,6 +835,9 @@ int OSSL_provider_init_int(const OSSL_CORE_HANDLE *handle,
|
||||||
case OSSL_FUNC_CORE_POP_ERROR_TO_MARK:
|
case OSSL_FUNC_CORE_POP_ERROR_TO_MARK:
|
||||||
set_func(c_pop_error_to_mark, OSSL_FUNC_core_pop_error_to_mark(in));
|
set_func(c_pop_error_to_mark, OSSL_FUNC_core_pop_error_to_mark(in));
|
||||||
break;
|
break;
|
||||||
|
case OSSL_FUNC_CORE_COUNT_TO_MARK:
|
||||||
|
set_func(c_count_to_mark, OSSL_FUNC_core_count_to_mark(in));
|
||||||
|
break;
|
||||||
case OSSL_FUNC_CRYPTO_MALLOC:
|
case OSSL_FUNC_CRYPTO_MALLOC:
|
||||||
set_func(c_CRYPTO_malloc, OSSL_FUNC_CRYPTO_malloc(in));
|
set_func(c_CRYPTO_malloc, OSSL_FUNC_CRYPTO_malloc(in));
|
||||||
break;
|
break;
|
||||||
|
|
@ -1072,6 +1076,11 @@ int ERR_pop_to_mark(void)
|
||||||
return c_pop_error_to_mark(NULL);
|
return c_pop_error_to_mark(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ERR_count_to_mark(void)
|
||||||
|
{
|
||||||
|
return c_count_to_mark != NULL ? c_count_to_mark(NULL) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This must take a library context, since it's called from the depths
|
* This must take a library context, since it's called from the depths
|
||||||
* of crypto/initthread.c code, where it's (correctly) assumed that the
|
* of crypto/initthread.c code, where it's (correctly) assumed that the
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ static OSSL_FUNC_core_vset_error_fn *c_vset_error;
|
||||||
static OSSL_FUNC_core_set_error_mark_fn *c_set_error_mark;
|
static OSSL_FUNC_core_set_error_mark_fn *c_set_error_mark;
|
||||||
static OSSL_FUNC_core_clear_last_error_mark_fn *c_clear_last_error_mark;
|
static OSSL_FUNC_core_clear_last_error_mark_fn *c_clear_last_error_mark;
|
||||||
static OSSL_FUNC_core_pop_error_to_mark_fn *c_pop_error_to_mark;
|
static OSSL_FUNC_core_pop_error_to_mark_fn *c_pop_error_to_mark;
|
||||||
|
static OSSL_FUNC_core_count_to_mark_fn *c_count_to_mark;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Parameters we provide to the core */
|
/* Parameters we provide to the core */
|
||||||
|
|
@ -234,6 +235,9 @@ int OSSL_provider_init(const OSSL_CORE_HANDLE *handle,
|
||||||
case OSSL_FUNC_CORE_POP_ERROR_TO_MARK:
|
case OSSL_FUNC_CORE_POP_ERROR_TO_MARK:
|
||||||
set_func(c_pop_error_to_mark, OSSL_FUNC_core_pop_error_to_mark(tmp));
|
set_func(c_pop_error_to_mark, OSSL_FUNC_core_pop_error_to_mark(tmp));
|
||||||
break;
|
break;
|
||||||
|
case OSSL_FUNC_CORE_COUNT_TO_MARK:
|
||||||
|
set_func(c_count_to_mark, OSSL_FUNC_core_count_to_mark(in));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -301,4 +305,9 @@ int ERR_pop_to_mark(void)
|
||||||
{
|
{
|
||||||
return c_pop_error_to_mark(NULL);
|
return c_pop_error_to_mark(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ERR_count_to_mark(void)
|
||||||
|
{
|
||||||
|
return c_count_to_mark != NULL ? c_count_to_mark(NULL) : 0;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,19 @@ print <<"_____";
|
||||||
#ifndef OPENSSL_NO_STDIO
|
#ifndef OPENSSL_NO_STDIO
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
|
_____
|
||||||
|
|
||||||
|
if (${name_uc} eq "RSA") {
|
||||||
|
print("#include <openssl/rsa.h>");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print <<"_____";
|
||||||
#ifndef OPENSSL_NO_${name_uc}
|
#ifndef OPENSSL_NO_${name_uc}
|
||||||
# include <openssl/$name.h>
|
# include <openssl/$name.h>
|
||||||
#endif
|
#endif
|
||||||
|
_____
|
||||||
|
}
|
||||||
|
print <<"_____";
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1984,7 +1984,7 @@ static int test_tlsext_status_type(void)
|
||||||
if (!create_ssl_ctx_pair(libctx, TLS_server_method(), TLS_client_method(),
|
if (!create_ssl_ctx_pair(libctx, TLS_server_method(), TLS_client_method(),
|
||||||
TLS1_VERSION, 0,
|
TLS1_VERSION, 0,
|
||||||
&sctx, &cctx, leaf, skey))
|
&sctx, &cctx, leaf, skey))
|
||||||
return 0;
|
goto end;
|
||||||
if (SSL_CTX_use_certificate_chain_file(sctx, leaf_chain) <= 0)
|
if (SSL_CTX_use_certificate_chain_file(sctx, leaf_chain) <= 0)
|
||||||
goto end;
|
goto end;
|
||||||
if (SSL_CTX_get_tlsext_status_type(cctx) != -1)
|
if (SSL_CTX_get_tlsext_status_type(cctx) != -1)
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,9 @@
|
||||||
# define timezone _timezone
|
# define timezone _timezone
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__FreeBSD__) || defined(__wasi__)
|
#if defined(__FreeBSD__) || defined(__wasi__) || \
|
||||||
|
(defined(__APPLE__) && !defined(OPENSSL_NO_APPLE_CRYPTO_RANDOM) && \
|
||||||
|
!(defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1050))
|
||||||
# define USE_TIMEGM
|
# define USE_TIMEGM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,7 @@ my $guess_patterns = [
|
||||||
],
|
],
|
||||||
[ 'Paragon.*?:.*', 'i860-intel-osf1' ],
|
[ 'Paragon.*?:.*', 'i860-intel-osf1' ],
|
||||||
[ 'Rhapsody:.*', 'ppc-apple-rhapsody' ],
|
[ 'Rhapsody:.*', 'ppc-apple-rhapsody' ],
|
||||||
|
[ 'Darwin:8.*?:.*?:Power.*', 'ppc-apple-darwin8' ],
|
||||||
[ 'Darwin:.*?:.*?:Power.*', 'ppc-apple-darwin' ],
|
[ 'Darwin:.*?:.*?:Power.*', 'ppc-apple-darwin' ],
|
||||||
[ 'Darwin:.*', '${MACHINE}-apple-darwin' ],
|
[ 'Darwin:.*', '${MACHINE}-apple-darwin' ],
|
||||||
[ 'SunOS:5\..*', '${MACHINE}-whatever-solaris2' ],
|
[ 'SunOS:5\..*', '${MACHINE}-whatever-solaris2' ],
|
||||||
|
|
@ -491,6 +492,22 @@ EOF
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
[ 'ppc-apple-rhapsody', { target => "rhapsody-ppc" } ],
|
[ 'ppc-apple-rhapsody', { target => "rhapsody-ppc" } ],
|
||||||
|
[ 'ppc-apple-darwin8.*',
|
||||||
|
sub {
|
||||||
|
my $KERNEL_BITS = $ENV{KERNEL_BITS} // '';
|
||||||
|
my $ISA64 = `sysctl -n hw.optional.64bitops 2>/dev/null`;
|
||||||
|
if ( $ISA64 == 1 && $KERNEL_BITS eq '' ) {
|
||||||
|
print <<EOF;
|
||||||
|
WARNING! To build 64-bit package, do this:
|
||||||
|
$WHERE/Configure darwin8-ppc64-cc
|
||||||
|
EOF
|
||||||
|
maybe_abort();
|
||||||
|
}
|
||||||
|
return { target => "darwin8-ppc64-cc" }
|
||||||
|
if $ISA64 == 1 && $KERNEL_BITS eq '64';
|
||||||
|
return { target => "darwin8-ppc-cc" };
|
||||||
|
}
|
||||||
|
],
|
||||||
[ 'ppc-apple-darwin.*',
|
[ 'ppc-apple-darwin.*',
|
||||||
sub {
|
sub {
|
||||||
my $KERNEL_BITS = $ENV{KERNEL_BITS} // '';
|
my $KERNEL_BITS = $ENV{KERNEL_BITS} // '';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue