csecp256k1

Haskell FFI bindings to bitcoin-core/secp256k1 (docs.ppad.tech/csecp256k1).
git clone git://git.ppad.tech/csecp256k1.git
Log | Files | Refs | README | LICENSE

selftest.h (1383B)


      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 static int haskellsecp256k1_v0_1_0_selftest_sha256(void) {
     15     static const char *input63 = "For this sample, this 63-byte string will be used as input data";
     16     static const unsigned char output32[32] = {
     17         0xf0, 0x8a, 0x78, 0xcb, 0xba, 0xee, 0x08, 0x2b, 0x05, 0x2a, 0xe0, 0x70, 0x8f, 0x32, 0xfa, 0x1e,
     18         0x50, 0xc5, 0xc4, 0x21, 0xaa, 0x77, 0x2b, 0xa5, 0xdb, 0xb4, 0x06, 0xa2, 0xea, 0x6b, 0xe3, 0x42,
     19     };
     20     unsigned char out[32];
     21     haskellsecp256k1_v0_1_0_sha256 hasher;
     22     haskellsecp256k1_v0_1_0_sha256_initialize(&hasher);
     23     haskellsecp256k1_v0_1_0_sha256_write(&hasher, (const unsigned char*)input63, 63);
     24     haskellsecp256k1_v0_1_0_sha256_finalize(&hasher, out);
     25     return haskellsecp256k1_v0_1_0_memcmp_var(out, output32, 32) == 0;
     26 }
     27 
     28 static int haskellsecp256k1_v0_1_0_selftest_passes(void) {
     29     return haskellsecp256k1_v0_1_0_selftest_sha256();
     30 }
     31 
     32 #endif /* SECP256K1_SELFTEST_H */