lcx_ecfp.h | Developers

lcx_ecfp.h

Back to the files list

Key pair generation based on elliptic curves. More...

Data Structures

struct  cx_ecfp_public_key_s
 Elliptic Curve public key. More...
struct  cx_ecfp_private_key_s
 Elliptic Curve private key. More...
struct  cx_ecfp_256_public_key_s
 Up to 256-bit Elliptic Curve public key. More...
struct  cx_ecfp_256_private_key_s
 Up to 256-bit Elliptic Curve private key. More...
struct  cx_ecfp_256_extended_private_key_s
 Up to 256-bit Elliptic Curve extended private key. More...
struct  cx_ecfp_384_public_key_s
 Up to 384-bit Elliptic Curve public key. More...
struct  cx_ecfp_384_private_key_s
 Up to 384-bit Elliptic Curve private key. More...
struct  cx_ecfp_512_public_key_s
 Up to 512-bit Elliptic Curve public key. More...
struct  cx_ecfp_512_private_key_s
 Up to 512-bit Elliptic Curve private key. More...
struct  cx_ecfp_512_extented_private_key_s
 Up to 512-bit Elliptic Curve extended private key. More...
struct  cx_ecfp_640_public_key_s
 Up to 640-bit Elliptic Curve public key. More...
struct  cx_ecfp_640_private_key_s
 Up to 640-bit Elliptic Curve private key. More...

Typedefs

typedef struct cx_ecfp_256_public_key_s cx_ecfp_256_public_key_t
 Convenience type. More...
typedef struct cx_ecfp_256_private_key_s cx_ecfp_256_private_key_t
 temporary def type. More...
typedef struct cx_ecfp_256_extended_private_key_s cx_ecfp_256_extended_private_key_t
 Convenience type. More...
typedef struct cx_ecfp_256_public_key_s cx_ecfp_public_key_t
typedef struct cx_ecfp_256_private_key_s cx_ecfp_private_key_t
typedef struct cx_ecfp_384_private_key_s cx_ecfp_384_private_key_t
 Convenience type. More...
typedef struct cx_ecfp_384_public_key_s cx_ecfp_384_public_key_t
 Convenience type. More...
typedef struct cx_ecfp_512_public_key_s cx_ecfp_512_public_key_t
 Convenience type. More...
typedef struct cx_ecfp_512_private_key_s cx_ecfp_512_private_key_t
 Convenience type. More...
typedef struct cx_ecfp_512_extented_private_key_s cx_ecfp_512_extented_private_key_t
 Convenience type. More...
typedef struct cx_ecfp_640_public_key_s cx_ecfp_640_public_key_t
 Convenience type. More...
typedef struct cx_ecfp_640_private_key_s cx_ecfp_640_private_key_t
 Convenience type. More...

Functions

cx_err_t cx_ecfp_add_point_no_throw (cx_curve_t curve, uint8_t *R, const uint8_t *P, const uint8_t *Q)
 Adds two points of an elliptic curve. More...
static int cx_ecfp_add_point (cx_curve_t curve, unsigned char *R, const unsigned char *P, const unsigned char *Q, unsigned int X_len)
 Adds two points of an elliptic curve. More...
cx_err_t cx_ecfp_scalar_mult_no_throw (cx_curve_t curve, uint8_t *P, const uint8_t *k, size_t k_len)
 Performs a scalar multiplication over an elliptic curve. More...
static int cx_ecfp_scalar_mult (cx_curve_t curve, unsigned char *P, unsigned int P_len, const unsigned char *k, unsigned int k_len)
 Performs a scalar multiplication over an elliptic curve. More...
cx_err_t cx_ecfp_init_public_key_no_throw (cx_curve_t curve, const uint8_t *rawkey, size_t key_len, cx_ecfp_public_key_t *key)
 Initializes a public key. More...
static int cx_ecfp_init_public_key (cx_curve_t curve, const unsigned char *rawkey, unsigned int key_len, cx_ecfp_public_key_t *key)
 Initializes a public key. More...
cx_err_t cx_ecfp_init_private_key_no_throw (cx_curve_t curve, const uint8_t *rawkey, size_t key_len, cx_ecfp_private_key_t *pvkey)
 Initializes a private key. More...
