Coverage Report

Created: 2026-07-25 06:49

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/cryptofuzz/modules/relic/bn_ops.h
Line
Count
Source
1
#include <cryptofuzz/components.h>
2
#include <cryptofuzz/operations.h>
3
4
#include "bn_helper.h"
5
6
namespace cryptofuzz {
7
namespace module {
8
namespace relic_bignum {
9
10
class Operation {
11
    public:
12
        virtual bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const = 0;
13
5.64k
        virtual ~Operation() { }
14
};
15
16
class Add : public Operation {
17
    public:
18
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
19
};
20
21
class Sub : public Operation {
22
    public:
23
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
24
};
25
26
class Mul : public Operation {
27
    public:
28
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
29
};
30
31
class Sqr : public Operation {
32
    public:
33
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
34
};
35
36
class Div : public Operation {
37
    public:
38
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
39
};
40
41
class GCD : public Operation {
42
    public:
43
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
44
};
45
46
class ExtGCD_X : public Operation {
47
    public:
48
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
49
};
50
51
class ExtGCD_Y : public Operation {
52
    public:
53
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
54
};
55
56
class LCM : public Operation {
57
    public:
58
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
59
};
60
61
class InvMod : public Operation {
62
    public:
63
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
64
};
65
66
class LShift1 : public Operation {
67
    public:
68
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
69
};
70
71
class Jacobi : public Operation {
72
    public:
73
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
74
};
75
76
class Cmp : public Operation {
77
    public:
78
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
79
};
80
81
class Mod : public Operation {
82
    public:
83
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
84
};
85
86
class IsEven : public Operation {
87
    public:
88
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
89
};
90
91
class IsOdd : public Operation {
92
    public:
93
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
94
};
95
96
class IsZero : public Operation {
97
    public:
98
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
99
};
100
101
class Neg : public Operation {
102
    public:
103
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
104
};
105
106
class Sqrt : public Operation {
107
    public:
108
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
109
};
110
111
class Abs : public Operation {
112
    public:
113
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
114
};
115
116
class ExpMod : public Operation {
117
    public:
118
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
119
};
120
121
class NumBits : public Operation {
122
    public:
123
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
124
};
125
126
class CmpAbs : public Operation {
127
    public:
128
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
129
};
130
131
class RShift : public Operation {
132
    public:
133
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
134
};
135
136
class Bit : public Operation {
137
    public:
138
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
139
};
140
141
class SetBit : public Operation {
142
    public:
143
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
144
};
145
146
class ClearBit : public Operation {
147
    public:
148
        bool Run(Datasource& ds, Bignum& res, std::vector<Bignum>& bn) const override;
149
};
150
151
} /* namespace relic_bignum */
152
} /* namespace module */
153
} /* namespace cryptofuzz */