@@ -146,32 +146,42 @@ describe('Waku Store', () => {
146
146
expect ( result ) . to . not . eq ( - 1 ) ;
147
147
} ) ;
148
148
149
- it ( 'Retrieves history with asymmetric encrypted messages' , async function ( ) {
149
+ it ( 'Retrieves history with asymmetric & symmetric encrypted messages' , async function ( ) {
150
150
this . timeout ( 10_000 ) ;
151
151
152
152
nimWaku = new NimWaku ( makeLogFileName ( this ) ) ;
153
153
await nimWaku . start ( { persistMessages : true , lightpush : true } ) ;
154
154
155
- const encryptedMessageText = 'This message is encrypted for me' ;
155
+ const encryptedAsymmetricMessageText =
156
+ 'This message is encrypted for me using asymmetric' ;
157
+ const encryptedSymmetricMessageText =
158
+ 'This message is encrypted for me using symmetric encryption' ;
156
159
const clearMessageText =
157
160
'This is a clear text message for everyone to read' ;
158
161
const otherEncMessageText =
159
162
'This message is not for and I must not be able to read it' ;
160
163
161
164
const privateKey = generatePrivateKey ( ) ;
165
+ const symKey = generatePrivateKey ( ) ;
162
166
const publicKey = getPublicKey ( privateKey ) ;
163
167
164
- const [ encryptedMessage , clearMessage , otherEncMessage ] = await Promise . all (
165
- [
166
- WakuMessage . fromUtf8String ( encryptedMessageText , {
167
- encPublicKey : publicKey ,
168
- } ) ,
169
- WakuMessage . fromUtf8String ( clearMessageText ) ,
170
- WakuMessage . fromUtf8String ( otherEncMessageText , {
171
- encPublicKey : getPublicKey ( generatePrivateKey ( ) ) ,
172
- } ) ,
173
- ]
174
- ) ;
168
+ const [
169
+ encryptedAsymmetricMessage ,
170
+ encryptedSymmetricMessage ,
171
+ clearMessage ,
172
+ otherEncMessage ,
173
+ ] = await Promise . all ( [
174
+ WakuMessage . fromUtf8String ( encryptedAsymmetricMessageText , {
175
+ encPublicKey : publicKey ,
176
+ } ) ,
177
+ WakuMessage . fromUtf8String ( encryptedSymmetricMessageText , {
178
+ symKey : symKey ,
179
+ } ) ,
180
+ WakuMessage . fromUtf8String ( clearMessageText ) ,
181
+ WakuMessage . fromUtf8String ( otherEncMessageText , {
182
+ encPublicKey : getPublicKey ( generatePrivateKey ( ) ) ,
183
+ } ) ,
184
+ ] ) ;
175
185
176
186
dbg ( 'Messages have been encrypted' ) ;
177
187
@@ -204,7 +214,8 @@ describe('Waku Store', () => {
204
214
205
215
dbg ( 'Sending messages using light push' ) ;
206
216
await Promise . all ( [
207
- await waku1 . lightPush . push ( encryptedMessage ) ,
217
+ waku1 . lightPush . push ( encryptedAsymmetricMessage ) ,
218
+ waku1 . lightPush . push ( encryptedSymmetricMessage ) ,
208
219
waku1 . lightPush . push ( otherEncMessage ) ,
209
220
waku1 . lightPush . push ( clearMessage ) ,
210
221
] ) ;
@@ -218,13 +229,14 @@ describe('Waku Store', () => {
218
229
dbg ( 'Retrieve messages from store' ) ;
219
230
const messages = await waku2 . store . queryHistory ( {
220
231
contentTopics : [ ] ,
221
- decryptionPrivateKeys : [ privateKey ] ,
232
+ decryptionKeys : [ privateKey , symKey ] ,
222
233
} ) ;
223
234
224
- expect ( messages ?. length ) . eq ( 2 ) ;
235
+ expect ( messages ?. length ) . eq ( 3 ) ;
225
236
if ( ! messages ) throw 'Length was tested' ;
226
237
expect ( messages [ 0 ] . payloadAsUtf8 ) . to . eq ( clearMessageText ) ;
227
- expect ( messages [ 1 ] . payloadAsUtf8 ) . to . eq ( encryptedMessageText ) ;
238
+ expect ( messages [ 1 ] . payloadAsUtf8 ) . to . eq ( encryptedSymmetricMessageText ) ;
239
+ expect ( messages [ 2 ] . payloadAsUtf8 ) . to . eq ( encryptedAsymmetricMessageText ) ;
228
240
229
241
await Promise . all ( [ waku1 . stop ( ) , waku2 . stop ( ) ] ) ;
230
242
} ) ;
0 commit comments