static int cx_ecfp_init_private_key (cx_curve_t curve, const unsigned char *rawkey, unsigned int key_len, cx_ecfp_private_key_t *pvkey)
 Initializes a private key. More...
cx_err_t cx_ecfp_generate_pair_no_throw (cx_curve_t curve, cx_ecfp_public_key_t *pubkey, cx_ecfp_private_key_t *privkey, bool keepprivate)
 Generates a key pair with SHA-512 hash function. More...
static int cx_ecfp_generate_pair (cx_curve_t curve, cx_ecfp_public_key_t *pubkey, cx_ecfp_private_key_t *privkey, int keepprivate)
 Generates a key pair with SHA-512 hash function. More...
cx_err_t cx_ecfp_generate_pair2_no_throw (cx_curve_t curve, cx_ecfp_public_key_t *pubkey, cx_ecfp_private_key_t *privkey, bool keepprivate, cx_md_t hashID)
 Generates a key pair. More...
static int cx_ecfp_generate_pair2 (cx_curve_t curve, cx_ecfp_public_key_t *pubkey, cx_ecfp_private_key_t *privkey, int keepprivate, cx_md_t hashID)
 Generates a key pair. More...
cx_err_t cx_eddsa_get_public_key_no_throw (const cx_ecfp_private_key_t *pvkey, cx_md_t hashID, cx_ecfp_public_key_t *pukey, uint8_t *a, size_t a_len, uint8_t *h, size_t h_len)
 Retrieves an EDDSA public key. More...
static void cx_eddsa_get_public_key (const cx_ecfp_private_key_t *pvkey, cx_md_t hashID, cx_ecfp_public_key_t *pukey, unsigned char *a, unsigned int a_len, unsigned char *h, unsigned int h_len)
 Retrieves an EDDSA public key. More...
cx_err_t cx_edwards_compress_point_no_throw (cx_curve_t curve, uint8_t *p, size_t p_len)
 Compresses a point according to RFC8032 . More...
static void cx_edwards_compress_point (cx_curve_t curve, uint8_t *p, size_t p_len)
 Compresses a point according to RFC8032 . More...
cx_err_t cx_edwards_decompress_point_no_throw (cx_curve_t curve, uint8_t *p, size_t p_len)
 Decompresses a point according to RFC8032 . More...
static void cx_edwards_decompress_point (cx_curve_t curve, uint8_t *p, size_t p_len)
 Decompresses a point according to RFC8032 . More...
static void cx_edward_compress_point (cx_curve_t curve, uint8_t *p, size_t p_len)
static void cx_edward_decompress_point (cx_curve_t curve, uint8_t *p, size_t p_len)

Detailed Description

Key pair generation based on elliptic curves.

Private and public keys initialization and key pair generation based on elliptic curves.

Typedef Documentation

cx_ecfp_256_extended_private_key_t

cx_ecfp_256_private_key_t

cx_ecfp_256_public_key_t

cx_ecfp_384_private_key_t

cx_ecfp_384_public_key_t

cx_ecfp_512_extented_private_key_t

cx_ecfp_512_private_key_t

cx_ecfp_512_public_key_t

cx_ecfp_640_private_key_t

cx_ecfp_640_public_key_t

cx_ecfp_private_key_t

cx_ecfp_public_key_t

Function Documentation

cx_ecfp_add_point()

static int cx_ecfp_add_point ( cx_curve_t  curve,
unsigned char *  R,
const unsigned char *  P,
const unsigned char *  Q,
unsigned int  X_len 
)

Adds two points of an elliptic curve.

This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_ecfp_add_point_no_throw rather than this function.
Parameters
[in]curveCurve identifier.
[out]RResulting point encoded as 04 || x || y.
[in]PFirst operand: point on curve encoded as 04 || x || y: x and y are encoded as big endian raw values and have a binary length equal to curve domain size.
[in]QSecond operand: point on curve encoded as 04 || x || y.
[in]X_lenLength of the x-coordinate. This parameter is not used.
Returns
Length of the encoded point.
Exceptions
CX_EC_INVALID_CURVE
CX_NOT_UNLOCKED
CX_INVALID_PARAMETER_SIZE
CX_EC_INVALID_CURVE
CX_MEMORY_FULL
CX_NOT_LOCKED
CX_INVALID_PARAMETER
CX_EC_INVALID_POINT
CX_EC_INFINITE_POINT

