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; }