Ver Fonte

[drivers][hwcrypto] Correct function return value definition (#5984)

Tangyuxin há 3 anos atrás
pai
commit
ccfd2c3b28

+ 6 - 3
components/drivers/hwcrypto/hw_bignum.c

@@ -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;
@@ -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;
@@ -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++)

+ 3 - 3
components/drivers/hwcrypto/hw_bignum.h

@@ -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 */
 };
@@ -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