/root/bitcoin/src/secp256k1/src/selftest.h
Line | Count | Source |
1 | | /*********************************************************************** |
2 | | * Copyright (c) 2020 Pieter Wuille * |
3 | | * Distributed under the MIT software license, see the accompanying * |
4 | | * file COPYING or https://www.opensource.org/licenses/mit-license.php.* |
5 | | ***********************************************************************/ |
6 | | |
7 | | #ifndef SECP256K1_SELFTEST_H |
8 | | #define SECP256K1_SELFTEST_H |
9 | | |
10 | | #include "hash.h" |
11 | | |
12 | | #include <string.h> |
13 | | |
14 | 0 | static int secp256k1_selftest_sha256(secp256k1_sha256_compression_function fn_compression) { |
15 | 0 | secp256k1_hash_ctx hash_ctx; |
16 | 0 | static const char *input63 = "For this sample, this 63-byte string will be used as input data"; |
17 | 0 | static const unsigned char output32[32] = { |
18 | 0 | 0xf0, 0x8a, 0x78, 0xcb, 0xba, 0xee, 0x08, 0x2b, 0x05, 0x2a, 0xe0, 0x70, 0x8f, 0x32, 0xfa, 0x1e, |
19 | 0 | 0x50, 0xc5, 0xc4, 0x21, 0xaa, 0x77, 0x2b, 0xa5, 0xdb, 0xb4, 0x06, 0xa2, 0xea, 0x6b, 0xe3, 0x42, |
20 | 0 | }; |
21 | 0 | unsigned char out[32]; |
22 | 0 | secp256k1_sha256 hasher; |
23 | 0 | secp256k1_sha256_initialize(&hasher); |
24 | 0 | hash_ctx.fn_sha256_compression = fn_compression; |
25 | 0 | secp256k1_sha256_write(&hash_ctx, &hasher, (const unsigned char*)input63, 63); |
26 | 0 | secp256k1_sha256_finalize(&hash_ctx, &hasher, out); |
27 | 0 | return secp256k1_memcmp_var(out, output32, 32) == 0; |
28 | 0 | } |
29 | | |
30 | 0 | static int secp256k1_selftest_passes(void) { |
31 | | /* Use default sha256 compression */ |
32 | 0 | return secp256k1_selftest_sha256(secp256k1_sha256_transform); |
33 | 0 | } |
34 | | |
35 | | #endif /* SECP256K1_SELFTEST_H */ |