XilinxProcessorIPLib/drivers/hdcp22_rx/src/xhdcp22_rx_crypt.c
static void XHdcp22Rx_Pkcs1MontMultAdd(u32 *A, u32 C, int SDigit, int NDigits)
{
	/* Verify arguments */
	Xil_AssertVoid(A != NULL);
	Xil_AssertVoid(SDigit <= NDigits);

	int i;

	for(i=SDigit; i<NDigits; i++)
	{
		C = mpAdd(A+i, A+i, &C, 1);

		if(C == 0)
		{
			return;
		}
	}
}
/****************************************************************************/
/**
* This function performs a carry propagation adding C to the input
* array A of size NDigits, given by the first argument starting from
* the first element SDigit, and propagates it until no further carry
* is generated.
*
* ADD(A[i],C)
*
* Reference:
* Analyzing and Comparing Montgomery Multiplication Algorithms
* IEEE Micro, 16(3):26-33,June 1996
* By: Cetin Koc, Tolga Acar, and Burton Kaliski
*
* @param	A is an input array of size NDigits
* @param	C is the value being added to the input A
* @param	SDigit is the start digit
* @param	NDigits is the integer precision of the arguments (A)
*
* @return	None.
*
* @note		None.
*****************************************************************************/
This function performs a carry propagation adding C to the input
array A of size NDigits, given by the first argument starting from
the first element SDigit, and propagates it until no further carry
is generated.



Analyzing and Comparing Montgomery Multiplication Algorithms
IEEE Micro, 16(3):26-33,June 1996
By: Cetin Koc, Tolga Acar, and Burton Kaliski
This function performs a carry propagation adding C to the input array A of size NDigits given by the first argument starting from the first element SDigit and propagates it until no further carry is generated . Analyzing and Comparing Montgomery Multiplication Algorithms IEEE Micro 16 ( 3 ) : 26 - 33 June 1996 By : Cetin Koc Tolga Acar and Burton Kaliski
static void XHdcp22Rx_Pkcs1MontMultAdd(u32 *A, u32 C, int SDigit, int NDigits)
{
	Xil_AssertVoid(A != NULL);
	Xil_AssertVoid(SDigit <= NDigits);
	int i;
	for(i=SDigit; i<NDigits; i++)
	{
		C = mpAdd(A+i, A+i, &C, 1);
		if(C == 0)
		{
			return;
		}
	}
}
static void XHdcp22Rx_Pkcs1MontMultAdd ( u32 * A , u32 C , int SDigit , int NDigits ) { Xil_AssertVoid ( A != NULL ) ; Xil_AssertVoid ( SDigit <= NDigits ) ; int i ; for ( i = SDigit ; i < NDigits ; i ++ ) { C = mpAdd ( A + i , A + i , & C , 1 ) ; if ( C == 0 ) { return ; } } }
This function performs a carry propagation adding C to the input
array A of size NDigits, given by the first argument starting from
the first element SDigit, and propagates it until no further carry
is generated.
This function performs a carry propagation adding C to the input array A of size NDigits given by the first argument starting from the first element SDigit and propagates it until no further carry is generated .
/* Verify arguments */