Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions plugin/objectsigner/auto/auto.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package auto

import (
"bytes"
"context"
"errors"
"fmt"
"io"
Expand Down Expand Up @@ -97,9 +98,10 @@ type Config struct {
}

// Signer signs a message read from an io.Reader and returns the raw signature
// bytes.
// bytes. The context cancels signers that perform external or remote work
// (e.g. an external program); purely local signers ignore it.
type Signer interface {
Sign(message io.Reader) ([]byte, error)
Sign(ctx context.Context, message io.Reader) ([]byte, error)
}

// FromConfig returns a [Signer] configured according to the provided Config.
Expand Down
28 changes: 14 additions & 14 deletions plugin/objectsigner/auto/auto_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func TestFromConfigSSH(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
assert.Contains(t, string(sig), "-----END SSH SIGNATURE-----")
Expand All @@ -62,7 +62,7 @@ func TestFromConfigSSHPubSuffixNoAgent(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
}
Expand Down Expand Up @@ -114,7 +114,7 @@ func TestFromConfigSSHKeyLiteralAgent(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
}
Expand Down Expand Up @@ -149,7 +149,7 @@ func TestFromConfigSSHAgentPubKeyPath(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
}
Expand Down Expand Up @@ -180,7 +180,7 @@ func TestFromConfigSSHAgentMultipleKeys(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")

Expand Down Expand Up @@ -260,7 +260,7 @@ func TestFromConfigSSHAgentPrivateKeyPath(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
}
Expand Down Expand Up @@ -303,7 +303,7 @@ func TestFromConfigSSHAgentFirstKey(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
}
Expand Down Expand Up @@ -352,7 +352,7 @@ func TestFromConfigGPG(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
assert.Contains(t, string(sig), "-----END PGP SIGNATURE-----")
Expand All @@ -373,7 +373,7 @@ func TestFromConfigGPGDefaultFormat(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
}
Expand Down Expand Up @@ -442,7 +442,7 @@ func TestFromConfigGPGEncryptedThenUnencrypted(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
}
Expand All @@ -462,7 +462,7 @@ func TestFromConfigGPGMultipleKeys(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
}
Expand Down Expand Up @@ -517,7 +517,7 @@ func TestFromConfigSSHHomeTilde(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
}
Expand Down Expand Up @@ -553,7 +553,7 @@ func TestFromConfigSSHAgentHomeTildePubKey(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
}
Expand Down Expand Up @@ -587,7 +587,7 @@ func TestFromConfigGPGHomeTilde(t *testing.T) {
})
require.NoError(t, err)

sig, err := signer.Sign(strings.NewReader("hello\n"))
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
require.NoError(t, err)
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
}
Expand Down
4 changes: 2 additions & 2 deletions plugin/objectsigner/auto/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ go 1.25.0
require (
github.com/ProtonMail/go-crypto v1.3.0
github.com/go-git/go-billy/v6 v6.0.0-20260328065524-593ae452e14d
github.com/go-git/x/plugin/objectsigner/gpg v0.1.0
github.com/go-git/x/plugin/objectsigner/ssh v0.1.0
github.com/go-git/x/plugin/objectsigner/gpg v0.2.0
github.com/go-git/x/plugin/objectsigner/ssh v0.2.0
github.com/hiddeco/sshsig v0.2.0
github.com/stretchr/testify v1.11.1
golang.org/x/crypto v0.48.0
Expand Down
4 changes: 4 additions & 0 deletions plugin/objectsigner/auto/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ github.com/go-git/go-billy/v6 v6.0.0-20260328065524-593ae452e14d h1:bLMI9z4mKkfQ
github.com/go-git/go-billy/v6 v6.0.0-20260328065524-593ae452e14d/go.mod h1:LLeMBFApkgIKwMzirxpU9XB7NvO2HdTw5FXmeP1M6c8=
github.com/go-git/x/plugin/objectsigner/gpg v0.1.0 h1:NEGVSOD+LPnus6j4iNkAZaHVTc4DNY223y1/I2Jq2yI=
github.com/go-git/x/plugin/objectsigner/gpg v0.1.0/go.mod h1:1iosWq3OOqZxtNrwDHtcjicswuaOT45J5GMFyCk80wc=
github.com/go-git/x/plugin/objectsigner/gpg v0.2.0 h1:3EGE1apJAh2Z9qUxBUCPSdQMbasQi1WFA9VJfgtkMa8=
github.com/go-git/x/plugin/objectsigner/gpg v0.2.0/go.mod h1:1iosWq3OOqZxtNrwDHtcjicswuaOT45J5GMFyCk80wc=
github.com/go-git/x/plugin/objectsigner/ssh v0.1.0 h1:lAeeDgc1oxsMMvVUed6ssrqJnD97UR1K/dXIDdeg1Yc=
github.com/go-git/x/plugin/objectsigner/ssh v0.1.0/go.mod h1:6BvpZj9Yry1ZFNw4N5OZDc+7M1T8oyrZilLNFg2aTsM=
github.com/go-git/x/plugin/objectsigner/ssh v0.2.0 h1:TkAMmGl8SgI3CL6BZv5Pv1cLxBAfmjkyE6jObUm/+zc=
github.com/go-git/x/plugin/objectsigner/ssh v0.2.0/go.mod h1:6BvpZj9Yry1ZFNw4N5OZDc+7M1T8oyrZilLNFg2aTsM=
github.com/hiddeco/sshsig v0.2.0 h1:gMWllgKCITXdydVkDL+Zro0PU96QI55LwUwebSwNTSw=
github.com/hiddeco/sshsig v0.2.0/go.mod h1:nJc98aGgiH6Yql2doqH4CTBVHexQA40Q+hMMLHP4EqE=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
Expand Down
Loading