/** * @file re_sha.h Interface to SHA (Secure Hash Standard) functions * * Copyright (C) 2010 Creytiv.com */ #ifdef USE_OPENSSL #include #else /* public api for steve reid's public domain SHA-1 implementation */ /* this file is in the public domain */ /** SHA-1 Context */ typedef struct { uint32_t state[5]; /**< Context state */ uint32_t count[2]; /**< Counter */ uint8_t buffer[64]; /**< SHA-1 buffer */ } SHA1_CTX; /** SHA-1 Context (OpenSSL compat) */ typedef SHA1_CTX SHA_CTX; /** SHA-1 Digest size in bytes */ #define SHA1_DIGEST_SIZE 20 /** SHA-1 Digest size in bytes (OpenSSL compat) */ #define SHA_DIGEST_LENGTH SHA1_DIGEST_SIZE void SHA1_Init(SHA1_CTX* context); void SHA1_Update(SHA1_CTX* context, const void *p, size_t len); void SHA1_Final(uint8_t digest[SHA1_DIGEST_SIZE], SHA1_CTX* context); #endif