Datasheet

Table Of Contents
PUKCL _GF2NEcDsaGenerate(nu1ScalarNumber) = <Base of the ScalarNumber>;
PUKCL _GF2NEcDsaGenerate(nu1OrderPointBase) = <Base of the order of A point>;
PUKCL _GF2NEcDsaGenerate(nu1ABase) = <Base of the a parameter of the curve>; PUKCL
_GF2NEcDsaGenerate(nu1Workspace) = <Base of the workspace>;
PUKCL _GF2NEcDsaGenerate(nu1HashBase) = <Base of the SHA resulting hash>;
...
// vPUKCL_Process() is a macro command, which populates the service name
// and then calls the library...
vPUKCL_Process(GF2NEcDsaGenerateFast, pvPUKCLParam);
if (PUKCL (u2Status) == PUKCL_OK)
{
...
}
else // Manage the error
43.3.7.9.6 Constraints
No overlapping between either input and output are allowed. The following conditions must be avoided to
ensure the service works correctly:
nu1ModBase, nu1CnsBase, nu1PointABase, nu1PrivateKey, nu1ScalarNumber,
nu1OrderPointBase,nu1ABase, nu1Workspace or nu1HashBase are not aligned on 32-bit
boundaries
{nu1ModBase, u2ModLength + 4}, {nu1CnsBase, u2ModLength + 8}, {nu1PointABase,
3*u2ModLength+ 12},{nu1PrivateKey, u2ScalarLength + 4},{nu1ScalarNumber, u2ScalarLength + 4},
{nu1OrderPointBase, u2ScalarLength + 4}, {nu1ABase, u2ModLength + 4}, {nu1Workspace,
<WorkspaceLength>} or {nu1HashBase, u2ScalarLength + 4} are not in Crypto RAM
u2ModLength is either: < 12, > 0xffc or not a 32-bit length
All overlapping between {nu1ModBase, u2ModLength + 4}, {nu1CnsBase, u2ModLength +8},
{nu1PointABase, 3*u2ModLength + 12}, {nu1PrivateKey, u2ScalarLength + 4}, {nu1ScalarNumber,
u2ScalarLength + 4}, {nu1OrderPointBase, u2ScalarLength + 4}, {nu1ABase, u2ModLength + 4},
{nu1Workspace, <WorkspaceLength>} and {nu1HashBase, u2ScalarLength + 4}
43.3.7.9.7 Status Returned Values
Table 43-109. GF2NEcDsaGenerate Fast Service Return Codes
Returned Status Importance Meaning
PUKCL_OK The computation passed without problem.
PUKCL_WRONG_SELECTNUMBER Warning The given value for nu1ScalarNumber is not good
to perform this signature generation.
43.3.7.10 Verifying an ECDSA Signature (Compliant with FIPS 186-2)
43.3.7.10.1 Purpose
This service is used to verify an ECDSA signature following the FIPS 186-2. It performs the second step
of the Signature Verification.
A hash value (HashVal) must be provided as input, it has to be previously computed from the message to
be signed using a secure hash algorithm.
As second significant input, the Signature is provided to be checked. This service checks the signature
and fills the status accordingly.
43.3.7.10.2 How to Use the Service
43.3.7.10.3 Description
The operation performed is:
SAM D5x/E5x Family Data Sheet
Public Key Cryptography Controller (PUKCC)
© 2019 Microchip Technology Inc.
Datasheet
DS60001507E-page 1563