From c7c309581c52c78ec85335a7d48a632fde3201b7 Mon Sep 17 00:00:00 2001 From: David Mihalcik Date: Wed, 15 Jan 2025 13:14:07 -0500 Subject: [PATCH 1/2] feat(core): Adds ErrInvalidPerSchema `IsValid` enhancements: - Allows some ztdf manifest fields to be set to `null`, to allow for an improperly coded client that was emitting them with these values instead of leaving them undefined. - These were all optional, except `assertion.appliesToState`, which I guess we can assume has a default? Not sure but I guess it is `encrypted`? - Adds some tests to the example `isvalid` command - Adds a new exported sentinel error, ErrInvalidPerSchema. This can be used to check for 'only kinda' invalid files, that might still load using the Read method. - Adds a properly failing manifest test that is as the comment describes --- examples/cmd/isvalid_test.go | 116 ++++++++++++++++++ examples/cmd/testdata/nano-valid.ntdf | Bin 0 -> 2554 bytes examples/cmd/testdata/tdf-filewatcher-old.tdf | Bin 0 -> 8879 bytes examples/cmd/testdata/tdf-multikas.tdf | Bin 0 -> 34369 bytes examples/cmd/testdata/tdf-valid.tdf | Bin 0 -> 24280 bytes examples/go.mod | 3 + sdk/schema/manifest.schema.json | 8 +- sdk/sdk.go | 7 +- sdk/sdk_test.go | 18 ++- 9 files changed, 144 insertions(+), 8 deletions(-) create mode 100644 examples/cmd/isvalid_test.go create mode 100644 examples/cmd/testdata/nano-valid.ntdf create mode 100644 examples/cmd/testdata/tdf-filewatcher-old.tdf create mode 100644 examples/cmd/testdata/tdf-multikas.tdf create mode 100644 examples/cmd/testdata/tdf-valid.tdf diff --git a/examples/cmd/isvalid_test.go b/examples/cmd/isvalid_test.go new file mode 100644 index 0000000000..6243019642 --- /dev/null +++ b/examples/cmd/isvalid_test.go @@ -0,0 +1,116 @@ +package cmd + +import ( + _ "embed" + "errors" + "io" + "testing" + + "github.com/opentdf/platform/sdk" + "github.com/spf13/cobra" + "github.com/stretchr/testify/assert" +) + +type mockReadSeeker struct { + data []byte + pos int +} + +func (m *mockReadSeeker) Read(p []byte) (n int, err error) { + if m.pos >= len(m.data) { + return 0, io.EOF + } + n = copy(p, m.data[m.pos:]) + m.pos += n + return n, nil +} + +func (m *mockReadSeeker) Seek(offset int64, whence int) (int64, error) { + var newPos int + switch whence { + case io.SeekStart: + newPos = int(offset) + case io.SeekCurrent: + newPos = m.pos + int(offset) + case io.SeekEnd: + newPos = len(m.data) + int(offset) + default: + return 0, errors.New("invalid whence") + } + if newPos < 0 || newPos > len(m.data) { + return 0, errors.New("invalid seek position") + } + m.pos = newPos + return int64(newPos), nil +} + +//go:embed testdata/nano-valid.ntdf +var sampleNanoValid []byte + +//go:embed testdata/tdf-filewatcher-old.tdf +var sampleTDFFileWatcherOld []byte + +//go:embed testdata/tdf-multikas.tdf +var sampleTDFMultiKas []byte + +//go:embed testdata/tdf-valid.tdf +var sampleTDFValid []byte + +func TestIsValid(t *testing.T) { + tests := []struct { + name string + data []byte + isValidTdf bool + isValidNano bool + tdfType sdk.TdfType + }{ + { + name: "Valid TDF3", + data: sampleTDFValid, + isValidTdf: true, + isValidNano: false, + tdfType: sdk.Standard, + }, + { + name: "Valid NanoTDF", + data: sampleNanoValid, + isValidTdf: false, + isValidNano: true, + tdfType: sdk.Nano, + }, + { + name: "Invalid All", + data: []byte("invalid data"), + isValidTdf: false, + isValidNano: false, + tdfType: sdk.Invalid, + }, + { + name: "Valid TDF3 (filewatcher)", + data: sampleTDFFileWatcherOld, + isValidTdf: true, + isValidNano: false, + tdfType: sdk.Standard, + }, + { + name: "Valid TDF3 (multikas)", + data: sampleTDFMultiKas, + isValidTdf: true, + isValidNano: false, + tdfType: sdk.Standard, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + in := &mockReadSeeker{data: tt.data} + cmd := &cobra.Command{} + typeInfos := isValid(cmd, in) + + assert.Len(t, typeInfos, 3) + assert.Equal(t, tt.isValidTdf, typeInfos[0].Valid) + assert.Equal(t, tt.isValidNano, typeInfos[1].Valid) + assert.Equal(t, tt.tdfType.String(), typeInfos[2].Type) + }) + } +} diff --git a/examples/cmd/testdata/nano-valid.ntdf b/examples/cmd/testdata/nano-valid.ntdf new file mode 100644 index 0000000000000000000000000000000000000000..3c950bd8cae6248c99355abc3433e4af83ab6dd6 GIT binary patch literal 2554 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 Date: Thu, 16 Jan 2025 11:54:57 -0500 Subject: [PATCH 2/2] Update sdk.go --- sdk/sdk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/sdk.go b/sdk/sdk.go index 28626b7cdc..5d91b945b8 100644 --- a/sdk/sdk.go +++ b/sdk/sdk.go @@ -347,7 +347,7 @@ func GetTdfType(reader io.ReadSeeker) TdfType { // Indicates JSON Schema validation failed for the manifest or header of the TDF file. // Some invalid manifests are still usable, so this file may still be usable. -var ErrInvalidPerSchema = errors.New("invalid schema") +var ErrInvalidPerSchema = errors.New("manifest was not valid") //go:embed schema/manifest.schema.json var manifestSchema []byte