Source code for toolbox.contrib.checksum.checksum

import hashlib
from toolbox.plugin import ToolboxPlugin
from toolbox.mixins import RegistryMixin, ConfigMixin


[docs]class ChecksumPlugin(ConfigMixin, RegistryMixin, ToolboxPlugin): name = 'checksum' description = 'Calculate or compare the checksum of a file'
[docs] def prepare_parser(self, parser): parser.add_argument("-f", "--file", help="file to get checksum of") parser.add_argument("-m", "--method", help="hashing method") parser.add_argument("-c", "--checksum", help="given checksum") parser.set_defaults(method="sha1")
[docs] def execute(self, args): config = self.get_config() if args.file: with open(args.file, "rb") as inf: data = inf.read() if args.checksum: print(validate_checksum(data, args.checksum, args.method)) else: print(calc_checksum(data, args.method))
[docs]def validate_checksum(data, checksum, method): if data is not None: if method == "sha1": return hashlib.sha1(data).hexdigest() == checksum elif method == "md5": return hashlib.md5(data).hexdigest() == checksum
[docs]def calc_checksum(data, method): if method == "sha1": return hashlib.sha1(data).hexdigest() elif method == "md5": return hashlib.md5(data).hexdigest()