github.com/consensys/gnark@v0.11.0/backend/groth16/bn254/icicle/provingkey.go (about) 1 package icicle_bn254 2 3 import ( 4 "unsafe" 5 6 groth16_bn254 "github.com/consensys/gnark/backend/groth16/bn254" 7 cs "github.com/consensys/gnark/constraint/bn254" 8 ) 9 10 type deviceInfo struct { 11 G1Device struct { 12 A, B, K, Z unsafe.Pointer 13 } 14 DomainDevice struct { 15 Twiddles, TwiddlesInv unsafe.Pointer 16 CosetTable, CosetTableInv unsafe.Pointer 17 } 18 G2Device struct { 19 B unsafe.Pointer 20 } 21 DenDevice unsafe.Pointer 22 InfinityPointIndicesK []int 23 } 24 25 type ProvingKey struct { 26 groth16_bn254.ProvingKey 27 *deviceInfo 28 } 29 30 func Setup(r1cs *cs.R1CS, pk *ProvingKey, vk *groth16_bn254.VerifyingKey) error { 31 return groth16_bn254.Setup(r1cs, &pk.ProvingKey, vk) 32 } 33 34 func DummySetup(r1cs *cs.R1CS, pk *ProvingKey) error { 35 return groth16_bn254.DummySetup(r1cs, &pk.ProvingKey) 36 }