Coverage Report

Created: 2022-08-24 06:37

/src/cryptofuzz-sp-math/driver.cpp
Line
Count
Source (jump to first uncovered line)
1
#include "driver.h"
2
#include <fuzzing/datasource/id.hpp>
3
#include "tests.h"
4
#include "executor.h"
5
#include <cryptofuzz/util.h>
6
#include <set>
7
#include <algorithm>
8
#include <unistd.h>
9
10
namespace cryptofuzz {
11
12
22
void Driver::LoadModule(std::shared_ptr<Module> module) {
13
22
    modules[module->ID] = module;
14
22
}
15
16
124k
void Driver::Run(const uint8_t* data, const size_t size) const {
17
124k
    using fuzzing::datasource::ID;
18
19
124k
    static ExecutorDigest executorDigest(CF_OPERATION("Digest"), modules, options);
20
124k
    static ExecutorHMAC executorHMAC(CF_OPERATION("HMAC"), modules, options);
21
124k
    static ExecutorUMAC executorUMAC(CF_OPERATION("UMAC"), modules, options);
22
124k
    static ExecutorCMAC executorCMAC(CF_OPERATION("CMAC"), modules, options);
23
124k
    static ExecutorSymmetricEncrypt executorSymmetricEncrypt(CF_OPERATION("SymmetricEncrypt"), modules, options);
24
124k
    static ExecutorSymmetricDecrypt executorSymmetricDecrypt(CF_OPERATION("SymmetricDecrypt"), modules, options);
25
124k
    static ExecutorKDF_SCRYPT executorKDF_SCRYPT(CF_OPERATION("KDF_SCRYPT"), modules, options);
26
124k
    static ExecutorKDF_HKDF executorKDF_HKDF(CF_OPERATION("KDF_HKDF"), modules, options);
27
124k
    static ExecutorKDF_TLS1_PRF executorKDF_TLS1_PRF(CF_OPERATION("KDF_TLS1_PRF"), modules, options);
28
124k
    static ExecutorKDF_PBKDF executorKDF_PBKDF(CF_OPERATION("KDF_PBKDF"), modules, options);
29
124k
    static ExecutorKDF_PBKDF1 executorKDF_PBKDF1(CF_OPERATION("KDF_PBKDF1"), modules, options);
30
124k
    static ExecutorKDF_PBKDF2 executorKDF_PBKDF2(CF_OPERATION("KDF_PBKDF2"), modules, options);
31
124k
    static ExecutorKDF_ARGON2 executorKDF_ARGON2(CF_OPERATION("KDF_ARGON2"), modules, options);
32
124k
    static ExecutorKDF_SSH executorKDF_SSH(ID("Cryptofuzz/Operation/KDF_SSH"), modules, options);
33
124k
    static ExecutorKDF_X963 executorKDF_X963(CF_OPERATION("KDF_X963"), modules, options);
34
124k
    static ExecutorKDF_BCRYPT executorKDF_BCRYPT(CF_OPERATION("KDF_BCRYPT"), modules, options);
35
124k
    static ExecutorKDF_SP_800_108 executorKDF_SP_800_108(CF_OPERATION("KDF_SP_800_108"), modules, options);
36
124k
    static ExecutorECC_PrivateToPublic executorECC_PrivateToPublic(CF_OPERATION("ECC_PrivateToPublic"), modules, options);
37
124k
    static ExecutorECC_ValidatePubkey executorECC_ValidatePubkey(CF_OPERATION("ECC_ValidatePubkey"), modules, options);
38
124k
    static ExecutorECC_GenerateKeyPair executorECC_GenerateKeyPair(CF_OPERATION("ECC_GenerateKeyPair"), modules, options);
39
124k
    static ExecutorECDSA_Sign executorECDSA_Sign(CF_OPERATION("ECDSA_Sign"), modules, options);
40
124k
    static ExecutorECGDSA_Sign executorECGDSA_Sign(CF_OPERATION("ECGDSA_Sign"), modules, options);
41
124k
    static ExecutorECRDSA_Sign executorECRDSA_Sign(CF_OPERATION("ECRDSA_Sign"), modules, options);
42
124k
    static ExecutorSchnorr_Sign executorSchnorr_Sign(CF_OPERATION("Schnorr_Sign"), modules, options);
43
124k
    static ExecutorECDSA_Verify executorECDSA_Verify(CF_OPERATION("ECDSA_Verify"), modules, options);
44
124k
    static ExecutorECGDSA_Verify executorECGDSA_Verify(CF_OPERATION("ECGDSA_Verify"), modules, options);
45
124k
    static ExecutorECRDSA_Verify executorECRDSA_Verify(CF_OPERATION("ECRDSA_Verify"), modules, options);
46
124k
    static ExecutorSchnorr_Verify executorSchnorr_Verify(CF_OPERATION("Schnorr_Verify"), modules, options);
47
124k
    static ExecutorECDSA_Recover executorECDSA_Recover(CF_OPERATION("ECDSA_Recover"), modules, options);
48
124k
    static ExecutorECDH_Derive executorECDH_Derive(CF_OPERATION("ECDH_Derive"), modules, options);
49
124k
    static ExecutorECIES_Encrypt executorECIES_Encrypt(CF_OPERATION("ECIES_Encrypt"), modules, options);
50
124k
    static ExecutorECIES_Decrypt executorECIES_Decrypt(CF_OPERATION("ECIES_Decrypt"), modules, options);
51
124k
    static ExecutorECC_Point_Add executorECC_Point_Add(CF_OPERATION("ECC_Point_Add"), modules, options);
52
124k
    static ExecutorECC_Point_Mul executorECC_Point_Mul(CF_OPERATION("ECC_Point_Mul"), modules, options);
53
124k
    static ExecutorECC_Point_Neg executorECC_Point_Neg(CF_OPERATION("ECC_Point_Neg"), modules, options);
54
124k
    static ExecutorECC_Point_Dbl executorECC_Point_Dbl(CF_OPERATION("ECC_Point_Dbl"), modules, options);
55
124k
    static ExecutorDH_GenerateKeyPair executorDH_GenerateKeyPair(CF_OPERATION("DH_GenerateKeyPair"), modules, options);
56
124k
    static ExecutorDH_Derive executorDH_Derive(CF_OPERATION("DH_Derive"), modules, options);
57
124k
    static ExecutorBignumCalc executorBignumCalc(CF_OPERATION("BignumCalc"), modules, options);
58
124k
    static ExecutorBignumCalc_Fp2 executorBignumCalc_Fp2(CF_OPERATION("BignumCalc_Fp2"), modules, options);
59
124k
    static ExecutorBignumCalc_Fp12 executorBignumCalc_Fp12(CF_OPERATION("BignumCalc_Fp12"), modules, options);
60
124k
    static ExecutorBignumCalc_Mod_BLS12_381_R executorBignumCalc_mod_bls12_381_r(CF_OPERATION("BignumCalc_Mod_BLS12_381_R"), modules, options);
61
124k
    static ExecutorBignumCalc_Mod_BLS12_381_P executorBignumCalc_mod_bls12_381_p(CF_OPERATION("BignumCalc_Mod_BLS12_381_P"), modules, options);
62
124k
    static ExecutorBignumCalc_Mod_BN128_R executorBignumCalc_mod_bn128_r(CF_OPERATION("BignumCalc_Mod_BN128_R"), modules, options);
63
124k
    static ExecutorBignumCalc_Mod_BN128_P executorBignumCalc_mod_bn128_p(CF_OPERATION("BignumCalc_Mod_BN128_P"), modules, options);
64
124k
    static ExecutorBignumCalc_Mod_ED25519 executorBignumCalc_mod_ed25519(CF_OPERATION("BignumCalc_Mod_ED25519"), modules, options);
65
124k
    static ExecutorBignumCalc_Mod_Edwards_R executorBignumCalc_mod_edwards_r(CF_OPERATION("BignumCalc_Mod_Edwards_R"), modules, options);
66
124k
    static ExecutorBignumCalc_Mod_Edwards_P executorBignumCalc_mod_edwards_p(CF_OPERATION("BignumCalc_Mod_Edwards_P"), modules, options);
67
124k
    static ExecutorBignumCalc_Mod_MNT4_R executorBignumCalc_mod_mnt4_r(CF_OPERATION("BignumCalc_Mod_MNT4_R"), modules, options);
68
124k
    static ExecutorBignumCalc_Mod_MNT4_P executorBignumCalc_mod_mnt4_p(CF_OPERATION("BignumCalc_Mod_MNT4_P"), modules, options);
69
124k
    static ExecutorBignumCalc_Mod_MNT6_R executorBignumCalc_mod_mnt6_r(CF_OPERATION("BignumCalc_Mod_MNT6_R"), modules, options);
70
124k
    static ExecutorBignumCalc_Mod_MNT6_P executorBignumCalc_mod_mnt6_p(CF_OPERATION("BignumCalc_Mod_MNT6_P"), modules, options);
71
124k
    static ExecutorBignumCalc_Mod_2Exp64 executorBignumCalc_mod_2exp64(CF_OPERATION("BignumCalc_Mod_2Exp64"), modules, options);
72
124k
    static ExecutorBignumCalc_Mod_2Exp128 executorBignumCalc_mod_2exp128(CF_OPERATION("BignumCalc_Mod_2Exp128"), modules, options);
73
124k
    static ExecutorBignumCalc_Mod_2Exp256 executorBignumCalc_mod_2exp256(CF_OPERATION("BignumCalc_Mod_2Exp256"), modules, options);
74
124k
    static ExecutorBignumCalc_Mod_2Exp512 executorBignumCalc_mod_2exp512(CF_OPERATION("BignumCalc_Mod_2Exp512"), modules, options);
75
124k
    static ExecutorBignumCalc_Mod_SECP256K1 executorBignumCalc_mod_secp256k1(CF_OPERATION("BignumCalc_Mod_SECP256K1"), modules, options);
76
124k
    static ExecutorBignumCalc_Mod_SECP256K1_P executorBignumCalc_mod_secp256k1_p(CF_OPERATION("BignumCalc_Mod_SECP256K1_P"), modules, options);
77
124k
    static ExecutorBLS_PrivateToPublic executorBLS_PrivateToPublic(CF_OPERATION("BLS_PrivateToPublic"), modules, options);
78
124k
    static ExecutorBLS_PrivateToPublic_G2 executorBLS_PrivateToPublic_G2(CF_OPERATION("BLS_PrivateToPublic_G2"), modules, options);
79
124k
    static ExecutorBLS_Sign executorBLS_Sign(CF_OPERATION("BLS_Sign"), modules, options);
80
124k
    static ExecutorBLS_Verify executorBLS_Verify(CF_OPERATION("BLS_Verify"), modules, options);
81
124k
    static ExecutorBLS_BatchSign executorBLS_BatchSign(CF_OPERATION("BLS_BatchSign"), modules, options);
82
124k
    static ExecutorBLS_BatchVerify executorBLS_BatchVerify(CF_OPERATION("BLS_BatchVerify"), modules, options);
83
124k
    static ExecutorBLS_Aggregate_G1 executorBLS_Aggregate_G1(CF_OPERATION("BLS_Aggregate_G1"), modules, options);
84
124k
    static ExecutorBLS_Aggregate_G2 executorBLS_Aggregate_G2(CF_OPERATION("BLS_Aggregate_G2"), modules, options);
85
124k
    static ExecutorBLS_Pairing executorBLS_Pairing(CF_OPERATION("BLS_Pairing"), modules, options);
86
124k
    static ExecutorBLS_MillerLoop executorBLS_MillerLoop(CF_OPERATION("BLS_MillerLoop"), modules, options);
87
124k
    static ExecutorBLS_FinalExp executorBLS_FinalExp(CF_OPERATION("BLS_FinalExp"), modules, options);
88
124k
    static ExecutorBLS_HashToG1 executorBLS_HashToG1(CF_OPERATION("BLS_HashToG1"), modules, options);
89
124k
    static ExecutorBLS_HashToG2 executorBLS_HashToG2(CF_OPERATION("BLS_HashToG2"), modules, options);
90
124k
    static ExecutorBLS_MapToG1 executorBLS_MapToG1(CF_OPERATION("BLS_MapToG1"), modules, options);
91
124k
    static ExecutorBLS_MapToG2 executorBLS_MapToG2(CF_OPERATION("BLS_MapToG2"), modules, options);
92
124k
    static ExecutorBLS_IsG1OnCurve executorBLS_IsG1OnCurve(CF_OPERATION("BLS_IsG1OnCurve"), modules, options);
93
124k
    static ExecutorBLS_IsG2OnCurve executorBLS_IsG2OnCurve(CF_OPERATION("BLS_IsG2OnCurve"), modules, options);
94
124k
    static ExecutorBLS_GenerateKeyPair executorBLS_GenerateKeyPair(CF_OPERATION("BLS_GenerateKeyPair"), modules, options);
95
124k
    static ExecutorBLS_Decompress_G1 executorBLS_Decompress_G1(CF_OPERATION("BLS_Decompress_G1"), modules, options);
96
124k
    static ExecutorBLS_Compress_G1 executorBLS_Compress_G1(CF_OPERATION("BLS_Compress_G1"), modules, options);
97
124k
    static ExecutorBLS_Decompress_G2 executorBLS_Decompress_G2(CF_OPERATION("BLS_Decompress_G2"), modules, options);
98
124k
    static ExecutorBLS_Compress_G2 executorBLS_Compress_G2(CF_OPERATION("BLS_Compress_G2"), modules, options);
99
124k
    static ExecutorBLS_G1_Add executorBLS_G1_Add(CF_OPERATION("BLS_G1_Add"), modules, options);
100
124k
    static ExecutorBLS_G1_Mul executorBLS_G1_Mul(CF_OPERATION("BLS_G1_Mul"), modules, options);
101
124k
    static ExecutorBLS_G1_IsEq executorBLS_G1_IsEq(CF_OPERATION("BLS_G1_IsEq"), modules, options);
102
124k
    static ExecutorBLS_G1_Neg executorBLS_G1_Neg(CF_OPERATION("BLS_G1_Neg"), modules, options);
103
124k
    static ExecutorBLS_G2_Add executorBLS_G2_Add(CF_OPERATION("BLS_G2_Add"), modules, options);
104
124k
    static ExecutorBLS_G2_Mul executorBLS_G2_Mul(CF_OPERATION("BLS_G2_Mul"), modules, options);
105
124k
    static ExecutorBLS_G2_IsEq executorBLS_G2_IsEq(CF_OPERATION("BLS_G2_IsEq"), modules, options);
106
124k
    static ExecutorBLS_G2_Neg executorBLS_G2_Neg(CF_OPERATION("BLS_G2_Neg"), modules, options);
107
124k
    static ExecutorMisc executorMisc(CF_OPERATION("Misc"), modules, options);
108
124k
    static ExecutorSR25519_Verify executorSR25519_Verify(CF_OPERATION("SR25519_Verify"), modules, options);
109
110
124k
    try {
111
112
124k
        Datasource ds(data, size);
113
114
124k
        const auto operation = ds.Get<uint64_t>();
115
116
124k
        if ( !options.operations.Have(operation) ) {
117
602
            return;
118
602
        }
119
120
124k
        const auto payload = ds.GetData(0, 1);
121
122
124k
        switch ( operation ) {
123
330
            case CF_OPERATION("Digest"):
124
330
                executorDigest.Run(ds, payload.data(), payload.size());
125
330
                break;
126
264
            case CF_OPERATION("HMAC"):
127
264
                executorHMAC.Run(ds, payload.data(), payload.size());
128
264
                break;
129
40
            case CF_OPERATION("UMAC"):
130
40
                executorUMAC.Run(ds, payload.data(), payload.size());
131
40
                break;
132
50
            case CF_OPERATION("CMAC"):
133
50
                executorCMAC.Run(ds, payload.data(), payload.size());
134
50
                break;
135
374
            case CF_OPERATION("SymmetricEncrypt"):
136
374
                executorSymmetricEncrypt.Run(ds, payload.data(), payload.size());
137
374
                break;
138
305
            case CF_OPERATION("SymmetricDecrypt"):
139
305
                executorSymmetricDecrypt.Run(ds, payload.data(), payload.size());
140
305
                break;
141
52
            case CF_OPERATION("KDF_SCRYPT"):
142
52
                executorKDF_SCRYPT.Run(ds, payload.data(), payload.size());
143
52
                break;
144
81
            case CF_OPERATION("KDF_HKDF"):
145
81
                executorKDF_HKDF.Run(ds, payload.data(), payload.size());
146
81
                break;
147
66
            case CF_OPERATION("KDF_TLS1_PRF"):
148
66
                executorKDF_TLS1_PRF.Run(ds, payload.data(), payload.size());
149
66
                break;
150
62
            case CF_OPERATION("KDF_PBKDF"):
151
62
                executorKDF_PBKDF.Run(ds, payload.data(), payload.size());
152
62
                break;
153
63
            case CF_OPERATION("KDF_PBKDF1"):
154
63
                executorKDF_PBKDF1.Run(ds, payload.data(), payload.size());
155
63
                break;
156
50
            case CF_OPERATION("KDF_PBKDF2"):
157
50
                executorKDF_PBKDF2.Run(ds, payload.data(), payload.size());
158
50
                break;
159
39
            case CF_OPERATION("KDF_ARGON2"):
160
39
                executorKDF_ARGON2.Run(ds, payload.data(), payload.size());
161
39
                break;
162
76
            case CF_OPERATION("KDF_SSH"):
163
76
                executorKDF_SSH.Run(ds, payload.data(), payload.size());
164
76
                break;
165
64
            case CF_OPERATION("KDF_X963"):
166
64
                executorKDF_X963.Run(ds, payload.data(), payload.size());
167
64
                break;
168
15
            case CF_OPERATION("KDF_BCRYPT"):
169
15
                executorKDF_BCRYPT.Run(ds, payload.data(), payload.size());
170
15
                break;
171
71
            case CF_OPERATION("KDF_SP_800_108"):
172
71
                executorKDF_SP_800_108.Run(ds, payload.data(), payload.size());
173
71
                break;
174
5.95k
            case CF_OPERATION("ECC_PrivateToPublic"):
175
5.95k
                executorECC_PrivateToPublic.Run(ds, payload.data(), payload.size());
176
5.95k
                break;
177
5.81k
            case CF_OPERATION("ECC_ValidatePubkey"):
178
5.81k
                executorECC_ValidatePubkey.Run(ds, payload.data(), payload.size());
179
5.81k
                break;
180
6.48k
            case CF_OPERATION("ECC_GenerateKeyPair"):
181
6.48k
                executorECC_GenerateKeyPair.Run(ds, payload.data(), payload.size());
182
6.48k
                break;
183
6.16k
            case CF_OPERATION("ECDSA_Sign"):
184
6.16k
                executorECDSA_Sign.Run(ds, payload.data(), payload.size());
185
6.16k
                break;
186
34
            case CF_OPERATION("ECGDSA_Sign"):
187
34
                executorECGDSA_Sign.Run(ds, payload.data(), payload.size());
188
34
                break;
189
42
            case CF_OPERATION("ECRDSA_Sign"):
190
42
                executorECRDSA_Sign.Run(ds, payload.data(), payload.size());
191
42
                break;
192
40
            case CF_OPERATION("Schnorr_Sign"):
193
40
                executorSchnorr_Sign.Run(ds, payload.data(), payload.size());
194
40
                break;
195
4.31k
            case CF_OPERATION("ECDSA_Verify"):
196
4.31k
                executorECDSA_Verify.Run(ds, payload.data(), payload.size());
197
4.31k
                break;
198
37
            case CF_OPERATION("ECGDSA_Verify"):
199
37
                executorECGDSA_Verify.Run(ds, payload.data(), payload.size());
200
37
                break;
201
30
            case CF_OPERATION("ECRDSA_Verify"):
202
30
                executorECRDSA_Verify.Run(ds, payload.data(), payload.size());
203
30
                break;
204
26
            case CF_OPERATION("Schnorr_Verify"):
205
26
                executorSchnorr_Verify.Run(ds, payload.data(), payload.size());
206
26
                break;
207
38
            case CF_OPERATION("ECDSA_Recover"):
208
38
                executorECDSA_Recover.Run(ds, payload.data(), payload.size());
209
38
                break;
210
671
            case CF_OPERATION("ECDH_Derive"):
211
671
                executorECDH_Derive.Run(ds, payload.data(), payload.size());
212
671
                break;
213
1.09k
            case CF_OPERATION("ECIES_Encrypt"):
214
1.09k
                executorECIES_Encrypt.Run(ds, payload.data(), payload.size());
215
1.09k
                break;
216
950
            case CF_OPERATION("ECIES_Decrypt"):
217
950
                executorECIES_Decrypt.Run(ds, payload.data(), payload.size());
218
950
                break;
219
2.37k
            case CF_OPERATION("ECC_Point_Add"):
220
2.37k
                executorECC_Point_Add.Run(ds, payload.data(), payload.size());
221
2.37k
                break;
222
3.75k
            case CF_OPERATION("ECC_Point_Mul"):
223
3.75k
                executorECC_Point_Mul.Run(ds, payload.data(), payload.size());
224
3.75k
                break;
225
31
            case CF_OPERATION("ECC_Point_Neg"):
226
31
                executorECC_Point_Neg.Run(ds, payload.data(), payload.size());
227
31
                break;
228
37
            case CF_OPERATION("ECC_Point_Dbl"):
229
37
                executorECC_Point_Dbl.Run(ds, payload.data(), payload.size());
230
37
                break;
231
5.43k
            case CF_OPERATION("DH_GenerateKeyPair"):
232
5.43k
                executorDH_GenerateKeyPair.Run(ds, payload.data(), payload.size());
233
5.43k
                break;
234
2.42k
            case CF_OPERATION("DH_Derive"):
235
2.42k
                executorDH_Derive.Run(ds, payload.data(), payload.size());
236
2.42k
                break;
237
68.4k
            case CF_OPERATION("BignumCalc"):
238
68.4k
                executorBignumCalc.Run(ds, payload.data(), payload.size());
239
68.4k
                break;
240
70
            case CF_OPERATION("BignumCalc_Fp2"):
241
70
                executorBignumCalc_Fp2.Run(ds, payload.data(), payload.size());
242
70
                break;
243
205
            case CF_OPERATION("BignumCalc_Fp12"):
244
205
                executorBignumCalc_Fp12.Run(ds, payload.data(), payload.size());
245
205
                break;
246
7
            case CF_OPERATION("BignumCalc_Mod_BLS12_381_R"):
247
7
                executorBignumCalc_mod_bls12_381_r.Run(ds, payload.data(), payload.size());
248
7
                break;
249
10
            case CF_OPERATION("BignumCalc_Mod_BLS12_381_P"):
250
10
                executorBignumCalc_mod_bls12_381_p.Run(ds, payload.data(), payload.size());
251
10
                break;
252
5
            case CF_OPERATION("BignumCalc_Mod_BN128_R"):
253
5
                executorBignumCalc_mod_bn128_r.Run(ds, payload.data(), payload.size());
254
5
                break;
255
5
            case CF_OPERATION("BignumCalc_Mod_BN128_P"):
256
5
                executorBignumCalc_mod_bn128_p.Run(ds, payload.data(), payload.size());
257
5
                break;
258
8
            case CF_OPERATION("BignumCalc_Mod_ED25519"):
259
8
                executorBignumCalc_mod_ed25519.Run(ds, payload.data(), payload.size());
260
8
                break;
261
7
            case CF_OPERATION("BignumCalc_Mod_Edwards_R"):
262
7
                executorBignumCalc_mod_edwards_r.Run(ds, payload.data(), payload.size());
263
7
                break;
264
5
            case CF_OPERATION("BignumCalc_Mod_Edwards_P"):
265
5
                executorBignumCalc_mod_edwards_p.Run(ds, payload.data(), payload.size());
266
5
                break;
267
4
            case CF_OPERATION("BignumCalc_Mod_MNT4_R"):
268
4
                executorBignumCalc_mod_mnt4_r.Run(ds, payload.data(), payload.size());
269
4
                break;
270
5
            case CF_OPERATION("BignumCalc_Mod_MNT4_P"):
271
5
                executorBignumCalc_mod_mnt4_p.Run(ds, payload.data(), payload.size());
272
5
                break;
273
4
            case CF_OPERATION("BignumCalc_Mod_MNT6_R"):
274
4
                executorBignumCalc_mod_mnt6_r.Run(ds, payload.data(), payload.size());
275
4
                break;
276
5
            case CF_OPERATION("BignumCalc_Mod_MNT6_P"):
277
5
                executorBignumCalc_mod_mnt6_p.Run(ds, payload.data(), payload.size());
278
5
                break;
279
6
            case CF_OPERATION("BignumCalc_Mod_2Exp64"):
280
6
                executorBignumCalc_mod_2exp64.Run(ds, payload.data(), payload.size());
281
6
                break;
282
7
            case CF_OPERATION("BignumCalc_Mod_2Exp128"):
283
7
                executorBignumCalc_mod_2exp128.Run(ds, payload.data(), payload.size());
284
7
                break;
285
4
            case CF_OPERATION("BignumCalc_Mod_2Exp256"):
286
4
                executorBignumCalc_mod_2exp256.Run(ds, payload.data(), payload.size());
287
4
                break;
288
2
            case CF_OPERATION("BignumCalc_Mod_2Exp512"):
289
2
                executorBignumCalc_mod_2exp512.Run(ds, payload.data(), payload.size());
290
2
                break;
291
5
            case CF_OPERATION("BignumCalc_Mod_SECP256K1"):
292
5
                executorBignumCalc_mod_secp256k1.Run(ds, payload.data(), payload.size());
293
5
                break;
294
3
            case CF_OPERATION("BignumCalc_Mod_SECP256K1_P"):
295
3
                executorBignumCalc_mod_secp256k1_p.Run(ds, payload.data(), payload.size());
296
3
                break;
297
59
            case CF_OPERATION("BLS_PrivateToPublic"):
298
59
                executorBLS_PrivateToPublic.Run(ds, payload.data(), payload.size());
299
59
                break;
300
52
            case CF_OPERATION("BLS_PrivateToPublic_G2"):
301
52
                executorBLS_PrivateToPublic_G2.Run(ds, payload.data(), payload.size());
302
52
                break;
303
51
            case CF_OPERATION("BLS_Sign"):
304
51
                executorBLS_Sign.Run(ds, payload.data(), payload.size());
305
51
                break;
306
32
            case CF_OPERATION("BLS_Verify"):
307
32
                executorBLS_Verify.Run(ds, payload.data(), payload.size());
308
32
                break;
309
83
            case CF_OPERATION("BLS_BatchSign"):
310
83
                executorBLS_BatchSign.Run(ds, payload.data(), payload.size());
311
83
                break;
312
35
            case CF_OPERATION("BLS_BatchVerify"):
313
35
                executorBLS_BatchVerify.Run(ds, payload.data(), payload.size());
314
35
                break;
315
47
            case CF_OPERATION("BLS_Aggregate_G1"):
316
47
                executorBLS_Aggregate_G1.Run(ds, payload.data(), payload.size());
317
47
                break;
318
51
            case CF_OPERATION("BLS_Aggregate_G2"):
319
51
                executorBLS_Aggregate_G2.Run(ds, payload.data(), payload.size());
320
51
                break;
321
44
            case CF_OPERATION("BLS_Pairing"):
322
44
                executorBLS_Pairing.Run(ds, payload.data(), payload.size());
323
44
                break;
324
40
            case CF_OPERATION("BLS_MillerLoop"):
325
40
                executorBLS_MillerLoop.Run(ds, payload.data(), payload.size());
326
40
                break;
327
49
            case CF_OPERATION("BLS_FinalExp"):
328
49
                executorBLS_FinalExp.Run(ds, payload.data(), payload.size());
329
49
                break;
330
40
            case CF_OPERATION("BLS_HashToG1"):
331
40
                executorBLS_HashToG1.Run(ds, payload.data(), payload.size());
332
40
                break;
333
44
            case CF_OPERATION("BLS_HashToG2"):
334
44
                executorBLS_HashToG2.Run(ds, payload.data(), payload.size());
335
44
                break;
336
41
            case CF_OPERATION("BLS_MapToG1"):
337
41
                executorBLS_MapToG1.Run(ds, payload.data(), payload.size());
338
41
                break;
339
29
            case CF_OPERATION("BLS_MapToG2"):
340
29
                executorBLS_MapToG2.Run(ds, payload.data(), payload.size());
341
29
                break;
342
39
            case CF_OPERATION("BLS_IsG1OnCurve"):
343
39
                executorBLS_IsG1OnCurve.Run(ds, payload.data(), payload.size());
344
39
                break;
345
74
            case CF_OPERATION("BLS_IsG2OnCurve"):
346
74
                executorBLS_IsG2OnCurve.Run(ds, payload.data(), payload.size());
347
74
                break;
348
33
            case CF_OPERATION("BLS_GenerateKeyPair"):
349
33
                executorBLS_GenerateKeyPair.Run(ds, payload.data(), payload.size());
350
33
                break;
351
33
            case CF_OPERATION("BLS_Decompress_G1"):
352
33
                executorBLS_Decompress_G1.Run(ds, payload.data(), payload.size());
353
33
                break;
354
39
            case CF_OPERATION("BLS_Compress_G1"):
355
39
                executorBLS_Compress_G1.Run(ds, payload.data(), payload.size());
356
39
                break;
357
34
            case CF_OPERATION("BLS_Decompress_G2"):
358
34
                executorBLS_Decompress_G2.Run(ds, payload.data(), payload.size());
359
34
                break;
360
26
            case CF_OPERATION("BLS_Compress_G2"):
361
26
                executorBLS_Compress_G2.Run(ds, payload.data(), payload.size());
362
26
                break;
363
63
            case CF_OPERATION("BLS_G1_Add"):
364
63
                executorBLS_G1_Add.Run(ds, payload.data(), payload.size());
365
63
                break;
366
60
            case CF_OPERATION("BLS_G1_Mul"):
367
60
                executorBLS_G1_Mul.Run(ds, payload.data(), payload.size());
368
60
                break;
369
72
            case CF_OPERATION("BLS_G1_IsEq"):
370
72
                executorBLS_G1_IsEq.Run(ds, payload.data(), payload.size());
371
72
                break;
372
52
            case CF_OPERATION("BLS_G1_Neg"):
373
52
                executorBLS_G1_Neg.Run(ds, payload.data(), payload.size());
374
52
                break;
375
78
            case CF_OPERATION("BLS_G2_Add"):
376
78
                executorBLS_G2_Add.Run(ds, payload.data(), payload.size());
377
78
                break;
378
56
            case CF_OPERATION("BLS_G2_Mul"):
379
56
                executorBLS_G2_Mul.Run(ds, payload.data(), payload.size());
380
56
                break;
381
75
            case CF_OPERATION("BLS_G2_IsEq"):
382
75
                executorBLS_G2_IsEq.Run(ds, payload.data(), payload.size());
383
75
                break;
384
69
            case CF_OPERATION("BLS_G2_Neg"):
385
69
                executorBLS_G2_Neg.Run(ds, payload.data(), payload.size());
386
69
                break;
387
26
            case CF_OPERATION("Misc"):
388
26
                executorMisc.Run(ds, payload.data(), payload.size());
389
26
                break;
390
59
            case CF_OPERATION("SR25519_Verify"):
391
59
                executorSR25519_Verify.Run(ds, payload.data(), payload.size());
392
59
                break;
393
124k
        }
394
124k
    } catch ( Datasource::OutOfData ) {
395
6.05k
    }
396
124k
};
397
398
Driver::Driver(const Options options) :
399
    options(options)
400
12
{ }
401
402
12
const Options* Driver::GetOptionsPtr(void) const {
403
12
    return &options;
404
12
}
405
406
} /* namespace cryptofuzz */