Datasheet

Table Of Contents
43.3.6.8 Affine to Projective Coordinates Conversion
43.3.6.8.1 Purpose
This service is used to perform a point coordinates conversion from an affine point representation to
projective.
43.3.6.8.2 How to Use the Service
43.3.6.8.3 Description
The operation performed is:
affine(Xa, Ya) → projective(Xp, Yp, Zp)
In this computation, the following parameters need to be provided:
A the input point is filled in affine coordinates for X and Y, and setting Z to 1 (pointed by
{nu1PointABase,3*u2ModLength + 4}).
Cns the Fast Modular Constant filled (pointed by {nu1CnsBase,u2ModLength +8})
P the modulus filled (pointed by {nu1ModBase,u2ModLength +4})
The workspace not initialized (pointed by {nu1WorkSpace, 2*u2ModLength +16}
The result is the point A with its (X,Y,Z) projective coordinates.
The service for this operation is ZpEcConvAffineToProjective
Important:  Before using this service, ensure that the constant Cns has been calculated with
the setup of the Fast Modular Reductions service.
43.3.6.8.4 Parameters Definition
Table 43-79. ZpEccConvAffineToProjective Service Parameters
Parameter Type Direction Location Data Length Before
Executing the
Service
After Executing
the Service
nu1ModBase nu1 I Crypto
RAM
u2ModLength + 4 Base of
modulus P
Base of modulus
P
nu1CnsBase nu1 I Crypto
RAM
u2ModLength + 8 Base of Cns Base of Cns
u2ModLength u2 I Length of
modulus P
Length of
modulus P
nu1PointABase nu1 I Crypto
RAM
3*u2ModLength
+ 12
Input point A Resulting point A
in affine
coordinates
nu1Workspace nu1 I Crypto
RAM
2*u2ModLength
+ 16
Workspace
43.3.6.8.5 Code Example
PUKCL_PARAM PUKCLParam;
PPUKCL_PARAM pvPUKCLParam = &PUKCLParam;
SAM D5x/E5x Family Data Sheet
Public Key Cryptography Controller (PUKCC)
© 2019 Microchip Technology Inc.
Datasheet
DS60001507E-page 1526