ircbot/deimos/openssl/whrlpool.d

37 lines
951 B
D

module deimos.openssl.whrlpool;
import deimos.openssl._d_util;
public import deimos.openssl.e_os2;
import core.stdc.config;
extern (C):
nothrow:
enum WHIRLPOOL_DIGEST_LENGTH = (512/8);
enum WHIRLPOOL_BBLOCK = 512;
enum WHIRLPOOL_COUNTER = (256/8);
struct WHIRLPOOL_CTX {
union H_ {
ubyte[WHIRLPOOL_DIGEST_LENGTH] c;
/* double q is here to ensure 64-bit alignment */
double[WHIRLPOOL_DIGEST_LENGTH/double.sizeof] q;
}
H_ H;
ubyte[WHIRLPOOL_BBLOCK/8] data;
uint bitoff;
size_t[WHIRLPOOL_COUNTER/size_t.sizeof] bitlen;
};
version(OPENSSL_NO_WHIRLPOOL) {} else {
version(OPENSSL_FIPS) {
int private_WHIRLPOOL_Init(WHIRLPOOL_CTX* c);
}
int WHIRLPOOL_Init (WHIRLPOOL_CTX* c);
int WHIRLPOOL_Update (WHIRLPOOL_CTX* c,const(void)* inp,size_t bytes);
void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX* c,const(void)* inp,size_t bits);
int WHIRLPOOL_Final (ubyte* md,WHIRLPOOL_CTX* c);
ubyte* WHIRLPOOL(const(void)* inp,size_t bytes,ubyte* md);
}