ots/pkg/client/otsMeta_test.go

76 lines
2.1 KiB
Go
Raw Normal View History

2023-10-04 16:27:14 -04:00
package client
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestReadOTSMeta(t *testing.T) {
var (
//#nosec:G101 // Hardcoded credentials, just test-data
secretData = "U2FsdGVkX1+7kNgAK57O/qdbsukK3OchMyMyE1tWzVJVlc9f9bkp8iaFHbwR7Q3b8tWhWmPAcfeOoBJH2zl1iNbIHWsmMKu3+pzE5wTE4wl31dOboV8LgsMChBFL5RQpda0iGku32BcB4tYEyb2VHcM/kkXNJh9lW1vRyiNx0iF8pe05JUkkmJJrnzIKC+/efZEfF2YX7fOaBC1+8AAhlg=="
//#nosec:G101 // Hardcoded credentials, just test-data
pass = "IKeiXsyGuVWdMUG8Fj3R"
s Secret
)
err := s.read([]byte(secretData), pass)
require.NoError(t, err)
assert.Equal(t, Secret{
Secret: "I'm a secret!",
Attachments: []SecretAttachment{{
Name: "secret.txt",
Type: "text/plain",
Data: "SSdtIGEgdmVyeSBzZWNyZXQgZmlsZS4K",
Content: []byte("I'm a very secret file.\n"),
}},
}, s)
}
func TestReadSimpleSecret(t *testing.T) {
var (
//#nosec:G101 // Hardcoded credentials, just test-data
secretData = "U2FsdGVkX18cvbYVRsD5cxMKKAHtMRmteu88tPwRtOk="
//#nosec:G101 // Hardcoded credentials, just test-data
pass = "YQHdft6hDnp575olczeq"
s Secret
)
err := s.read([]byte(secretData), pass)
require.NoError(t, err)
assert.Equal(t, Secret{
Secret: "I'm a secret!",
}, s)
}
func TestSerializeOTSMeta(t *testing.T) {
// NOTE(kahlers): We're using an empty passphrase here to achieve
// testability of the output. The data is not encrypted in this
// case.
data, err := Secret{
Secret: "I'm a secret!",
Attachments: []SecretAttachment{{
Name: "secret.txt",
Type: "text/plain",
Content: []byte("I'm a very secret file.\n"),
}},
}.serialize("")
require.NoError(t, err)
assert.Equal(t, []byte(`OTSMeta{"secret":"I'm a secret!","attachments":[{"name":"secret.txt","type":"text/plain","data":"SSdtIGEgdmVyeSBzZWNyZXQgZmlsZS4K"}]}`), data)
}
func TestSerializeSimpleSecret(t *testing.T) {
// NOTE(kahlers): We're using an empty passphrase here to achieve
// testability of the output. The data is not encrypted in this
// case.
data, err := Secret{Secret: "I'm a secret!"}.serialize("")
require.NoError(t, err)
assert.Equal(t, []byte("I'm a secret!"), data)
}