OpenSSL
1.0.1c
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
engines
ccgost
gosthash.h
Go to the documentation of this file.
1
/**********************************************************************
2
* gosthash.h *
3
* Copyright (c) 2005-2006 Cryptocom LTD *
4
* This file is distributed under the same license as OpenSSL *
5
* *
6
* Declaration of GOST R 34.11-94 hash functions *
7
* uses and gost89.h Doesn't need OpenSSL *
8
**********************************************************************/
9
#ifndef GOSTHASH_H
10
#define GOSTHASH_H
11
#include "
gost89.h
"
12
#include <stdlib.h>
13
14
#if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
15
typedef
__int64
ghosthash_len
;
16
#elif defined(__arch64__)
17
typedef
long
ghosthash_len
;
18
#else
19
typedef
long
long
ghosthash_len
;
20
#endif
21
22
typedef
struct
gost_hash_ctx
{
23
ghosthash_len
len
;
24
gost_ctx
*
cipher_ctx
;
25
int
left
;
26
byte
H
[32];
27
byte
S
[32];
28
byte
remainder
[32];
29
}
gost_hash_ctx
;
30
31
32
/* Initalizes gost hash ctx, including creation of gost cipher ctx */
33
34
int
init_gost_hash_ctx
(
gost_hash_ctx
*ctx,
const
gost_subst_block
*subst_block);
35
void
done_gost_hash_ctx
(
gost_hash_ctx
*ctx);
36
37
/* Cleans up all fields, except cipher ctx preparing ctx for computing
38
* of new hash value */
39
int
start_hash
(
gost_hash_ctx
*ctx);
40
41
/* Hashes block of data */
42
int
hash_block
(
gost_hash_ctx
*ctx,
const
byte
*block,
size_t
length
);
43
44
/* Finalizes computation of hash and fills buffer (which should be at
45
* least 32 bytes long) with value of computed hash. */
46
int
finish_hash
(
gost_hash_ctx
*ctx,
byte
*hashval);
47
48
#endif
Generated on Thu Jan 10 2013 09:53:41 for OpenSSL by
1.8.2