108 }
while (Dividend >= Divisor);
125 while (Divisor != 0) {
129 Div = Dividend / Divisor;
130 Mod = Dividend % Divisor;
190 Scratch2 = &Scratch[NumWordsRSqr];
203 BigNumMod (RSqrMod, NumWords, RSqr, NumWordsRSqr,
N, Scratch2);
271 if (MulResLo < Carry) {
330 TFirst = CCurMulLo * N0Inv;
339 for (CompIndex = 1; CompIndex < NumWords; ++CompIndex) {
367 Result[CompIndex - 1] = CCurMontLo;
373 CCurMulLo = CCurMulHi + CCurMontHi;
374 Result[CompIndex - 1] = CCurMulLo;
378 if (CCurMulLo < CCurMulHi) {
424 for (RowIndex = 0; RowIndex < NumWords; ++RowIndex) {
472 TFirst = Result[0] * N0Inv;
480 for (CompIndex = 1; CompIndex < NumWords; ++CompIndex) {
497 Result[CompIndex - 1] = CCurMontLo;
503 Result[CompIndex - 1] = CCurMontHi;
543 for (RowIndex = 1; RowIndex < NumWords; ++RowIndex) {
577 if ((B != 0x10001) && (B != 3)) {
578 DEBUG ((DEBUG_INFO,
"OCCR: Unsupported exponent: %x\n", B));
592 for (Index = 0; Index < 16; Index += 2) {
#define OC_BN_BITS(NumWords)
#define OC_BN_MONT_RSQR_LEN(NumWords)
#define OC_BN_MONT_MAX_LEN
VOID BigNumSub(IN OUT OC_BN_WORD *Result, IN OC_BN_NUM_WORDS NumWords, IN CONST OC_BN_WORD *A, IN CONST OC_BN_WORD *B)
VOID BigNumMod(IN OUT OC_BN_WORD *Result, IN OC_BN_NUM_WORDS NumWordsRest, IN CONST OC_BN_WORD *A, IN OC_BN_NUM_WORDS NumWordsA, IN CONST OC_BN_WORD *B, IN OC_BN_WORD *Scratch)
OC_BN_WORD BigNumWordMul(OUT OC_BN_WORD *Hi, IN OC_BN_WORD A, IN OC_BN_WORD B)
VOID BigNumOrWord(IN OUT OC_BN_WORD *A, IN OC_BN_NUM_WORDS NumWords, IN OC_BN_WORD Value, IN UINTN Exponent)
INTN BigNumCmp(IN CONST OC_BN_WORD *A, IN OC_BN_NUM_WORDS NumWords, IN CONST OC_BN_WORD *B)
STATIC OC_BN_WORD BigNumMontInverse(IN CONST OC_BN_WORD *A)
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)
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)
STATIC VOID BigNumMontMul1(IN OUT OC_BN_WORD *Result, IN OC_BN_NUM_WORDS NumWords, IN CONST OC_BN_WORD *A, IN CONST OC_BN_WORD *N, IN OC_BN_WORD N0Inv)
STATIC VOID BigNumMontMulRow0(IN OUT OC_BN_WORD *Result, IN OC_BN_NUM_WORDS NumWords, IN CONST OC_BN_WORD *N, IN OC_BN_WORD N0Inv)
STATIC OC_BN_WORD BigNumWordAddMulCarry(OUT OC_BN_WORD *Hi, IN OC_BN_WORD C, IN OC_BN_WORD A, IN OC_BN_WORD B, IN OC_BN_WORD Carry)
STATIC VOID BigNumMontMul(IN OUT OC_BN_WORD *Result, IN OC_BN_NUM_WORDS NumWords, IN CONST OC_BN_WORD *A, IN CONST OC_BN_WORD *B, IN CONST OC_BN_WORD *N, IN OC_BN_WORD N0Inv)
STATIC VOID BigNumMontMulRow(IN OUT OC_BN_WORD *Result, IN OC_BN_NUM_WORDS NumWords, IN OC_BN_WORD AWord, IN CONST OC_BN_WORD *B, IN CONST OC_BN_WORD *N, IN OC_BN_WORD N0Inv)
STATIC OC_BN_WORD BigNumWordAddMul(OUT OC_BN_WORD *Hi, IN OC_BN_WORD C, IN OC_BN_WORD A, IN OC_BN_WORD B)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)