Coverage for /pythoncovmergedfiles/medio/medio/src/fuzz_dsa.py: 52%
33 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-12-08 07:26 +0000
« prev ^ index » next coverage.py v7.3.2, created at 2023-12-08 07:26 +0000
1###### Coverage stub
2import atexit
3import coverage
4cov = coverage.coverage(data_file='.coverage', cover_pylib=True)
5cov.start()
6# Register an exist handler that will print coverage
7def exit_handler():
8 cov.stop()
9 cov.save()
10atexit.register(exit_handler)
11####### End of coverage stub
12#!/usr/bin/python3
14# Copyright 2022 Google LLC
15#
16# Licensed under the Apache License, Version 2.0 (the "License");
17# you may not use this file except in compliance with the License.
18# You may obtain a copy of the License at
19#
20# http://www.apache.org/licenses/LICENSE-2.0
21#
22# Unless required by applicable law or agreed to in writing, software
23# distributed under the License is distributed on an "AS IS" BASIS,
24# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25# See the License for the specific language governing permissions and
26# limitations under the License.
27import sys
28import atheris
29with atheris.instrument_imports():
30 from cryptography.hazmat.primitives import hashes
31 from cryptography.hazmat.primitives.asymmetric import dsa, utils
33def TestInput(input_bytes):
34 fdp = atheris.FuzzedDataProvider(input_bytes)
36 private_key = dsa.generate_private_key(key_size=1024)
37 public_key = private_key.public_key()
39 data = fdp.ConsumeBytes(20)
40 more_data = fdp.ConsumeBytes(20)
42 hasher = hashes.Hash(hashes.SHA256())
43 hasher.update(data)
44 hasher.update(more_data)
45 digest = hasher.finalize()
47 sig1 = private_key.sign(data,hashes.SHA256())
48 sig2 = private_key.sign(digest,utils.Prehashed(hashes.SHA256()))
50 public_key.verify(sig1,data,hashes.SHA256())
51 public_key.verify(sig2,digest,utils.Prehashed(hashes.SHA256()))
53def main():
54 atheris.Setup(sys.argv, TestInput, enable_python_coverage=False)
55 atheris.instrument_all()
56 atheris.Fuzz()
58if __name__ == "__main__":
59 main()