void HASH512_hash()

in src/hash.c [357:375]


void HASH512_hash(hash512 *sh,char *hash)
{
    /* pad message and finish - supply digest */
    unsign64 len0;
    unsign64 len1;
    len0=sh->length[0];
    len1=sh->length[1];
    HASH512_process(sh,PAD);
    while ((sh->length[0]%1024)!=896) HASH512_process(sh,ZERO);
    sh->w[14]=len1;
    sh->w[15]=len0;
    HASH512_transform(sh);
    for (int i=0; i<sh->hlen; i++)
    {
        /* convert to bytes */
        hash[i]=(char)((sh->h[i/8]>>(8*(7-i%8))) & 0xffL);
    }
    HASH512_init(sh);
}