aboutsummaryrefslogtreecommitdiff
path: root/object/id/algorithm_details.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-04-02 07:51:14 +0000
committerGravatar Runxi Yu2026-04-02 07:53:36 +0000
commit1013f61420d39fe491bd1e1af613c601dc5c3137 (patch)
tree3171754f4404916b04d8f08b77bc629af51cefab /object/id/algorithm_details.go
parentobject/id: Add algorithm tests (diff)
signatureNo signature
ci: Stricter linting
Diffstat (limited to 'object/id/algorithm_details.go')
-rw-r--r--object/id/algorithm_details.go28
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
},
}