Merge pull request #5842 from SparkiDev/sp_int_clang_tidy

SP int: fixes for static analyser clang-tidy
This commit is contained in:
David Garske
2022-12-02 07:42:00 -08:00
committed by GitHub
2 changed files with 220 additions and 193 deletions

File diff suppressed because it is too large Load Diff

View File

@ -821,138 +821,149 @@ MP_API int sp_grow(sp_int* a, int l);
MP_API void sp_zero(sp_int* a); MP_API void sp_zero(sp_int* a);
MP_API void sp_clear(sp_int* a); MP_API void sp_clear(sp_int* a);
MP_API void sp_forcezero(sp_int* a); MP_API void sp_forcezero(sp_int* a);
MP_API int sp_init_copy (sp_int* r, sp_int* a); MP_API int sp_init_copy (sp_int* r, const sp_int* a);
MP_API int sp_copy(const sp_int* a, sp_int* r); MP_API int sp_copy(const sp_int* a, sp_int* r);
MP_API int sp_exch(sp_int* a, sp_int* b); MP_API int sp_exch(sp_int* a, sp_int* b);
MP_API int sp_cond_swap_ct(mp_int * a, mp_int * b, int c, int m); MP_API int sp_cond_swap_ct(sp_int* a, sp_int* b, int cnt, int swap);
#ifdef WOLFSSL_SP_INT_NEGATIVE #ifdef WOLFSSL_SP_INT_NEGATIVE
MP_API int sp_abs(sp_int* a, sp_int* b); MP_API int sp_abs(const sp_int* a, sp_int* r);
#endif #endif
#ifdef WOLFSSL_SP_MATH_ALL #ifdef WOLFSSL_SP_MATH_ALL
MP_API int sp_cmp_mag(sp_int* a, sp_int* b); MP_API int sp_cmp_mag(const sp_int* a, const sp_int* b);
#endif #endif
MP_API int sp_cmp(sp_int* a, sp_int* b); MP_API int sp_cmp(const sp_int* a, const sp_int* b);
MP_API int sp_is_bit_set(sp_int* a, unsigned int b); MP_API int sp_is_bit_set(const sp_int* a, unsigned int b);
MP_API int sp_count_bits(const sp_int* a); MP_API int sp_count_bits(const sp_int* a);
#if defined(HAVE_ECC) && defined(HAVE_COMP_KEY) #if defined(HAVE_ECC) && defined(HAVE_COMP_KEY)
MP_API int sp_cnt_lsb(sp_int* a); MP_API int sp_cnt_lsb(const sp_int* a);
#endif #endif
MP_API int sp_leading_bit(sp_int* a); MP_API int sp_leading_bit(const sp_int* a);
MP_API int sp_set_bit(sp_int* a, int i); MP_API int sp_set_bit(sp_int* a, int i);
MP_API int sp_2expt(sp_int* a, int e); MP_API int sp_2expt(sp_int* a, int e);
MP_API int sp_set(sp_int* a, sp_int_digit d); MP_API int sp_set(sp_int* a, sp_int_digit d);
MP_API int sp_set_int(sp_int* a, unsigned long n); MP_API int sp_set_int(sp_int* a, unsigned long n);
MP_API int sp_cmp_d(sp_int* a, sp_int_digit d); MP_API int sp_cmp_d(const sp_int* a, sp_int_digit d);
MP_API int sp_add_d(sp_int* a, sp_int_digit d, sp_int* r); MP_API int sp_add_d(const sp_int* a, sp_int_digit d, sp_int* r);
MP_API int sp_sub_d(sp_int* a, sp_int_digit d, sp_int* r); MP_API int sp_sub_d(const sp_int* a, sp_int_digit d, sp_int* r);
MP_API int sp_mul_d(sp_int* a, sp_int_digit d, sp_int* r); MP_API int sp_mul_d(const sp_int* a, sp_int_digit d, sp_int* r);
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY) || \ defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY) || \
defined(WC_MP_TO_RADIX) defined(WC_MP_TO_RADIX)
MP_API int sp_div_d(sp_int* a, sp_int_digit d, sp_int* r, sp_int_digit* rem); MP_API int sp_div_d(const sp_int* a, sp_int_digit d, sp_int* r,
sp_int_digit* rem);
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) || (defined(HAVE_ECC) && \ #if defined(WOLFSSL_SP_MATH_ALL) || (defined(HAVE_ECC) && \
defined(HAVE_COMP_KEY)) || defined(OPENSSL_EXTRA) defined(HAVE_COMP_KEY)) || defined(OPENSSL_EXTRA)
MP_API int sp_mod_d(sp_int* a, sp_int_digit d, sp_int_digit* r); MP_API int sp_mod_d(const sp_int* a, sp_int_digit d, sp_int_digit* r);
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC) #if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC)
MP_API int sp_div_2_mod_ct (sp_int* a, sp_int* b, sp_int* c); MP_API int sp_div_2_mod_ct(const sp_int* a, const sp_int* m, sp_int* r);
MP_API int sp_div_2(sp_int* a, sp_int* r); MP_API int sp_div_2(const sp_int* a, sp_int* r);
#endif #endif
MP_API int sp_add(sp_int* a, sp_int* b, sp_int* r); MP_API int sp_add(const sp_int* a, const sp_int* b, sp_int* r);
MP_API int sp_sub(sp_int* a, sp_int* b, sp_int* r); MP_API int sp_sub(const sp_int* a, const sp_int* b, sp_int* r);
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
(!defined(WOLFSSL_SP_MATH) && defined(WOLFSSL_CUSTOM_CURVES)) || \ (!defined(WOLFSSL_SP_MATH) && defined(WOLFSSL_CUSTOM_CURVES)) || \
defined(WOLFCRYPT_HAVE_ECCSI) || defined(WOLFCRYPT_HAVE_SAKKE) defined(WOLFCRYPT_HAVE_ECCSI) || defined(WOLFCRYPT_HAVE_SAKKE)
MP_API int sp_addmod(sp_int* a, sp_int* b, sp_int* m, sp_int* r); MP_API int sp_addmod(const sp_int* a, const sp_int* b, const sp_int* m,
sp_int* r);
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) && (!defined(WOLFSSL_RSA_VERIFY_ONLY) || \ #if defined(WOLFSSL_SP_MATH_ALL) && (!defined(WOLFSSL_RSA_VERIFY_ONLY) || \
defined(HAVE_ECC)) defined(HAVE_ECC))
MP_API int sp_submod(sp_int* a, sp_int* b, sp_int* m, sp_int* r); MP_API int sp_submod(const sp_int* a, const sp_int* b, const sp_int* m,
sp_int* r);
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC) #if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC)
MP_API int sp_submod_ct (sp_int* a, sp_int* b, sp_int* c, sp_int* d); MP_API int sp_submod_ct(const sp_int* a, const sp_int* b, const sp_int* m,
MP_API int sp_addmod_ct (sp_int* a, sp_int* b, sp_int* c, sp_int* d); sp_int* r);
MP_API int sp_addmod_ct(const sp_int* a, const sp_int* b, const sp_int* m,
sp_int* r);
#endif #endif
MP_API int sp_lshd(sp_int* a, int s); MP_API int sp_lshd(sp_int* a, int s);
#ifdef WOLFSSL_SP_MATH_ALL #ifdef WOLFSSL_SP_MATH_ALL
MP_API void sp_rshd(sp_int* a, int c); MP_API void sp_rshd(sp_int* a, int c);
#endif #endif
MP_API int sp_rshb(sp_int* a, int n, sp_int* r); MP_API int sp_rshb(const sp_int* a, int n, sp_int* r);
#if defined(WOLFSSL_SP_MATH_ALL) || !defined(NO_DH) || defined(HAVE_ECC) || \ #if defined(WOLFSSL_SP_MATH_ALL) || !defined(NO_DH) || defined(HAVE_ECC) || \
(!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY) && \ (!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY) && \
!defined(WOLFSSL_RSA_PUBLIC_ONLY)) !defined(WOLFSSL_RSA_PUBLIC_ONLY))
MP_API int sp_div(sp_int* a, sp_int* d, sp_int* r, sp_int* rem); MP_API int sp_div(const sp_int* a, const sp_int* d, sp_int* r, sp_int* rem);
#endif #endif
MP_API int sp_mod(sp_int* a, sp_int* m, sp_int* r); MP_API int sp_mod(const sp_int* a, const sp_int* m, sp_int* r);
MP_API int sp_mul(sp_int* a, sp_int* b, sp_int* r); MP_API int sp_mul(const sp_int* a, const sp_int* b, sp_int* r);
MP_API int sp_mulmod(sp_int* a, sp_int* b, sp_int* m, sp_int* r); MP_API int sp_mulmod(const sp_int* a, const sp_int* b, const sp_int* m,
sp_int* r);
MP_API int sp_invmod(sp_int* a, sp_int* m, sp_int* r); MP_API int sp_invmod(const sp_int* a, const sp_int* m, sp_int* r);
#if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC) #if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC)
MP_API int sp_invmod_mont_ct(sp_int* a, sp_int* m, sp_int* r, sp_int_digit mp); MP_API int sp_invmod_mont_ct(const sp_int* a, const sp_int* m, sp_int* r,
sp_int_digit mp);
#endif #endif
MP_API int sp_exptmod_ex(sp_int* b, sp_int* e, int digits, sp_int* m, MP_API int sp_exptmod_ex(const sp_int* b, const sp_int* e, int digits,
sp_int* r); const sp_int* m, sp_int* r);
MP_API int sp_exptmod(sp_int* b, sp_int* e, sp_int* m, sp_int* r); MP_API int sp_exptmod(const sp_int* b, const sp_int* e, const sp_int* m,
sp_int* r);
#if defined(WOLFSSL_SP_MATH_ALL) || defined(WOLFSSL_HAVE_SP_DH) #if defined(WOLFSSL_SP_MATH_ALL) || defined(WOLFSSL_HAVE_SP_DH)
MP_API int sp_exptmod_nct(sp_int* b, sp_int* e, sp_int* m, sp_int* r); MP_API int sp_exptmod_nct(const sp_int* b, const sp_int* e, const sp_int* m,
sp_int* r);
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) || defined(OPENSSL_ALL) #if defined(WOLFSSL_SP_MATH_ALL) || defined(OPENSSL_ALL)
MP_API int sp_div_2d(sp_int* a, int e, sp_int* r, sp_int* rem); MP_API int sp_div_2d(const sp_int* a, int e, sp_int* r, sp_int* rem);
MP_API int sp_mod_2d(sp_int* a, int e, sp_int* r); MP_API int sp_mod_2d(const sp_int* a, int e, sp_int* r);
MP_API int sp_mul_2d(sp_int* a, int e, sp_int* r); MP_API int sp_mul_2d(const sp_int* a, int e, sp_int* r);
#endif #endif
MP_API int sp_sqr(sp_int* a, sp_int* r); MP_API int sp_sqr(const sp_int* a, sp_int* r);
MP_API int sp_sqrmod(sp_int* a, sp_int* m, sp_int* r); MP_API int sp_sqrmod(const sp_int* a, const sp_int* m, sp_int* r);
MP_API int sp_mont_red(sp_int* a, sp_int* m, sp_int_digit mp); MP_API int sp_mont_red(sp_int* a, const sp_int* m, sp_int_digit mp);
MP_API int sp_mont_setup(sp_int* m, sp_int_digit* rho); MP_API int sp_mont_setup(const sp_int* m, sp_int_digit* rho);
MP_API int sp_mont_norm(sp_int* norm, sp_int* m); MP_API int sp_mont_norm(sp_int* norm, const sp_int* m);
MP_API int sp_unsigned_bin_size(const sp_int* a); MP_API int sp_unsigned_bin_size(const sp_int* a);
MP_API int sp_read_unsigned_bin(sp_int* a, const byte* in, word32 inSz); MP_API int sp_read_unsigned_bin(sp_int* a, const byte* in, word32 inSz);
MP_API int sp_to_unsigned_bin(sp_int* a, byte* out); MP_API int sp_to_unsigned_bin(const sp_int* a, byte* out);
MP_API int sp_to_unsigned_bin_len(sp_int* a, byte* out, int outSz); MP_API int sp_to_unsigned_bin_len(const sp_int* a, byte* out, int outSz);
#ifdef WOLFSSL_SP_MATH_ALL #ifdef WOLFSSL_SP_MATH_ALL
MP_API int sp_to_unsigned_bin_at_pos(int o, sp_int* a, unsigned char* out); MP_API int sp_to_unsigned_bin_at_pos(int o, const sp_int* a,
unsigned char* out);
#endif #endif
MP_API int sp_read_radix(sp_int* a, const char* in, int radix); MP_API int sp_read_radix(sp_int* a, const char* in, int radix);
MP_API int sp_tohex(sp_int* a, char* str); MP_API int sp_tohex(const sp_int* a, char* str);
MP_API int sp_todecimal(mp_int* a, char* str); MP_API int sp_todecimal(const sp_int* a, char* str);
#if defined(WOLFSSL_SP_MATH_ALL) || defined(WC_MP_TO_RADIX) #if defined(WOLFSSL_SP_MATH_ALL) || defined(WC_MP_TO_RADIX)
MP_API int sp_toradix(mp_int* a, char* str, int radix); MP_API int sp_toradix(const sp_int* a, char* str, int radix);
MP_API int sp_radix_size(mp_int* a, int radix, int* size); MP_API int sp_radix_size(const sp_int* a, int radix, int* size);
#endif #endif
MP_API int sp_rand_prime(sp_int* r, int len, WC_RNG* rng, void* heap); MP_API int sp_rand_prime(sp_int* r, int len, WC_RNG* rng, void* heap);
MP_API int sp_prime_is_prime(mp_int* a, int t, int* result); MP_API int sp_prime_is_prime(const sp_int* a, int t, int* result);
MP_API int sp_prime_is_prime_ex(mp_int* a, int t, int* result, WC_RNG* rng); MP_API int sp_prime_is_prime_ex(const sp_int* a, int t, int* result,
WC_RNG* rng);
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) #if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
MP_API int sp_gcd(sp_int* a, sp_int* b, sp_int* r); MP_API int sp_gcd(const sp_int* a, const sp_int* b, sp_int* r);
#endif #endif
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && \ #if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && \
(!defined(WC_RSA_BLINDING) || defined(HAVE_FIPS) || defined(HAVE_SELFTEST)) (!defined(WC_RSA_BLINDING) || defined(HAVE_FIPS) || defined(HAVE_SELFTEST))
MP_API int sp_lcm(sp_int* a, sp_int* b, sp_int* r); MP_API int sp_lcm(const sp_int* a, const sp_int* b, sp_int* r);
#endif #endif
WOLFSSL_API word32 CheckRunTimeFastMath(void); WOLFSSL_API word32 CheckRunTimeFastMath(void);
#ifdef WOLFSSL_CHECK_MEM_ZERO #ifdef WOLFSSL_CHECK_MEM_ZERO
WOLFSSL_LOCAL void sp_memzero_add(const char* name, mp_int* mp); WOLFSSL_LOCAL void sp_memzero_add(const char* name, sp_int* sp);
WOLFSSL_LOCAL void sp_memzero_check(mp_int* mp); WOLFSSL_LOCAL void sp_memzero_check(sp_int* sp);
#endif #endif