75 lines
2.1 KiB
Go
75 lines
2.1 KiB
Go
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)
|
|
}
|