xref: /aosp_15_r20/external/spdx-tools/spdx/common/checksum.go (revision ba677afa8f67bb56cbc794f4d0e378e0da058e16)
1// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
2
3package common
4
5// ChecksumAlgorithm represents the algorithm used to generate the file checksum in the Checksum struct.
6type ChecksumAlgorithm string
7
8// The checksum algorithms mentioned in the spdxv2.2.0 https://spdx.github.io/spdx-spec/4-file-information/#44-file-checksum
9const (
10	SHA224      ChecksumAlgorithm = "SHA224"
11	SHA1        ChecksumAlgorithm = "SHA1"
12	SHA256      ChecksumAlgorithm = "SHA256"
13	SHA384      ChecksumAlgorithm = "SHA384"
14	SHA512      ChecksumAlgorithm = "SHA512"
15	MD2         ChecksumAlgorithm = "MD2"
16	MD4         ChecksumAlgorithm = "MD4"
17	MD5         ChecksumAlgorithm = "MD5"
18	MD6         ChecksumAlgorithm = "MD6"
19	SHA3_256    ChecksumAlgorithm = "SHA3-256"
20	SHA3_384    ChecksumAlgorithm = "SHA3-384"
21	SHA3_512    ChecksumAlgorithm = "SHA3-512"
22	BLAKE2b_256 ChecksumAlgorithm = "BLAKE2b-256"
23	BLAKE2b_384 ChecksumAlgorithm = "BLAKE2b-384"
24	BLAKE2b_512 ChecksumAlgorithm = "BLAKE2b-512"
25	BLAKE3      ChecksumAlgorithm = "BLAKE3"
26	ADLER32     ChecksumAlgorithm = "ADLER32"
27)
28
29// Checksum provides a unique identifier to match analysis information on each specific file in a package.
30// The Algorithm field describes the ChecksumAlgorithm used and the Value represents the file checksum
31type Checksum struct {
32	Algorithm ChecksumAlgorithm `json:"algorithm"`
33	Value     string            `json:"checksumValue"`
34}
35