/src/cryptofuzz/executor.h
Line  | Count  | Source (jump to first uncovered line)  | 
1  |  | #pragma once  | 
2  |  |  | 
3  |  | #include <cryptofuzz/module.h>  | 
4  |  | #include <cryptofuzz/options.h>  | 
5  |  | #include <cstddef>  | 
6  |  | #include <cstdint>  | 
7  |  | #include <fuzzing/datasource/datasource.hpp>  | 
8  |  | #include <map>  | 
9  |  | #include <memory>  | 
10  |  | #include <utility>  | 
11  |  | #include <vector>  | 
12  |  |  | 
13  |  | namespace cryptofuzz { | 
14  |  |  | 
15  |  | template <class ResultType, class OperationType>  | 
16  |  | class ExecutorBase { | 
17  |  |     private:  | 
18  |  |         const uint64_t operationID;  | 
19  |  |         const std::map<uint64_t, std::shared_ptr<Module> > modules;  | 
20  |  |     protected:  | 
21  |  |         const Options& options;  | 
22  |  |     private:  | 
23  |  |         using ResultPair = std::pair< std::shared_ptr<Module>, std::optional<ResultType> >;  | 
24  |  |         using ResultSet = std::vector<ResultPair>;  | 
25  |  |  | 
26  |  |         ResultSet filter(const ResultSet& results) const;  | 
27  |  |         bool dontCompare(const OperationType& operation) const;  | 
28  |  |         void compare(const std::vector< std::pair<std::shared_ptr<Module>, OperationType> >& operations, const ResultSet& results, const uint8_t* data, const size_t size) const;  | 
29  |  |         OperationType getOp(Datasource* parentDs, const uint8_t* data, const size_t size) const;  | 
30  |  |         virtual OperationType getOpPostprocess(Datasource* parentDs, OperationType op) const;  | 
31  |  |         std::shared_ptr<Module> getModule(Datasource& ds) const;  | 
32  |  |  | 
33  |  |         /* To be implemented by specializations of ExecutorBase */  | 
34  |  |         void updateExtraCounters(const uint64_t moduleID, OperationType& op) const;  | 
35  |  |         void postprocess(std::shared_ptr<Module> module, OperationType& op, const ResultPair& result) const;  | 
36  | 0  |         virtual std::optional<ResultType> callModule(std::shared_ptr<Module> module, OperationType& op) const { | 
37  | 0  |             (void)module;  | 
38  | 0  |             (void)op;  | 
39  | 0  |             ::abort();  | 
40  | 0  |         } Unexecuted instantiation: cryptofuzz::ExecutorBase<cryptofuzz::Bignum, cryptofuzz::operation::BignumCalc>::callModule(std::__1::shared_ptr<cryptofuzz::Module>, cryptofuzz::operation::BignumCalc&) const Unexecuted instantiation: cryptofuzz::ExecutorBase<cryptofuzz::component::BignumPair, cryptofuzz::operation::BignumCalc_Fp2>::callModule(std::__1::shared_ptr<cryptofuzz::Module>, cryptofuzz::operation::BignumCalc_Fp2&) const Unexecuted instantiation: cryptofuzz::ExecutorBase<cryptofuzz::component::Fp12, cryptofuzz::operation::BignumCalc_Fp12>::callModule(std::__1::shared_ptr<cryptofuzz::Module>, cryptofuzz::operation::BignumCalc_Fp12&) const  | 
41  |  |  | 
42  |  |         void abort(std::vector<std::string> moduleNames, const std::string operation, const std::string algorithm, const std::string reason) const;  | 
43  |  |     public:  | 
44  |  |         void Run(Datasource& parentDs, const uint8_t* data, const size_t size) const;  | 
45  |  |         ExecutorBase(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
46  |  |         virtual ~ExecutorBase();  | 
47  |  | };  | 
48  |  |  | 
49  |  | class ExecutorBignumCalc : public ExecutorBase<component::Bignum, operation::BignumCalc> { | 
50  |  |     private:  | 
51  |  |         std::optional<component::Bignum> callModule(std::shared_ptr<Module> module, operation::BignumCalc& op) const override;  | 
52  |  |     protected:  | 
53  |  |         std::optional<component::Bignum> modulo = std::nullopt;  | 
54  |  |     public:  | 
55  |  |         ExecutorBignumCalc(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
56  |  |         void SetModulo(const std::string& modulo);  | 
57  |  | };  | 
58  |  |  | 
59  |  | class ExecutorBignumCalc_Mod_BLS12_381_R : public ExecutorBignumCalc { | 
60  |  |     public:  | 
61  |  |         ExecutorBignumCalc_Mod_BLS12_381_R(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
62  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
63  |  | };  | 
64  |  |  | 
65  |  | class ExecutorBignumCalc_Mod_BLS12_381_P : public ExecutorBignumCalc { | 
66  |  |     public:  | 
67  |  |         ExecutorBignumCalc_Mod_BLS12_381_P(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
68  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
69  |  | };  | 
70  |  |  | 
71  |  | class ExecutorBignumCalc_Mod_BLS12_377_R : public ExecutorBignumCalc { | 
72  |  |     public:  | 
73  |  |         ExecutorBignumCalc_Mod_BLS12_377_R(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
74  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
75  |  | };  | 
76  |  |  | 
77  |  | class ExecutorBignumCalc_Mod_BLS12_377_P : public ExecutorBignumCalc { | 
78  |  |     public:  | 
79  |  |         ExecutorBignumCalc_Mod_BLS12_377_P(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
80  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
81  |  | };  | 
82  |  |  | 
83  |  | class ExecutorBignumCalc_Mod_BN128_R : public ExecutorBignumCalc { | 
84  |  |     public:  | 
85  |  |         ExecutorBignumCalc_Mod_BN128_R(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
86  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
87  |  | };  | 
88  |  |  | 
89  |  | class ExecutorBignumCalc_Mod_BN128_P : public ExecutorBignumCalc { | 
90  |  |     public:  | 
91  |  |         ExecutorBignumCalc_Mod_BN128_P(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
92  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
93  |  | };  | 
94  |  |  | 
95  |  | class ExecutorBignumCalc_Mod_Vesta_R : public ExecutorBignumCalc { | 
96  |  |     public:  | 
97  |  |         ExecutorBignumCalc_Mod_Vesta_R(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
98  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
99  |  | };  | 
100  |  |  | 
101  |  | class ExecutorBignumCalc_Mod_Vesta_P : public ExecutorBignumCalc { | 
102  |  |     public:  | 
103  |  |         ExecutorBignumCalc_Mod_Vesta_P(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
104  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
105  |  | };  | 
106  |  |  | 
107  |  | class ExecutorBignumCalc_Mod_ED25519 : public ExecutorBignumCalc { | 
108  |  |     public:  | 
109  |  |         ExecutorBignumCalc_Mod_ED25519(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
110  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
111  |  | };  | 
112  |  |  | 
113  |  | class ExecutorBignumCalc_Mod_Edwards_R : public ExecutorBignumCalc { | 
114  |  |     public:  | 
115  |  |         ExecutorBignumCalc_Mod_Edwards_R(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
116  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
117  |  | };  | 
118  |  |  | 
119  |  | class ExecutorBignumCalc_Mod_Edwards_P : public ExecutorBignumCalc { | 
120  |  |     public:  | 
121  |  |         ExecutorBignumCalc_Mod_Edwards_P(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
122  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
123  |  | };  | 
124  |  |  | 
125  |  | class ExecutorBignumCalc_Mod_Goldilocks : public ExecutorBignumCalc { | 
126  |  |     public:  | 
127  |  |         ExecutorBignumCalc_Mod_Goldilocks(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
128  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
129  |  | };  | 
130  |  |  | 
131  |  | class ExecutorBignumCalc_Mod_MNT4_R : public ExecutorBignumCalc { | 
132  |  |     public:  | 
133  |  |         ExecutorBignumCalc_Mod_MNT4_R(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
134  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
135  |  | };  | 
136  |  |  | 
137  |  | class ExecutorBignumCalc_Mod_MNT4_P : public ExecutorBignumCalc { | 
138  |  |     public:  | 
139  |  |         ExecutorBignumCalc_Mod_MNT4_P(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
140  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
141  |  | };  | 
142  |  |  | 
143  |  | class ExecutorBignumCalc_Mod_MNT6_R : public ExecutorBignumCalc { | 
144  |  |     public:  | 
145  |  |         ExecutorBignumCalc_Mod_MNT6_R(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
146  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
147  |  | };  | 
148  |  |  | 
149  |  | class ExecutorBignumCalc_Mod_MNT6_P : public ExecutorBignumCalc { | 
150  |  |     public:  | 
151  |  |         ExecutorBignumCalc_Mod_MNT6_P(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
152  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
153  |  | };  | 
154  |  |  | 
155  |  | class ExecutorBignumCalc_Mod_2Exp64 : public ExecutorBignumCalc { | 
156  |  |     public:  | 
157  |  |         ExecutorBignumCalc_Mod_2Exp64(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
158  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
159  |  | };  | 
160  |  |  | 
161  |  | class ExecutorBignumCalc_Mod_2Exp128 : public ExecutorBignumCalc { | 
162  |  |     public:  | 
163  |  |         ExecutorBignumCalc_Mod_2Exp128(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
164  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
165  |  | };  | 
166  |  |  | 
167  |  | class ExecutorBignumCalc_Mod_2Exp256 : public ExecutorBignumCalc { | 
168  |  |     public:  | 
169  |  |         ExecutorBignumCalc_Mod_2Exp256(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
170  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
171  |  | };  | 
172  |  |  | 
173  |  | class ExecutorBignumCalc_Mod_2Exp512 : public ExecutorBignumCalc { | 
174  |  |     public:  | 
175  |  |         ExecutorBignumCalc_Mod_2Exp512(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
176  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
177  |  | };  | 
178  |  |  | 
179  |  | class ExecutorBignumCalc_Mod_SECP256K1 : public ExecutorBignumCalc { | 
180  |  |     public:  | 
181  |  |         ExecutorBignumCalc_Mod_SECP256K1(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
182  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
183  |  | };  | 
184  |  |  | 
185  |  | class ExecutorBignumCalc_Mod_SECP256K1_P : public ExecutorBignumCalc { | 
186  |  |     public:  | 
187  |  |         ExecutorBignumCalc_Mod_SECP256K1_P(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
188  |  |         operation::BignumCalc getOpPostprocess(Datasource* parentDs, operation::BignumCalc op) const override;  | 
189  |  | };  | 
190  |  |  | 
191  |  | class ExecutorBignumCalc_Fp2 : public ExecutorBase<component::Fp2, operation::BignumCalc_Fp2> { | 
192  |  |     private:  | 
193  |  |         std::optional<component::Fp2> callModule(std::shared_ptr<Module> module, operation::BignumCalc_Fp2& op) const override;  | 
194  |  |     protected:  | 
195  |  |         std::optional<component::Bignum> modulo = std::nullopt;  | 
196  |  |     public:  | 
197  |  |         ExecutorBignumCalc_Fp2(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
198  |  |         void SetModulo(const std::string& modulo);  | 
199  |  | };  | 
200  |  |  | 
201  |  | class ExecutorBignumCalc_Fp12 : public ExecutorBase<component::Fp12, operation::BignumCalc_Fp12> { | 
202  |  |     private:  | 
203  |  |         std::optional<component::Fp12> callModule(std::shared_ptr<Module> module, operation::BignumCalc_Fp12& op) const override;  | 
204  |  |     protected:  | 
205  |  |         std::optional<component::Bignum> modulo = std::nullopt;  | 
206  |  |     public:  | 
207  |  |         ExecutorBignumCalc_Fp12(const uint64_t operationID, const std::map<uint64_t, std::shared_ptr<Module> >& modules, const Options& options);  | 
208  |  |         void SetModulo(const std::string& modulo);  | 
209  |  | };  | 
210  |  |  | 
211  |  | /* Declare aliases */  | 
212  |  | using ExecutorDigest = ExecutorBase<component::Digest, operation::Digest>;  | 
213  |  | using ExecutorHMAC = ExecutorBase<component::MAC, operation::HMAC>;  | 
214  |  | using ExecutorUMAC = ExecutorBase<component::MAC, operation::UMAC>;  | 
215  |  | using ExecutorCMAC = ExecutorBase<component::MAC, operation::CMAC>;  | 
216  |  | using ExecutorSymmetricEncrypt = ExecutorBase<component::Ciphertext, operation::SymmetricEncrypt>;  | 
217  |  | using ExecutorSymmetricDecrypt = ExecutorBase<component::Cleartext, operation::SymmetricDecrypt>;  | 
218  |  | using ExecutorKDF_SCRYPT = ExecutorBase<component::Key, operation::KDF_SCRYPT>;  | 
219  |  | using ExecutorKDF_HKDF = ExecutorBase<component::Key, operation::KDF_HKDF>;  | 
220  |  | using ExecutorKDF_TLS1_PRF = ExecutorBase<component::Key, operation::KDF_TLS1_PRF>;  | 
221  |  | using ExecutorKDF_PBKDF = ExecutorBase<component::Key, operation::KDF_PBKDF>;  | 
222  |  | using ExecutorKDF_PBKDF1 = ExecutorBase<component::Key, operation::KDF_PBKDF1>;  | 
223  |  | using ExecutorKDF_PBKDF2 = ExecutorBase<component::Key, operation::KDF_PBKDF2>;  | 
224  |  | using ExecutorKDF_ARGON2 = ExecutorBase<component::Key, operation::KDF_ARGON2>;  | 
225  |  | using ExecutorKDF_SSH = ExecutorBase<component::Key, operation::KDF_SSH>;  | 
226  |  | using ExecutorKDF_X963 = ExecutorBase<component::Key, operation::KDF_X963>;  | 
227  |  | using ExecutorKDF_BCRYPT = ExecutorBase<component::Key, operation::KDF_BCRYPT>;  | 
228  |  | using ExecutorKDF_SP_800_108 = ExecutorBase<component::Key, operation::KDF_SP_800_108>;  | 
229  |  | using ExecutorKDF_SRTP = ExecutorBase<component::Key3, operation::KDF_SRTP>;  | 
230  |  | using ExecutorKDF_SRTCP = ExecutorBase<component::Key3, operation::KDF_SRTCP>;  | 
231  |  | using ExecutorECC_PrivateToPublic = ExecutorBase<component::ECC_PublicKey, operation::ECC_PrivateToPublic>;  | 
232  |  | using ExecutorECC_ValidatePubkey = ExecutorBase<bool, operation::ECC_ValidatePubkey>;  | 
233  |  | using ExecutorECC_GenerateKeyPair = ExecutorBase<component::ECC_KeyPair, operation::ECC_GenerateKeyPair>;  | 
234  |  | using ExecutorECCSI_Sign = ExecutorBase<component::ECCSI_Signature, operation::ECCSI_Sign>;  | 
235  |  | using ExecutorECDSA_Sign = ExecutorBase<component::ECDSA_Signature, operation::ECDSA_Sign>;  | 
236  |  | using ExecutorECGDSA_Sign = ExecutorBase<component::ECGDSA_Signature, operation::ECGDSA_Sign>;  | 
237  |  | using ExecutorECRDSA_Sign = ExecutorBase<component::ECRDSA_Signature, operation::ECRDSA_Sign>;  | 
238  |  | using ExecutorSchnorr_Sign = ExecutorBase<component::Schnorr_Signature, operation::Schnorr_Sign>;  | 
239  |  | using ExecutorECCSI_Verify = ExecutorBase<bool, operation::ECCSI_Verify>;  | 
240  |  | using ExecutorECDSA_Verify = ExecutorBase<bool, operation::ECDSA_Verify>;  | 
241  |  | using ExecutorECGDSA_Verify = ExecutorBase<bool, operation::ECGDSA_Verify>;  | 
242  |  | using ExecutorECRDSA_Verify = ExecutorBase<bool, operation::ECRDSA_Verify>;  | 
243  |  | using ExecutorSchnorr_Verify = ExecutorBase<bool, operation::Schnorr_Verify>;  | 
244  |  | using ExecutorECDSA_Recover = ExecutorBase<component::ECC_PublicKey, operation::ECDSA_Recover>;  | 
245  |  | using ExecutorDSA_Verify = ExecutorBase<bool, operation::DSA_Verify>;  | 
246  |  | using ExecutorDSA_Sign = ExecutorBase<component::DSA_Signature, operation::DSA_Sign>;  | 
247  |  | using ExecutorDSA_GenerateParameters = ExecutorBase<component::DSA_Parameters, operation::DSA_GenerateParameters>;  | 
248  |  | using ExecutorDSA_PrivateToPublic = ExecutorBase<component::Bignum, operation::DSA_PrivateToPublic>;  | 
249  |  | using ExecutorDSA_GenerateKeyPair = ExecutorBase<component::DSA_KeyPair, operation::DSA_GenerateKeyPair>;  | 
250  |  | using ExecutorECDH_Derive = ExecutorBase<component::Secret, operation::ECDH_Derive>;  | 
251  |  | using ExecutorECIES_Encrypt = ExecutorBase<component::Ciphertext, operation::ECIES_Encrypt>;  | 
252  |  | using ExecutorECIES_Decrypt = ExecutorBase<component::Cleartext, operation::ECIES_Decrypt>;  | 
253  |  | using ExecutorECC_Point_Add = ExecutorBase<component::ECC_Point, operation::ECC_Point_Add>;  | 
254  |  | using ExecutorECC_Point_Sub = ExecutorBase<component::ECC_Point, operation::ECC_Point_Sub>;  | 
255  |  | using ExecutorECC_Point_Mul = ExecutorBase<component::ECC_Point, operation::ECC_Point_Mul>;  | 
256  |  | using ExecutorECC_Point_Neg = ExecutorBase<component::ECC_Point, operation::ECC_Point_Neg>;  | 
257  |  | using ExecutorECC_Point_Dbl = ExecutorBase<component::ECC_Point, operation::ECC_Point_Dbl>;  | 
258  |  | using ExecutorECC_Point_Cmp = ExecutorBase<bool, operation::ECC_Point_Cmp>;  | 
259  |  | using ExecutorDH_GenerateKeyPair = ExecutorBase<component::DH_KeyPair, operation::DH_GenerateKeyPair>;  | 
260  |  | using ExecutorDH_Derive = ExecutorBase<component::Bignum, operation::DH_Derive>;  | 
261  |  | using ExecutorBLS_PrivateToPublic = ExecutorBase<component::BLS_PublicKey, operation::BLS_PrivateToPublic>;  | 
262  |  | using ExecutorBLS_PrivateToPublic_G2 = ExecutorBase<component::G2, operation::BLS_PrivateToPublic_G2>;  | 
263  |  | using ExecutorBLS_Sign = ExecutorBase<component::BLS_Signature, operation::BLS_Sign>;  | 
264  |  | using ExecutorBLS_Verify = ExecutorBase<bool, operation::BLS_Verify>;  | 
265  |  | using ExecutorBLS_BatchSign = ExecutorBase<component::BLS_BatchSignature, operation::BLS_BatchSign>;  | 
266  |  | using ExecutorBLS_BatchVerify = ExecutorBase<bool, operation::BLS_BatchVerify>;  | 
267  |  | using ExecutorBLS_Aggregate_G1 = ExecutorBase<component::G1, operation::BLS_Aggregate_G1>;  | 
268  |  | using ExecutorBLS_Aggregate_G2 = ExecutorBase<component::G2, operation::BLS_Aggregate_G2>;  | 
269  |  | using ExecutorBLS_Pairing = ExecutorBase<component::Fp12, operation::BLS_Pairing>;  | 
270  |  | using ExecutorBLS_MillerLoop = ExecutorBase<component::Fp12, operation::BLS_MillerLoop>;  | 
271  |  | using ExecutorBLS_FinalExp = ExecutorBase<component::Fp12, operation::BLS_FinalExp>;  | 
272  |  | using ExecutorBLS_HashToG1 = ExecutorBase<component::G1, operation::BLS_HashToG1>;  | 
273  |  | using ExecutorBLS_HashToG2 = ExecutorBase<component::G2, operation::BLS_HashToG2>;  | 
274  |  | using ExecutorBLS_MapToG1 = ExecutorBase<component::G1, operation::BLS_MapToG1>;  | 
275  |  | using ExecutorBLS_MapToG2 = ExecutorBase<component::G2, operation::BLS_MapToG2>;  | 
276  |  | using ExecutorBLS_IsG1OnCurve = ExecutorBase<bool, operation::BLS_IsG1OnCurve>;  | 
277  |  | using ExecutorBLS_IsG2OnCurve = ExecutorBase<bool, operation::BLS_IsG2OnCurve>;  | 
278  |  | using ExecutorBLS_GenerateKeyPair = ExecutorBase<component::BLS_KeyPair, operation::BLS_GenerateKeyPair>;  | 
279  |  | using ExecutorBLS_Decompress_G1 = ExecutorBase<component::G1, operation::BLS_Decompress_G1>;  | 
280  |  | using ExecutorBLS_Compress_G1 = ExecutorBase<component::Bignum, operation::BLS_Compress_G1>;  | 
281  |  | using ExecutorBLS_Decompress_G2 = ExecutorBase<component::G2, operation::BLS_Decompress_G2>;  | 
282  |  | using ExecutorBLS_Compress_G2 = ExecutorBase<component::G1, operation::BLS_Compress_G2>;  | 
283  |  | using ExecutorBLS_G1_Add = ExecutorBase<component::G1, operation::BLS_G1_Add>;  | 
284  |  | using ExecutorBLS_G1_Mul = ExecutorBase<component::G1, operation::BLS_G1_Mul>;  | 
285  |  | using ExecutorBLS_G1_IsEq = ExecutorBase<bool, operation::BLS_G1_IsEq>;  | 
286  |  | using ExecutorBLS_G1_Neg = ExecutorBase<component::G1, operation::BLS_G1_Neg>;  | 
287  |  | using ExecutorBLS_G2_Add = ExecutorBase<component::G2, operation::BLS_G2_Add>;  | 
288  |  | using ExecutorBLS_G2_Mul = ExecutorBase<component::G2, operation::BLS_G2_Mul>;  | 
289  |  | using ExecutorBLS_G2_IsEq = ExecutorBase<bool, operation::BLS_G2_IsEq>;  | 
290  |  | using ExecutorBLS_G2_Neg = ExecutorBase<component::G2, operation::BLS_G2_Neg>;  | 
291  |  | using ExecutorBLS_G1_MultiExp = ExecutorBase<component::G1, operation::BLS_G1_MultiExp>;  | 
292  |  | using ExecutorMisc = ExecutorBase<Buffer, operation::Misc>;  | 
293  |  | using ExecutorSR25519_Verify = ExecutorBase<bool, operation::SR25519_Verify>;  | 
294  |  |  | 
295  |  | } /* namespace cryptofuzz */  |