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