| Index: openssl/engines/ccgost/gosthash.h
|
| ===================================================================
|
| --- openssl/engines/ccgost/gosthash.h (revision 0)
|
| +++ openssl/engines/ccgost/gosthash.h (revision 0)
|
| @@ -0,0 +1,48 @@
|
| +/**********************************************************************
|
| + * gosthash.h *
|
| + * Copyright (c) 2005-2006 Cryptocom LTD *
|
| + * This file is distributed under the same license as OpenSSL *
|
| + * *
|
| + * Declaration of GOST R 34.11-94 hash functions *
|
| + * uses and gost89.h Doesn't need OpenSSL *
|
| + **********************************************************************/
|
| +#ifndef GOSTHASH_H
|
| +#define GOSTHASH_H
|
| +#include "gost89.h"
|
| +#include <stdlib.h>
|
| +
|
| +#if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
|
| +typedef __int64 ghosthash_len;
|
| +#elif defined(__arch64__)
|
| +typedef long ghosthash_len;
|
| +#else
|
| +typedef long long ghosthash_len;
|
| +#endif
|
| +
|
| +typedef struct gost_hash_ctx {
|
| + ghosthash_len len;
|
| + gost_ctx *cipher_ctx;
|
| + int left;
|
| + byte H[32];
|
| + byte S[32];
|
| + byte remainder[32];
|
| +} gost_hash_ctx;
|
| +
|
| +
|
| +/* Initalizes gost hash ctx, including creation of gost cipher ctx */
|
| +
|
| +int init_gost_hash_ctx(gost_hash_ctx *ctx, const gost_subst_block *subst_block);
|
| +void done_gost_hash_ctx(gost_hash_ctx *ctx);
|
| +
|
| +/* Cleans up all fields, except cipher ctx preparing ctx for computing
|
| + * of new hash value */
|
| +int start_hash(gost_hash_ctx *ctx);
|
| +
|
| +/* Hashes block of data */
|
| +int hash_block(gost_hash_ctx *ctx, const byte *block, size_t length);
|
| +
|
| +/* Finalizes computation of hash and fills buffer (which should be at
|
| + * least 32 bytes long) with value of computed hash. */
|
| +int finish_hash(gost_hash_ctx *ctx, byte *hashval);
|
| +
|
| +#endif
|
|
|