comparison shasum.py @ 70:7844f5136214

Use "hmac.compare_digest()" where available
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 26 Feb 2022 17:48:20 +0100
parents a23371a8780f
children 29fb33aa639a
comparison
equal deleted inserted replaced
69:a23371a8780f 70:7844f5136214
25 import argparse 25 import argparse
26 import base64 26 import base64
27 import binascii 27 import binascii
28 import errno 28 import errno
29 import hashlib 29 import hashlib
30 try:
31 from hmac import compare_digest
32 except ImportError:
33 compare_digest = None
30 import io 34 import io
31 try: 35 try:
32 import mmap 36 import mmap
33 except ImportError: 37 except ImportError:
34 mmap = None 38 mmap = None
206 exd = base64.b64decode(expected_digest) 210 exd = base64.b64decode(expected_digest)
207 except TypeError: 211 except TypeError:
208 return False 212 return False
209 else: 213 else:
210 return False 214 return False
211 return given_digest == exd 215 if compare_digest:
216 return compare_digest(given_digest, exd)
217 else:
218 return given_digest == exd
212 219
213 220
214 def verify_digests_with_checklist(opts): 221 def verify_digests_with_checklist(opts):
215 dest = opts.dest or sys.stdout 222 dest = opts.dest or sys.stdout
216 exit_code = 0 223 exit_code = 0