| Commit message (Collapse) | Author | Files | Lines |
|
The version is passed to the test runner, so it can unmarshal the v0
and v1 JSON as appropriate later on.
|
|
|
|
In https://github.com/C2SP/wycheproof/pull/169, upstream removed the
testvector/ path, thereby creating the need to migrate if we want to
benefit from future changes and tests. While this has been around for
a very long time and generally provided more and better coverage, there
never was sufficient motivation to do so.
As a first step, change use of the testVectorPath constant to use of
a path variable so we can switch the tests one by one by appending _v1
when appropriate.
|
|
The old assembly bn_sqr_words() does not actually square words in the
bignum sense. These will have to be renamed (once I come up with a name
for whatever it actually does) before we can roll forward again.
Found the hard way by Janne Johansson.
|
|
|
|
Use bn_mul_words() and bn_montgomery_reduce_words(), rather than using
bn_montgomery_multiply_words(). This provides better performance on
architectures that have assembly optimised bn_mul_words(), such as amd64.
|
|
|
|
Use bn_sqr_words() and bn_montgomery_reduce_words(), rather than using
bn_montgomery_multiply_words(). This provides better performance on
architectures that have assembly optimised bn_sqr_words(), such as amd64.
ok tb@
|
|
This uses s2n-bignum's bignum_mul() and provides significant performance
gains for a range of multiplication sizes.
|
|
(for our purposes).
|
|
Not installed for nearly a decade since it only "documents" internal
functions and structs and the internal function doco gets more out of
sync with reality with every (much needed) pass over bn/
|
|
|
|
This was missed in the previous commit.
|
|
Most bn_.*_words() functions operate on two word arrays, however
bn_mul_words() and bn_mul_add_words() operate on one word array and
multiply by a single word. Rename these to bn_mulw_words() and
bn_mulw_add_words() to reflect this, following naming scheme that we use
for primitives.
This frees up bn_mul_words() to actually be used for multiplying two word
arrays. Rename bn_mul_normal() to bn_mul_words(), which will then become
one of the possible assembly integration points.
ok tb@
|
|
Rework some of the squaring code so that it calls bn_sqr_words() and use
this as the integration point for assembly. Convert bn_sqr_normal() to
bn_sqr_words(), which is then used on architectures that do not provide
their own version.
This means that we resume using the assembly version of bn_sqr_words() on
i386, mips64 and powerpc, which can provide considerable performance gains.
ok tb@
|
|
The code supporting this toggle has long been removed from all the forks.
discussed with jsing
|
|
|
|
|
|
|
|
I have effectively rewritten the entirety of this file end of 2024.
This isn't code I'm particularly proud of, but it's much better than
it was before (it's not as if that involved any sort of challenge...)
requested by/ok jsing
|
|
|
|
|
|
After drilling through many layers of fossilized turds from a
long-forgotten millenium, jsing and I finally found oil^Wa
machine-independent version of opensslconf.h.
Remove the no longer needed versions in arch/*/ and move one copy
to the top level. Add an RCS tag and place the remaining garbage
in the public domain.
ok jsing
|
|
|
|
|
|
|
|
|
|
Rides the libcrypto bump from a couple days ago
|
|
|
|
rides the libcrypto bump
|
|
|
|
|
|
This includes interfaces for public and private keys for ML-KEM 768
and 1024. Marshalling and parsing of public keys and parsing of the
wasteful NIST format of private keys (marshalling this private key
format is deliberately omitted from the public API). Decapsulation
and encapsulation of shared secrets.
This will soon be used to implement the X25519MLKEM768 hybrid key
agreement in libssl.
ok beck jsing
|
|
I was overeager to remove those a while back. This was dumb because
this is about a basic ASN.1 type. The Gentoo maintainers found that
tpm2-tools uses templated ASN.1 involving them.
Fixes https://github.com/libressl/portable/issues/1178
ok beck jsing
|
|
Removes another patch in portable
|
|
This allows us to get rid of an ugly patch in portable.
ok jsing
|
|
|
|
manpage, POSIX, C standards, and other OSes.
OK kettenis@, millert@
|
|
ok tb@
|
|
The RC4_CHUNK related code is intended to process native word sized
chunks if the input and output are naturally aligned. However, RC4_CHUNK
is currently a mess of machine dependent defines.
Replace this with uint64_t on all architectures - 64 bit architectures will
be happy with this and on 32 bit architectures the compiler can decompose
this into multiple 32 bit operations. Provide separate rc4_chunk()
implementations for big and little endian, since not all architectures
have a byte swap instruction that would make this a cheap conversion.
Thanks to gkoehler@ and tb@ for testing on big endian.
ok tb@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Adapt the tests to use this API.
This does not yet make the symbols public in Symbols.list
which will happen shortly with a bump.
This includes some partial rototilling of the non-public
interfaces which will be shortly continued when the internal
code is deduplicated to not have multiple copies for ML-KEM
768 and ML-KEM 1024 (which is just an artifact of unravelling
the boring C++ code).
ok jsing@, tb@
|