diff options
| author | jsing <> | 2023-01-14 15:23:27 +0000 |
|---|---|---|
| committer | jsing <> | 2023-01-14 15:23:27 +0000 |
| commit | e182204c3487929ef9f6791554e79586f4d30335 (patch) | |
| tree | fe78146c3f1d3c3f0ea9d686c786d98adbffd2a5 /src/lib/libcrypto/dsa/dsa_ossl.c | |
| parent | c7e19cbb75fe692cd817ae687a82be6f371af4a1 (diff) | |
| download | openbsd-e182204c3487929ef9f6791554e79586f4d30335.tar.gz openbsd-e182204c3487929ef9f6791554e79586f4d30335.tar.bz2 openbsd-e182204c3487929ef9f6791554e79586f4d30335.zip | |
Rewrite BN_CTX.
The current BN_CTX implementation is an incredibly overengineered piece of
code, which even includes its own debug system.
Rewrite BN_CTX from scratch, simplifying things things considerably by
having a "stack" of BIGNUM pointers and a matching array of group
assignments. This means that BN_CTX_start() and BN_CTX_end() effectively
do not fail. Unlike the previous implementation, if a failure occurs
nothing will work and the BN_CTX must be freed/recreated, instead of
trying to pick up at the point where the failure occurred (which does
not make sense given its intended usage).
Additionally, it has long been documented that BN_CTX_start() must be
called before BN_CTX_get() can be used, however the previous implementation
did not actually enforce this. Now that missing BN_CTX_start() and
BN_CTX_end() calls have been added to DSA and EC, we can actually make
this a hard requirement.
ok tb@
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa_ossl.c')
0 files changed, 0 insertions, 0 deletions
