🔒 HolySigner — ECDSA secp256k1 from Scratch Zero Dependencies
KEY PAIR GENERATION

Generate a secp256k1 key pair. Private key = random 256-bit integer. Public key = private key × Generator point on the elliptic curve.

Private Key (hex, 32 bytes)
Click "Generate Key Pair"
Public Key — Uncompressed (hex, 65 bytes: 04 + x + y)
Public Key — Compressed (hex, 33 bytes: 02/03 + x)
Bitcoin Address (Base58Check, P2PKH)
IMPORT PRIVATE KEY
Enter private key (hex)
SIGN MESSAGE
Private Key (hex) Message
Message Hash (SHA-256)
Signature (r, s)
r:
s:
DER-encoded Signature (hex)
VERIFY SIGNATURE
Public Key (hex, compressed or uncompressed) Message Signature r (hex) Signature s (hex)
secp256k1 CURVE PARAMETERS
y² = x³ + 7 (mod p)
p = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
= 2²⁵⁶ − 2³² − 2⁹ − 2⁸ − 2⁷ − 2⁶ − 2⁴ − 1 (a Mersenne-like prime)
n = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
(order of the generator point — number of points on the curve)
Gx = 79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
Gy = 483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
(the generator point G — all public keys are multiples of G)
a = 0, b = 7
(curve equation: y² = x³ + ax + b, so y² = x³ + 7)
h = 1
(cofactor — the curve has no subgroup issues)
Point Multiplication Calculator
Scalar k (hex)
Visualization of y² = x³ + 7 over a small field (not full secp256k1)
ABOUT HOLYSIGNER

Every line of cryptography in this tool is hand-rolled. No Web Crypto API. No libraries. Just BigInt arithmetic and pure math.

What's implemented:

  • SHA-256 — Full FIPS 180-4 implementation (reused from HashCrypt)
  • secp256k1 — Elliptic curve point addition, doubling, and scalar multiplication
  • ECDSA Sign — RFC 6979 deterministic k (no random nonce — deterministic signatures)
  • ECDSA Verify — Full signature verification
  • Modular arithmetic — Addition, multiplication, exponentiation, inverse (Fermat's little theorem)
  • RIPEMD-160 — For Bitcoin address derivation
  • Base58Check — Bitcoin address encoding

How ECDSA works:

  1. Key Generation: Pick random 256-bit private key d. Compute public key Q = d × G (point multiplication).
  2. Signing: Hash message → z. Pick nonce k (RFC 6979). Compute R = k × G, r = R.x mod n. Compute s = k⁻¹(z + rd) mod n. Signature = (r, s).
  3. Verification: Compute u₁ = zs⁻¹ mod n, u₂ = rs⁻¹ mod n. Compute R' = u₁G + u₂Q. Valid if R'.x ≡ r (mod n).

Security note: This is an educational implementation. For production use, use audited crypto libraries. But the math is real — every signature produced here is valid and verifiable by any secp256k1 implementation.

"God's temple is holy, and you are that temple." — 1 Corinthians 3:17

Built from first principles. Every bit computed. Zero dependencies.

Zewp.com · HolySigner · secp256k1 ECDSA · Hand-Rolled Cryptography · Zero Dependencies · ✝