summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509 (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-11-22Garbage collect the now unused totalnumtb1-5/+2
2024-11-22Move wNAF[], wNAF_len[], wsize[] to the stacktb1-32/+6
Again, we know their sizes (always 2), so we can avoid allocating and freeing them. Also remove the extra "pivot" element. It's not needed. ok djm
2024-11-22Change 0 - digit to -digittb1-2/+2
pointed out by jsing
2024-11-22Rename val_sub[] into row[] and move it to the stacktb1-15/+13
ok djm
2024-11-21ec_wNAF_mul(): lose two levels of indentationtb1-17/+18
This makes the mess a bit more readable. ok jsing
2024-11-21ec_wNAF_mul(): remove r_is_at_infinity sillinesstb1-25/+20
All the EC_POINT_* API has a fast path for the point at infinity. So we're not gaining more than a few cycles by making this terrible mess even more terrible than it already is by avoding calls ot it (it's also incorrect as it is since we don't know that the point is no longer at infinity when it is unset). Simplify and add a comment explaining what this mess is doing. ok jsing
2024-11-17ec_lib: zap a useless commenttb1-3/+1
2024-11-17Minor simplifications in ec_cmp()tb1-11/+9
2024-11-17Rewrite EC_GROUP_cmp()tb1-51/+75
Use better variable names (cf. https://jmilne.org/math/tips.html#4) and avoid the weird style of assigning to r (what does r stand for anyway?) and short circuiting subsequent tests using if (r || ...). Also, do not reuse the variables for order and cofactor that were previously used for the curve coefficients. ok jsing
2024-11-16Simplify signature of ec_wNAF_mul()tb3-56/+30
The only caller passes in num = 1 and is itself called in a path that ensures that the multiplier of the generator is != NULL. Consequently we don't need to deal with an array of points and an array of scalars so rename them accordingly. In addition, the change implies that numblocks and num_scalar are now always 1, so inline this information and take a first step towards disentangling this gordian knot. ok jsing
2024-11-16Provide a SHA-256 assembly implementation for amd64 using SHA-NI.jsing3-2/+220
This provides a SHA-256 assembly implementation for amd64, which uses the Intel SHA Extensions (aka SHA New Instructions or SHA-NI). This provides a 3-5x performance gain on some Intel CPUs and many AMD CPUs. ok tb@
2024-11-16Remove sha512-x86_64.pl.jsing1-347/+0
Now that we have replacement SHA-256 and SHA-512 assembly implementations for amd64, sha512-x86_64.pl can go the way of the dodo.
2024-11-16Provide a replacement assembly implementation for SHA-512 on amd64.jsing3-6/+336
Replace the perlasm generated SHA-512 assembly with a more readable version and the same C wrapper introduced for SHA-256. As for SHA-256, on a modern CPU the performance is largely the same. ok tb@
2024-11-16Add CPU capability detection for the Intel SHA extensions (aka SHA-NI).jsing2-5/+27
This also provides a crypto_cpu_caps_amd64 variable that can be checked for CRYPTO_CPU_CAPS_AMD64_SHA. ok tb@
2024-11-16Specify size for K256 symbol.jsing1-1/+2
Missing sizes spotted by guenther@
2024-11-16Merge ec_kmeth into ec_keytb3-331/+272
2024-11-16Shuffle the global default_ec_key_meth down a few linestb1-3/+3
2024-11-16Move the default EC_KEY_METHOD to the end of the filetb1-50/+50
2024-11-15Use a better curve and a better hash for the ECDSA_do_sign() exampletb1-9/+9
(Many examples in this directory are really bad. This is no exception.)
2024-11-15ec_mult: fix includestb1-2/+5
2024-11-15EC_KEY_copy() don't leave stale private keys in placetb1-6/+3
As most other objects, EC_KEYs can be as sparsely and invalidly populated as imagination permits and the competent designers of EC_KEY_copy() chose to just copy over what's available (yeah, what kind of copy is that?) and leave in place what happens to be there. In particular, if the dest EC key was used with a different group and has a private key, but the source key doesn't, the dest private key remains intact, as invalid, incompatible and unusable as it may be. Fix this by clearing said private key. ok jsing
2024-11-14x509_policy.c: point at RFC 9618tb1-3/+3
2024-11-14eck_prn: some more air to breathetb1-1/+3
2024-11-14eck_prn: fix includestb1-2/+4
2024-11-14ec_prn: use pkey rather than pk for an EC_KEYtb1-11/+11
2024-11-14eck_prn: use group rather than x for an EC_GROUPtb1-3/+3
2024-11-14eck_prn: use ec_key rather than x for an EC_KEYtb1-9/+9
2024-11-14eck_prn: consistently use bio for a BIO rather than b and bp randomlytb1-43/+43
2024-11-14eck_prn: sprinkle some empty lines and drop some parens for consistencytb1-7/+23
2024-11-14eck_prn: shuffle printing functions into a better ordertb1-47/+47
2024-11-13AES_{decrypt,encrypt}() don't return void internal functiontb1-3/+3
"A return statement with an expression shall not appear in a function whose return type is void." ok deraadt miod
2024-11-12The subject of a certificate is not optionaltb1-2/+2
A certificate must have a subject, so X509_get_subject_name() cannot return NULL on a correctly parsed certificate, even if the subject is empty (which is allowed). So if X509_get_subject_name() returns NULL, error instead of silently ignoring it in tls_check_common_name(). This is currently no issue. Where it matters, the match against the common name will fail later, so we fail closed anyway. ok jsing
2024-11-12Link the new manual page EVP_PKEY_new_CMAC_key(3) to the buildschwarze2-29/+5
and purge the superseded information from the algorithm-independent page EVP_PKEY_new(3).