Coverage Report

Created: 2022-08-24 06:31

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