Skip to content

Commit f4322e0

Browse files
wusslerlubux
authored andcommitted
Switch go-crypto to proton branch and add tests for forwarding and symmetric keys
1 parent 0f4d0fa commit f4322e0

File tree

4 files changed

+115
-0
lines changed

4 files changed

+115
-0
lines changed

crypto/proton_test.go

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package crypto
2+
3+
import (
4+
"encoding/base64"
5+
"testing"
6+
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestForwardeeDecryption(t *testing.T) {
11+
//pgp.latestServerTime = 1679044110
12+
13+
forwardeeKey, err := NewKeyFromArmored(readTestFile("key_forwardee", false))
14+
if err != nil {
15+
t.Fatal("Expected no error while unarmoring private keyring, got:", err)
16+
}
17+
18+
forwardeeKeyRing, err := NewKeyRing(forwardeeKey)
19+
if err != nil {
20+
t.Fatal("Expected no error while building private keyring, got:", err)
21+
}
22+
23+
pgpMessage := readTestFile("message_forwardee", false)
24+
decryptor, err := PGP().Decryption().
25+
DecryptionKeys(forwardeeKeyRing).
26+
VerifyTime(1679044110).
27+
New()
28+
if err != nil {
29+
t.Fatal(err)
30+
}
31+
plainMessage, err := decryptor.Decrypt([]byte(pgpMessage), Armor)
32+
if err != nil {
33+
t.Fatal("Expected no error while decrypting/verifying, got:", err)
34+
}
35+
36+
assert.Exactly(t, "Message for Bob", plainMessage.String())
37+
}
38+
39+
func TestSymmetricKeys(t *testing.T) {
40+
symmetricKey, err := NewKeyFromArmored(readTestFile("key_symmetric", false))
41+
if err != nil {
42+
t.Fatal("Expected no error while unarmoring private keyring, got:", err)
43+
}
44+
45+
symmetricKeyRing, err := NewKeyRing(symmetricKey)
46+
if err != nil {
47+
t.Fatal("Expected no error while building private keyring, got:", err)
48+
}
49+
50+
binData, _ := base64.StdEncoding.DecodeString("ExXmnSiQ2QCey20YLH6qlLhkY3xnIBC1AwlIXwK/HvY=")
51+
pgp := PGP()
52+
encryptor, err := pgp.Encryption().
53+
Recipients(symmetricKeyRing).
54+
SignTime(1679044110).
55+
New()
56+
if err != nil {
57+
t.Fatal(err)
58+
}
59+
60+
ciphertext, err := encryptor.Encrypt(binData)
61+
if err != nil {
62+
t.Fatal("Expected no error when encrypting, got:", err)
63+
}
64+
65+
decryptor, err := pgp.Decryption().
66+
DecryptionKeys(symmetricKeyRing).
67+
VerifyTime(1679044110).
68+
New()
69+
if err != nil {
70+
t.Fatal(err)
71+
}
72+
decrypted, err := decryptor.Decrypt(ciphertext.Bytes(), Bytes)
73+
if err != nil {
74+
t.Fatal("Expected no error when decrypting, got:", err)
75+
}
76+
assert.Exactly(t, binData, decrypted.Bytes())
77+
}

crypto/testdata/key_forwardee

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-----BEGIN PGP PRIVATE KEY BLOCK-----
2+
3+
xVgEZAdtGBYJKwYBBAHaRw8BAQdAcNgHyRGEaqGmzEqEwCobfUkyrJnY8faBvsf9
4+
R2c5ZzYAAP9bFL4nPBdo04ei0C2IAh5RXOpmuejGC3GAIn/UmL5cYQ+XzRtjaGFy
5+
bGVzIDxjaGFybGVzQHByb3Rvbi5tZT7CigQTFggAPAUCZAdtGAmQFXJtmBzDhdcW
6+
IQRl2gNflypl1XjRUV8Vcm2YHMOF1wIbAwIeAQIZAQILBwIVCAIWAAIiAQAAJKYA
7+
/2qY16Ozyo5erNz51UrKViEoWbEpwY3XaFVNzrw+b54YAQC7zXkf/t5ieylvjmA/
8+
LJz3/qgH5GxZRYAH9NTpWyW1AsdxBGQHbRgSCisGAQQBl1UBBQEBB0CxmxoJsHTW
9+
TiETWh47ot+kwNA1hCk1IYB9WwKxkXYyIBf/CgmKXzV1ODP/mRmtiBYVV+VQk5MF
10+
EAAA/1NW8D8nMc2ky140sPhQrwkeR7rVLKP2fe5n4BEtAnVQEB3CeAQYFggAKgUC
11+
ZAdtGAmQFXJtmBzDhdcWIQRl2gNflypl1XjRUV8Vcm2YHMOF1wIbUAAAl/8A/iIS
12+
zWBsBR8VnoOVfEE+VQk6YAi7cTSjcMjfsIez9FYtAQDKo9aCMhUohYyqvhZjn8aS
13+
3t9mIZPc+zRJtCHzQYmhDg==
14+
=lESj
15+
-----END PGP PRIVATE KEY BLOCK-----

crypto/testdata/key_symmetric

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-----BEGIN PGP PRIVATE KEY BLOCK-----
2+
3+
xVgEYs/4KxYJKwYBBAHaRw8BAQdA7tIsntXluwloh/H62PJMqasjP00M86fv
4+
/Pof9A968q8AAQDYcgkPKUdWAxsDjDHJfouPS4q5Me3ks+umlo5RJdwLZw4k
5+
zQ1TeW1tZXRyaWMgS2V5wowEEBYKAB0FAmLP+CsECwkHCAMVCAoEFgACAQIZ
6+
AQIbAwIeAQAhCRDkNhFDvaU8vxYhBDJNoyEFquVOCf99d+Q2EUO9pTy/5XQA
7+
/1F2YPouv0ydBDJU3EOS/4bmPt7yqvzciWzeKVEOkzYuAP9OsP7q/5ccqOPX
8+
mmRUKwd82/cNjdzdnWZ8Tq89XMwMAMdqBGLP+CtkCfFyZxOMF0BWLwAE8pLy
9+
RVj2n2K7k6VvrhyuTqDkFDUFALiSLrEfnmTKlsPYS3/YzsODF354ccR63q73
10+
3lmCrvFRyaf6AHvVrBYPbJR+VhuTjZTwZKvPPKv0zVdSqi5JDEQiocJ4BBgW
11+
CAAJBQJiz/grAhsMACEJEOQ2EUO9pTy/FiEEMk2jIQWq5U4J/3135DYRQ72l
12+
PL+fEQEA7RaRbfa+AtiRN7a4GuqVEDZi3qtQZ2/Qcb27/LkAD0sA/3r9drYv
13+
jyu46h1fdHHyo0HS2MiShZDZ8u60JnDltloD
14+
=8TxH
15+
-----END PGP PRIVATE KEY BLOCK-----

crypto/testdata/message_forwardee

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-----BEGIN PGP MESSAGE-----
2+
3+
wV4DB27Wn97eACkSAQdA62TlMU2QoGmf5iBLnIm4dlFRkLIg+6MbaatghwxK+Ccw
4+
yGZuVVMAK/ypFfebDf4D/rlEw3cysv213m8aoK8nAUO8xQX3XQq3Sg+EGm0BNV8E
5+
0kABEPyCWARoo5klT1rHPEhelnz8+RQXiOIX3G685XCWdCmaV+tzW082D0xGXSlC
6+
7lM8r1DumNnO8srssko2qIja
7+
=pVRa
8+
-----END PGP MESSAGE-----

0 commit comments

Comments
 (0)