Skip to content

Commit e9ae8c5

Browse files
committed
api: EncryptKey specify armored
1 parent 24b4306 commit e9ae8c5

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

api/key.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,23 @@ func NewKey(k keys.Key) *Key {
3838
}
3939

4040
// EncryptKey creates encrypted key from a sender to a recipient.
41-
func EncryptKey(key *Key, sender *keys.EdX25519Key, recipient keys.ID) ([]byte, error) {
41+
func EncryptKey(key *Key, sender *keys.EdX25519Key, recipient keys.ID, armored bool) ([]byte, error) {
4242
b, err := msgpack.Marshal(key)
4343
if err != nil {
4444
return nil, err
4545
}
46-
enc, err := saltpack.Signcrypt(b, true, sender, recipient, sender.ID())
46+
enc, err := saltpack.Signcrypt(b, armored, sender, recipient, sender.ID())
4747
if err != nil {
4848
return nil, err
4949
}
5050
return enc, nil
5151
}
5252

5353
// DecryptKey decrypts a key from a sender.
54-
func DecryptKey(b []byte, kr saltpack.Keyring) (*Key, *keys.EdX25519PublicKey, error) {
55-
dec, pk, err := saltpack.SigncryptOpen(b, true, kr)
54+
func DecryptKey(b []byte, kr saltpack.Keyring, armored bool) (*Key, *keys.EdX25519PublicKey, error) {
55+
dec, pk, err := saltpack.SigncryptOpen(b, armored, kr)
5656
if err != nil {
57-
return nil, nil, err
57+
return nil, nil, errors.Wrapf(err, "failed to decrypt key")
5858
}
5959
var key Key
6060
if err := msgpack.Unmarshal(dec, &key); err != nil {

api/key_test.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,19 @@ func TestEncryptKey(t *testing.T) {
7373
key.CreatedAt = clock.NowMillis()
7474
key.UpdatedAt = clock.NowMillis()
7575

76-
out, err := api.EncryptKey(key, alice, bob.ID())
76+
out, err := api.EncryptKey(key, alice, bob.ID(), false)
7777
require.NoError(t, err)
7878

79-
dec, pk, err := api.DecryptKey(out, saltpack.NewKeyring(bob))
79+
dec, pk, err := api.DecryptKey(out, saltpack.NewKeyring(bob), false)
8080
require.NoError(t, err)
8181
require.Equal(t, alice.ID(), pk.ID())
8282
assert.ObjectsAreEqual(dec, key)
8383

84-
_, _, err = api.DecryptKey(out, saltpack.NewKeyring())
85-
require.EqualError(t, err, "no decryption key found for message")
84+
_, _, err = api.DecryptKey(out, saltpack.NewKeyring(), false)
85+
require.EqualError(t, err, "failed to decrypt key: no decryption key found for message")
86+
87+
_, _, err = api.DecryptKey(out, saltpack.NewKeyring(bob), true)
88+
require.EqualError(t, err, "failed to decrypt key: invalid data")
8689
}
8790

8891
func TestEncryptKeyWithPassword(t *testing.T) {

0 commit comments

Comments
 (0)