cx_ecfp_add_point_no_throw()

cx_err_t cx_ecfp_add_point_no_throw ( cx_curve_t  curve,
uint8_t *  R,
const uint8_t *  P,
const uint8_t *  Q 
)

Adds two points of an elliptic curve.

Parameters
[in]curveCurve identifier.
[out]RResulting point encoded as 04 || x || y.
[in]PFirst operand: point on curve encoded as 04 || x || y: x and y are encoded as big endian raw values and have a binary length equal to curve domain size.
[in]QSecond operand: point on curve encoded as 04 || x || y.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • CX_NOT_UNLOCKED
  • CX_INVALID_PARAMETER_SIZE
  • CX_EC_INVALID_CURVE
  • CX_MEMORY_FULL
  • CX_NOT_LOCKED
  • CX_INVALID_PARAMETER
  • CX_EC_INVALID_POINT
  • CX_EC_INFINITE_POINT

cx_ecfp_generate_pair()

static int cx_ecfp_generate_pair ( cx_curve_t  curve,
cx_ecfp_public_key_t pubkey,
cx_ecfp_private_key_t privkey,
int  keepprivate 
)

Generates a key pair with SHA-512 hash function.

This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_ecfp_generate_pair_no_throw rather than this function.
Parameters
[in]curveCurve identifier.
[out]pubkeyGenerated public key.
[out]privkeyGenerated private key.
[in]keepprivateIf set, the private key is the one initialized with cx_ecfp_init_private_key_no_throw. Otherwise, a new private key is generated.
Returns
0
Exceptions
CX_EC_INVALID_CURVE
CX_NOT_UNLOCKED
CX_INVALID_PARAMETER_SIZE
CX_MEMORY_FULL
CX_NOT_LOCKED
CX_INVALID_PARAMETER
CX_INTERNAL_ERROR
CX_EC_INVALID_POINT
CX_EC_INFINITE_POINT

cx_ecfp_generate_pair2()

static int cx_ecfp_generate_pair2 ( cx_curve_t  curve,
cx_ecfp_public_key_t pubkey,
cx_ecfp_private_key_t privkey,
int  keepprivate,
cx_md_t  hashID 
)

Generates a key pair.

This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_ecfp_generate_pair2_no_throw rather than this function.
Parameters
[in]curveCurve identifier.
[out]pubkeyGenerated public key.
[out]privkeyGenerated private key.
[in]keepprivateIf set, the private key is the one initialized with cx_ecfp_init_private_key_no_throw. Otherwise, a new private key is generated.
[in]hashIDMessage digest algorithm identifer.
Returns
0
Exceptions
CX_EC_INVALID_CURVE
CX_NOT_UNLOCKED
CX_INVALID_PARAMETER_SIZE
CX_MEMORY_FULL
CX_NOT_LOCKED
CX_INVALID_PARAMETER
CX_INTERNAL_ERROR
CX_EC_INVALID_POINT
CX_EC_INFINITE_POINT

cx_ecfp_generate_pair2_no_throw()

cx_err_t cx_ecfp_generate_pair2_no_throw ( cx_curve_t  curve,
cx_ecfp_public_key_t pubkey,
cx_ecfp_private_key_t privkey,
bool  keepprivate,
cx_md_t  hashID 
)

Generates a key pair.

Parameters
[in]curveCurve identifier.
[out]pubkeyGenerated public key.
[out]privkeyGenerated private key.
[in]keepprivateIf set, the private key is the one initialized with cx_ecfp_init_private_key_no_throw. Otherwise, a new private key is generated.
[in]hashIDMessage digest algorithm identifer.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • CX_NOT_UNLOCKED
  • CX_INVALID_PARAMETER_SIZE
  • CX_MEMORY_FULL
  • CX_NOT_LOCKED
  • CX_INVALID_PARAMETER
  • CX_INTERNAL_ERROR
  • CX_EC_INVALID_POINT
  • CX_EC_INFINITE_POINT

