~/bend-docscommunity

proofs/crypto/secp256k1/laws.bend open laws/TODOs

raw source on the hub · import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/secp256k1/laws.bend as Laws

4 imports
import Base
import ../../../src/crypto/secp256k1.bend as K
import ../../../spec/crypto/secp256k1/ecdsa.bend as ES
import ../../../spec/crypto/secp256k1/schnorr.bend as SS

Laws

law PublicKey.correct openits proof in laws_crypto.bend does not pass the checker (fails)source · line 21 · raw

@+one:Nat -> @+h1:{one == 1n : Nat} -> @+sk:List<&2, U32> -> @c:Bool -> {0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/secp256k1.public_key(sk, c) == 0xa7e654f9780078ca65bf9e187da99d3e/spec/crypto/secp256k1/ecdsa.public_key(one, sk, c) : Maybe<&2, List<&2, U32>>}

the SEC 1 public key (33 bytes compressed, 65 uncompressed) of [d] G

law GenerateKeypair.correct openits proof in laws_crypto.bend does not pass the checker (fails)source · line 29 · raw

@+one:Nat -> @+h1:{one == 1n : Nat} -> @+seed:List<&2, U32> -> {0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/secp256k1.generate_keypair(seed) == 0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/secp256k1.keypair_of(seed, 0xa7e654f9780078ca65bf9e187da99d3e/spec/crypto/secp256k1/ecdsa.public_key(one, seed, True{})) : Maybe<&2, 0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/secp256k1.Keypair>}

a key pair from a 32-byte seed: the seed and its compressed public key

law EthAddress.correct openits proof in laws_crypto.bend does not pass the checker (fails)source · line 36 · raw

@+pk:List<&2, U32> -> {0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/secp256k1.eth_address(pk) == 0xa7e654f9780078ca65bf9e187da99d3e/spec/crypto/secp256k1/ecdsa.eth_address(pk) : Maybe<&2, List<&2, U32>>}

the Ethereum address of an uncompressed public key