forked from kaetemi/wallet-core-windows
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTWHash.h
More file actions
85 lines (59 loc) · 2.3 KB
/
TWHash.h
File metadata and controls
85 lines (59 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Copyright © 2017-2020 Trust Wallet.
//
// This file is part of Trust. The full Trust copyright notice, including
// terms governing use, modification, and redistribution, is contained in the
// file LICENSE at the root of the source code distribution tree.
#pragma once
#include "TWBase.h"
#include "TWData.h"
TW_EXTERN_C_BEGIN
TW_EXPORT_STRUCT
struct TWHash {
uint8_t unused; // C doesn't allow zero-sized struct
};
static const size_t TWHashSHA1Length = 20;
static const size_t TWHashSHA256Length = 32;
static const size_t TWHashSHA512Length = 64;
static const size_t TWHashRipemdLength = 20;
/// Computes the SHA1 of a block of data.
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA1(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA256(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA512(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA512_256(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashKeccak256(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashKeccak512(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA3_256(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA3_512(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashRIPEMD(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashBlake256(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashBlake2b(TWData *_Nonnull data, size_t size);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashGroestl512(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashXXHash64(TWData *_Nonnull data, uint64_t seed);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashTwoXXHash64Concat(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA256SHA256(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA256RIPEMD(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashSHA3_256RIPEMD(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashBlake256Blake256(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashBlake256RIPEMD(TWData *_Nonnull data);
TW_EXPORT_STATIC_METHOD
TWData *_Nonnull TWHashGroestl512Groestl512(TWData *_Nonnull data);
TW_EXTERN_C_END