@@ -285,35 +285,35 @@ func TestReencryptionWithDataEditListAndDiscard(t *testing.T) {
285
285
}
286
286
writerPrivateKey , err := keys .ReadPrivateKey (strings .NewReader (sshEd25519SecEnc ), []byte ("123123" ))
287
287
if err != nil {
288
- t .Error ( err )
288
+ t .Errorf ( "Reading private key failed with %v" , err )
289
289
}
290
290
readerPublicKey , err := keys .ReadPublicKey (strings .NewReader (crypt4ghX25519Pub ))
291
291
if err != nil {
292
- t .Error ( err )
292
+ t .Errorf ( "Reading public key failed with %v" , err )
293
293
}
294
294
buffer := bytes.Buffer {}
295
295
readerPublicKeyList := [][chacha20poly1305 .KeySize ]byte {}
296
296
readerPublicKeyList = append (readerPublicKeyList , readerPublicKey )
297
297
writer , err := NewCrypt4GHWriter (& buffer , writerPrivateKey , readerPublicKeyList , nil )
298
298
if err != nil {
299
- t .Error ( err )
299
+ t .Errorf ( "Creating writer failed with %v" , err )
300
300
}
301
301
_ , err = io .Copy (writer , inFile )
302
302
if err != nil {
303
- t .Error ( err )
303
+ t .Errorf ( "Copying infile to writer failed with %v" , err )
304
304
}
305
305
err = inFile .Close ()
306
306
if err != nil {
307
- t .Error ( err )
307
+ t .Errorf ( "Closing infile failed with %v" , err )
308
308
}
309
309
err = writer .Close ()
310
310
if err != nil {
311
- t .Error ( err )
311
+ t .Errorf ( "Closing writer failed with %v" , err )
312
312
}
313
313
314
314
readerSecretKey , err := keys .ReadPrivateKey (strings .NewReader (crypt4ghX25519Sec ), []byte ("password" ))
315
315
if err != nil {
316
- t .Error ( err )
316
+ t .Errorf ( "Reading private key failed with %v" , err )
317
317
}
318
318
dataEditListHeaderPacket := headers.DataEditListHeaderPacket {
319
319
PacketType : headers.PacketType {PacketType : headers .DataEditList },
@@ -322,54 +322,55 @@ func TestReencryptionWithDataEditListAndDiscard(t *testing.T) {
322
322
}
323
323
reader , err := NewCrypt4GHReader (& buffer , readerSecretKey , & dataEditListHeaderPacket )
324
324
if err != nil {
325
- t .Error ( err )
325
+ t .Errorf ( "Creating reader failed with %v" , err )
326
326
}
327
327
discarded , err := reader .Discard (toDiscard )
328
328
if err != nil {
329
- t .Error ( err )
329
+ t .Errorf ( "Discarding failed with %v" , err )
330
330
}
331
331
if discarded != toDiscard {
332
- t .Fail ( )
332
+ t .Errorf ( "Discarded return doesn't match was asked for %v != %v" , discarded , toDiscard )
333
333
}
334
334
335
335
all , err := io .ReadAll (reader )
336
336
if err != nil {
337
- t .Error ( err )
337
+ t .Errorf ( "Reading all from reader failed with %v" , err )
338
338
}
339
339
inFile , err = os .Open ("../test/sample.txt" )
340
340
if err != nil {
341
- t .Error ( err )
341
+ t .Errorf ( "Opening test sample failed with %v" , err )
342
342
}
343
343
bufioReader := bufio .NewReader (inFile )
344
344
_ , err = bufioReader .Discard (950 + toDiscard )
345
345
if err != nil {
346
- t .Error ( err )
346
+ t .Errorf ( "Discarding failed with %v" , err )
347
347
}
348
348
firstLine , _ , err := bufioReader .ReadLine ()
349
349
if err != nil {
350
- t .Error ( err )
350
+ t .Errorf ( "First Readline failed with %v" , err )
351
351
}
352
352
_ , _ , err = bufioReader .ReadLine ()
353
353
if err != nil {
354
- t .Error ( err )
354
+ t .Errorf ( "First Skipped Readline failed with %v" , err )
355
355
}
356
356
_ , _ , err = bufioReader .ReadLine ()
357
357
if err != nil {
358
- t .Error ( err )
358
+ t .Errorf ( "Second Skipped Readline failed with %v" , err )
359
359
}
360
360
_ , _ , err = bufioReader .ReadLine ()
361
361
if err != nil {
362
- t .Error ( err )
362
+ t .Errorf ( "Third Skipped Readline failed with %v" , err )
363
363
}
364
364
secondLine , _ , err := bufioReader .ReadLine ()
365
365
if err != nil {
366
- t .Error ( err )
366
+ t .Errorf ( "Second used Readline failed with %v" , err )
367
367
}
368
368
expectedText := strings .TrimSpace (string (firstLine ) + "\n " + string (secondLine ))
369
369
actualText := strings .TrimSpace (string (all ))
370
370
371
371
if ! strings .EqualFold (expectedText , actualText ) {
372
- t .Fail ()
372
+ t .Errorf ("Texts didn't match: %v, %v" , expectedText , actualText )
373
+
373
374
}
374
375
}
375
376
@@ -399,6 +400,72 @@ func TestGetHeader(t *testing.T) {
399
400
}
400
401
}
401
402
403
+ func TestReencryptionWithDataEditListInCrypt4GHReaderDiscardStart (t * testing.T ) {
404
+ inFile , err := os .Open ("../test/sample.txt" )
405
+ if err != nil {
406
+ t .Error (err )
407
+ }
408
+ writerPrivateKey , err := keys .ReadPrivateKey (strings .NewReader (sshEd25519SecEnc ), []byte ("123123" ))
409
+ if err != nil {
410
+ t .Error (err )
411
+ }
412
+ readerPublicKey , err := keys .ReadPublicKey (strings .NewReader (crypt4ghX25519Pub ))
413
+ if err != nil {
414
+ t .Error (err )
415
+ }
416
+ buffer := bytes.Buffer {}
417
+ readerPublicKeyList := [][chacha20poly1305 .KeySize ]byte {}
418
+ readerPublicKeyList = append (readerPublicKeyList , readerPublicKey )
419
+ writer , err := NewCrypt4GHWriter (& buffer , writerPrivateKey , readerPublicKeyList , nil )
420
+ if err != nil {
421
+ t .Error (err )
422
+ }
423
+ _ , err = io .Copy (writer , inFile )
424
+ if err != nil {
425
+ t .Error (err )
426
+ }
427
+ err = inFile .Close ()
428
+ if err != nil {
429
+ t .Error (err )
430
+ }
431
+ err = writer .Close ()
432
+ if err != nil {
433
+ t .Error (err )
434
+ }
435
+
436
+ readerSecretKey , err := keys .ReadPrivateKey (strings .NewReader (crypt4ghX25519Sec ), []byte ("password" ))
437
+ if err != nil {
438
+ t .Error (err )
439
+ }
440
+ dataEditListHeaderPacket := headers.DataEditListHeaderPacket {
441
+ PacketType : headers.PacketType {PacketType : headers .DataEditList },
442
+ NumberLengths : 3 ,
443
+ Lengths : []uint64 {0 , 100 , 300 },
444
+ }
445
+ reader , err := NewCrypt4GHReader (& buffer , readerSecretKey , & dataEditListHeaderPacket )
446
+ if err != nil {
447
+ t .Error (err )
448
+ }
449
+ all , err := io .ReadAll (reader )
450
+ if err != nil {
451
+ t .Error (err )
452
+ }
453
+ inFile , err = os .Open ("../test/sample.txt" )
454
+ if err != nil {
455
+ t .Error (err )
456
+ }
457
+ inBytes , err := io .ReadAll (inFile )
458
+ if err != nil {
459
+ t .Error (err )
460
+ }
461
+ if ! bytes .Equal (all [:100 ], inBytes [:100 ]) {
462
+ t .Errorf ("Different data before discard: %v vs %v" , all [:100 ], inBytes [:100 ])
463
+ }
464
+ if ! bytes .Equal (all [100 :], inBytes [400 :]) {
465
+ t .Errorf ("Different data after discard: %v vs %v (truncated)" , all [400 :500 ], inBytes [100 :200 ])
466
+ }
467
+ }
468
+
402
469
func TestNewCrypt4GHWriterWithoutPrivateKey (t * testing.T ) {
403
470
inFile , err := os .Open ("../test/sample.txt" )
404
471
if err != nil {
@@ -856,7 +923,7 @@ func TestSeek(t *testing.T) {
856
923
t .Error (err )
857
924
}
858
925
859
- if r , err := writer .Write (inBytes [:70225 ]); err != nil || r != len ( inBytes ) {
926
+ if r , err := writer .Write (inBytes [:70225 ]); err != nil || r != 70225 {
860
927
t .Errorf ("Problem when writing to cryptgh writer, r=%d, err=%v" , r , err )
861
928
}
862
929
0 commit comments