Example #1
0
BitcoinPubkey *pubkey_to_proto(const tal_t *ctx, const struct pubkey *key)
{
    BitcoinPubkey *p = tal(ctx, BitcoinPubkey);

    bitcoin_pubkey__init(p);
    p->key.len = pubkey_len(key);
    p->key.data = tal_dup_arr(p, u8, key->key, p->key.len, 0);

    assert(pubkey_valid(p->key.data, p->key.len));
    return p;
}
BitcoinPubkey *pubkey_to_proto(const tal_t *ctx, const struct pubkey *key)
{
	BitcoinPubkey *p = tal(ctx, BitcoinPubkey);
	struct pubkey check;

	bitcoin_pubkey__init(p);
	p->key.len = pubkey_derlen(key);
	p->key.data = tal_dup_arr(p, u8, key->der, p->key.len, 0);

	{
		secp256k1_context *secpctx = secp256k1_context_create(0);
		assert(pubkey_from_der(secpctx, p->key.data, p->key.len, &check));
		assert(pubkey_eq(&check, key));
		secp256k1_context_destroy(secpctx);
	}
	return p;
}