Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2023-03-25 | Change malloc chunk sizes to be fine grained. | otto | 1 | -102/+142 | |
The basic idea is simple: one of the reasons the recent sshd bug is potentially exploitable is that a (erroneously) freed malloc chunk gets re-used in a different role. malloc has power of two chunk sizes and so one page of chunks holds many different types of allocations. Userland malloc has no knowledge of types, we only know about sizes. So I changed that to use finer-grained chunk sizes. This has some performance impact as we need to allocate chunk pages in more cases. Gain it back by allocation chunk_info pages in a bundle, and use less buckets is !malloc option S. The chunk sizes used are 16, 32, 48, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 448, 512, 640, 768, 896, 1024, 1280, 1536, 1792, 2048 (and a few more for sparc64 with its 8k sized pages and loongson with its 16k pages). If malloc option S (or rather cache size 0) is used we use strict multiple of 16 sized chunks, to get as many buckets as possible. ssh(d) enabled malloc option S, in general security sensitive programs should. See the find_bucket() and bin_of() functions. Thanks to Tony Finch for pointing me to code to compute nice bucket sizes. ok tb@ | |||||
2023-03-25 | Use strict and warnings | tb | 1 | -1/+6 | |
2023-03-25 | Make an attempt at reducing the eyebleed in bn_prime.pl | tb | 1 | -24/+18 | |
Use a style more resembling KNF and drop lots of parentheses. Simplify a few things. No change in generated output on success. | |||||
2023-03-25 | Use Eric Young's usual license in the proper place rather than a weird | tb | 1 | -12/+57 | |
commented-out license stub in a HERE document. | |||||
2023-03-25 | Add RCSID | tb | 1 | -1/+1 | |
2023-03-25 | Add checks to ensure the uint16_t array isn't overflowed when this | tb | 1 | -0/+4 | |
script is run. This is more of an issue with uint16_t now than it was with prime_t aka BN_ULONG before r1.6. | |||||
2023-03-25 | Zap an empty line | tb | 1 | -2/+1 | |
2023-03-25 | Drop unnecessary casts from and to void * | tb | 1 | -8/+6 | |
2023-03-25 | Unindent asn1_bio_get_ex() | tb | 1 | -6/+7 | |
2023-03-25 | Guard GF2m-specifics with OPENSSL_NO_EC2M | tb | 1 | -2/+7 | |
2023-03-25 | Enable FRP256v2 tests | tb | 1 | -6/+2 | |
This was previously disabled because tb apparently can't grep. Exercise this curve as well as part of the new test cases in ECDH wycheproof. | |||||
2023-03-25 | Remove dead/unreachable code | tb | 1 | -7/+1 | |
A copy-paste error would have resulted in a modified msg in case ctLen == 0 or msgLen == 0. So obviously this is unreachable code. | |||||
2023-03-25 | Pull in <openssl/rsa.h> directly | tb | 1 | -1/+2 | |
This is needed for many reasons. It is currently pulled in via x509.h but only when OPENSSL_NO_DEPRECATED is undefined. Again this should be fixed in the public header as well. | |||||
2023-03-25 | BN_free() is defined in <openssl/bn.h> | tb | 2 | -4/+7 | |
This is currently pulled in via dsa.h and ecdsa.h, but only when OPENSSL_NO_DEPRECATED is not defined. We should fix this in the public header, too - let's wait a bit with that. | |||||
2023-03-18 | KNF: some missing spaces after comma | tb | 1 | -5/+5 | |
2023-03-18 | Rename bn_mod_exp_zero to the more appropriate bn_mod_exp | tb | 2 | -4/+4 | |
2023-03-18 | Retire the bn_mod_exp test. | tb | 2 | -222/+1 | |
Its is fully covered by bn_mod_exp_zero now. | |||||
2023-03-18 | Reimplement a variant of the bn_mod_exp tests from scratch | tb | 1 | -2/+202 | |
This exercises the same corner cases as bn_mod_exp and a few more. With input from jsing | |||||
2023-03-18 | fixes for mandoc -Tlint | jsg | 1 | -5/+5 | |
ok tb@ | |||||
2023-03-16 | Consistent phrasing: function -> function pointer | job | 1 | -2/+2 | |
2023-03-16 | Add X509_STORE_{set,get}_check_issued and X509_STORE_CTX_get_check_issued to ↵ | job | 1 | -3/+75 | |
manpage with and OK tb@ | |||||
2023-03-16 | Install EVP_CIPHER_meth_new.3 | tb | 1 | -1/+2 | |