summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Rework loads and stores in ripemd.jsing2024-03-281-74/+53
| | | | | | | Replace loads with crypto_load_le32toh() or le32toh(). Use crypto_store_htole32() or htole32() for stores. ok joshua@ tb@
* Remove OPENSSL_UNISTD definetb2024-03-2813-39/+0
|
* Expand ROTATE macro to crypto_rol_u32().jsing2024-03-281-8/+10
|
* Include stdint.h since we use uint*_t types.jsing2024-03-281-1/+2
|
* Inline initial hash values.jsing2024-03-281-18/+11
|
* Remove no unnecessary do { } while (0);jsing2024-03-281-3/+1
|
* Inline HASH_MAKE_STRING.jsing2024-03-281-17/+20
| | | | No change to generated assembly.
* Expand HASH_* defines.jsing2024-03-281-26/+28
| | | | No change in generated assembly.
* Hide symbols in RC4joshua2024-03-283-1/+36
| | | | ok jsing tb beck
* Reorder functions.jsing2024-03-281-116/+115
| | | | No functional change.
* Tidy includes.jsing2024-03-281-5/+5
|
* Inline functions from md32_common.h.jsing2024-03-281-1/+101
| | | | No change in generated assembly.
* Load in the top of the loop, as we do for other hash implementations.jsing2024-03-282-20/+20
|
* Remove now unnecessary do { } while (0);jsing2024-03-281-3/+1
|
* Inline HASH_MAKE_STRING.jsing2024-03-281-14/+14
| | | | No change in generated assembly.
* Expand ROTATE macro to crypto_rol_u32().jsing2024-03-281-11/+16
|
* Demacro sha1.jsing2024-03-281-164/+252
| | | | | | | | | Replace macros with static inline functions and use names that follow the spec more closely. Unlike SHA256/SHA512, the functions and constants do not align with the number of words loaded, which means we cannot easily loop and just end up just unrolling everything. ok joshua@ tb@
* Inline initial hash values.jsing2024-03-281-12/+8
|
* Clean up various defines and prototypes.jsing2024-03-281-28/+2
| | | | | No assembly implementations remain, hence we can clean the mess up and replace it with a single static void function.
* Nuke more leftover GOST tendrils.beck2024-03-281-2/+1
| | | | ok tb@
* Tidy includes.jsing2024-03-281-4/+4
|
* Expand HASH_* defines.jsing2024-03-281-27/+29
| | | | No change to generated assembly.
* Reorder functions.jsing2024-03-281-109/+109
| | | | No functional change.
* Inline functions from md32_common.h for ripemd.jsing2024-03-281-1/+101
| | | | No change to generated assembly.
* Fix line wrapping.jsing2024-03-281-6/+4
|
* Remove fallback files that are now always included in the build.jsing2024-03-281-5/+1
|
* Move rc4.c to primary Makefile.jsing2024-03-2812-32/+14
| | | | This is now built on all platforms.
* Use C functions for RC4 public API.jsing2024-03-285-21/+52
| | | | | | | | | | | | | | Rather than having public API switch between C and assembly, always use C functions as entry points, which then call an assembly implementation (if available). This makes it significantly easier to deal with symbol aliasing/namespaces and it also means we benefit from vulnerability prevention provided by the C compiler. Rename the assembly generated functions from RC4() to rc4_internal() and RC4_set_key() to rc4_set_key_internal(). Always include rc4.c and change it to use defines that are similar to those used in BN. ok beck@ joshua@ tb@
* Check the return value of EVP_CIPHER_CTX_reset()tb2024-03-281-3/+5
| | | | | | | The function call can't actually fail, but all other calls check its return value. ok joshua jsing
* Move des sources to primary Makefile.jsing2024-03-2812-35/+13
| | | | | Now that all platforms use a C des implementation, move it to the primary Makefile.
* Remove now unused des assembly.jsing2024-03-283-2630/+0
|
* Stop building the assembly implementation of des on sparc64.jsing2024-03-281-6/+2
| | | | | | This one was hiding behind an m4 script. Build tested by tb@
* Remove now unused ripemd i386 assembly.jsing2024-03-281-591/+0
|
* Stop building the assembly implementation of des and ripemd on i386.jsing2024-03-281-6/+2
| | | | | | | | This is the only architecture that has an assembly implementation for these algorithms. There is little to gain from accelerating legacy algorithms on a legacy architecture. Discussed with beck@ and tb@
* Consolidate most of the AES modes into a single C file.jsing2024-03-286-293/+70
| | | | Discussed with tb@
* PKCS#1.5 PBE: test and assigntb2024-03-281-3/+2
|
* Remove unused rc4 parisc assembly.jsing2024-03-272-299/+1
| | | | This is already disabled since it is "about 35% slower than C code".
* Catch the blowfish that escaped.jsing2024-03-271-2/+2
|
* Consolidate rc4 code.jsing2024-03-2712-119/+50
| | | | Discussed with tb@
* Remove assembly for stitched modes.jsing2024-03-273-1756/+1
| | | | | The stitched modes have been removed, so having assembly for them is of little use.
* Remove empty rc4_local.h include.jsing2024-03-273-10/+2
| | | | Discussed with tb@
* Remove private_RC4_set_key() from the public rc4.h header.jsing2024-03-271-2/+1
| | | | This does not exist in libcrypto.
* Unifdef BF_PTR2.jsing2024-03-272-95/+4
| | | | | | This removes the unused Intel special version of BF_ENC(). ok tb@
* Remove unused c2l/c2ln/l2c/l2cn macros.jsing2024-03-271-47/+3
|
* Consolidate blowfish code.jsing2024-03-276-639/+381
| | | | Requested by tb@
* Replace GETU32 and PUTU32.jsing2024-03-272-29/+26
| | | | | | | | Replace GETU32 with crypto_load_be32toh() and PUTU32 with crypto_store_htobe32(). Make the offset handling cleaner at the same time. ok beck@ joshua@ tb@
* Remove now unused files.jsing2024-03-272-274/+0
|
* Move bf_enc.c to the primary Makefile.jsing2024-03-2712-34/+12
| | | | | Now that all architectures are using bf_enc.c, it does not make sense to have it in every Makefile.inc file.
* Stop building the assembly implementation of blowfish on i386.jsing2024-03-271-3/+2
| | | | | | | | This is the only architecture that has an assembly implementation. There is little to gain from accelerating a legacy algorithm on a legacy architecture. ok beck@ tb@
* Remove near duplicate AES_set_{encrypt,decrypt}_key() functions.jsing2024-03-271-208/+2
| | | | | | | | | | | | | | | There are currently three ways in which AES is implemented - all in assembly (amd64 et al), all in C (aarch64 et al) and, half in C and half in assembly (hppa and sparc64). The last of these cases currently makes use of a near duplicate AES_set_{encrypt,decrypt}_key() implementation that avoids using the AES tables. Remove the near duplicate version and if only a half assembly version is implemented, use the same C version of AES_set_{encrypt,decrypt}_key() as everyone else. This adds around 8KB of rodata to libcrypto on these two platforms. Discussed with beck and tb.