1# Copyright (c) 2020, 2021 The Linux Foundation
2#
3# SPDX-License-Identifier: Apache-2.0
4
5import hashlib
6
7from west import log
8
9def getHashes(filePath):
10    """
11    Scan for and return hashes.
12
13    Arguments:
14        - filePath: path to file to scan.
15    Returns: tuple of (SHA1, SHA256, MD5) hashes for filePath, or
16             None if file is not found.
17    """
18    hSHA1 = hashlib.sha1()
19    hSHA256 = hashlib.sha256()
20    hMD5 = hashlib.md5()
21
22    log.dbg(f"  - getting hashes for {filePath}")
23
24    try:
25        with open(filePath, 'rb') as f:
26            buf = f.read()
27            hSHA1.update(buf)
28            hSHA256.update(buf)
29            hMD5.update(buf)
30    except OSError:
31        return None
32
33    return (hSHA1.hexdigest(), hSHA256.hexdigest(), hMD5.hexdigest())
34