~webapps/unity-js-scopes/node.js

« back to all changes in this revision

Viewing changes to deps/openssl/openssl/engines/ccgost/gosthash.h

  • Committer: Marcus Tomlinson
  • Date: 2015-11-13 07:59:04 UTC
  • Revision ID: marcus.tomlinson@canonical.com-20151113075904-h0swczmoq1rvstfc
Node v4 (stable)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
/* Initalizes gost hash ctx, including creation of gost cipher ctx */
 
32
 
 
33
int init_gost_hash_ctx(gost_hash_ctx * ctx,
 
34
                       const gost_subst_block * subst_block);
 
35
void done_gost_hash_ctx(gost_hash_ctx * ctx);
 
36
 
 
37
/*
 
38
 * Cleans up all fields, except cipher ctx preparing ctx for computing of new
 
39
 * hash value
 
40
 */
 
41
int start_hash(gost_hash_ctx * ctx);
 
42
 
 
43
/* Hashes block of data */
 
44
int hash_block(gost_hash_ctx * ctx, const byte * block, size_t length);
 
45
 
 
46
/*
 
47
 * Finalizes computation of hash and fills buffer (which should be at least
 
48
 * 32 bytes long) with value of computed hash.
 
49
 */
 
50
int finish_hash(gost_hash_ctx * ctx, byte * hashval);
 
51
 
 
52
#endif