SHA

Template API SHA1/SHA2 implementation. Supports: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 and SHA-512/256.

The blockSize and digestSize are in bits. However, it's likely easier to simply use the convenience aliases: SHA1, SHA224, SHA256, SHA384, SHA512, SHA512_224 and SHA512_256.

See std.digest.digest for differences between template and OOP API.

struct SHA (
int blockSize
int digestSize
) {
uint[5] state;
uint[8] state;
uint[8] state;
ulong[8] state;
ulong[8] state;
ulong[8] state;
ulong[8] state;
uint[64] constants;
ulong[80] constants;
}

Members

Functions

finish
ubyte[digestSize / 8] finish()

Returns the finished SHA hash. This also calls start to reset the internal state.

put
void put(scope const(ubyte)[] input...)

Use this to feed the digest with data. Also implements the std.range.OutputRange interface for ubyte and const(ubyte)[].

start
void start()

SHA initialization. Begins an SHA1/SHA2 operation.

Meta