Datasheet

Table Of Contents
A scalar number must be provided, as described in the FIPS 186-2.
The result (R,S) is computed by this service. If S equals zero, the status is set to
PUKCL_WRONG_SELECT_NUMBER.
43.3.7.9.2 How to Use the Service
43.3.7.9.3 Description
The operation performed is:
(R, S) = EcDsaSign(Pt
A
, HashVal, k, CurveParameters, PrivateKey)
This service processes the following checks:
If the Scalar Number k is out of the range [1, PointOrder -1], the calculus is stopped and the status is
set to PUKCL_WRONG_SELECT_NUMBER.
If R equals zero, the calculus is stopped and the status is set to
PUKCL_WRONG_SELECT_NUMBER.
If S equals zero, the calculus is stopped and the status is set to
PUKCL_WRONG_SELECT_NUMBER. In this computation, the following parameters need to be
provided:
A the input point is filled in “mixed” coordinates (X,Y) with the affine values and Z = 1 (pointed by
{nu1PointABase,3*u2ModLength + 12})
Cns the working space for the Fast Modular Constant not initialized (pointed by
{nu1CnsBase,u2ScalarLength + 8})
P the modulus filled (pointed by {nu1ModBase,u2ModLength + 4})
The workspace not initialized (pointed by {nu1WorkSpace, 8*u2ModLength + 44}
The a and b parameters relative to the elliptic curve equation (pointed by {nu1ABBase,
2*u2ModLength + 8})
The order of the Point A on the elliptic curve (pointed by {nu1OrderPointBase, u2ScalarLength + 4})
k the input Scalar Number beforehand generated and filled (pointed
by{nu1ScalarNumber,u2ScalarLength + 4})
HashVal the hash value beforehand generated and filled (pointed by {nu1HashBase, u2ScalarLength
+4})
The Private Key (pointed by {nu1PrivateKey, u2ScalarLength +4})
Generally u2ScalarLength is equal to (u2ModLength) or (u2ModLength + 4)
Important: 
For the ECDSA signature generation be sure to follow the directives given for the RNG on the
chip you use (particularly initialization, seeding) and compulsorily start the RNG.
The scalar number k must be selected at random. This random must be generated before the
call of the ECDSA signature. For this random generation be sure to follow the directives given
for the RNG on the chip you use (particularly initialization, seeding) and compulsorily start the
RNG.
The operation performed is:
Compute the ECDSA (R,S) as described in FIPS 186-2, but leaving the user the role of computing
the input Hash Value, thus leaving the freedom of using any other algorithm than SHA-1.
Compute a R value using the input A point and the scalar number.
SAM D5x/E5x Family Data Sheet
Public Key Cryptography Controller (PUKCC)
© 2019 Microchip Technology Inc.
Datasheet
DS60001507E-page 1560