github.com/xfond/eth-implementation@v1.8.9-0.20180514135602-f6bc65fc6811/crypto/bn256/bn256_fast.go (about) 1 // Copyright 2018 The go-ethereum Authors 2 // This file is part of the go-ethereum library. 3 // 4 // The go-ethereum library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Lesser General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // The go-ethereum library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Lesser General Public License for more details. 13 // 14 // You should have received a copy of the GNU Lesser General Public License 15 // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. 16 17 // +build amd64 arm64 18 19 // Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve. 20 package bn256 21 22 import "github.com/ethereum/go-ethereum/crypto/bn256/cloudflare" 23 24 // G1 is an abstract cyclic group. The zero value is suitable for use as the 25 // output of an operation, but cannot be used as an input. 26 type G1 = bn256.G1 27 28 // G2 is an abstract cyclic group. The zero value is suitable for use as the 29 // output of an operation, but cannot be used as an input. 30 type G2 = bn256.G2 31 32 // PairingCheck calculates the Optimal Ate pairing for a set of points. 33 func PairingCheck(a []*G1, b []*G2) bool { 34 return bn256.PairingCheck(a, b) 35 }