summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorWeiguo Li <liwg06@foxmail.com>2022-02-10 02:30:25 +0800
committerDr. Matthias St. Pierre <matthias.st.pierre@ncp-e.com>2022-02-16 16:11:56 +0100
commit3d27ac8d92ef89c202b518cf6c4e15477eb594b2 (patch)
treec3146e3f1fc6caffde9e0a4afc1466d33022784d /include
parent17da5f2af833ef16cc2e431359139a4a2e3775b9 (diff)
Add define guards to avoid multi-inclusion
This header files are included by multiple other headers. It's better to add define guards to prevent multi-inclusion. Adhere to the coding style, all preprocessor directives inside the guards gain a space. Signed-off-by: Weiguo Li <liwg06@foxmail.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/17666)
Diffstat (limited to 'include')
-rw-r--r--include/crypto/md32_common.h96
-rw-r--r--include/internal/der.h76
-rw-r--r--include/internal/tsan_assist.h129
3 files changed, 159 insertions, 142 deletions
diff --git a/include/crypto/md32_common.h b/include/crypto/md32_common.h
index 3b16f1b721..709689feca 100644
--- a/include/crypto/md32_common.h
+++ b/include/crypto/md32_common.h
@@ -63,63 +63,67 @@
* #define HASH_BLOCK_DATA_ORDER md5_block_data_order
*/
-#include <openssl/crypto.h>
+#ifndef OSSL_CRYPTO_MD32_COMMON_H
+# define OSSL_CRYPTO_MD32_COMMON_H
+# pragma once
-#if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN)
-# error "DATA_ORDER must be defined!"
-#endif
+# include <openssl/crypto.h>
-#ifndef HASH_CBLOCK
-# error "HASH_CBLOCK must be defined!"
-#endif
-#ifndef HASH_LONG
-# error "HASH_LONG must be defined!"
-#endif
-#ifndef HASH_CTX
-# error "HASH_CTX must be defined!"
-#endif
+# if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN)
+# error "DATA_ORDER must be defined!"
+# endif
-#ifndef HASH_UPDATE
-# error "HASH_UPDATE must be defined!"
-#endif
-#ifndef HASH_TRANSFORM
-# error "HASH_TRANSFORM must be defined!"
-#endif
-#ifndef HASH_FINAL
-# error "HASH_FINAL must be defined!"
-#endif
+# ifndef HASH_CBLOCK
+# error "HASH_CBLOCK must be defined!"
+# endif
+# ifndef HASH_LONG
+# error "HASH_LONG must be defined!"
+# endif
+# ifndef HASH_CTX
+# error "HASH_CTX must be defined!"
+# endif
-#ifndef HASH_BLOCK_DATA_ORDER
-# error "HASH_BLOCK_DATA_ORDER must be defined!"
-#endif
+# ifndef HASH_UPDATE
+# error "HASH_UPDATE must be defined!"
+# endif
+# ifndef HASH_TRANSFORM
+# error "HASH_TRANSFORM must be defined!"
+# endif
+# ifndef HASH_FINAL
+# error "HASH_FINAL must be defined!"
+# endif
+
+# ifndef HASH_BLOCK_DATA_ORDER
+# error "HASH_BLOCK_DATA_ORDER must be defined!"
+# endif
-#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
+# define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
-#if defined(DATA_ORDER_IS_BIG_ENDIAN)
+# if defined(DATA_ORDER_IS_BIG_ENDIAN)
-# define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++)))<<24), \
+# define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++)))<<24), \
l|=(((unsigned long)(*((c)++)))<<16), \
l|=(((unsigned long)(*((c)++)))<< 8), \
l|=(((unsigned long)(*((c)++))) ) )
-# define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
+# define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
*((c)++)=(unsigned char)(((l)>>16)&0xff), \
*((c)++)=(unsigned char)(((l)>> 8)&0xff), \
*((c)++)=(unsigned char)(((l) )&0xff), \
l)
-#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
+# elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
-# define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \
+# define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \
l|=(((unsigned long)(*((c)++)))<< 8), \
l|=(((unsigned long)(*((c)++)))<<16), \
l|=(((unsigned long)(*((c)++)))<<24) )
-# define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
+# define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
*((c)++)=(unsigned char)(((l)>> 8)&0xff), \
*((c)++)=(unsigned char)(((l)>>16)&0xff), \
*((c)++)=(unsigned char)(((l)>>24)&0xff), \
l)
-#endif
+# endif
/*
* Time for some action :-)
@@ -204,30 +208,30 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
memset(p + n, 0, HASH_CBLOCK - 8 - n);
p += HASH_CBLOCK - 8;
-#if defined(DATA_ORDER_IS_BIG_ENDIAN)
+# if defined(DATA_ORDER_IS_BIG_ENDIAN)
(void)HOST_l2c(c->Nh, p);
(void)HOST_l2c(c->Nl, p);
-#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
+# elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
(void)HOST_l2c(c->Nl, p);
(void)HOST_l2c(c->Nh, p);
-#endif
+# endif
p -= HASH_CBLOCK;
HASH_BLOCK_DATA_ORDER(c, p, 1);
c->num = 0;
OPENSSL_cleanse(p, HASH_CBLOCK);
-#ifndef HASH_MAKE_STRING
-# error "HASH_MAKE_STRING must be defined!"
-#else
+# ifndef HASH_MAKE_STRING
+# error "HASH_MAKE_STRING must be defined!"
+# else
HASH_MAKE_STRING(c, md);
-#endif
+# endif
return 1;
}
-#ifndef MD32_REG_T
-# if defined(__alpha) || defined(__sparcv9) || defined(__mips)
-# define MD32_REG_T long
+# ifndef MD32_REG_T
+# if defined(__alpha) || defined(__sparcv9) || defined(__mips)
+# define MD32_REG_T long
/*
* This comment was originally written for MD5, which is why it
* discusses A-D. But it basically applies to all 32-bit digests,
@@ -244,13 +248,15 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
* Well, to be honest it should say that this *prevents*
* performance degradation.
*/
-# else
+# else
/*
* Above is not absolute and there are LP64 compilers that
* generate better code if MD32_REG_T is defined int. The above
* pre-processor condition reflects the circumstances under which
* the conclusion was made and is subject to further extension.
*/
-# define MD32_REG_T int
+# define MD32_REG_T int
+# endif
# endif
+
#endif
diff --git a/include/internal/der.h b/include/internal/der.h
index a3e56d0dce..3dfecd58a4 100644
--- a/include/internal/der.h
+++ b/include/internal/der.h
@@ -7,8 +7,12 @@
* https://www.openssl.org/source/license.html
*/
-#include <openssl/bn.h>
-#include "internal/packet.h"
+#ifndef OSSL_INTERNAL_DER_H
+# define OSSL_INTERNAL_DER_H
+# pragma once
+
+# include <openssl/bn.h>
+# include "internal/packet.h"
/*
* NOTE: X.690 numbers the identifier octet bits 1 to 8.
@@ -22,42 +26,42 @@
* These are only valid for the UNIVERSAL class. With the other classes,
* these bits have a different meaning.
*/
-#define DER_P_EOC 0 /* BER End Of Contents tag */
-#define DER_P_BOOLEAN 1
-#define DER_P_INTEGER 2
-#define DER_P_BIT_STRING 3
-#define DER_P_OCTET_STRING 4
-#define DER_P_NULL 5
-#define DER_P_OBJECT 6
-#define DER_P_OBJECT_DESCRIPTOR 7
-#define DER_P_EXTERNAL 8
-#define DER_P_REAL 9
-#define DER_P_ENUMERATED 10
-#define DER_P_UTF8STRING 12
-#define DER_P_SEQUENCE 16
-#define DER_P_SET 17
-#define DER_P_NUMERICSTRING 18
-#define DER_P_PRINTABLESTRING 19
-#define DER_P_T61STRING 20
-#define DER_P_VIDEOTEXSTRING 21
-#define DER_P_IA5STRING 22
-#define DER_P_UTCTIME 23
-#define DER_P_GENERALIZEDTIME 24
-#define DER_P_GRAPHICSTRING 25
-#define DER_P_ISO64STRING 26
-#define DER_P_GENERALSTRING 27
-#define DER_P_UNIVERSALSTRING 28
-#define DER_P_BMPSTRING 30
+# define DER_P_EOC 0 /* BER End Of Contents tag */
+# define DER_P_BOOLEAN 1
+# define DER_P_INTEGER 2
+# define DER_P_BIT_STRING 3
+# define DER_P_OCTET_STRING 4
+# define DER_P_NULL 5
+# define DER_P_OBJECT 6
+# define DER_P_OBJECT_DESCRIPTOR 7
+# define DER_P_EXTERNAL 8
+# define DER_P_REAL 9
+# define DER_P_ENUMERATED 10
+# define DER_P_UTF8STRING 12
+# define DER_P_SEQUENCE 16
+# define DER_P_SET 17
+# define DER_P_NUMERICSTRING 18
+# define DER_P_PRINTABLESTRING 19
+# define DER_P_T61STRING 20
+# define DER_P_VIDEOTEXSTRING 21
+# define DER_P_IA5STRING 22
+# define DER_P_UTCTIME 23
+# define DER_P_GENERALIZEDTIME 24
+# define DER_P_GRAPHICSTRING 25
+# define DER_P_ISO64STRING 26
+# define DER_P_GENERALSTRING 27
+# define DER_P_UNIVERSALSTRING 28
+# define DER_P_BMPSTRING 30
/* DER Flags, occupying bit 6 in the DER identifier byte */
-#define DER_F_PRIMITIVE 0x00
-#define DER_F_CONSTRUCTED 0x20
+# define DER_F_PRIMITIVE 0x00
+# define DER_F_CONSTRUCTED 0x20
/* DER classes tags, occupying bits 7-8 in the DER identifier byte */
-#define DER_C_UNIVERSAL 0x00
-#define DER_C_APPLICATION 0x40
-#define DER_C_CONTEXT 0x80
-#define DER_C_PRIVATE 0xC0
+# define DER_C_UNIVERSAL 0x00
+# define DER_C_APPLICATION 0x40
+# define DER_C_CONTEXT 0x80
+# define DER_C_PRIVATE 0xC0
/*
* Run-time constructors.
@@ -67,7 +71,7 @@
*/
/* This can be used for all items that don't have a context */
-#define DER_NO_CONTEXT -1
+# define DER_NO_CONTEXT -1
int ossl_DER_w_precompiled(WPACKET *pkt, int tag,
const unsigned char *precompiled,
@@ -86,3 +90,5 @@ int ossl_DER_w_octet_string_uint32(WPACKET *pkt, int tag, uint32_t value);
*/
int ossl_DER_w_begin_sequence(WPACKET *pkt, int tag);
int ossl_DER_w_end_sequence(WPACKET *pkt, int tag);
+
+#endif
diff --git a/include/internal/tsan_assist.h b/include/internal/tsan_assist.h
index 512bfe4be9..1195db4766 100644
--- a/include/internal/tsan_assist.h
+++ b/include/internal/tsan_assist.h
@@ -47,33 +47,37 @@
* can use TSAN_QUALIFIER in cast specifically when it has to count.
*/
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \
+#ifndef OSSL_INTERNAL_TSAN_ASSIST_H
+# define OSSL_INTERNAL_TSAN_ASSIST_H
+# pragma once
+
+# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \
&& !defined(__STDC_NO_ATOMICS__)
-# include <stdatomic.h>
+# include <stdatomic.h>
-# if defined(ATOMIC_POINTER_LOCK_FREE) \
+# if defined(ATOMIC_POINTER_LOCK_FREE) \
&& ATOMIC_POINTER_LOCK_FREE >= 2
-# define TSAN_QUALIFIER _Atomic
-# define tsan_load(ptr) atomic_load_explicit((ptr), memory_order_relaxed)
-# define tsan_store(ptr, val) atomic_store_explicit((ptr), (val), memory_order_relaxed)
-# define tsan_add(ptr, n) atomic_fetch_add_explicit((ptr), (n), memory_order_relaxed)
-# define tsan_ld_acq(ptr) atomic_load_explicit((ptr), memory_order_acquire)
-# define tsan_st_rel(ptr, val) atomic_store_explicit((ptr), (val), memory_order_release)
-# endif
+# define TSAN_QUALIFIER _Atomic
+# define tsan_load(ptr) atomic_load_explicit((ptr), memory_order_relaxed)
+# define tsan_store(ptr, val) atomic_store_explicit((ptr), (val), memory_order_relaxed)
+# define tsan_add(ptr, n) atomic_fetch_add_explicit((ptr), (n), memory_order_relaxed)
+# define tsan_ld_acq(ptr) atomic_load_explicit((ptr), memory_order_acquire)
+# define tsan_st_rel(ptr, val) atomic_store_explicit((ptr), (val), memory_order_release)
+# endif
-#elif defined(__GNUC__) && defined(__ATOMIC_RELAXED)
+# elif defined(__GNUC__) && defined(__ATOMIC_RELAXED)
-# if defined(__GCC_ATOMIC_POINTER_LOCK_FREE) \
+# if defined(__GCC_ATOMIC_POINTER_LOCK_FREE) \
&& __GCC_ATOMIC_POINTER_LOCK_FREE >= 2
-# define TSAN_QUALIFIER volatile
-# define tsan_load(ptr) __atomic_load_n((ptr), __ATOMIC_RELAXED)
-# define tsan_store(ptr, val) __atomic_store_n((ptr), (val), __ATOMIC_RELAXED)
-# define tsan_add(ptr, n) __atomic_fetch_add((ptr), (n), __ATOMIC_RELAXED)
-# define tsan_ld_acq(ptr) __atomic_load_n((ptr), __ATOMIC_ACQUIRE)
-# define tsan_st_rel(ptr, val) __atomic_store_n((ptr), (val), __ATOMIC_RELEASE)
-# endif
+# define TSAN_QUALIFIER volatile
+# define tsan_load(ptr) __atomic_load_n((ptr), __ATOMIC_RELAXED)
+# define tsan_store(ptr, val) __atomic_store_n((ptr), (val), __ATOMIC_RELAXED)
+# define tsan_add(ptr, n) __atomic_fetch_add((ptr), (n), __ATOMIC_RELAXED)
+# define tsan_ld_acq(ptr) __atomic_load_n((ptr), __ATOMIC_ACQUIRE)
+# define tsan_st_rel(ptr, val) __atomic_store_n((ptr), (val), __ATOMIC_RELEASE)
+# endif
-#elif defined(_MSC_VER) && _MSC_VER>=1200 \
+# elif defined(_MSC_VER) && _MSC_VER>=1200 \
&& (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || \
defined(_M_ARM64) || (defined(_M_ARM) && _M_ARM >= 7 && !defined(_WIN32_WCE)))
/*
@@ -87,62 +91,63 @@
* with additional instructions and penalties, it kind of makes sense to
* default to "iso"...
*/
-# define TSAN_QUALIFIER volatile
-# if defined(_M_ARM) || defined(_M_ARM64)
-# define _InterlockedExchangeAdd _InterlockedExchangeAdd_nf
-# pragma intrinsic(_InterlockedExchangeAdd_nf)
-# pragma intrinsic(__iso_volatile_load32, __iso_volatile_store32)
-# ifdef _WIN64
-# define _InterlockedExchangeAdd64 _InterlockedExchangeAdd64_nf
-# pragma intrinsic(_InterlockedExchangeAdd64_nf)
-# pragma intrinsic(__iso_volatile_load64, __iso_volatile_store64)
-# define tsan_load(ptr) (sizeof(*(ptr)) == 8 ? __iso_volatile_load64(ptr) \
+# define TSAN_QUALIFIER volatile
+# if defined(_M_ARM) || defined(_M_ARM64)
+# define _InterlockedExchangeAdd _InterlockedExchangeAdd_nf
+# pragma intrinsic(_InterlockedExchangeAdd_nf)
+# pragma intrinsic(__iso_volatile_load32, __iso_volatile_store32)
+# ifdef _WIN64
+# define _InterlockedExchangeAdd64 _InterlockedExchangeAdd64_nf
+# pragma intrinsic(_InterlockedExchangeAdd64_nf)
+# pragma intrinsic(__iso_volatile_load64, __iso_volatile_store64)
+# define tsan_load(ptr) (sizeof(*(ptr)) == 8 ? __iso_volatile_load64(ptr) \
: __iso_volatile_load32(ptr))
-# define tsan_store(ptr, val) (sizeof(*(ptr)) == 8 ? __iso_volatile_store64((ptr), (val)) \
+# define tsan_store(ptr, val) (sizeof(*(ptr)) == 8 ? __iso_volatile_store64((ptr), (val)) \
: __iso_volatile_store32((ptr), (val)))
+# else
+# define tsan_load(ptr) __iso_volatile_load32(ptr)
+# define tsan_store(ptr, val) __iso_volatile_store32((ptr), (val))
+# endif
# else
-# define tsan_load(ptr) __iso_volatile_load32(ptr)
-# define tsan_store(ptr, val) __iso_volatile_store32((ptr), (val))
+# define tsan_load(ptr) (*(ptr))
+# define tsan_store(ptr, val) (*(ptr) = (val))
# endif
-# else
-# define tsan_load(ptr) (*(ptr))
-# define tsan_store(ptr, val) (*(ptr) = (val))
-# endif
-# pragma intrinsic(_InterlockedExchangeAdd)
-# ifdef _WIN64
-# pragma intrinsic(_InterlockedExchangeAdd64)
-# define tsan_add(ptr, n) (sizeof(*(ptr)) == 8 ? _InterlockedExchangeAdd64((ptr), (n)) \
+# pragma intrinsic(_InterlockedExchangeAdd)
+# ifdef _WIN64
+# pragma intrinsic(_InterlockedExchangeAdd64)
+# define tsan_add(ptr, n) (sizeof(*(ptr)) == 8 ? _InterlockedExchangeAdd64((ptr), (n)) \
: _InterlockedExchangeAdd((ptr), (n)))
-# else
-# define tsan_add(ptr, n) _InterlockedExchangeAdd((ptr), (n))
-# endif
-# if !defined(_ISO_VOLATILE)
-# define tsan_ld_acq(ptr) (*(ptr))
-# define tsan_st_rel(ptr, val) (*(ptr) = (val))
-# endif
+# else
+# define tsan_add(ptr, n) _InterlockedExchangeAdd((ptr), (n))
+# endif
+# if !defined(_ISO_VOLATILE)
+# define tsan_ld_acq(ptr) (*(ptr))
+# define tsan_st_rel(ptr, val) (*(ptr) = (val))
+# endif
-#endif
+# endif
-#ifndef TSAN_QUALIFIER
+# ifndef TSAN_QUALIFIER
-# ifdef OPENSSL_THREADS
-# define TSAN_QUALIFIER volatile
-# define TSAN_REQUIRES_LOCKING
-# else /* OPENSSL_THREADS */
-# define TSAN_QUALIFIER
-# endif /* OPENSSL_THREADS */
+# ifdef OPENSSL_THREADS
+# define TSAN_QUALIFIER volatile
+# define TSAN_REQUIRES_LOCKING
+# else /* OPENSSL_THREADS */
+# define TSAN_QUALIFIER
+# endif /* OPENSSL_THREADS */
-# define tsan_load(ptr) (*(ptr))
-# define tsan_store(ptr, val) (*(ptr) = (val))
-# define tsan_add(ptr, n) (*(ptr) += (n))
+# define tsan_load(ptr) (*(ptr))
+# define tsan_store(ptr, val) (*(ptr) = (val))
+# define tsan_add(ptr, n) (*(ptr) += (n))
/*
* Lack of tsan_ld_acq and tsan_ld_rel means that compiler support is not
* sophisticated enough to support them. Code that relies on them should be
* protected with #ifdef tsan_ld_acq with locked fallback.
*/
-#endif
+# endif
-#define tsan_counter(ptr) tsan_add((ptr), 1)
-#define tsan_decr(ptr) tsan_add((ptr), -1)
+# define tsan_counter(ptr) tsan_add((ptr), 1)
+# define tsan_decr(ptr) tsan_add((ptr), -1)
+#endif