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