Functions#

This section provides a reference to the ECDH Crypto API functions.

Functions#

sl_status_t
sl_si91x_ecdh_point_addition(sl_si91x_ecdh_mode_t ecdh_mode, uint8_t *sx, uint8_t *sy, uint8_t *sz, uint8_t *tx, uint8_t *ty, uint8_t *tz, uint8_t *rx, uint8_t *ry, uint8_t *rz)

To compute the ECDH point addition vector.

sl_status_t
sl_si91x_ecdh_point_subtraction(sl_si91x_ecdh_mode_t ecdh_mode, uint8_t *sx, uint8_t *sy, uint8_t *sz, uint8_t *tx, uint8_t *ty, uint8_t *tz, uint8_t *rx, uint8_t *ry, uint8_t *rz)

To compute the ECDH point subtraction vector.

sl_status_t
sl_si91x_ecdh_point_multiplication(sl_si91x_ecdh_mode_t ecdh_mode, uint8_t *d, uint8_t *sx, uint8_t *sy, uint8_t *sz, uint32_t affinity, uint8_t *rx, uint8_t *ry, uint8_t *rz, uint8_t reverse)

To compute the ECDH point multiplication vector.

sl_status_t
sl_si91x_ecdh_point_double(sl_si91x_ecdh_mode_t ecdh_mode, uint8_t *sx, uint8_t *sy, uint8_t *sz, uint8_t *rx, uint8_t *ry, uint8_t *rz)

To compute the ECDH point double vector.

sl_status_t
sl_si91x_ecdh_point_affine(sl_si91x_ecdh_mode_t ecdh_mode, uint8_t *sx, uint8_t *sy, uint8_t *sz, uint8_t *rx, uint8_t *ry, uint8_t *rz)

To compute the ECDH point affinity vector.

Function Documentation#

sl_si91x_ecdh_point_addition#

sl_status_t sl_si91x_ecdh_point_addition (sl_si91x_ecdh_mode_t ecdh_mode, uint8_t * sx, uint8_t * sy, uint8_t * sz, uint8_t * tx, uint8_t * ty, uint8_t * tz, uint8_t * rx, uint8_t * ry, uint8_t * rz)

To compute the ECDH point addition vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t.

[in]sx

Pointer to the x coordinate of the first point to be added.

[in]sy

Pointer to the y coordinate of the first point to be added.

[in]sz

Pointer to the z coordinate of the first point to be added.

[in]tx

Pointer to the x coordinate of the second point to be added.

[in]ty

Pointer to the y coordinate of the second point to be added.

[in]tz

Pointer to the z coordinate of the second point to be added.

[out]rx

Pointer to the x coordinate of the result point.

[out]ry

Pointer to the y coordinate of the result point.

[out]rz

Pointer to the z coordinate of the result point.

This is a blocking API. Returns


Definition at line 132 of file components/device/silabs/si91x/wireless/crypto/ecdh/inc/sl_si91x_ecdh.h

sl_si91x_ecdh_point_subtraction#

sl_status_t sl_si91x_ecdh_point_subtraction (sl_si91x_ecdh_mode_t ecdh_mode, uint8_t * sx, uint8_t * sy, uint8_t * sz, uint8_t * tx, uint8_t * ty, uint8_t * tz, uint8_t * rx, uint8_t * ry, uint8_t * rz)

To compute the ECDH point subtraction vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t.

[in]sx

Pointer to the x coordinate of the first point to be subtracted.

[in]sy

Pointer to the y coordinate of the first point to be subtracted.

[in]sz

Pointer to the z coordinate of the first point to be subtracted.

[in]tx

Pointer to the x coordinate of the second point to be subtracted.

[in]ty

Pointer to the y coordinate of the second point to be subtracted.

[in]tz

Pointer to the z coordinate of the second point to be subtracted.

[out]rx

Pointer to the x coordinate of the result point.

[out]ry

Pointer to the y coordinate of the result point.

[out]rz

Pointer to the z coordinate of the result point.

This is a blocking API. Returns


Definition at line 172 of file components/device/silabs/si91x/wireless/crypto/ecdh/inc/sl_si91x_ecdh.h

sl_si91x_ecdh_point_multiplication#

sl_status_t sl_si91x_ecdh_point_multiplication (sl_si91x_ecdh_mode_t ecdh_mode, uint8_t * d, uint8_t * sx, uint8_t * sy, uint8_t * sz, uint32_t affinity, uint8_t * rx, uint8_t * ry, uint8_t * rz, uint8_t reverse)

To compute the ECDH point multiplication vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t.

[in]d


Pointer to the scalar value to be multiplied.

[in]sx


Pointer to the x coordinate of the point to be multiplied with scalar 'd'.

[in]sy


Pointer to the y coordinate of the point to be multiplied with scalar 'd'.

[in]sz


Pointer to the z coordinate of the point to be multiplied with scalar 'd'.

[in]affinity

Affinity mode:

  • 0 : no affinity

  • 1 : affinity on input

  • 2 : affinity on output

  • 3 : affinity on both input and output

[out]rx


Pointer to the x coordinate of the result point.

[out]ry


Pointer to the y coordinate of the result point.

[out]rz


Pointer to the z coordinate of the result point.

[in]reverse


Setting this will perform reverse_8 on the inputs and outputs.

This is a blocking API. Returns


Definition at line 216 of file components/device/silabs/si91x/wireless/crypto/ecdh/inc/sl_si91x_ecdh.h

sl_si91x_ecdh_point_double#

sl_status_t sl_si91x_ecdh_point_double (sl_si91x_ecdh_mode_t ecdh_mode, uint8_t * sx, uint8_t * sy, uint8_t * sz, uint8_t * rx, uint8_t * ry, uint8_t * rz)

To compute the ECDH point double vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t.

[in]sx

Pointer to the x coordinate of the point to be doubled.

[in]sy

Pointer to the y coordinate of the point to be doubled.

[in]sz

Pointer to the z coordinate of the point to be doubled.

[out]rx

Pointer to the x coordinate of the result point.

[out]ry

Pointer to the y coordinate of the result point.

[out]rz

Pointer to the z coordinate of the result point.

This is a blocking API. Returns


Definition at line 250 of file components/device/silabs/si91x/wireless/crypto/ecdh/inc/sl_si91x_ecdh.h

sl_si91x_ecdh_point_affine#

sl_status_t sl_si91x_ecdh_point_affine (sl_si91x_ecdh_mode_t ecdh_mode, uint8_t * sx, uint8_t * sy, uint8_t * sz, uint8_t * rx, uint8_t * ry, uint8_t * rz)

To compute the ECDH point affinity vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t.

[in]sx

Pointer to the x coordinate of the point.

[in]sy

Pointer to the y coordinate of the point.

[in]sz

Pointer to the z coordinate of the point.

[out]rx

Pointer to the x coordinate of the result point.

[out]ry

Pointer to the y coordinate of the result point.

[out]rz

Pointer to the z coordinate of the result point.

This is a blocking API. Returns


Definition at line 281 of file components/device/silabs/si91x/wireless/crypto/ecdh/inc/sl_si91x_ecdh.h