Security Scol plugin
Macros | Typedefs | Variables
config_int.h File Reference

Library configuration file. More...

#include "config_ns.h"
#include "config_ver.h"

Go to the source code of this file.

Macros

#define CRYPTOPP_NO_GLOBAL_BYTE   1
 Library byte guard.
 
#define SW64LIT(x)   x##LL
 
#define W64LIT(x)   x##ULL
 
#define CRYPTOPP_NATIVE_DWORD_AVAILABLE   1
 
#define CRYPTOPP_BOOL_SLOW_WORD64   1
 

Typedefs

typedef unsigned char byte
 8-bit unsigned datatype
 
typedef unsigned short word16
 16-bit unsigned datatype
 
typedef unsigned int word32
 32-bit unsigned datatype
 
typedef signed char sbyte
 8-bit signed datatype
 
typedef signed short sword16
 16-bit signed datatype
 
typedef signed int sword32
 32-bit signed datatype
 
typedef signed long long sword64
 
typedef unsigned long long word64
 
typedef word64 lword
 Large word type.
 
typedef word16 hword
 
typedef word32 word
 
typedef word64 dword
 

Variables

const lword LWORD_MAX = W64LIT(0xffffffffffffffff)
 Large word type max value.
 
const unsigned int WORD_SIZE = sizeof(word)
 Size of a platform word in bytes.
 
const unsigned int WORD_BITS = WORD_SIZE * 8
 Size of a platform word in bits.
 

Detailed Description

Library configuration file.

config_int.h provides defines and typedefs for fixed size integers. The library's choices for fixed size integers predates other standard-based integers by about 5 years. After fixed sizes were made standard, the library continued to use its own definitions for compatibility with previous versions of the library.

config.h was split into components in May 2019 to better integrate with Autoconf and its feature tests. The splitting occurred so users could continue to include config.h while allowing Autoconf to write new config_asm.h and new config_cxx.h using its feature tests.

Note
You should include config.h rather than config_int.h directly.
See also
Issue 835, Make config.h more autoconf friendly, Configure.sh script on the Crypto++ wiki
Since
Crypto++ 8.3

Definition in file config_int.h.

Macro Definition Documentation

◆ CRYPTOPP_BOOL_SLOW_WORD64

#define CRYPTOPP_BOOL_SLOW_WORD64   1

Definition at line 231 of file config_int.h.

◆ CRYPTOPP_NATIVE_DWORD_AVAILABLE

#define CRYPTOPP_NATIVE_DWORD_AVAILABLE   1

Definition at line 212 of file config_int.h.

◆ CRYPTOPP_NO_GLOBAL_BYTE

#define CRYPTOPP_NO_GLOBAL_BYTE   1

Library byte guard.

CRYPTOPP_NO_GLOBAL_BYTE indicates byte is in the Crypto++ namespace.

The Crypto++ byte was originally in global namespace to avoid ambiguity with other byte typedefs. byte was moved to CryptoPP namespace at Crypto++ 6.0 due to C++17, std::byte and potential compile problems.

See also
Issue 442, std::byte on the Crypto++ wiki
Since
Crypto++ 6.0

Definition at line 41 of file config_int.h.

◆ SW64LIT

#define SW64LIT (   x)    x##LL

Definition at line 151 of file config_int.h.

◆ W64LIT

#define W64LIT (   x)    x##ULL

Definition at line 152 of file config_int.h.

Typedef Documentation

◆ byte

typedef unsigned char byte

8-bit unsigned datatype

The Crypto++ byte was originally in global namespace to avoid ambiguity with other byte typedefs. byte was moved to CryptoPP namespace at Crypto++ 6.0 due to C++17, std::byte and potential compile problems.

See also
CRYPTOPP_NO_GLOBAL_BYTE, Issue 442, std::byte on the Crypto++ wiki
Since
Crypto++ 1.0, CryptoPP namespace since Crypto++ 6.0

Definition at line 56 of file config_int.h.

◆ dword

typedef word64 dword

Definition at line 234 of file config_int.h.

◆ hword

typedef word16 hword

Definition at line 232 of file config_int.h.

◆ lword

typedef word64 lword

Large word type.

lword is a typedef for large word types. It is used for file offsets and such.

Definition at line 158 of file config_int.h.

◆ sbyte

typedef signed char sbyte

8-bit signed datatype

The 8-bit signed datatype was added to support constant time implementations for curve25519, X25519 key agreement and ed25519 signatures.

Since
Crypto++ 8.0

Definition at line 69 of file config_int.h.

◆ sword16

typedef signed short sword16

16-bit signed datatype

The 32-bit signed datatype was added to support constant time implementations for curve25519, X25519 key agreement and ed25519 signatures.

Since
Crypto++ 8.0

Definition at line 75 of file config_int.h.

◆ sword32

typedef signed int sword32

32-bit signed datatype

The 32-bit signed datatype was added to support constant time implementations for curve25519, X25519 key agreement and ed25519 signatures.

Since
Crypto++ 8.0

Definition at line 81 of file config_int.h.

◆ sword64

typedef signed long long sword64

Definition at line 149 of file config_int.h.

◆ word

typedef word32 word

Definition at line 233 of file config_int.h.

◆ word16

typedef unsigned short word16

16-bit unsigned datatype

Since
Crypto++ 1.0

Definition at line 59 of file config_int.h.

◆ word32

typedef unsigned int word32

32-bit unsigned datatype

Since
Crypto++ 1.0

Definition at line 62 of file config_int.h.

◆ word64

typedef unsigned long long word64

Definition at line 150 of file config_int.h.

Variable Documentation

◆ LWORD_MAX

const lword LWORD_MAX = W64LIT(0xffffffffffffffff)

Large word type max value.

LWORD_MAX is the maximum value for large word types. Since an lword is an unsigned type, the value is 0xffffffffffffffff. W64LIT will append the proper suffix.

Definition at line 164 of file config_int.h.

◆ WORD_BITS

const unsigned int WORD_BITS = WORD_SIZE * 8

Size of a platform word in bits.

The size of a platform word, in bits

Definition at line 249 of file config_int.h.

◆ WORD_SIZE

const unsigned int WORD_SIZE = sizeof(word)

Size of a platform word in bytes.

The size of a platform word, in bytes

Definition at line 245 of file config_int.h.