| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // Copyright 2015 The btcsuite developers
- // Use of this source code is governed by an ISC
- // license that can be found in the LICENSE file.
- // This file is ignored during the regular build due to the following build tag.
- // It is called by go generate and used to automatically generate pre-computed
- // tables used to accelerate operations.
- // +build ignore
- package main
- import (
- "bytes"
- "compress/zlib"
- "encoding/base64"
- "fmt"
- "log"
- "os"
- "github.com/btcsuite/btcd/btcec"
- )
- func main() {
- fi, err := os.Create("secp256k1.go")
- if err != nil {
- log.Fatal(err)
- }
- defer fi.Close()
- // Compress the serialized byte points.
- serialized := btcec.S256().SerializedBytePoints()
- var compressed bytes.Buffer
- w := zlib.NewWriter(&compressed)
- if _, err := w.Write(serialized); err != nil {
- fmt.Println(err)
- os.Exit(1)
- }
- w.Close()
- // Encode the compressed byte points with base64.
- encoded := make([]byte, base64.StdEncoding.EncodedLen(compressed.Len()))
- base64.StdEncoding.Encode(encoded, compressed.Bytes())
- fmt.Fprintln(fi, "// Copyright (c) 2015 The btcsuite developers")
- fmt.Fprintln(fi, "// Use of this source code is governed by an ISC")
- fmt.Fprintln(fi, "// license that can be found in the LICENSE file.")
- fmt.Fprintln(fi)
- fmt.Fprintln(fi, "package btcec")
- fmt.Fprintln(fi)
- fmt.Fprintln(fi, "// Auto-generated file (see genprecomps.go)")
- fmt.Fprintln(fi, "// DO NOT EDIT")
- fmt.Fprintln(fi)
- fmt.Fprintf(fi, "var secp256k1BytePoints = %q\n", string(encoded))
- a1, b1, a2, b2 := btcec.S256().EndomorphismVectors()
- fmt.Println("The following values are the computed linearly " +
- "independent vectors needed to make use of the secp256k1 " +
- "endomorphism:")
- fmt.Printf("a1: %x\n", a1)
- fmt.Printf("b1: %x\n", b1)
- fmt.Printf("a2: %x\n", a2)
- fmt.Printf("b2: %x\n", b2)
- }
|