This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: exporting sha256 sha512


* Shawn Landden:

> we already have this in crypt
> proposed public header <sha2.h> below
>
> even git does not use Intel processor extensions. This stuff in
> non-trivial and there is lots of duplicated work being done. Makes
> sense for glibc to be "high performance" as advertised and collect
> this performance work.
>
> would a patch for this be considered?
>
> #pragma once

Installed headers cannot use âpragma #onceâ.

> #include <stdint.h>
>
> typedef struct {
>        char __internal_state[104];
> } sha256_ctx;

This needs some alignment declaration.

> void *sha256(const void *d, size_t n, void *md);
> void sha256_init(sha256_ctx *s);
> void sha256_push(sha256_ctx *s, const void *d, size_t n);
> void sha256_finish(sha256_ctx *s, void *md);

push/finish is usually update/final.

To be more general, the context would have to be allocated on the
heap, deallocation and clone functions would be required, and the
functions need to return error values.  Some hardware acceleration
might need a larger state than 104 bytes.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]