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)

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)

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)

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)

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)

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)

Compute the ECDH point addition vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t

[in]sx

Pointer to x coordinate of the point1 that needs to be added

[in]sy

Pointer to y coordinate of the point1 that needs to be added

[in]sz

Pointer to z coordinate of the point1 that needs to be added

[in]tx

Pointer to x coordinate of the point2 that needs to be added

[in]ty

Pointer to y coordinate of the point2 that needs to be added

[in]tz

Pointer to z coordinate of the point2 that needs to be added

[out]rx

Pointer to x coordinate of the result point

[out]ry

Pointer to y coordinate of the result point

[out]rz

Pointer to z coordinate of the result point

This is a blocking API. Returns


Definition at line 102 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)

Compute the ECDH point subtraction vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t

[in]sx

Pointer to x coordinate of the point1 that needs to be subtracted

[in]sy

Pointer to y coordinate of the point1 that needs to be subtracted

[in]sz

Pointer to z coordinate of the point1 that needs to be subtracted

[in]tx

Pointer to x coordinate of the point2 that needs to be subtracted

[in]ty

Pointer to y coordinate of the point2 that needs to be subtracted

[in]tz

Pointer to z coordinate of the point2 that needs to be subtracted

[out]rx

Pointer to x coordinate of the result point

[out]ry

Pointer to y coordinate of the result point

[out]rz

Pointer to z coordinate of the result point

This is a blocking API. Returns


Definition at line 138 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)

Compute the ECDH point multiplication vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t

[in]d

Pointer to scalar value that needs to be multiplied

[in]sx

Pointer to x coordinate of the point to be multiplied with scalar ‘d’

[in]sy

Pointer to y coordinate of the point to be multiplied with scalar ‘d’

[in]sz

Pointer to z coordinate of the point to be multiplied with scalar ‘d’

[in]affinity
  • 0 : no affinity

  • 1 : affinity on input

  • 2 : affinity on output

  • 3 : affinity on both input and output

[out]rx

Pointer to x coordinate of the result point

[out]ry

Pointer to y coordinate of the result point

[out]rz

Pointer to 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 178 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)

Compute the ECDH point double vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t

[in]sx

Pointer to x coordinate of the point1 that needs to be doubled

[in]sy

Pointer to y coordinate of the point1 that needs to be doubled

[in]sz

Pointer to z coordinate of the point1 that needs to be doubled

[out]rx

Pointer to x coordinate of the result point

[out]ry

Pointer to y coordinate of the result point

[out]rz

Pointer to z coordinate of the result point

This is a blocking API. Returns


Definition at line 209 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)

Compute the ECDH point affinity vector.

Parameters
[in]ecdh_mode

ECDH mode of type sl_si91x_ecdh_mode_t

[in]sx

Pointer to x coordinate of the point1

[in]sy

Pointer to y coordinate of the point1

[in]sz

Pointer to z coordinate of the point1

[out]rx

Pointer to x coordinate of the result point

[out]ry

Pointer to y coordinate of the result point

[out]rz

Pointer to z coordinate of the result point

This is a blocking API. Returns


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