Beispiel #1
0
void test_bitcoin_hash()
{
    const char data[] = "cea946542b91ca50e2afecba73cf546ce1383d82668ecb6265f79ffaa07daa49abb43e21a19c6b2b15c8882b4bc01085a8a5b00168139dcb8f4b2bbe22929ce196d43532898d98a3b0ea4d63112ba25e724bb50711e3cf55954cf30b4503b73d785253104c2df8c19b5b63e92bd6b1ff2573751ec9c508085f3f206c719aa4643776bf425344348cbf63f1450389";

    const char expected[] = "52aa8dd6c598d91d580cc446624909e52a076064ffab67a1751f5758c9f76d26";
    uint8_t* digest_expected;
    digest_expected = utils_hex_to_uint8(expected);

    uint8_t hashout[32];
    btc_hash((const unsigned char *)data, strlen(data), hashout);
    assert(memcmp(hashout, digest_expected, 32) == 0);
}
Beispiel #2
0
btc_bool btc_privkey_verify_pubkey(btc_key* privkey, btc_pubkey* pubkey)
{
    uint256 rnddata, hash;
    assert(btc_random_bytes(rnddata, BTC_HASH_LENGTH, 0));
    btc_hash(rnddata, BTC_HASH_LENGTH, hash);

    unsigned char sig[74];
    size_t siglen = 74;

    if (!btc_key_sign_hash(privkey, hash, sig, &siglen))
        return false;

    return btc_pubkey_verify_sig(pubkey, hash, sig, siglen);
}
const std::string DBBComServer::getAESKeyBase58()
{
    std::string aesKeyBase58;
    aesKeyBase58.resize(100);
    uint8_t hash[33];
    hash[0] = AES_KEY_BASE57_PREFIX;
    assert(encryptionKey.size() > 0);

    std::string base64dec = base64_encode(&encryptionKey[0], encryptionKey.size());
    return base64dec;

    hmac_sha256((const uint8_t *)aesKeyHMAC_Key, strlen(aesKeyHMAC_Key), &encryptionKey[0], encryptionKey.size(), hash);

    btc_hash(&encryptionKey[0], encryptionKey.size(), hash);
    int sizeOut = btc_base58_encode_check(hash, 33, &aesKeyBase58[0], aesKeyBase58.size());
    aesKeyBase58.resize(sizeOut-1);
    return aesKeyBase58;
}