@@ -10,10 +10,12 @@ import (
1010)
1111
1212const msgString = "hello world"
13+ const wrongData = "wrong data"
14+ const wif = "L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu"
15+ const counterpartyWif = "L27ZSAC1xTsZrghYHqnxwAQZ12bH57piaAdoGaLizTp3JZrjkZjK"
1316
1417func TestEncryptDecryptSingle (t * testing.T ) {
15-
16- pk , _ := ec .PrivateKeyFromWif ("L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu" )
18+ pk , _ := ec .PrivateKeyFromWif (wif )
1719
1820 // Electrum Encrypt
1921 encryptedData , err := EncryptSingle (msgString , pk )
@@ -23,11 +25,37 @@ func TestEncryptDecryptSingle(t *testing.T) {
2325 // Electrum Decrypt
2426 decryptedData , _ := DecryptSingle (encryptedData , pk )
2527 require .Equal (t , msgString , decryptedData )
28+
29+ // Encrypt without private key
30+ _ , err = EncryptSingle (msgString , nil )
31+ require .Error (t , err )
32+
33+ // Decrypt with non base64 data
34+ _ , err = DecryptSingle (wrongData , pk )
35+ require .Error (t , err )
36+
37+ // Decrypt with wrong data
38+ wrongData := base64 .StdEncoding .EncodeToString ([]byte (wrongData ))
39+ _ , err = DecryptSingle (wrongData , pk )
40+ require .Error (t , err )
41+
42+ }
43+
44+ func TestEncryptDecryptShared (t * testing.T ) {
45+ pk , _ := ec .PrivateKeyFromWif (wif )
46+ pk2 , _ := ec .PrivateKeyFromWif (counterpartyWif )
47+
48+ encryptedString , err := EncryptShared (msgString , pk2 .PubKey (), pk )
49+ require .NoError (t , err )
50+
51+ decryptedString , err := DecryptShared (encryptedString , pk2 , pk .PubKey ())
52+ require .NoError (t , err )
53+ require .Equal (t , msgString , decryptedString )
2654}
2755
2856func TestElectrumEncryptDecryptSingle (t * testing.T ) {
2957
30- pk , _ := ec .PrivateKeyFromWif ("L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu" )
58+ pk , _ := ec .PrivateKeyFromWif (wif )
3159
3260 // Electrum Encrypt
3361 encryptedData , err := ElectrumEncrypt ([]byte (msgString ), pk .PubKey (), pk , false )
@@ -39,11 +67,18 @@ func TestElectrumEncryptDecryptSingle(t *testing.T) {
3967 // Electrum Decrypt
4068 decryptedData , _ := ElectrumDecrypt (encryptedData , pk , nil )
4169 require .Equal (t , []byte (msgString ), decryptedData )
70+
71+ // Encrypt without private key
72+ _ , err = ElectrumEncrypt ([]byte (msgString ), pk .PubKey (), nil , false )
73+ require .NoError (t , err )
74+
75+ // Decrypt with wrong data
76+ _ , err = ElectrumDecrypt ([]byte (wrongData ), pk , nil )
77+ require .Error (t , err )
4278}
4379
4480func TestElectrumEncryptDecryptSingleNokey (t * testing.T ) {
45-
46- pk , _ := ec .PrivateKeyFromWif ("L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu" )
81+ pk , _ := ec .PrivateKeyFromWif (wif )
4782
4883 // Electrum Encrypt
4984 encryptedData , err := ElectrumEncrypt ([]byte (msgString ), pk .PubKey (), pk , true )
@@ -55,7 +90,7 @@ func TestElectrumEncryptDecryptSingleNokey(t *testing.T) {
5590}
5691
5792func TestElectrumEncryptDecryptWithCounterparty (t * testing.T ) {
58- pk1 , _ := ec .PrivateKeyFromWif ("L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu" )
93+ pk1 , _ := ec .PrivateKeyFromWif (wif )
5994 counterparty , err := ec .PublicKeyFromString ("03121a7afe56fc8e25bca4bb2c94f35eb67ebe5b84df2e149d65b9423ee65b8b4b" )
6095 require .NoError (t , err )
6196
@@ -71,7 +106,7 @@ func TestElectrumEncryptDecryptWithCounterparty(t *testing.T) {
71106}
72107
73108func TestElectrumEncryptDecryptWithCounterpartyNoKey (t * testing.T ) {
74- pk1 , _ := ec .PrivateKeyFromWif ("L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu" )
109+ pk1 , _ := ec .PrivateKeyFromWif (wif )
75110 counterparty , err := ec .PublicKeyFromString ("03121a7afe56fc8e25bca4bb2c94f35eb67ebe5b84df2e149d65b9423ee65b8b4b" )
76111 require .NoError (t , err )
77112
@@ -90,7 +125,7 @@ func TestBitcoreEncryptDecryptSolo(t *testing.T) {
90125 expectedEncryptedData := "A7vOlf8ZLhem2ELLr+FPfxkqwEZufwkowYc5jmJ+ZqhPAAAAAAAAAAAAAAAAAAAAAB27kUY/HpNbiwhYSpEoEZZDW+wEjMmPNcAAxnc0kiuQ73FpFzf6p6afe4wwVtKAAg=="
91126 decodedExpectedEncryptedData , _ := base64 .StdEncoding .DecodeString (expectedEncryptedData )
92127 log .Printf ("Decoded expected encrypted data: %x\n " , decodedExpectedEncryptedData )
93- pk , _ := ec .PrivateKeyFromWif ("L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu" )
128+ pk , _ := ec .PrivateKeyFromWif (wif )
94129
95130 // Bitcore Encrypt
96131 encryptedData , err := BitcoreEncrypt ([]byte (msgString ), pk .PubKey (), pk , nil )
@@ -104,8 +139,8 @@ func TestBitcoreEncryptDecryptSolo(t *testing.T) {
104139}
105140
106141func TestBitcoreEncryptDecryptWithCounterparty (t * testing.T ) {
107- pk1 , _ := ec .PrivateKeyFromWif ("L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu" )
108- counterpartyPk , err := ec .PrivateKeyFromWif ("L27ZSAC1xTsZrghYHqnxwAQZ12bH57piaAdoGaLizTp3JZrjkZjK" )
142+ pk1 , _ := ec .PrivateKeyFromWif (wif )
143+ counterpartyPk , err := ec .PrivateKeyFromWif (counterpartyWif )
109144 require .NoError (t , err )
110145
111146 // Bitcore Encrypt
0 commit comments