diff options
author | Péter Szilágyi <peterke@gmail.com> | 2018-03-20 00:13:54 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-20 00:13:54 +0800 |
commit | 1203c6a237cb87b78ec495772cecb178200499ce (patch) | |
tree | a51e6c3a24e43f265fc5c9b4f2bdb7ff7de6a8db /crypto/bn256/bn256_fast.go | |
parent | 0965761a45562d609f6036963dbac84561174677 (diff) | |
download | go-tangerine-1203c6a237cb87b78ec495772cecb178200499ce.tar go-tangerine-1203c6a237cb87b78ec495772cecb178200499ce.tar.gz go-tangerine-1203c6a237cb87b78ec495772cecb178200499ce.tar.bz2 go-tangerine-1203c6a237cb87b78ec495772cecb178200499ce.tar.lz go-tangerine-1203c6a237cb87b78ec495772cecb178200499ce.tar.xz go-tangerine-1203c6a237cb87b78ec495772cecb178200499ce.tar.zst go-tangerine-1203c6a237cb87b78ec495772cecb178200499ce.zip |
crypto/bn256: full switchover to cloudflare's code (#16301)
* crypto/bn256: full switchover to cloudflare's code
* crypto/bn256: only use cloudflare for optimized architectures
* crypto/bn256: upstream fallback for non-optimized code
* .travis, build: drop support for Go 1.8 (need type aliases)
* crypto/bn256/cloudflare: enable curve mul lattice optimization
Diffstat (limited to 'crypto/bn256/bn256_fast.go')
-rw-r--r-- | crypto/bn256/bn256_fast.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/crypto/bn256/bn256_fast.go b/crypto/bn256/bn256_fast.go new file mode 100644 index 000000000..a8dfa8f67 --- /dev/null +++ b/crypto/bn256/bn256_fast.go @@ -0,0 +1,35 @@ +// Copyright 2018 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. + +// +build amd64 arm64 + +// Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve. +package bn256 + +import "github.com/ethereum/go-ethereum/crypto/bn256/cloudflare" + +// G1 is an abstract cyclic group. The zero value is suitable for use as the +// output of an operation, but cannot be used as an input. +type G1 = bn256.G1 + +// G2 is an abstract cyclic group. The zero value is suitable for use as the +// output of an operation, but cannot be used as an input. +type G2 = bn256.G2 + +// PairingCheck calculates the Optimal Ate pairing for a set of points. +func PairingCheck(a []*G1, b []*G2) bool { + return bn256.PairingCheck(a, b) +} |