1
+ package com .github .pvriel .oprf4j .nroprf .semihonest .KALES19 ;
2
+
3
+ import com .github .pvriel .mpcutils4j .math .MultiplicativeGroup ;
4
+ import com .github .pvriel .oblivioustransfer4j .ot .semihonest .alsz13 .ALSZ13ObliviousTransferReceiver ;
5
+ import com .github .pvriel .oblivioustransfer4j .ot .semihonest .alsz13 .ALSZ13ObliviousTransferSender ;
6
+ import com .github .pvriel .oblivioustransfer4j .ote .semihonest .alsz13 .ALSZ13ObliviousTransferExtensionReceiver ;
7
+ import com .github .pvriel .oblivioustransfer4j .ote .semihonest .alsz13 .ALSZ13ObliviousTransferExtensionSender ;
8
+ import com .github .pvriel .oblivioustransfer4j .precomputed .semihonest .bea95 .BEA95PrecomputedObliviousTransferReceiver ;
9
+ import com .github .pvriel .oblivioustransfer4j .precomputed .semihonest .bea95 .BEA95PrecomputedObliviousTransferSender ;
10
+ import com .github .pvriel .oblivioustransfer4j .rot .semihonest .asharov17 .ASHAROV17RandomObliviousTransferReceiver ;
11
+ import com .github .pvriel .oblivioustransfer4j .rot .semihonest .asharov17 .ASHAROV17RandomObliviousTransferSender ;
12
+ import com .github .pvriel .oblivioustransfer4j .rrot .RandomObliviousTransferReceiver ;
13
+ import com .github .pvriel .oblivioustransfer4j .srot .RandomObliviousTransferSender ;
14
+ import com .github .pvriel .oprf4j .AbstractOPRFTest ;
15
+ import com .github .pvriel .oprf4j .nroprf .semihonest .KISS17 .KISS17NROPRFEvaluator ;
16
+ import com .github .pvriel .oprf4j .nroprf .semihonest .KISS17 .KISS17NROPRFProvider ;
17
+ import com .github .pvriel .oprf4j .oprf .OPRFEvaluator ;
18
+ import com .github .pvriel .oprf4j .oprf .OPRFProvider ;
19
+ import com .github .pvriel .prf4j .PRF ;
20
+ import com .github .pvriel .prf4j .naorreingold .NaorReingoldPRF ;
21
+ import org .apache .commons .lang3 .tuple .Pair ;
22
+ import org .apache .commons .lang3 .tuple .Triple ;
23
+
24
+ import java .math .BigInteger ;
25
+ import java .util .Arrays ;
26
+ import java .util .Random ;
27
+
28
+ import static com .github .pvriel .ot .semihonest .KISS17 .KISS17ObliviousTransferDefaultValues .p ;
29
+ import static com .github .pvriel .ot .semihonest .KISS17 .KISS17ObliviousTransferDefaultValues .q ;
30
+
31
+ class KALES19NROPRFTest extends AbstractOPRFTest {
32
+
33
+ private final static int BIT_LENGTH_TEST_CASES = 128 ;
34
+ private final static int AMOUNT_OF_TEST_CASES = 1000 ;
35
+ private final static Random random = new Random ();
36
+
37
+ @ Override
38
+ protected Triple <Integer , Pair <BigInteger [], BigInteger []>, Pair <OPRFProvider , OPRFEvaluator >> setup () {
39
+ BigInteger g = new MultiplicativeGroup (p .getValue ()).getElementOfOrder (q .getValue ());
40
+ MultiplicativeGroup multiplicativeGroupQ = new MultiplicativeGroup (q .getValue ());
41
+ BigInteger a0 [] = multiplicativeGroupQ .getRandomElements (BIT_LENGTH_TEST_CASES );
42
+ BigInteger a1 [] = new BigInteger [BIT_LENGTH_TEST_CASES ];
43
+ BigInteger initialKey = BigInteger .ONE ;
44
+ Arrays .fill (a1 , BigInteger .ONE );
45
+ System .out .println ("Generating test cases..." );
46
+
47
+ ALSZ13ObliviousTransferSender baseOTSender = new ALSZ13ObliviousTransferSender (p .getValue (), q .getValue (), g );
48
+ ALSZ13ObliviousTransferReceiver baseOTReceiver = new ALSZ13ObliviousTransferReceiver (p .getValue (), q .getValue (), g );
49
+ ALSZ13ObliviousTransferExtensionSender OTeSender = new ALSZ13ObliviousTransferExtensionSender (10 , baseOTReceiver );
50
+ ALSZ13ObliviousTransferExtensionReceiver OTeReceiver = new ALSZ13ObliviousTransferExtensionReceiver (10 , baseOTSender );
51
+ ASHAROV17RandomObliviousTransferSender ROTSender = new ASHAROV17RandomObliviousTransferSender (10 , OTeReceiver );
52
+ ASHAROV17RandomObliviousTransferReceiver ROTReceiver = new ASHAROV17RandomObliviousTransferReceiver (10 , OTeSender );
53
+ KALES19NROPRFProvider provider = new KALES19NROPRFProvider (initialKey , a0 , null , p .getValue (), q .getValue (), g , ROTSender , q .getValue ().bitLength ());
54
+ KALES19NROPRFEvaluator evaluator = new KALES19NROPRFEvaluator (p .getValue (), q .getValue (), ROTReceiver , q .getValue ().bitLength ());
55
+
56
+ BigInteger inputs [] = new BigInteger [AMOUNT_OF_TEST_CASES ];
57
+ PRF prf = new NaorReingoldPRF (initialKey , a0 , a1 , p .getValue (), q .getValue (), g );
58
+ for (int i = 0 ; i < AMOUNT_OF_TEST_CASES ; i ++) {
59
+ // if (i % (Math.max(1, AMOUNT_OF_TEST_CASES / 10)) == 1) System.out.println("Generating test case " + i + " of " + AMOUNT_OF_TEST_CASES);
60
+ inputs [i ] = new BigInteger (BIT_LENGTH_TEST_CASES , random );
61
+ }
62
+ BigInteger expectedOutputs [] = prf .compute (inputs );
63
+
64
+ return Triple .of (BIT_LENGTH_TEST_CASES , Pair .of (inputs , expectedOutputs ), Pair .of (provider , evaluator ));
65
+ }
66
+ }
0 commit comments