|
17 | 17 | from pwnlib.context import context
|
18 | 18 | from pwnlib.log import getLogger
|
19 | 19 | from pwnlib.util import fiddling
|
20 |
| -from pwnlib.util import hashes |
21 | 20 | from pwnlib.util import lists
|
22 | 21 | from pwnlib.util import packing
|
23 |
| -from pwnlib.data.kctf.pow import solve_challenge as _kctf_pow_solve_challenge, \ |
24 |
| - verify_challenge as _kctf_pow_verify_challenge, get_challenge as _kctf_get_challenge |
25 | 22 |
|
26 | 23 | log = getLogger(__name__)
|
27 | 24 |
|
@@ -137,61 +134,6 @@ def write(path, data = b'', create_dir = False, mode = 'w'):
|
137 | 134 | with open(path, mode) as f:
|
138 | 135 | f.write(data)
|
139 | 136 |
|
140 |
| -def kctf_pow_solve(challenge): |
141 |
| - """ |
142 |
| - Solve a kCTF Proof of Work challenge |
143 |
| -
|
144 |
| - Arguments: |
145 |
| - `challenge` (str): The challenge to solve |
146 |
| -
|
147 |
| - Returns: |
148 |
| - A string representing an acceptable solution |
149 |
| -
|
150 |
| - >>> challenge = 's.AAAB.AAAvm89LbEt4meEnXGwbHp3z' |
151 |
| - >>> kctf_pow_solve(challenge)[:20] + '...' |
152 |
| - 's.AAAo8s+2Q06cSBM4nf...' |
153 |
| - >>> hashes.sha256sumhex(six.ensure_binary(kctf_pow_solve(challenge))) |
154 |
| - 'fd13e60761fb4119848f2d7704100f8737c0ed754ef90f573cff74faac8ca800' |
155 |
| -
|
156 |
| - >>> kctf_pow_verify(challenge, kctf_pow_solve(challenge)) |
157 |
| - True |
158 |
| - """ |
159 |
| - return _kctf_pow_solve_challenge(challenge) |
160 |
| - |
161 |
| -def kctf_pow_verify(challenge, solution): |
162 |
| - """ |
163 |
| - Verify a kCFT Proof of Work solution |
164 |
| -
|
165 |
| - Arguments: |
166 |
| - `challenge` (str): The challenge that was solved |
167 |
| - `solution` (str): The solution to verify |
168 |
| -
|
169 |
| - Returns: |
170 |
| - True if the solution is acceptable, else False |
171 |
| -
|
172 |
| - >>> challenge1 = kctf_pow_generate_challenge(1) |
173 |
| - >>> challenge2 = kctf_pow_generate_challenge(1) |
174 |
| - >>> kctf_pow_verify(challenge1, kctf_pow_solve(challenge1)) |
175 |
| - True |
176 |
| -
|
177 |
| - >>> kctf_pow_verify(challenge1, kctf_pow_solve(challenge2)) |
178 |
| - False |
179 |
| - """ |
180 |
| - return _kctf_pow_verify_challenge(challenge, solution, False) |
181 |
| - |
182 |
| -def kctf_pow_generate_challenge(difficulty): |
183 |
| - """ |
184 |
| - Generate a kCTF Proof of Work challenge |
185 |
| -
|
186 |
| - Arguments: |
187 |
| - `difficulty` (int): The challenge difficulty. A difficulty of 31337 can be solved in ~30 seconds |
188 |
| - at 1.66GHz with gmpy2 installed |
189 |
| -
|
190 |
| - Returns: |
191 |
| - A string representing the challenge |
192 |
| - """ |
193 |
| - return _kctf_get_challenge(difficulty) |
194 |
| - |
195 | 137 | def which(name, all = False, path=None):
|
196 | 138 | """which(name, flags = os.X_OK, all = False) -> str or str set
|
197 | 139 |
|
|
0 commit comments