mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-28 23:15:52 +00:00
Add bn254 curve host functions
This commit is contained in:
74
external/libff/depends/ate-pairing/test/test_point.hpp
vendored
Normal file
74
external/libff/depends/ate-pairing/test/test_point.hpp
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
#pragma once
|
||||
#include "bn.h"
|
||||
|
||||
#define PUT(x) std::cout << #x << "\t=" << (x) << std::endl;
|
||||
|
||||
const struct Point {
|
||||
struct G2 {
|
||||
const char *aa;
|
||||
const char *ab;
|
||||
const char *ba;
|
||||
const char *bb;
|
||||
} g2;
|
||||
struct G1 {
|
||||
int a;
|
||||
int b;
|
||||
} g1;
|
||||
} g_pointTbl[] = {
|
||||
#ifdef BN_SUPPORT_SNARK
|
||||
// SNARK1(b = 3)
|
||||
{
|
||||
{
|
||||
"15267802884793550383558706039165621050290089775961208824303765753922461897946",
|
||||
"9034493566019742339402378670461897774509967669562610788113215988055021632533",
|
||||
"644888581738283025171396578091639672120333224302184904896215738366765861164",
|
||||
"20532875081203448695448744255224543661959516361327385779878476709582931298750",
|
||||
},
|
||||
{
|
||||
1, 2
|
||||
},
|
||||
},
|
||||
// SNARK2(b = 82)
|
||||
{
|
||||
{
|
||||
"7281644703356799059368313064438243279269372005747477888712173236228325795991",
|
||||
"15160700668152503952980485502602536850541312794041965342451842375663084147486",
|
||||
"13523979532236795535820810482891703536907572704519492618036353386190612673074",
|
||||
"15929067770616689398844794432758732907995965312283969374632681891490787470887",
|
||||
},
|
||||
{
|
||||
-1, 9
|
||||
},
|
||||
},
|
||||
#else
|
||||
// Aranha
|
||||
{
|
||||
{
|
||||
"12723517038133731887338407189719511622662176727675373276651903807414909099441",
|
||||
"4168783608814932154536427934509895782246573715297911553964171371032945126671",
|
||||
"13891744915211034074451795021214165905772212241412891944830863846330766296736",
|
||||
"7937318970632701341203597196594272556916396164729705624521405069090520231616",
|
||||
},
|
||||
{
|
||||
-1, 1
|
||||
},
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
inline const Point& selectPoint(const bn::CurveParam& cp)
|
||||
{
|
||||
#ifdef BN_SUPPORT_SNARK
|
||||
if (cp.b != 3 && cp.b != 82) {
|
||||
printf("not support point for b=%d\n", cp.b);
|
||||
exit(1);
|
||||
}
|
||||
return g_pointTbl[cp.b == 3 ? 0 : 1];
|
||||
#else
|
||||
if (cp != bn::CurveFp254BNb) {
|
||||
printf("not support except for CurveFp254BNb");
|
||||
exit(1);
|
||||
}
|
||||
return g_pointTbl[0];
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user