| Commit message (Collapse) | Author | Files | Lines |
|
|
|
Switch argument order and use sizeof(*ctx) rather than sizeof(struct ...).
ok jsg
|
|
ok jsg
|
|
enctmp is only allocated if saltlen > 0, so there is no harm in checking
for that, but it's also pointless. Unconfuses smatch who thinks there
might be a memory leak:
pem/pvkfmt.c:808 do_PVK_body() warn: possible memory leak of 'enctmp'
found by jsg
|
|
Remove unnecessary and inconsistent NULL check for 'it', which the only
caller, asn1_item_print_ctx(), already dereferenced.
found by jsg
ok kenjiro
|
|
|
|
|
|
The old default is still available with rc2-40.
https://github.com/pyca/cryptography/issues/12949
https://github.com/libressl/portable/issues/1168
ok kenjiro
|
|
The old default is still available with "des3"
https://github.com/pyca/cryptography/issues/12949
https://github.com/libressl/portable/issues/1168
ok kenjiro
|
|
classes_new is an array of pointers to struct crypto_ex_data, not
an array of struct crypto_ex_data_index, so this overallocated by
240 or 480 bytes on ILP32 or LP64, respectively.
found by jsg using smatch
ok jsing
|
|
There is an old trap that you must not call EVP_*Final() when
using AES-CCM. While encrypting this happens to be a noop and
succeeds, but when decrypting, the call fails. This behavior
changed in OpenSSL and BoringSSL, making the trap even worse
since we now fail when the others succeed.
This is an adaptation of OpenSSL commit 197421b1 to fix this.
See also https://github.com/sfackler/rust-openssl/pull/1805#issuecomment-2734788336
ok beck kenjiro
|
|
|
|
libdes is dead, Jim. Only its successors continue to haunt us.
discussed with jsing
|
|
This was the header guard for des_old.h introduced in 2002 and removed
in 2014. The header guard for des.h is HEADER_NEW_DES_H for the sake of
inconsistency (ostensibly due to backward compat concerns with libdes).
ok jsing
|
|
md2.h left on Apr 15, 2014, along with jpake and seed. In particular,
HEADER_MD2_H is never defined. These bits have been dead ever since.
ok jsing
|
|
This currently only tests the behavior for successful protocol negotiations
since the test expects all handshakes to complete.
|
|
RFC 7301, section 3.2: In the event that the server supports no
protocols that the client advertises, then the server SHALL respond
with a fatal "no_application_protocol" alert.
This change makes tlsext_alpn_server_process() send the alert
rather than pretending no callback was present.
ok jsing
|
|
by my previous commit.
|
|
And switch test___freadahead to use another version that uses fflush().
|
|
POSIX-2008 requirements for setting the underlying file position when
flushing read-mode streams, and make an fseek()-after-fflush() not
change the underlying file position. This commit fixes some minor
problems of the previous.
previous diff from guenther
Much testing, review, assistence form tb@
ok tb@ millert@ for the previous
ok asou
|
|
|
|
|
|
Replace memcmp() with timingsafe_memcmp() for authentication tag
comparison in AES-CCM, GCM, PKCS12 and AES key unwrap code paths
to ensure constant-time behavior and avoid potential timing side
channels.
This aligns with OpenSSL 1e4a355.
ok tb@
|
|
Extend aes_test.c to include non-EVP tests for AES CFB128 and OFB128 modes
using AES_cfb128_encrypt() and AES_ofb128_encrypt(). These additions improve
test coverage by exercising the low-level interfaces with the same vectors
used in the EVP-based tests.
ok tb@
|
|
via/ok jsg
|
|
found with smatch, ok tb@
|
|
ok kenjiro
|
|
Add missing BN_CTX_end() and free prod_Z.
CID 552848 (for prod_Z)
|
|
|
|
Silences an annoying warning when running tests with ASAN.
|
|
|
|
|
|
This no longer uses basenam, so we can drop this header which isn't
available on Windows.
|
|
BIO_new(BIO_s_mem()) now allocates this pointer, so we need to free it
before assigning to it.
|
|
|
|
The __attribute__ is part of the function declaration, hence drop the
incorrect early semicolons. Fixes the build of the md test on sparc64.
In file included from /usr/src/regress/lib/libcrypto/md/md_test.c:25:
/usr/src/regress/lib/libcrypto/md/../test/test.h:61: warning: empty declaration
/usr/src/regress/lib/libcrypto/md/../test/test.h:77: warning: empty declaration
/usr/src/regress/lib/libcrypto/md/../test/test.h:114: warning: empty declaration
|
|
test_init() calls test_new(NULL, NULL), which leads to a segfault.
llvm 16 optimizes this away with -O2, however gcc 4.2.1 on sparc64
doesn't. Fix this by only inheriting the out FILE from the parent
if the latter is non-NULL.
|
|
|
|
feature to terminate the program when out of memory. Application code
should always handle failure of library functions properly. So if you
want your program to terminate, write something like
| p = malloc(...);
| if (p == NULL)
| err(1, NULL);
and don't abuse malloc_options.
Direction suggested by otto@ after anton@ pointed out that this very old
text still used an outdated data type for malloc_options and potentially
failed to define its value at compile time.
OK otto@
|
|
These formerly public functions have only ever been called from
EVP_CIPHER_asn1_to_param() and EVP_CPIHER_param_to_asn1(), either
directly if the EVP_CIPH_FLAG_DEFAULT_ASN1 flag is set, or indirectly
when set as the .[gs]et_asn1_parameters() method of the EVP_CIPHER.
This commit removes their use in .[gs]et_asn1_parameters() dating back
to long before the EVP_CIPH_FLAG_DEFAULT_ASN1 was introduced in 2010.
This way the only remaining consumer of .[gs]et_asn1_parameters() is RC2.
ok jsing
|
|
(comment tweak, no code change)
|
|
|
|
Remove the UNALIGNED_MEMOPS_ARE_FAST from AES-IGE, which can result in
implementation defined behaviour on i386/amd64. While we could keep this
purely for aligned inputs and outputs, it's probably not that important
and can be redone in a simpler form later if we want to do so.
ok tb@
|
|
|
|
pushed-back wchar_t chars.
|
|
|
|
Discussed with tb@
|
|
This makes use of EC_FIELD_ELEMENT to perform fixed width constant
time operations.
Addition and doubling of points makes use of the formulas from
"Complete addition formulas for prime order elliptic curves"
(https://eprint.iacr.org/2015/1060). These are complete and
operate in constant time.
Further work will continue in tree.
ok tb@
|
|
Provide EC_FIELD_ELEMENT and EC_FIELD_MODULUS, which allow for operations
on fixed width fields in constant time. These can in turn be used to
implement Elliptic Curve cryptography for prime fields, without needing
to use BN. This will improve the code, reduces timing leaks and enable
further optimisation.
ok beck@ tb@
|
|
Rename Time_F to time_f and tidy up implementation and usage.
time_f still uses app_timer_{user,real}, which I will clean up in a
future commit.
ok jsing
|