Functions#
This section provides a reference to the ECDH Crypto API functions.
Functions#
Compute the ECDH point addition vector.
Compute the ECDH point subtraction vector.
Compute the ECDH point multiplication vector.
Compute the ECDH point double vector.
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.
[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
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
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.
[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
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
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.
[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 |
|
[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
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
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.
[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
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
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.
[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
sl_status_t. See https://docs.silabs.com/gecko-platform/4.1/common/api/group-status for details.
236
of file components/device/silabs/si91x/wireless/crypto/ecdh/inc/sl_si91x_ecdh.h