diff --git a/crypto/asn1/x_long.c b/crypto/asn1/x_long.c index 5895345f9fe1cb02852d53430a560bf655a29643..4bb66114bace107d25dc20ed65712d71ba5a665f 100644 --- a/crypto/asn1/x_long.c +++ b/crypto/asn1/x_long.c @@ -11,6 +11,9 @@ #include "internal/cryptlib.h" #include +#if !(OPENSSL_API_COMPAT < 0x10200000L) +NON_EMPTY_TRANSLATION_UNIT +#else /* * Custom primitive type for long handling. This converts between an * ASN1_INTEGER and a long directly. @@ -194,3 +197,4 @@ static int long_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it, { return BIO_printf(out, "%ld\n", *(long *)pval); } +#endif diff --git a/include/openssl/asn1t.h b/include/openssl/asn1t.h index 5d2ed43c22e7950cc9d32b070d8b975787402252..a73d4a8e6530b2c3699193a32504f76f361cc616 100644 --- a/include/openssl/asn1t.h +++ b/include/openssl/asn1t.h @@ -909,8 +909,16 @@ DECLARE_ASN1_ITEM(INT64) DECLARE_ASN1_ITEM(ZINT64) DECLARE_ASN1_ITEM(UINT64) DECLARE_ASN1_ITEM(ZUINT64) + +# if OPENSSL_API_COMPAT < 0x10200000L +/* + * LONG and ZLONG are strongly discouraged for use as stored data, as the + * underlying C type (long) differs in size depending on the architecture. + * They are designed with 32-bit longs in mind. + */ DECLARE_ASN1_ITEM(LONG) DECLARE_ASN1_ITEM(ZLONG) +# endif DEFINE_STACK_OF(ASN1_VALUE)