mirror of
https://github.com/NixOS/nix
synced 2025-07-03 10:21:47 +02:00
* Optional switch "--with-openssl=<PATH>" to use OpenSSL's
implementations of MD5, SHA-1 and SHA-256. The main benefit is that we get assembler-optimised implementations of MD5 and SHA-1 (though not SHA-256 (at least on x86), unfortunately). OpenSSL's SHA-1 implementation on Intel is twice as fast as ours.
This commit is contained in:
parent
e8475bbd5b
commit
d6f586d0ea
7 changed files with 59 additions and 40 deletions
|
@ -26,7 +26,7 @@ typedef uint32_t md5_uint32;
|
|||
typedef uintptr_t md5_uintptr;
|
||||
|
||||
/* Structure to save state of computation between the single steps. */
|
||||
struct md5_ctx
|
||||
struct MD5_CTX
|
||||
{
|
||||
md5_uint32 A;
|
||||
md5_uint32 B;
|
||||
|
@ -45,21 +45,20 @@ struct md5_ctx
|
|||
|
||||
/* Initialize structure containing state of computation.
|
||||
(RFC 1321, 3.3: Step 3) */
|
||||
extern void md5_init_ctx __P ((struct md5_ctx *ctx));
|
||||
extern void MD5_Init __P ((struct MD5_CTX *ctx));
|
||||
|
||||
/* Starting with the result of former calls of this function (or the
|
||||
initialization function update the context for the next LEN bytes
|
||||
starting at BUFFER.
|
||||
It is necessary that LEN is a multiple of 64!!! */
|
||||
extern void md5_process_block __P ((const void *buffer, size_t len,
|
||||
struct md5_ctx *ctx));
|
||||
struct MD5_CTX *ctx));
|
||||
|
||||
/* Starting with the result of former calls of this function (or the
|
||||
initialization function update the context for the next LEN bytes
|
||||
starting at BUFFER.
|
||||
It is NOT required that LEN is a multiple of 64. */
|
||||
extern void md5_process_bytes __P ((const void *buffer, size_t len,
|
||||
struct md5_ctx *ctx));
|
||||
extern void MD5_Update __P ((struct MD5_CTX *ctx, const void *buffer, size_t len));
|
||||
|
||||
/* Process the remaining bytes in the buffer and put result from CTX
|
||||
in first 16 bytes following RESBUF. The result is always in little
|
||||
|
@ -68,7 +67,7 @@ extern void md5_process_bytes __P ((const void *buffer, size_t len,
|
|||
|
||||
IMPORTANT: On some systems it is required that RESBUF is correctly
|
||||
aligned for a 32 bits value. */
|
||||
extern void *md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
|
||||
extern void *MD5_Final __P ((void *resbuf, struct MD5_CTX *ctx));
|
||||
|
||||
|
||||
/* Put result from CTX in first 16 bytes following RESBUF. The result is
|
||||
|
@ -77,7 +76,7 @@ extern void *md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
|
|||
|
||||
IMPORTANT: On some systems it is required that RESBUF is correctly
|
||||
aligned for a 32 bits value. */
|
||||
extern void *md5_read_ctx __P ((const struct md5_ctx *ctx, void *resbuf));
|
||||
extern void *md5_read_ctx __P ((const struct MD5_CTX *ctx, void *resbuf));
|
||||
|
||||
|
||||
#endif /* md5.h */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue