Discourage the use of LONG and ZLONG, and deprecate it in the future

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3126)
This commit is contained in:
Richard Levitte 2017-04-05 12:09:21 +02:00
parent 64f11ee888
commit 7eb4c1eb50
2 changed files with 12 additions and 0 deletions

View File

@ -11,6 +11,9 @@
#include "internal/cryptlib.h"
#include <openssl/asn1t.h>
#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

View File

@ -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)