在openssl C代码中,(aes_core.c,set_key.c,spr.h等)有“__fips_constseg”。
我不知道“__fips_constseg”的意思。
它的作用是什么?是汇编代码吗?
源代码如下:
#include< openssl / crypto.h>
#include“des_locl.h”
OPENSSL_IMPLEMENT_GLOBAL(int,DES_check_key,0)/ *默认为false * /
__ fips_constseg
static const unsigned char odd_parity [256] = {};
答案 0 :(得分:2)
来自OpenSSL源代码:
#if defined(OPENSSL_FIPSCANISTER)
# include <openssl/fipssyms.h>
#else
# define __fips_constseg
#endif
#if defined(_MSC_VER)
# pragma const_seg("fipsro$b")
# pragma const_seg()
# define __fips_constseg __declspec(allocate("fipsro$b"))
#else
# define __fips_constseg
#endif
因此,__fips_constseg
常量仅定义为值,如果
OPENSSL_FIPSCANISTER
已定义且_MSC_VER
常量检测到。)然后,标有该常量的代码放在名为fipsro$b
的常量数据段中(有关详细信息,请参阅allocate
说明符上的MSDN documentation)。
如果不满足上述任何条件,则__fips_constseg
被定义为空,因此标记有该常量的变量将被放入它们通常所在的数据段中。