github.com/ethereum/go-ethereum@v1.16.1/crypto/secp256k1/libsecp256k1/src/selftest.h (about)

     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 secp256k1_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      secp256k1_sha256 hasher;
    22      secp256k1_sha256_initialize(&hasher);
    23      secp256k1_sha256_write(&hasher, (const unsigned char*)input63, 63);
    24      secp256k1_sha256_finalize(&hasher, out);
    25      return secp256k1_memcmp_var(out, output32, 32) == 0;
    26  }
    27  
    28  static int secp256k1_selftest_passes(void) {
    29      return secp256k1_selftest_sha256();
    30  }
    31  
    32  #endif /* SECP256K1_SELFTEST_H */