rust-payjoin icon indicating copy to clipboard operation
rust-payjoin copied to clipboard

Use k256 AEAD for ohttp

Open DanGould opened this issue 1 year ago • 2 comments

secp256k1 is the bitcoin curve. re-use it for encryption to pull in fewer cryptographic dependencies and comply with BIP77 spec.

DanGould avatar Mar 28 '24 15:03 DanGould

~This failed because error: package sec1 v0.7.3 cannot be built because it requires rustc 1.65 or newer, while the currently active rustc version is 1.63.0~ sec1 is only a dependency of the x25519 feature and could be overridden

DanGould avatar Mar 28 '24 18:03 DanGould

I did some more digging to try to get hpke working with the secp256k1 curve from elliptic_curves' k256 crate. There are definitely some hurdles with regard to MSRV since the minnimum elliptic_curves that supports all of hpke's feature curves is 0.13, and 0.13 has MSRV 1.65. There's no easy way out of that other than dropping some of the features on a fork. And if we're maintaining a fork, why not do so with rust-bitcoin cryptographic dependencies instead?

It's time to weigh in on a decision to write a new crate bound to the secp256k1 crate or not. The rust-hpke and ohttp relay crate it depends on make extensive use of the elliptic_curves ecosystem crates because they all share a common interface. The scope of difficulty of a replacement with a dependency with a completely different interface needs to be assessed before that is attempted.

DanGould avatar Mar 29 '24 16:03 DanGould

replaced by #354

DanGould avatar Sep 04 '24 21:09 DanGould