This commit is contained in:
Dmitry Vagner 2023-04-26 14:16:23 -07:00
parent 4c235e5a4b
commit 6dc094a894

View File

@ -240,7 +240,7 @@ fn test_bn_pairing() -> Result<()> {
let inputs: Vec<U256> = u256ify(vec![
"0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59",
"0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41",
"0x4bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678",
"0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678",
"0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7",
"0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550",
"0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d",
@ -249,51 +249,11 @@ fn test_bn_pairing() -> Result<()> {
"0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed",
"0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2",
"0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa",
"0x90689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b",
"0x900689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b",
])
.unwrap();
let A: Curve = {
Curve {
x: BN254 { val: inputs[0] },
y: BN254 { val: inputs[1] },
}
};
let B: TwistedCurve = {
TwistedCurve {
x: Fp2 {
re: BN254 { val: inputs[2] },
im: BN254 { val: inputs[3] },
},
y: Fp2 {
re: BN254 { val: inputs[4] },
im: BN254 { val: inputs[5] },
},
}
};
let C: Curve = {
Curve {
x: BN254 { val: inputs[6] },
y: BN254 { val: inputs[7] },
}
};
let D: TwistedCurve = {
TwistedCurve {
x: Fp2 {
re: BN254 { val: inputs[8] },
im: BN254 { val: inputs[9] },
},
y: Fp2 {
re: BN254 { val: inputs[10] },
im: BN254 { val: inputs[11] },
},
}
};
let setup1 = InterpreterMemoryInitialization {
let setup = InterpreterMemoryInitialization {
label: "bn254_pairing".to_string(),
stack: vec![
U256::one(),
@ -302,24 +262,9 @@ fn test_bn_pairing() -> Result<()> {
U256::from(0xdeadbeefu32),
],
segment: BnPairing,
memory: vec![(ptr, inputs[0..6].to_vec())],
memory: vec![(ptr, inputs)],
};
let interpreter1 = run_interpreter_with_memory(setup1).unwrap();
let output1 = interpreter1.extract_kernel_memory(BnPairing, out..out + 12);
let setup2 = InterpreterMemoryInitialization {
label: "bn254_pairing".to_string(),
stack: vec![
U256::one(),
U256::from(ptr),
U256::from(out),
U256::from(0xdeadbeefu32),
],
segment: BnPairing,
memory: vec![(ptr, inputs[6..12].to_vec())],
};
let interpreter2 = run_interpreter_with_memory(setup2).unwrap();
let output2 = interpreter2.extract_kernel_memory(BnPairing, out..out + 12);
let interpreter = run_interpreter_with_memory(setup).unwrap();
assert_eq!(interpreter.stack(), Fp12::<BN254>::UNIT.on_stack());
Ok(())
}