| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Removes another patch in portable
|
|
|
|
|
|
| |
This allows us to get rid of an ugly patch in portable.
ok jsing
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
| |
If ADX instructions are available, use the non-_alt version of s2n-bignum's
bignum_{mul,sqr}_{4_8,6_12,8_16}(), which are faster than the _alt
non-ADX versions.
ok tb@
|
|
|
|
|
|
|
| |
These use s2n-bignum's bignum_mul_6_12_alt() and bignum_sqr_6_12_alt()
functions.
ok tb@
|
|
|
|
|
|
| |
These use s2n-bignum's bignum_modadd() and bignum_modsub() routines.
ok tb@
|
|
|
|
|
|
|
| |
In these cases make use of bn_mul_comba6() or bn_sqr_comba6(), which are
faster than the normal path.
ok tb@
|
| |
|
|
|
|
|
|
|
|
| |
Add detection of Multi-Precision Add-Carry Instruction Extensions on amd64.
s2n-bignum provides a number of fast multiplication routines that can
leverage these instructions.
ok tb@
|
|
|
|
|
|
|
|
|
|
|
|
| |
Provide a static inline rc4_step() function that replaces the near
identical RC4_STEP and RC4_LOOP macros. Simplify the processing loop and
use for loops with small constants, which the compiler can unroll if it
wants to do so.
Inline the SK_LOOP macro in rc4_set_key_internal(), also using a small loop
that the compiler will most likely unroll.
ok tb@
|
| |
|
| |
|
| |
|
|
|
|
| |
These provide modular addition and subtraction.
|
|
|
|
|
|
|
| |
These provide fast multiplication and squaring of inputs with 4 words
or 8 words, producing an 8 or 16 word result. These versions require the
CPU to support ADX instructions, while the _alt versions that have
previously been imported do not.
|
|
|
|
|
|
| |
These provide fast multiplication and squaring of inputs with 6x words,
producing a 12 word result. The non-_alt versions require the CPU to
support ADX instructions, while the _alt versions do not.
|
| |
|
|
|
|
|
| |
Now that s2n-bignum has marked various inputs as const, we can do the same.
In most cases we were casting away const, which we no longer need to do.
|
|
|
|
|
| |
This effectively brings in new function prototypes, a chunk of const
additions and some new defines.
|
| |
|
|
|
|
| |
This amounts to whitespace changes and label renaming.
|
|
|
|
| |
ok tb@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/security/nss/lib/ckfw/builtins/certdata.txt
SHA256 (certdata.txt) = 579f336ace2e5717b8ecc06002ce0cce96f70623d188e1999c34b0f77696d3e9
Removals:
- /C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root
- /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
- /O=Entrust.net/OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Certification Authority (2048)
- /C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
- /C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
- /C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
- /C=US/OU=www.xrampsecurity.com/O=XRamp Security Services Inc/CN=XRamp Global Certification Authority
Addition:
+ /C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Trusted Network CA 2
|
|
|
|
|
|
|
|
| |
Use bn_{mul,sqr}_comba{4,6,8}() and bn_montgomery_reduce_words() for
specific input sizes. This is significantly faster than using
bn_montgomery_multiply_words().
ok tb@
|
|
|
|
|
|
| |
This allows for fast squaring of a 6 word array.
ok tb@
|
|
|
|
|
|
| |
This allows for fast multiplication of two 6 word arrays.
ok tb@
|
|
|
|
|
|
|
| |
This makes it consistent with bn_sqr_comba{4,8}() and simplifies an
upcoming change.
ok tb@
|
|
|
|
|
| |
Sort HISTORY chronologically.
No text change.
|
|
|
|
|
|
|
|
|
|
|
|
| |
reset on exec as preserving it across exec is not necessary for its
original purpose and has security and usability concerns.
Many thanks to Ricardo Branco (rbranco (at) suse.de) who did an
independent implementation, caught that /dev/fd/* needed to be
handled, and provided a port of the illumos test suite. Thanks
to tb@ for assistance with that.
ok deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the flockfile implementation in thread/rthread_file.c used an
external lock, and associated it with the relevant FILE * as needed.
this isn't great for a lot of reasons, complexity being the big
one, but the straw that broke the camels back is that it uses a
single spinlock to coordinate all of this, which in turn generates
a lot of sched_yield syscalls.
this avoids all the code complexity and the spinlock by just embedding
a small __rctmx in every FILE.
tested by and ok tb@ jca@
ok claudio@
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace simplistic non-constant time scalar multiplication with a constant
time version. This is actually faster since we compute multiples of the
point, then double four times and add once. The multiple to add is selected
conditionally, ensuring that the access patterns remain the same regardless
of value.
Inspired by Go's scalar multiplication code.
ok tb@
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
ri is an int, so the check relied on signed overflow (UB). It's not really
reachable, but shrug.
reported by smatch via jsg
ok beck jsing kenjiro
|
|
|
|
|
| |
Reported by smatch via jsg.
ok beck jsing kenjiro
|
|
|
|
|
| |
For now this still calls bn_montgomery_multiply_words(), however it can
be optimised further in the future.
|
|
|
|
| |
ok tb@
|
|
|
|
|
|
|
|
| |
Provide a ec_field_element_select() function that allows for constant time
conditional selection between two EC_FIELD_ELEMENTs. This will become a
building block for constant time point multiplication.
ok tb@
|
|
|
|
|
|
|
|
|
| |
This is nearly identical to CMS_add_simple_smimecap(). We can reuse
its doc comment mutatis mutandis and use the same construction.
Maybe this wants deduplicating. Maybe not.
ok kenjiro
|
|
|
|
|
|
|
|
|
|
|
| |
There's nothing really wrong here (at least when compared to the rest of
this file an hour or so ago), but we can make this look somewhat more like
code. That there's no bug here is not really related to the fact that it's
an add1 function, not an add0 one. In fact, it's kind of surprising that
the author had an uncharacteristic moment of lucidity and remembered to
free the last argument passed to PKCS7_add_signed_attribute() on failure.
ok kenjiro
|
|
|
|
|
|
|
|
|
| |
Since we finally found a use for i2d_X509_ALGORS(), make use of its
sibling here. This avoids some ridiculous contortions in not quite
peak muppet code (obviously this was a first test run for the grand
finale in CMS).
ok kenjiro
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
set0/add0 functions that can fail are the worst. Without fail this trips
up both users and authors (by and large these are two identical groups
consisting of a single person), resulting in leaks and double frees.
In today's episode of spelunking in the gruesome gore provided by the
PKCS#7 and Time-Stamp protocol "implementations", we fix a couple of
leaks in PKCS7_add_attrib_smimecap() and ESS_add_signing_cert().
We do so by recalling that there is i2d_X509_ALGORS(), so we might
as well put it to use instead of inlining it poorly (aka, without
error checking). Normalize said error checking and ensure ownership
is handled correctly in the usual single-exit idiom.
ESS_add_signing_cert() can also make use of proper i2d handling, so
it's simpler and correct and in the end looks pretty much the same
as PKCS7_add_attrib_smimecap().
ok kenjiro
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Given that RFC 5652 does not override the earlier (and simpler)
standards but instead strives to remain compatible, referencing
both the original and the latest versions seems helpful.
OK tb@
|