37 lines
951 B
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);
|
|
}
|