secp256k1のC89実装のライブラリの関数のメモです。
GitHub - bitcoin-core/secp256k1: Optimized C library for EC operations on curve secp256k1
秘密鍵はスカラー値であり、sと表現することにします。
sは1以上secp256k1の群位数N未満である必要があります。
点は大文字で表現します。
公開鍵は楕円曲線上の点であり、Pと表現することにします。
ベースポイントはGと表現することにします。
tweakはスカラー値を表します。
/// P とデータを使い署名が正しいか検証する secp256k1_ecdsa_verify() /// s と nonce を使ってデータに対する署名を作成する secp256k1_ecdsa_sign() /// s が1以上、N未満であるかを返す secp256k1_ec_seckey_verify() /// s * G secp256k1_ec_pubkey_create() /// -s secp256k1_ec_privkey_negate() /// - P secp256k1_ec_pubkey_negate() /// s + tweak secp256k1_ec_privkey_tweak_add() /// P + tweak * G secp256k1_ec_pubkey_tweak_add() /// s * tweak secp256k1_ec_privkey_tweak_mul() /// P * tweak secp256k1_ec_pubkey_tweak_mul() /// P[0] + P[1] + ... + P[n] secp256k1_ec_pubkey_combine()