diff options
Diffstat (limited to 'object/id/algorithm_details.go')
| -rw-r--r-- | object/id/algorithm_details.go | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/object/id/algorithm_details.go b/object/id/algorithm_details.go index d3fd665d..23737ab5 100644 --- a/object/id/algorithm_details.go +++ b/object/id/algorithm_details.go @@ -16,26 +16,46 @@ type algorithmDetails struct { emptyTree ObjectID } -func (algo Algorithm) info() algorithmDetails { +func (algo Algorithm) details() algorithmDetails { return algorithmTable[algo] } //nolint:gochecknoglobals var algorithmTable = [...]algorithmDetails{ - AlgorithmUnknown: {}, + AlgorithmUnknown: {}, //nolint:exhaustruct AlgorithmSHA1: { name: "sha1", size: sha1.Size, packHashID: 1, signatureHeaderName: "gpgsig", - new: sha1.New, + sum: func(data []byte) ObjectID { + sum := sha1.Sum(data) //#nosec G401 + + var id ObjectID + copy(id.data[:], sum[:]) + id.algo = AlgorithmSHA1 + + return id + }, + new: sha1.New, + emptyTree: ObjectID{}, //nolint:exhaustruct }, AlgorithmSHA256: { name: "sha256", size: sha256.Size, packHashID: 2, signatureHeaderName: "gpgsig-sha256", - new: sha256.New, + sum: func(data []byte) ObjectID { + sum := sha256.Sum256(data) + + var id ObjectID + copy(id.data[:], sum[:]) + id.algo = AlgorithmSHA256 + + return id + }, + new: sha256.New, + emptyTree: ObjectID{}, //nolint:exhaustruct }, } |
