MCPcopy Index your code
hub / github.com/git-bug/git-bug / RepoDataSignatureTest

Function RepoDataSignatureTest

repository/repo_testing.go:234–280  ·  view source on GitHub ↗
(t *testing.T, repo RepoData)

Source from the content-addressed store, hash-verified

232}
233
234func RepoDataSignatureTest(t *testing.T, repo RepoData) {
235 data := randomData()
236
237 blobHash, err := repo.StoreData(data)
238 require.NoError(t, err)
239
240 treeHash, err := repo.StoreTree([]TreeEntry{
241 {
242 ObjectType: Blob,
243 Hash: blobHash,
244 Name: "blob",
245 },
246 })
247 require.NoError(t, err)
248
249 pgpEntity1, err := openpgp.NewEntity("", "", "", nil)
250 require.NoError(t, err)
251 keyring1 := openpgp.EntityList{pgpEntity1}
252
253 pgpEntity2, err := openpgp.NewEntity("", "", "", nil)
254 require.NoError(t, err)
255 keyring2 := openpgp.EntityList{pgpEntity2}
256
257 commitHash1, err := repo.StoreSignedCommit(treeHash, pgpEntity1)
258 require.NoError(t, err)
259
260 commit1, err := repo.ReadCommit(commitHash1)
261 require.NoError(t, err)
262
263 _, err = openpgp.CheckDetachedSignature(keyring1, commit1.SignedData, commit1.Signature, nil)
264 require.NoError(t, err)
265
266 _, err = openpgp.CheckDetachedSignature(keyring2, commit1.SignedData, commit1.Signature, nil)
267 require.Error(t, err)
268
269 commitHash2, err := repo.StoreSignedCommit(treeHash, pgpEntity1, commitHash1)
270 require.NoError(t, err)
271
272 commit2, err := repo.ReadCommit(commitHash2)
273 require.NoError(t, err)
274
275 _, err = openpgp.CheckDetachedSignature(keyring1, commit2.SignedData, commit2.Signature, nil)
276 require.NoError(t, err)
277
278 _, err = openpgp.CheckDetachedSignature(keyring2, commit2.SignedData, commit2.Signature, nil)
279 require.Error(t, err)
280}
281
282func RepoIndexTest(t *testing.T, repo RepoIndex) {
283 idx, err := repo.GetIndex("a")

Callers 1

RepoTestFunction · 0.85

Calls 6

randomDataFunction · 0.70
StoreDataMethod · 0.65
StoreTreeMethod · 0.65
StoreSignedCommitMethod · 0.65
ReadCommitMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected