|
6 | 6 | "path/filepath"
|
7 | 7 | "testing"
|
8 | 8 |
|
| 9 | + "github.com/secure-systems-lab/go-securesystemslib/dsse" |
9 | 10 | "github.com/stretchr/testify/assert"
|
10 | 11 | )
|
11 | 12 |
|
@@ -67,3 +68,52 @@ func TestRSAPSSSignerVerifierSignAndVerify(t *testing.T) {
|
67 | 68 | assert.ErrorIs(t, err, ErrNotPrivateKey)
|
68 | 69 | })
|
69 | 70 | }
|
| 71 | + |
| 72 | +func TestRSAPSSSignerVerifierWithDSSEEnvelope(t *testing.T) { |
| 73 | + key, err := LoadRSAPSSKeyFromFile(filepath.Join("test-data", "rsa-test-key")) |
| 74 | + if err != nil { |
| 75 | + t.Fatal(err) |
| 76 | + } |
| 77 | + |
| 78 | + sv, err := NewRSAPSSSignerVerifierFromSSLibKey(key) |
| 79 | + if err != nil { |
| 80 | + t.Fatal(err) |
| 81 | + } |
| 82 | + |
| 83 | + payloadType := "application/vnd.dsse+json" |
| 84 | + payload := []byte("test message") |
| 85 | + |
| 86 | + es, err := dsse.NewEnvelopeSigner(sv) |
| 87 | + if err != nil { |
| 88 | + t.Error(err) |
| 89 | + } |
| 90 | + |
| 91 | + env, err := es.SignPayload(context.Background(), payloadType, payload) |
| 92 | + if err != nil { |
| 93 | + t.Error(err) |
| 94 | + } |
| 95 | + |
| 96 | + assert.Equal(t, "966c5d84ba73ccded42eb473c939d77336e4def253ffaf6739f8e983ef73dad8", env.Signatures[0].KeyID) |
| 97 | + envPayload, err := env.DecodeB64Payload() |
| 98 | + assert.Equal(t, payload, envPayload) |
| 99 | + assert.Nil(t, err) |
| 100 | + |
| 101 | + key, err = LoadRSAPSSKeyFromFile(filepath.Join("test-data", "rsa-test-key.pub")) |
| 102 | + if err != nil { |
| 103 | + t.Fatal(err) |
| 104 | + } |
| 105 | + |
| 106 | + sv, err = NewRSAPSSSignerVerifierFromSSLibKey(key) |
| 107 | + if err != nil { |
| 108 | + t.Fatal(err) |
| 109 | + } |
| 110 | + |
| 111 | + ev, err := dsse.NewEnvelopeVerifier(sv) |
| 112 | + if err != nil { |
| 113 | + t.Error(err) |
| 114 | + } |
| 115 | + |
| 116 | + acceptedKeys, err := ev.Verify(context.Background(), env) |
| 117 | + assert.Nil(t, err) |
| 118 | + assert.Equal(t, "966c5d84ba73ccded42eb473c939d77336e4def253ffaf6739f8e983ef73dad8", acceptedKeys[0].KeyID) |
| 119 | +} |
0 commit comments