Files
buildx/util/sourcemeta/convert_test.go
T
Tonis Tiigi a57372e966 policy: add HTTP PGP signature verification builtin
Add verify_http_pgp_signature Rego builtin for HTTP sources using
pgpsign with checksum-request/response flow through policy resolution.
Wire sourcemeta HTTP checksum request/response conversion and add tests.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2026-03-26 15:39:46 -07:00

44 lines
1.6 KiB
Go

package sourcemeta
import (
"testing"
"github.com/moby/buildkit/client/llb/sourceresolver"
gwpb "github.com/moby/buildkit/frontend/gateway/pb"
"github.com/moby/buildkit/solver/pb"
"github.com/stretchr/testify/require"
)
func TestToResolverOptHTTPChecksumRequest(t *testing.T) {
opt := ToResolverOpt(&gwpb.ResolveSourceMetaRequest{
Source: &pb.SourceOp{Identifier: "https://example.com/a"},
HTTP: &gwpb.ResolveSourceHTTPRequest{
ChecksumRequest: &gwpb.ChecksumRequest{
Algo: gwpb.ChecksumRequest_CHECKSUM_ALGO_SHA512,
Suffix: []byte{0x01, 0x02},
},
},
}, nil)
require.NotNil(t, opt.HTTPOpt)
require.NotNil(t, opt.HTTPOpt.ChecksumReq)
require.Equal(t, sourceresolver.ResolveHTTPChecksumAlgoSHA512, opt.HTTPOpt.ChecksumReq.Algo)
require.Equal(t, []byte{0x01, 0x02}, opt.HTTPOpt.ChecksumReq.Suffix)
}
func TestToGatewayMetaResponseHTTPChecksumResponse(t *testing.T) {
out := ToGatewayMetaResponse(&sourceresolver.MetaResponse{
Op: &pb.SourceOp{Identifier: "https://example.com/a"},
HTTP: &sourceresolver.ResolveHTTPResponse{
Digest: "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
ChecksumResponse: &sourceresolver.ResolveHTTPChecksumResponse{
Digest: "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
Suffix: []byte{0x03, 0x04},
},
},
})
require.NotNil(t, out.HTTP)
require.NotNil(t, out.HTTP.ChecksumResponse)
require.Equal(t, "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", out.HTTP.ChecksumResponse.Digest)
require.Equal(t, []byte{0x03, 0x04}, out.HTTP.ChecksumResponse.Suffix)
}