39 lines
934 B
C
39 lines
934 B
C
/* Sha1.h -- SHA-1 Hash
|
|
2016-05-20 : Igor Pavlov : Public domain */
|
|
|
|
#ifndef __7Z_SHA1_H
|
|
#define __7Z_SHA1_H
|
|
|
|
#include "7zTypes.h"
|
|
|
|
EXTERN_C_BEGIN
|
|
|
|
#define SHA1_NUM_BLOCK_WORDS 16
|
|
#define SHA1_NUM_DIGEST_WORDS 5
|
|
|
|
#define SHA1_BLOCK_SIZE (SHA1_NUM_BLOCK_WORDS * 4)
|
|
#define SHA1_DIGEST_SIZE (SHA1_NUM_DIGEST_WORDS * 4)
|
|
|
|
typedef struct
|
|
{
|
|
UInt32 state[SHA1_NUM_DIGEST_WORDS];
|
|
UInt64 count;
|
|
UInt32 buffer[SHA1_NUM_BLOCK_WORDS];
|
|
} CSha1;
|
|
|
|
void Sha1_Init(CSha1 *p);
|
|
|
|
void Sha1_GetBlockDigest(CSha1 *p, const UInt32 *data, UInt32 *destDigest);
|
|
void Sha1_Update(CSha1 *p, const Byte *data, size_t size);
|
|
void Sha1_Final(CSha1 *p, Byte *digest);
|
|
|
|
void Sha1_Update_Rar(CSha1 *p, Byte *data, size_t size /* , int rar350Mode */);
|
|
|
|
void Sha1_32_PrepareBlock(const CSha1 *p, UInt32 *block, unsigned size);
|
|
void Sha1_32_Update(CSha1 *p, const UInt32 *data, size_t size);
|
|
void Sha1_32_Final(CSha1 *p, UInt32 *digest);
|
|
|
|
EXTERN_C_END
|
|
|
|
#endif
|