cx_ecfp_generate_pair_no_throw()

cx_err_t cx_ecfp_generate_pair_no_throw ( cx_curve_t  curve,
cx_ecfp_public_key_t pubkey,
cx_ecfp_private_key_t privkey,
bool  keepprivate 
)

Generates a key pair with SHA-512 hash function.

Parameters
[in]curveCurve identifier.
[out]pubkeyGenerated public key.
[out]privkeyGenerated private key.
[in]keepprivateIf set, the private key is the one initialized with cx_ecfp_init_private_key_no_throw. Otherwise, a new private key is generated.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • CX_NOT_UNLOCKED
  • CX_INVALID_PARAMETER_SIZE
  • CX_MEMORY_FULL
  • CX_NOT_LOCKED
  • CX_INVALID_PARAMETER
  • CX_INTERNAL_ERROR
  • CX_EC_INVALID_POINT
  • CX_EC_INFINITE_POINT

cx_ecfp_init_private_key()

static int cx_ecfp_init_private_key ( cx_curve_t  curve,
const unsigned char *  rawkey,
unsigned int  key_len,
cx_ecfp_private_key_t pvkey 
)

Initializes a private key.

The key can be stored in non-volatile memory and used for ECDSA or ECDH processing. This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_ecfp_init_private_key_no_throw rather than this function.
Parameters
[in]curveCurve identifier.
[in]rawkeyPointer to a raw key value or NULL pointer. The value shall be in big endian order.
[in]key_lenLength of the key.
[out]pvkeyPrivate key to initialize.
Returns
Length of the key.
Exceptions
CX_EC_INVALID_CURVE
CX_INVALID_PARAMETER

cx_ecfp_init_private_key_no_throw()

cx_err_t cx_ecfp_init_private_key_no_throw ( cx_curve_t  curve,
const uint8_t *  rawkey,
size_t  key_len,
cx_ecfp_private_key_t pvkey 
)

Initializes a private key.

The key can be stored in non-volatile memory and used for ECDSA or ECDH processing.

Parameters
[in]curveCurve identifier.
[in]rawkeyPointer to a raw key value or NULL pointer. The value shall be in big endian order.
[in]key_lenLength of the key.
[out]pvkeyPrivate key to initialize.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • CX_INVALID_PARAMETER

cx_ecfp_init_public_key()

static int cx_ecfp_init_public_key ( cx_curve_t  curve,
const unsigned char *  rawkey,
unsigned int  key_len,
cx_ecfp_public_key_t key 
)

Initializes a public key.

This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_ecfp_init_public_key_no_throw rather than this function.
Parameters
[in]curveCurve identifier.
[in]rawkeyPointer to a raw key value or NULL pointer The value shall be the public point encoded as:
  • 04 || x || y for Weiertrass curves
  • 04 || x || y or 02 || y (plus sign) for Twisted Edward curves
  • 04 || x || y or 02 || x for Montgomery curves

where x and y are encoded as big endian raw values and have a binary length equal to the curve domain size.

Parameters
[in]key_lenLength of the key.
[out]keyPublic key to initialize.
Returns
Length of the key.
Exceptions
CX_EC_INVALID_CURVE
INVALID_PARAMETER

cx_ecfp_init_public_key_no_throw()

cx_err_t cx_ecfp_init_public_key_no_throw ( cx_curve_t  curve,
const uint8_t *  rawkey,
size_t  key_len,
cx_ecfp_public_key_t key 
)

Initializes a public key.

Parameters
[in]curveCurve identifier.
[in]rawkeyPointer to a raw key value or NULL pointer The value shall be the public point encoded as:
  • 04 || x || y for Weiertrass curves
  • 04 || x || y or 02 || y (plus sign) for Twisted Edward curves
  • 04 || x || y or 02 || x for Montgomery curves

where x and y are encoded as big endian raw values and have a binary length equal to the curve domain size.

Parameters
[in]key_lenLength of the key.
[out]keyPublic key to initialize.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • INVALID_PARAMETER

