Datasheet

Table Of Contents
// vPUKCL_Process() is a macro command,
// and then calls the library...
vPUKCL_Process(Comp,pvPUKCLParam);
if (PUKCL(u2Status) == PUKCL_OK)
{
// The COMPARE has been executed correctly
// CarryOut, Zero ... are available
... = PUKCL(Specific).CarryOut;
... = PUKCL(Specific).Zero;
}
else // Manage the error
43.3.4.8.6 Constraints
The following conditions must be avoided to ensure that the service works correctly:
nu1XBase or nu1YBase are not aligned on 32-bit boundaries
{nu1XBase, u2XLength} or {nu1YLength, u2YLength} are not in Crypto RAM
u2XLength or u2YLength is either: < 4, > 0xffc or not a 32-bit length or u2XLength >u2YLength
43.3.4.8.7 Status Returned Values
Table 43-24. Comp Service Return Codes
Returned Status Importance Meaning
PUKCL_OK Service functioned correctly
43.3.4.9 Full Multiply
43.3.4.9.1 Purpose
The purpose of this service is to multiply two large numbers, X and Y, and optionally accumulate/subtract
from a third large number, Z, returning the result, R.
The available options are as follows:
Work in the GF(2
n
) field or in the standard arithmetic field
Add of a supplemental CarryOperand
Overlap of the operands is possible, taking into account some constraints
Modular Reduction of the computation result (see 43.3.5.1 Modular Reduction)
43.3.4.9.2 How to Use the Service
43.3.4.9.3 Description
This service provides the following (if not computing a modular reduction of the result):
R = [Z] ± (X × Y + CarryOperand)
Or (if computing a modular reduction of the result):
R = ([Z] ± (X × Y + CarryOperand))mod N
The service name for this operation is Fmult.
In these computations, the following data has to be provided:
R the result (pointed by {nu1RBase,u2Xlength +u2YLength})
X one input number or GF(2
n
) polynomial (pointed by{nu1XBase,u2XLength})
Y one input number or GF(2
n
) polynomial (pointed by{nu1YBase,u2YLength})
Z one optional input number or GF(2n) polynomial (pointed by {nu1ZBase,u2Xlength +u2YLength})
SAM D5x/E5x Family Data Sheet
Public Key Cryptography Controller (PUKCC)
© 2019 Microchip Technology Inc.
Datasheet
DS60001507E-page 1464