api
sha512.ch
Declarations in sha512.ch
1 declarationscrypto
Declarations
Public only
crypto#
Publicnamespace
namespace crypto
sha512 — SHA-384 / SHA-512 hash implementation (FIPS 180-4).
rr64#
function
func rr64(x : u64, n : u64) : u64
Sha512Context#
Publicstruct
struct Sha512Context {
var state : u64[8]
var count : u64
var buffer : u8[128]
var buffer_pos : size_t
}
sha512_init_state#
function
func sha512_init_state(ctx : *Sha512Context) : void
SHA-512 initial hash values (FIPS 180-4 §5.3.5).
sha384_init_state#
function
func sha384_init_state(ctx : *Sha512Context) : void
SHA-384 initial hash values (FIPS 180-4 §5.3.4).
sha512_ctx_init#
function
func sha512_ctx_init(ctx : *Sha512Context, init_sha384 : bool) : void
sha512_init#
Publicfunction
func sha512_init(ctx : *Sha512Context) : void
sha384_init#
Publicfunction
func sha384_init(ctx : *Sha512Context) : void
sha512_update_impl#
function
func sha512_update_impl(ctx : *Sha512Context, data : *u8, data_len : size_t) : void
Feed data into the context. sha384 and sha512 share the same buffering.
sha512_update#
Publicfunction
func sha512_update(ctx : *Sha512Context, data : *u8, data_len : size_t) : void
sha384_update#
Publicfunction
func sha384_update(ctx : *Sha512Context, data : *u8, data_len : size_t) : void
sha512_final_impl#
function
Finalize. `digest_len` is 64 for SHA-512 or 48 for SHA-384.
sha512_final#
Publicfunction
func sha512_final(ctx : *Sha512Context, digest : *u8) : void
sha384_final#
Publicfunction
func sha384_final(ctx : *Sha512Context, digest : *u8) : void
sha512_hash#
Publicfunction
func sha512_hash(data : *u8, data_len : size_t, digest : *u8) : void
sha384_hash#
Publicfunction
func sha384_hash(data : *u8, data_len : size_t, digest : *u8) : void
sha512_transform#
function
func sha512_transform(ctx : *Sha512Context, block : *u8) : void
One SHA-512 compression round on a 128-byte block.
SHA512_K#
function
func SHA512_K(t : size_t) : u64