cx_ecfp_scalar_mult()

static int cx_ecfp_scalar_mult ( cx_curve_t  curve,
unsigned char *  P,
unsigned int  P_len,
const unsigned char *  k,
unsigned int  k_len 
)

Performs a scalar multiplication over an elliptic curve.

This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_ecfp_scalar_mult_no_throw rather than this function.
Parameters
[in]curveCurve identifier.
[in,out]PPoint on curve encoded as 04 || x || y: x and y are encoded as big endian raw values and have a binary length equal to curve domain size. This is also used for the result.
[in]P_lenLength of the input point. This parameter is not used.
[in]kScalar encoded as big endian integer.
[in]k_lenLength of the scalar. This should be equal to the curve domain length.
Returns
Length of the encoded point.
Exceptions
CX_EC_INVALID_CURVE
CX_NOT_UNLOCKED
CX_EC_INVALID_CURVE
CX_MEMORY_FULL
CX_NOT_LOCKED
CX_INVALID_PARAMETER
CX_EC_INFINITE_POINT

cx_ecfp_scalar_mult_no_throw()

cx_err_t cx_ecfp_scalar_mult_no_throw ( cx_curve_t  curve,
uint8_t *  P,
const uint8_t *  k,
size_t  k_len 
)

Performs a scalar multiplication over an elliptic curve.

Parameters
[in]curveCurve identifier.
[in,out]PPoint on curve encoded as 04 || x || y: x and y are encoded as big endian raw values and have a binary length equal to curve domain size. This is also used for the result.
[in]kScalar encoded as big endian integer.
[in]k_lenLength of the scalar. This should be equal to the curve domain length.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • CX_NOT_UNLOCKED
  • CX_EC_INVALID_CURVE
  • CX_MEMORY_FULL
  • CX_NOT_LOCKED
  • CX_INVALID_PARAMETER
  • CX_EC_INFINITE_POINT

cx_eddsa_get_public_key()

static void cx_eddsa_get_public_key ( const cx_ecfp_private_key_t pvkey,
cx_md_t  hashID,
cx_ecfp_public_key_t pukey,
unsigned char *  a,
unsigned int  a_len,
unsigned char *  h,
unsigned int  h_len 
)

Retrieves an EDDSA public key.

Retrieves (a,h) = (Kr, Kl), such that (Kr, Kl) = Hash(pv_key) as specified at RFC8032 . This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_eddsa_get_public_key_no_throw rather than this function.
Parameters
[in]pvkeyA private key fully initialized with cx_ecfp_init_private_key_no_throw.
[in]hashIDMessage digest algorithm identifier used to compute the input data. SHA512, SHA3 and Keccak are supported.
[out]pukeyKey container for retrieving the public key A.
[out]aPrivate scalar such that A = a.B.
[in]a_lenLength of the scalar a.
[out]hSignature prefix.
[in]h_lenLength of the prefix h.
Exceptions
CX_EC_INVALID_CURVE
CX_NOT_UNLOCKED
CX_INVALID_PARAMETER_SIZE
CX_INVALID_PARAMETER
CX_NOT_LOCKED
CX_MEMORY_FULL
CX_EC_INVALID_POINT
CX_EC_INFINITE_POINT
CX_INTERNAL_ERROR

cx_eddsa_get_public_key_no_throw()

cx_err_t cx_eddsa_get_public_key_no_throw ( const cx_ecfp_private_key_t pvkey,
cx_md_t  hashID,
cx_ecfp_public_key_t pukey,
uint8_t *  a,
size_t  a_len,
uint8_t *  h,
size_t  h_len 
)

Retrieves an EDDSA public key.

Retrieves (a,h) = (Kr, Kl), such that (Kr, Kl) = Hash(pv_key) as specified at RFC8032 .

