Sean Parkinson
3455e726f9
SP int: make used and size fields unsigned
...
used and size have no reason to be negative - change type.
Change code to match unsigned change. Mostly change variables to be
unsigned where possible.
integer.c: Only have mp_rand_prime available when needed and
mp_prime_is_prime_ex is available.
Fixes from regression testing.
2023-02-03 17:09:56 +10:00
Sean Parkinson
f6da3a26ac
Ref counting: rework for static analysers
...
When always reference counting APIs always return 0 don't check return
value for error.
Reference decrement set isZero to false on error.
2023-02-03 10:13:32 +10:00
JacobBarthelmeh
9e9315f480
add sequence around algo parameters with authenvelop
2023-02-02 10:54:38 -08:00
David Garske
a4f55b01d6
Merge pull request #6041 from JacobBarthelmeh/seco
...
Fix to mask the argument for enc/dec flag used with GCM/CCM in CAAM+SECO build
2023-02-02 08:32:48 -08:00
Sean Parkinson
447991a9c2
Merge pull request #5949 from JacobBarthelmeh/Testing
...
add pragram around sanity check for vcpkg build warning
2023-02-02 10:34:14 +10:00
Sean Parkinson
55d43a46b8
SP int: sp_invmod_mont_ct check err before setting
...
Two places in sp_invmod_mont_ct were not checking err is set before
performing a new operation and setting err. Change to check error before
performing operation.
2023-02-02 08:45:45 +10:00
JacobBarthelmeh
d76195c52a
add fix GCM use with CAAM SECO
2023-02-01 14:42:39 -08:00
Daniel Pouzzner
a8a61fe6b7
evp.c: fix gating in wolfSSL_EVP_CIPHER_CTX_cleanup() to avoid switch-unreachable; also fix indentation.
2023-02-01 01:29:36 -06:00
Daniel Pouzzner
38c057a084
fix resource leak (missing calls to wc_AesFree()) in wolfSSL_EVP_CIPHER_CTX_cleanup();
...
fix file descriptor leaks in AF_ALG code, and fix return codes (WC_AFALG_SOCK_E, not -1) in afalg_aes.c;
fixes for sanitizer-detected forbidden null pointer args in AfalgHashUpdate() and AfalgHashCopy();
fixes for resource leaks in api.c test_wolfSSL_AES_cbc_encrypt() (missing wc_AesFree()s);
fixes for resource leaks in test.c openssl_test() (missing wolfSSL_EVP_CIPHER_CTX_cleanup());
also some local fixes for bugprone-signed-char-misuse, readability-redundant-preprocessor, and clang-diagnostic-strict-prototypes, in src/pk.c and src/ssl.c.
2023-02-01 00:49:34 -06:00
Anthony Hu
462f76c1ff
Merge pull request #6033 from dgarske/stm32_fixes
...
Fixes and cleanups for STM32
2023-01-31 12:13:13 -05:00
David Garske
9b6e787071
Merge pull request #6034 from gojimmypi/Espressif_fix_6024
...
ESP32 SHA384 fixes
2023-01-31 09:08:54 -08:00
David Garske
934d8e274f
Merge pull request #5926 from SparkiDev/openssl_ec_api_rework
...
EC OpenSSL compat: rework EC API
2023-01-31 09:08:26 -08:00
gojimmypi
53d6e79f89
ESP32 SHA384 fixes
2023-01-30 16:58:57 -08:00
David Garske
2d03a052e1
Fixes and cleanups for STM32:
...
* Fix for STM32 Hash peripherals (like on F437) with FIFO depth = 1.
* Cleanups for `XREALLOC` and new `WOLFSSL_NO_REALLOC` to force undef of `XREALLOC`.
* Change STM32 Cube to default to `NO_TLS_UART_TEST`.
2023-01-30 16:44:47 -08:00
Sean Parkinson
7691cd4b45
EC OpenSSL compat: rework EC API
...
Reworked the implementations of the EC APIs including:
wolfSSL_EC_curve, wolfSSL_EC_METHOD, wolfSSL_EC_GROUP,
wolfSSL_EC_POINT, wolfSSL_EC_KEY, wolfSSL_ECDSA_SIG, wolfSSL_ECDSA and
wolfSSL_ECDH.
Added support for EC parameters to PEM decoding.
EccEnumToNID() moved out of wolfCrypt - it maps NIDs defined in
wolfssl/openssl/ec.h to those in wolfssl/wolfcrypt/ecc.h.
Moved wc_OBJ_sn2nid() out of wolfCrypt - implementation uses
EccEnumToNID().
Changed reference counding to use wolfSSL_Ref.
Added tests to api.c that increase coverage of EC APIs.
2023-01-31 10:19:57 +10:00
David Garske
08538b69f3
Merge pull request #6016 from SparkiDev/sp_dh_agree_uinit
...
DH and SP: sp_DhExp_* called with uninitialized outLen
2023-01-30 15:56:46 -08:00
Sean Parkinson
7cdf5c7956
SP Aarch64 ECC P256: mont reduce fix
...
For Montgomery Reduction of P256: Don't set x10 and x11 to words of mu
<< 32. x11 is needed later and there are plenty of registers.
2023-01-30 11:14:12 -08:00
David Garske
420f2f45c1
Merge pull request #6019 from SparkiDev/sp_arm64_cc
...
SP Aarch64: conditional changed in asm needs "cc"
2023-01-30 11:06:53 -08:00
András Fekete
d72ea6101f
Merge pull request #6027 from SparkiDev/sp_int_div_small
...
SP int: div small static code analysis change
2023-01-30 10:34:05 -05:00
Sean Parkinson
0e16d2919f
Merge pull request #6022 from douzzer/20230127-fixes
...
20230127-fixes
2023-01-30 08:46:42 +10:00
Sean Parkinson
08afe6a404
SP int: div small static code analysis change
...
_sp_div_small: Make it explicit as possible that we only want the bottom
digit of the product subtracted from the bottom word of t. Top digit is
unnecessary and more cycles used if calculated.
2023-01-30 08:40:45 +10:00
David Garske
6e9d956a49
Merge pull request #6021 from kareem-wolfssl/zd15544
...
Fix for building with ASN template and `NO_ASN_TIME`
2023-01-27 18:19:19 -08:00
Kareem
c70ca25282
Fix building NO_ASN_TIME with cert gen and OpenSSL Extra enabled.
2023-01-27 16:09:04 -07:00
Daniel Pouzzner
d077c39f42
wolfcrypt/test/test.c: in aes_xts_128_test(), gate in-place test on !HAVE_FIPS || FIPS_VERSION_GE(5,3); in hpke_test(), gate tests on availability of relevant ECC curve, not just on relevant digest.
2023-01-27 16:49:46 -06:00
Daniel Pouzzner
687bbeb712
wolfcrypt/src/port/arm/armv8-aes.c: harmonize arg validation in aarch64-armasm wc_AesCcm{En,De}crypt() with aes.c -- tolerate null in/out iff inSz==0.
2023-01-27 16:32:13 -06:00
Chris Conlon
f14c27f644
Fix SE050 RSA public key loading and RSA/ECC SE050 usage from TLS with WOLF_PRIVATE_KEY_ID
2023-01-27 14:28:47 -07:00
Kareem
4542eb0df1
Fix NO_ASN_TIME support for ASN template, also fix expired certificate unit tests with NO_ASN_TIME defined.
2023-01-27 12:39:53 -07:00
Sean Parkinson
f61938a882
SP Aarch64: conditional changed in asm needs "cc"
...
Add "cc" to asm that changes the conditional flags.
2023-01-27 16:33:06 +10:00
Sean Parkinson
134d4cca67
DH and SP: sp_DhExp_* called with uninitialized outLen
...
Fix for GeneratePublicDh was not right in #6002 .
sp_DhExp_* are called from multiple functions.
Sometimes outLen contains a value and sometimes not.
Check public key output size in GeneratePublicDh before calling SP.
2023-01-27 10:13:56 +10:00
David Garske
06509021ff
Merge pull request #6013 from douzzer/20230125-various-fixes
...
20230125-various-fixes
2023-01-26 15:10:18 -08:00
David Garske
58c2fe1c40
Merge pull request #6011 from SparkiDev/xts_in_place_enc_fix
...
AES XTS: encrypt not handling in-place properly
2023-01-26 14:04:58 -08:00
Andras Fekete
5b36d5235c
Always check to make sure 'sigCheckBuf' is within range
2023-01-26 16:23:39 -05:00
Andras Fekete
eaeff1e7c2
Avoid "use after free" error
2023-01-26 16:23:39 -05:00
Andras Fekete
3cfaa4c1ff
Handle return value
2023-01-26 16:23:39 -05:00
Daniel Pouzzner
f776371874
wolfcrypt/src/hpke.c: add PRIVATE_KEY_{UNLOCK,LOCK}() wrappers in wc_HpkeSealBase() and wc_HpkeOpenBase();
...
wolfcrypt/test/test.c: remove PRIVATE_KEY_{UNLOCK,LOCK}() wrappers from hpke_test_single(), and do a smallstack refactor.
2023-01-26 15:00:56 -06:00
Daniel Pouzzner
78cc2c5c3e
wolfcrypt/src/port/af_alg/afalg_aes.c: in wc_AesCbc{En,De}crypt(), handle WOLFSSL_AES_CBC_LENGTH_CHECKS as in wolfcrypt/aes.c; in wc_AesGcm{En,De}crypt(), truncate ivSz to WC_SYSTEM_AESGCM_IV if necessary.
2023-01-25 23:36:01 -06:00
Daniel Pouzzner
8f2ae77513
wolfcrypt/test/test.c: add missing PRIVATE_KEY_UNLOCK()/PRIVATE_KEY_LOCK() in hpke_test_single().
2023-01-25 23:32:55 -06:00
David Garske
584411f21a
Merge pull request #6012 from kareem-wolfssl/zd15524
...
Fix building FIPSv2 with WOLFSSL_ECDSA_SET_K defined.
2023-01-25 18:59:38 -08:00
Kareem
c9125f9685
Fix building FIPSv2 with WOLFSSL_ECDSA_SET_K defined.
2023-01-25 14:49:05 -07:00
David Garske
7e1aecfe4c
Merge pull request #6001 from SparkiDev/dsa_sign_sig_size
...
DSA sign: use mp_to_unsigned_bin_len
2023-01-25 11:59:27 -08:00
David Garske
becedd41c9
Merge pull request #6000 from SparkiDev/dsa_force_zero
...
DSA: Don't force zero MPs on memory allocation failure
2023-01-25 11:59:13 -08:00
Sean Parkinson
e9af0136b9
AES XTS: encrypt not handling in-place properly
...
Fix AES XTS in-place encrypt to work when ciphertext stealing.
2023-01-25 09:32:37 +10:00
Daniel Pouzzner
b2c751a9ca
wolfcrypt/src/asn.c: fix a maybe-uninitialized found by clang --enable-asn=template.
2023-01-24 14:00:22 -06:00
David Garske
a21c3a3c89
Merge pull request #6005 from SparkiDev/ecc_fp_alloc_fail_oob_1
...
ECC FP_ECC: zeroize when value set
2023-01-24 07:57:53 -08:00
Sean Parkinson
a5adfcd5ca
ECC FP_ECC: zeroize when value set
...
accel_fp_mul was zeroizing an uninitialized MP - tk.
Add boolean, indicating to zeroize, that is set when a value is set.
2023-01-24 10:28:49 +10:00
Sean Parkinson
e34027ec76
SP EC ASM: mod_mul_norm fix
...
Handle corner case of overflow in last 32-bit word.
2023-01-24 10:12:32 +10:00
Sean Parkinson
4592f1a5b4
EC scalar mult with SP Math: fix scalar length check
...
The support curves in SP all have an order length the same as modulus
length. The scalar cannot be larger than the order and so fix the check.
2023-01-24 09:23:19 +10:00
David Garske
4b8ab2550d
Merge pull request #6004 from jpbland1/hpke-disable-harden
...
update hpke to not use rng with ecc when hardening is off
2023-01-23 15:09:30 -08:00
John Bland
44ca98f5b3
add missing NULL checks and remove rng pointer when not needed
2023-01-23 16:03:58 -05:00
David Garske
a24a1c8530
Merge pull request #5924 from SparkiDev/ref_cnt_update
...
Ref count: change to use wolfSSL_Ref
2023-01-23 08:33:37 -08:00