30#define OC_BN_WORD_SIZE (sizeof (OC_BN_WORD))
31#define OC_BN_WORD_NUM_BITS ((OC_BN_NUM_BITS) (OC_BN_WORD_SIZE * OC_CHAR_BIT))
38#define OC_BN_MAX_SIZE ((OC_BN_SIZE) SIZE_64KB)
39#define OC_BN_MAX_LEN ((OC_BN_NUM_WORDS) (OC_BN_MAX_SIZE / OC_BN_WORD_SIZE))
46#define OC_BN_SIZE(NumWords) \
47 ((OC_BN_SIZE) (NumWords) * OC_BN_WORD_SIZE)
51 "The definition of OC_BN_SIZE may cause an overflow"
59#define OC_BN_BITS(NumWords) \
60 ((OC_BN_NUM_BITS) OC_BN_SIZE (NumWords) * OC_CHAR_BIT)
64 "The definition of OC_BN_BITS may cause an overflow"
106#define OC_BN_MONT_MAX_LEN (OC_BN_MAX_LEN / 2U - 1U)
107#define OC_BN_MONT_MAX_SIZE (OC_BN_SIZE (OC_BN_MONT_MAX_LEN))
115#define OC_BN_MONT_RSQR_LEN(NumWords) ((OC_BN_NUM_WORDS) (((NumWords) + 1U) * 2U))
119 "The definition of OC_BN_MONT_RSQR_LEN is faulty"
128#define OC_BN_MONT_RSQR_SIZE(NumWords) (OC_BN_SIZE (OC_BN_MONT_RSQR_LEN (NumWords)))
136#define BIG_NUM_MONT_PARAMS_SCRATCH_SIZE(NumWords) \
137 (OC_BN_MONT_RSQR_SIZE (NumWords) * 3U)
141 "The definition of BIG_NUM_MONT_PARAMS_SCRATCH_SIZE may cause an overflow"
#define OC_BN_BITS(NumWords)
BOOLEAN BigNumPowMod(IN OUT OC_BN_WORD *Result, IN OC_BN_NUM_WORDS NumWords, IN CONST OC_BN_WORD *A, IN UINT32 B, IN CONST OC_BN_WORD *N, IN OC_BN_WORD N0Inv, IN CONST OC_BN_WORD *RSqrMod, IN OC_BN_WORD *ATmp)
#define OC_BN_MONT_RSQR_SIZE(NumWords)
OC_BN_WORD BigNumCalculateMontParams(IN OUT OC_BN_WORD *RSqrMod, IN OC_BN_NUM_WORDS NumWords, IN CONST OC_BN_WORD *N, IN OC_BN_WORD *Scratch)
#define OC_BN_MONT_RSQR_LEN(NumWords)
STATIC_ASSERT(OC_BN_MAX_LEN<=MAX_UINTN/OC_BN_WORD_SIZE, "The definition of OC_BN_SIZE may cause an overflow")
OC_BN_WORD BigNumSwapWord(IN OC_BN_WORD Word)
#define OC_BN_MONT_MAX_SIZE
#define OC_BN_SIZE(NumWords)
VOID BigNumParseBuffer(IN OUT OC_BN_WORD *Result, IN OC_BN_NUM_WORDS NumWords, IN CONST UINT8 *Buffer, IN UINTN BufferSize)
#define OC_BN_MONT_MAX_LEN
OC_TYPING_BUFFER_ENTRY Buffer[OC_TYPING_BUFFER_SIZE]