Join Nostr
2023-03-12 09:37:23 UTC

uaa on Nostr: #[0] ...

bech32のCなデコーダーはBIP-173 https://bips.xyz/173 の先にある https://github.com/sipa/bech32/tree/master/ref/c を使えば良いのかな?(他にもC++等の言語による実装がこのリポジトリには収められている)
ここにあるbech32エンコーダを試そうとしてるんだけど、鍵となるバイナリ列に直接bech32_encode()を適用するとエラーになることがあるのに、segwit_addr_encode()は問題ないということが分かっていて、それでまあ
Nostrのnsec/npubアドレスなエンコーディングって segwit_addr_encode(out, "nsec", 0, key, sizeof(key) … witness=0に限定していない気がするんだけど、どうなってるんだろうこれ。
な疑問を抱いた訳なんだけど…もしかしてbech32_encode()呼ぶ前になんか下処理が要るってことなんだろうかね(実際、segwit_addr_encode()は内部でconvert_bits()呼んでるからこれがキモなんだろうけど…何故かstatic intで隠蔽されてたりする)