Logo Search packages:      
Sourcecode: libtomcrypt version File versions  Download package

int hash_memory ( int  hash,
const unsigned char *  in,
unsigned long  inlen,
unsigned char *  out,
unsigned long *  outlen 

Hash a block of memory and store the digest.

hash The index of the hash you wish to use
in The data you wish to hash
inlen The length of the data to hash (octets)
out [out] Where to store the digest
outlen [in/out] Max size and resulting size of the digest
CRYPT_OK if successful

Definition at line 27 of file hash_memory.c.

References ltc_hash_descriptor::done, ltc_hash_descriptor::hashsize, and zeromem().

    hash_state *md;
    int err;

    LTC_ARGCHK(in     != NULL);
    LTC_ARGCHK(out    != NULL);
    LTC_ARGCHK(outlen != NULL);

    if ((err = hash_is_valid(hash)) != CRYPT_OK) {
        return err;

    if (*outlen < hash_descriptor[hash].hashsize) {
       *outlen = hash_descriptor[hash].hashsize;

    md = XMALLOC(sizeof(hash_state));
    if (md == NULL) {
       return CRYPT_MEM;

    if ((err = hash_descriptor[hash].init(md)) != CRYPT_OK) {
       goto LBL_ERR;
    if ((err = hash_descriptor[hash].process(md, in, inlen)) != CRYPT_OK) {
       goto LBL_ERR;
    err = hash_descriptor[hash].done(md, out);
    *outlen = hash_descriptor[hash].hashsize;
    zeromem(md, sizeof(hash_state));

    return err;

Generated by  Doxygen 1.6.0   Back to index