34 lines
777 B
Python
34 lines
777 B
Python
# Copyright (c) 2020, 2021 The Linux Foundation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
import hashlib
|
|
|
|
from west import log
|
|
|
|
def getHashes(filePath):
|
|
"""
|
|
Scan for and return hashes.
|
|
|
|
Arguments:
|
|
- filePath: path to file to scan.
|
|
Returns: tuple of (SHA1, SHA256, MD5) hashes for filePath, or
|
|
None if file is not found.
|
|
"""
|
|
hSHA1 = hashlib.sha1()
|
|
hSHA256 = hashlib.sha256()
|
|
hMD5 = hashlib.md5()
|
|
|
|
log.dbg(f" - getting hashes for {filePath}")
|
|
|
|
try:
|
|
with open(filePath, 'rb') as f:
|
|
buf = f.read()
|
|
hSHA1.update(buf)
|
|
hSHA256.update(buf)
|
|
hMD5.update(buf)
|
|
except OSError:
|
|
return None
|
|
|
|
return (hSHA1.hexdigest(), hSHA256.hexdigest(), hMD5.hexdigest())
|