diff options
author | Joel Sing <jsing@cvs.openbsd.org> | 2023-01-14 15:23:28 +0000 |
---|---|---|
committer | Joel Sing <jsing@cvs.openbsd.org> | 2023-01-14 15:23:28 +0000 |
commit | 5f0e5580510a13b06e8e51b8d71023e8aab3274d (patch) | |
tree | de7bbb96b5ca9643cf7e7951dfbb0416f34dd166 /gnu/llvm | |
parent | 3205c380ee3e4c576882a600fd04b84d0188d895 (diff) |
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 'gnu/llvm')
0 files changed, 0 insertions, 0 deletions