void privkey_sign(struct peer *peer, const void *src, size_t len, struct signature *sig) { struct sha256_double h; sha256_double(&h, memcheck(src, len), len); sign_hash(peer->dstate->secpctx, &peer->dstate->secret->privkey, &h, sig); }
void base58_get_checksum(u8 csum[4], const u8 buf[], size_t buflen) { struct sha256_double sha_result; /* Form checksum, using double SHA2 (as per bitcoin standard) */ sha256_double(&sha_result, buf, buflen); /* Use first four bytes of that as the checksum. */ memcpy(csum, sha_result.sha.u.u8, 4); }