Parameters
[in]pvkeyA private key fully initialized with cx_ecfp_init_private_key_no_throw.
[in]hashIDMessage digest algorithm identifier used to compute the input data. SHA512, SHA3 and Keccak are supported.
[out]pukeyKey container for retrieving the public key A.
[out]aPrivate scalar such that A = a.B.
[in]a_lenLength of the scalar a.
[out]hSignature prefix.
[in]h_lenLength of the prefix h.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • CX_NOT_UNLOCKED
  • CX_INVALID_PARAMETER_SIZE
  • CX_INVALID_PARAMETER
  • CX_NOT_LOCKED
  • CX_MEMORY_FULL
  • CX_EC_INVALID_POINT
  • CX_EC_INFINITE_POINT
  • CX_INTERNAL_ERROR

cx_edward_compress_point()

static void cx_edward_compress_point ( cx_curve_t  curve,
uint8_t *  p,
size_t  p_len 
)

cx_edward_decompress_point()

static void cx_edward_decompress_point ( cx_curve_t  curve,
uint8_t *  p,
size_t  p_len 
)

cx_edwards_compress_point()

static void cx_edwards_compress_point ( cx_curve_t  curve,
uint8_t *  p,
size_t  p_len 
)

Compresses a point according to RFC8032 .

This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_edwards_compress_point_no_throw rather than this function.
Parameters
[in]curveCurve identifier. The curve must be a Twisted Edwards curve.
[in,out]pPointer to the point to compress.
[in]p_lenLength of the point buffer.
Exceptions
CX_EC_INVALID_CURVE
CX_NOT_UNLOCKED
CX_INVALID_PARAMETER_SIZE
CX_EC_INVALID_CURVE
CX_MEMORY_FULL
CX_NOT_LOCKED
CX_INVALID_PARAMETER
CX_EC_INFINITE_POINT

cx_edwards_compress_point_no_throw()

cx_err_t cx_edwards_compress_point_no_throw ( cx_curve_t  curve,
uint8_t *  p,
size_t  p_len 
)

Compresses a point according to RFC8032 .

Parameters
[in]curveCurve identifier. The curve must be a Twisted Edwards curve.
[in,out]pPointer to the point to compress.
[in]p_lenLength of the point buffer.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • CX_NOT_UNLOCKED
  • CX_INVALID_PARAMETER_SIZE
  • CX_EC_INVALID_CURVE
  • CX_MEMORY_FULL
  • CX_NOT_LOCKED
  • CX_INVALID_PARAMETER
  • CX_EC_INFINITE_POINT

cx_edwards_decompress_point()

static void cx_edwards_decompress_point ( cx_curve_t  curve,
uint8_t *  p,
size_t  p_len 
)

Decompresses a point according to RFC8032 .

This function throws an exception if the computation doesn't succeed.

Warning
It is recommended to use cx_edwards_decompress_point_no_throw rather than this function.
Parameters
[in]curveCurve identifier. The curve must be a Twisted Edwards curve.
[in,out]pPointer to the point to decompress.
[in]p_lenLength of the point buffer.
Exceptions
CX_EC_INVALID_CURVE
CX_NOT_UNLOCKED
CX_INVALID_PARAMETER_SIZE
CX_EC_INVALID_CURVE
CX_MEMORY_FULL
CX_NOT_LOCKED
CX_INVALID_PARAMETER
CX_EC_INFINITE_POINT
CX_NO_RESIDUE
INVALID_PARAMETER

cx_edwards_decompress_point_no_throw()

cx_err_t cx_edwards_decompress_point_no_throw ( cx_curve_t  curve,
uint8_t *  p,
size_t  p_len 
)

Decompresses a point according to RFC8032 .

Parameters
[in]curveCurve identifier. The curve must be a Twisted Edwards curve.
[in,out]pPointer to the point to decompress.
[in]p_lenLength of the point buffer.
Returns
Error code:
  • CX_OK on success
  • CX_EC_INVALID_CURVE
  • CX_NOT_UNLOCKED
  • CX_INVALID_PARAMETER_SIZE
  • CX_EC_INVALID_CURVE
  • CX_MEMORY_FULL
  • CX_NOT_LOCKED
  • CX_INVALID_PARAMETER
  • CX_EC_INFINITE_POINT
  • CX_NO_RESIDUE
  • INVALID_PARAMETER

Back to the files list


Did you find this page helpful?


How would you improve this page for developers?



Getting Started
Theme Features
Customization

Nano Apps