Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions components/drivers/hwcrypto/hw_bignum.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ void rt_hwcrypto_bignum_free(struct hw_bignum_mpi *n)
{
if (n)
{
rt_memset(n->p, 0xFF, n->total);
rt_free(n->p);
n->sign = 0;
n->total = 0;
Expand Down Expand Up @@ -144,9 +145,9 @@ int rt_hwcrypto_bignum_export_bin(struct hw_bignum_mpi *n, rt_uint8_t *buf, int
* @param buf Buffer for the binary number
* @param len Length of the buffer
*
* @return RT_EOK on success.
* @return import length.
*/
rt_err_t rt_hwcrypto_bignum_import_bin(struct hw_bignum_mpi *n, rt_uint8_t *buf, int len)
int rt_hwcrypto_bignum_import_bin(struct hw_bignum_mpi *n, rt_uint8_t *buf, int len)
{
int cp_len, i, j;
void *temp_p;
Expand All @@ -162,11 +163,13 @@ rt_err_t rt_hwcrypto_bignum_import_bin(struct hw_bignum_mpi *n, rt_uint8_t *buf,
{
return 0;
}
rt_memset(temp_p, 0, len);
rt_free(n->p);
n->p = temp_p;
n->total = len;
}

n->sign = 1;
rt_memset(n->p, 0, n->total);
cp_len = n->total > len ? len : n->total;

for(i = cp_len, j = 0; i > 0; i--, j++)
Expand Down
6 changes: 3 additions & 3 deletions components/drivers/hwcrypto/hw_bignum.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ struct hwcrypto_bignum;
/* bignum obj */
struct hw_bignum_mpi
{
int sign; /**< integer sign */
int sign; /**< integer sign. -1 or 1 */
rt_size_t total; /**< total of limbs */
rt_uint8_t *p; /**< pointer to limbs */
};
Expand Down Expand Up @@ -108,9 +108,9 @@ int rt_hwcrypto_bignum_export_bin(struct hw_bignum_mpi *n, rt_uint8_t *buf, int
* @param buf Buffer for the binary number
* @param len Length of the buffer
*
* @return RT_EOK on success.
* @return import length.
*/
rt_err_t rt_hwcrypto_bignum_import_bin(struct hw_bignum_mpi *n, rt_uint8_t *buf, int len);
int rt_hwcrypto_bignum_import_bin(struct hw_bignum_mpi *n, rt_uint8_t *buf, int len);

/**
* @brief x = a + b
Expand Down