| /* |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| */ |
| |
| use bn254CX::big::NLEN; |
| use arch::Chunk; |
| |
| |
| // Base Bits= 56 |
| // bn254CX Modulus |
| pub const MODULUS:[Chunk;NLEN]=[0x6623EF5C1B55B3,0xD6EE18093EE1BE,0x647A6366D3243F,0x8702A0DB0BDDF,0x24000000]; |
| pub const R2MODP:[Chunk;NLEN]=[0x466A0618A0800A,0x2B3A22543056A3,0x148515B09C6600,0xEC9EA5606BDF50,0x1C992E66]; |
| pub const MCONST:Chunk=0x4E205BF9789E85; |
| pub const FRA:[Chunk;NLEN]=[0xD9083355C80EA3,0x7326F173F8215B,0x8AACA718986867,0xA63A0164AFE18B,0x1359082F]; |
| pub const FRB:[Chunk;NLEN]=[0x8D1BBC06534710,0x63C7269546C062,0xD9CDBC4E3ABBD8,0x623628A900DC53,0x10A6F7D0]; |
| |
| // bn254CX Curve |
| pub const CURVE_COF_I:isize = 1; |
| pub const CURVE_A:isize = 0; |
| pub const CURVE_B_I:isize = 2; |
| pub const CURVE_B:[Chunk;NLEN]=[0x2,0x0,0x0,0x0,0x0]; |
| pub const CURVE_ORDER:[Chunk;NLEN]=[0x11C0A636EB1F6D,0xD6EE0CC906CEBE,0x647A6366D2C43F,0x8702A0DB0BDDF,0x24000000]; |
| pub const CURVE_GX:[Chunk;NLEN]=[0x6623EF5C1B55B2,0xD6EE18093EE1BE,0x647A6366D3243F,0x8702A0DB0BDDF,0x24000000]; |
| pub const CURVE_GY:[Chunk;NLEN]=[0x1,0x0,0x0,0x0,0x0]; |
| pub const CURVE_BNX:[Chunk;NLEN]=[0x3C012B1,0x40,0x0,0x0,0x0]; |
| pub const CURVE_COF:[Chunk;NLEN]=[0x1,0x0,0x0,0x0,0x0]; |
| pub const CURVE_CRU:[Chunk;NLEN]=[0xE0931794235C97,0xDF6471EF875631,0xCA83F1440BD,0x480000,0x0]; |
| |
| pub const CURVE_PXA:[Chunk;NLEN]=[0x851CEEE4D2EC74,0x85BFA03E2726C0,0xF5C34BBB907C,0x7053B256358B25,0x19682D2C]; |
| pub const CURVE_PXB:[Chunk;NLEN]=[0xA58E8B2E29CFE1,0x97B0C209C30F47,0x37A8E99743F81B,0x3E19F64AA011C9,0x1466B9EC]; |
| pub const CURVE_PYA:[Chunk;NLEN]=[0xFBFCEBCF0BE09F,0xB33D847EC1B30C,0x157DAEE2096361,0x72332B8DD81E22,0xA79EDD9]; |
| pub const CURVE_PYB:[Chunk;NLEN]=[0x904B228898EE9D,0x4EA569D2EDEBED,0x512D8D3461C286,0xECC4C09035C6E4,0x6160C39]; |
| |
| |
| pub const CURVE_W:[[Chunk;NLEN];2]=[[0x546349162FEB83,0xB40381200,0x6000,0x0,0x0],[0x7802561,0x80,0x0,0x0,0x0]]; |
| pub const CURVE_SB:[[[Chunk;NLEN];2];2]=[[[0x5463491DB010E4,0xB40381280,0x6000,0x0,0x0],[0x7802561,0x80,0x0,0x0,0x0]],[[0x7802561,0x80,0x0,0x0,0x0],[0xBD5D5D20BB33EA,0xD6EE0188CEBCBD,0x647A6366D2643F,0x8702A0DB0BDDF,0x24000000]]]; |
| pub const CURVE_WB:[[Chunk;NLEN];4]=[[0x1C2118567A84B0,0x3C012B040,0x2000,0x0,0x0],[0xCDF995BE220475,0x94EDA8CA7F9A36,0x8702A0DC07E,0x300000,0x0],[0x66FCCAE0F10B93,0x4A76D4653FCD3B,0x4381506E03F,0x180000,0x0],[0x1C21185DFAAA11,0x3C012B0C0,0x2000,0x0,0x0]]; |
| pub const CURVE_BB:[[[Chunk;NLEN];4];4]=[[[0x11C0A6332B0CBD,0xD6EE0CC906CE7E,0x647A6366D2C43F,0x8702A0DB0BDDF,0x24000000],[0x11C0A6332B0CBC,0xD6EE0CC906CE7E,0x647A6366D2C43F,0x8702A0DB0BDDF,0x24000000],[0x11C0A6332B0CBC,0xD6EE0CC906CE7E,0x647A6366D2C43F,0x8702A0DB0BDDF,0x24000000],[0x7802562,0x80,0x0,0x0,0x0]],[[0x7802561,0x80,0x0,0x0,0x0],[0x11C0A6332B0CBC,0xD6EE0CC906CE7E,0x647A6366D2C43F,0x8702A0DB0BDDF,0x24000000],[0x11C0A6332B0CBD,0xD6EE0CC906CE7E,0x647A6366D2C43F,0x8702A0DB0BDDF,0x24000000],[0x11C0A6332B0CBC,0xD6EE0CC906CE7E,0x647A6366D2C43F,0x8702A0DB0BDDF,0x24000000]],[[0x7802562,0x80,0x0,0x0,0x0],[0x7802561,0x80,0x0,0x0,0x0],[0x7802561,0x80,0x0,0x0,0x0],[0x7802561,0x80,0x0,0x0,0x0]],[[0x3C012B2,0x40,0x0,0x0,0x0],[0xF004AC2,0x100,0x0,0x0,0x0],[0x11C0A62F6AFA0A,0xD6EE0CC906CE3E,0x647A6366D2C43F,0x8702A0DB0BDDF,0x24000000],[0x3C012B2,0x40,0x0,0x0,0x0]]]; |
| |
| pub const USE_GLV:bool = true; |
| pub const USE_GS_G2:bool = true; |
| pub const USE_GS_GT:bool = true; |
| pub const GT_STRONG:bool = true; |