| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
requested by jsing
|
|
|
|
|
|
|
|
| |
This is confusing, as both sides involved should be unsigned. The ec
code is undecided on whether the group order can be negative. It should
never be, so lets see what happen with this slightly stricter check.
discussed with jsing
|
|
|
|
|
|
|
| |
The checks whether r and s lie in the interval [1, order) were a bit
uglier than necessary. Clean this up.
ok beck jsing
|
| |
|
|
|
|
| |
ok beck jsing
|
|
|
|
| |
ok beck jsing
|
|
|
|
| |
ok beck jsing
|
|
|
|
| |
Requested by jsing
|
|
|
|
|
|
|
| |
Make it single exit and use API more idiomatically and some other
cosmetics.
ok beck jsing
|
|
|
|
| |
ok beck jsing
|
|
|
|
|
|
| |
These also get the EC_GROUP_get0_order() treatment
ok beck jsing
|
|
|
|
| |
ok beck jsing
|
|
|
|
|
|
|
| |
This code is way more complicated than it needs to be. Simplify. ec_bits()
was particularly stupid.
ok beck jsing
|
| |
|
|
|
|
|
|
|
|
| |
While I'm here, change the no_ssl2 and no_ssl3 options to use
OPTION_DISCARD as well instead of continuing to set a no-op
option flag.
ok jsing@ tb@
|
|
|
|
| |
ok jsing
|
|
|
|
| |
ok jsing
|
|
|
|
| |
ok tb@
|
| |
|
|
|
|
| |
They have gone behind the barn.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Instead of attempting to allocate a few times and only then check all the
returned pointers for NULL, allocate and check one after the othre. This
is easier on the eyes and what we usually do.
Prompted by a report by Ilya Shipitsin
ok beck
|
|
|
|
|
|
|
|
|
| |
This is not currently done in OpenSSL, but it looks more like something
that was mised rather than desired behavior. There are some thread safety
issues here, but those are rife in this codebase anyway (although I heard
claims on some versions of this lib being "fully threadsafe").
no objection jsing
|
|
|
|
|
|
|
|
|
|
|
|
| |
Their time has long since past, and they should not be used.
This change restricts ssl to versions 1.2 and 1.3, and changes
the regression tests to understand we no longer speak the legacy
protocols.
For the moment the magical "golden" byte for byte comparison
tests of raw handshake values are disabled util jsing fixes them.
ok jsing@ tb@
|
|
|
|
| |
ok & "happy pirate day" beck
|
|
|
|
|
|
|
|
|
| |
It is hard to get your return values right if you choose them to be a
random subset of {-2, ..., 3}. The item_verify() and the digestverify()
methods don't return 0 on error, but -1. Here 0 means "failed to verify",
obviously.
ok jsing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use static inline functions instead of macros to implement SHA-512. At
the same time, make two key changes - firstly, rather than trying to
outsmart the compiler and shuffle variables around, write the algorithm
the way it is documented and actually swap the variable contents. Secondly,
instead of interleaving the message schedule update and the round, do the
full message schedule update first, then process the round.
Overall, we get safer and more readable code. Additionally, the compiler
can generate smaller and faster code (with a gain of 5-10% across a range
of architectures).
ok beck@ tb@
|
| |
|
|
|
|
|
|
| |
... since ASN1_bn_print() is stupid.
ok jsing
|
|
|
|
|
|
|
|
|
| |
This function has two entirely independent parts, so instead of a huge
if/else just use two functions. In ecpk_print_explicity parameters() do
some additional boring cleanup such as switching to actually using the
local BN_CTX and shuffling things into a slightly more sensible order.
ok jsing
|
|
|
|
|
|
|
|
|
|
|
| |
Both these functions use a BN_CTX internally to deal with the EC API
that usually requires one. However, they don't actually make use of it.
Get the BIGNUMs from the BN_CTX instead, which simplifies the cleanup.
Also defer allocation of the ECDSA_SIG to the very end. Instead of using
its internal r and s, use two local r and s variables and transfer those
to the ECDSA_SIG on success.
ok beck jsing
|
| |
|
|
|
|
| |
suggested by jsing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to implement efficient squaring, we compute the sum of products
(omitting the squares), double the sum of products and then finally
compute and add in the squares. However, for reasons unknown the final
calculation was implemented as two separate steps.
Replace bn_sqr_words() with bn_sqr_add_words() such that we do the
computation in one step, avoid the need for temporary BN and remove
needless overhead. This gives us a performance gain across most
architectures (even with the loss of sse2 on i386, for example).
ok tb@
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This avoids some silly dances in ECDSA signature generation by replacing
them with a single API call. Also garbage collect the now unnecessary
range.
ok beck jsing
|
|
|
|
|
|
|
| |
While memset() is quite expensive, we can afford zeroing a few extra bytes
to make this code more readable.
ok beck jsing
|
|
|
|
|
|
|
| |
This adds a few logic curlies to end up setting the EVP_MD to EVP_md_null()
as required by the API. This way ASN1_item_sign() now knows how to behave.
"ok = (rv == 2);" beck
|
|
|
|
|
|
|
| |
After a few things in libcrypto were adjusted, this diff makes issuing
certificate requests with Ed25519 work.
ok beck
|
|
|
|
|
|
|
|
| |
With this change any requests from configurations to request
versions of tls before tls 1.2 will use tls 1.2. This prepares
us to deprecate tls 1.0 and tls 1.1 support from libssl.
ok tb@
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We need stdint.h for uintptr_t, stdlib.h for malloc, ec.h for various
things, but there's no need for objects. or sha.h.
|
| |
|
| |
|
| |
|
| |
|