You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.8 KiB
63 lines
1.8 KiB
// 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) |
|
}
|
|
|