@@ -434,16 +434,18 @@ public function testPushToDeviceNoFairUse(): void {
434434
435435 public static function dataPushToDeviceSending (): array {
436436 return [
437- [true ],
438- [false ],
437+ [true , 'PKCS1 ' ],
438+ [true , 'OAEP ' ],
439+ [false , 'PKCS1 ' ],
440+ [false , 'OAEP ' ],
439441 ];
440442 }
441443
442444 /**
443445 * @dataProvider dataPushToDeviceSending
444446 */
445- public function testPushToDeviceSending (bool $ isDebug ): void {
446- $ push = $ this ->getPush (['createFakeUserObject ' , 'getDevicesForUser ' , 'encryptAndSign ' , ' deletePushToken ' , 'validateToken ' , 'deletePushTokenByDeviceIdentifier ' ]);
447+ public function testPushToDeviceSending (bool $ isDebug, string $ padding ): void {
448+ $ push = $ this ->getPush (['createFakeUserObject ' , 'getDevicesForUser ' , 'deletePushToken ' , 'validateToken ' , 'deletePushTokenByDeviceIdentifier ' ]);
447449
448450 /** @var INotification&MockObject $notification */
449451 $ notification = $ this ->createMock (INotification::class);
@@ -459,38 +461,66 @@ public function testPushToDeviceSending(bool $isDebug): void {
459461 ->with ('valid ' )
460462 ->willReturn ($ user );
461463
464+ $ devicePublicKey = '-----BEGIN PUBLIC KEY-----
465+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1SN9sDJGNifnEv/y1UkP
466+ tggJA0xks5b0WN/Ida3GYK4Zy/ZWTa3wAknCerKkZC2rrFbcP55HA/oSp8fuUJC3
467+ q4b59znuhGoQtvvdAwUx6qSIPheAGs/gfMpNWO/bfH02oBu+98eTkxciuNKPxBFk
468+ wRdSSUxsHwkzCOw+er6oxriVSkc7tsNVaXg+ZpzW15cUQugjT6JDDjg5ftSeGsLj
469+ VV70QXge4uD3ege/lsa1N8iUVCjeMJHobyQm/hhGE990b6BzTgOIC1pGsOPbOsZB
470+ /5n54G4EUX9dixSSF90fDJs83GWQ+AIjf/uHmj3vFMe1bnqIwq9P17+IWe5x9Z04
471+ FQIDAQAB
472+ -----END PUBLIC KEY----- ' ;
473+
462474 $ push ->expects ($ this ->once ())
463475 ->method ('getDevicesForUser ' )
464476 ->willReturn ([
465477 [
466478 'proxyserver ' => 'proxyserver1 ' ,
467479 'token ' => 16 ,
468480 'apptype ' => 'other ' ,
481+ 'devicepublickey ' => $ devicePublicKey ,
482+ 'deviceidentifier ' => 'ident16 ' ,
483+ 'pushtokenhash ' => 'hash16 ' ,
469484 ],
470485 [
471486 'proxyserver ' => 'proxyserver1/ ' ,
472487 'token ' => 23 ,
473488 'apptype ' => 'other ' ,
489+ 'devicepublickey ' => $ devicePublicKey ,
490+ 'deviceidentifier ' => 'ident23 ' ,
491+ 'pushtokenhash ' => 'hash23 ' ,
474492 ],
475493 [
476494 'proxyserver ' => 'badrequest ' ,
477495 'token ' => 42 ,
478496 'apptype ' => 'other ' ,
497+ 'devicepublickey ' => $ devicePublicKey ,
498+ 'deviceidentifier ' => 'ident42 ' ,
499+ 'pushtokenhash ' => 'hash42 ' ,
479500 ],
480501 [
481502 'proxyserver ' => 'unavailable ' ,
482503 'token ' => 48 ,
483504 'apptype ' => 'other ' ,
505+ 'devicepublickey ' => $ devicePublicKey ,
506+ 'deviceidentifier ' => 'ident48 ' ,
507+ 'pushtokenhash ' => 'hash48 ' ,
484508 ],
485509 [
486510 'proxyserver ' => 'ok ' ,
487511 'token ' => 64 ,
488512 'apptype ' => 'other ' ,
513+ 'devicepublickey ' => $ devicePublicKey ,
514+ 'deviceidentifier ' => 'ident64 ' ,
515+ 'pushtokenhash ' => 'hash64 ' ,
489516 ],
490517 [
491518 'proxyserver ' => 'badrequest-with-devices ' ,
492519 'token ' => 128 ,
493520 'apptype ' => 'other ' ,
521+ 'devicepublickey ' => $ devicePublicKey ,
522+ 'deviceidentifier ' => 'ident128 ' ,
523+ 'pushtokenhash ' => 'hash128 ' ,
494524 ],
495525 ]);
496526
@@ -506,6 +536,12 @@ public function testPushToDeviceSending(bool $isDebug): void {
506536 ['support ' , 'subscription_key ' , '' , '' ],
507537 ]);
508538
539+ $ this ->appConfig
540+ ->expects ($ this ->exactly (6 ))
541+ ->method ('getAppValueString ' )
542+ ->with ('push_encryption_padding ' , 'PKCS1 ' )
543+ ->willReturn ($ padding );
544+
509545 $ this ->l10nFactory
510546 ->method ('getUserLanguage ' )
511547 ->with ($ user )
@@ -519,6 +555,36 @@ public function testPushToDeviceSending(bool $isDebug): void {
519555 /** @var Key&MockObject $key */
520556 $ key = $ this ->createMock (Key::class);
521557
558+ $ key ->method ('getPrivate ' )
559+ ->willReturn ('-----BEGIN PRIVATE KEY-----
560+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCkGi7rj6BWi9U8
561+ lptb1rBKVFENFJjq690Ap8wAdR9cxGYE+nzdFxlcRxh17GwyWaBDEPWtL5WDPxi0
562+ 8XjQWpwfYFzjMLLzGMZaj7Jiam5rJM12qFEvYyw9s26LzebeLTzvp28L2TIWCswi
563+ dM0OvrYGGvL9f+N+6Oev5cwiSJk0WrHceL+P/wFH3mmOdOBHmKkofeDZoS1XkNOE
564+ o1EpwepvDibUjc3vHPk1IHg4hsfKk1O9+uHiBf9xqm//M9MKrM9mlOButbo2bOhu
565+ 1YN/2wKww7bU/c7JYgVeljpfN0sMuKmhMiuje2KqOU8v8yIREkKMyxd4+B+s3eNG
566+ PdVBf57FAgMBAAECggEAAMegdOm3xPyXMk+f0yNlh5kzDKE1itCL4aYIA6LZnLmp
567+ bHHJWZI4kTT1IHPdgDeYlPBjgAOuEFEsjhLySoXwoF4BIIgErCKD9xa9pBIojmVm
568+ LovlNfFlvScDKgsjUed+5ZguDLcYO7gyQvqTzS6ivXzq6TezeVDfeUgBTg3JG6n/
569+ BjgIek1jV4q9OrQTOdR3eAPwW6pbLG820OB87Cx/A0JHdEgCevFCHmMUbk7yXQrh
570+ W/JwTrnV66LBPjSWQcsHUNWrl2nqV08BYoC1uy32uTpUlejCdWDuHuB1DYOpn0KY
571+ nyiVTNF/MZ0E9sOsKKgbodBz4n3cc6v7NckpFpKMHwKBgQDUeaakKYwatNg6YEHP
572+ OB3iH62bAe7Ej6vg0EPYgr6fzRjAETzTrpZZfzmrGwTxFBczFrx8hOPsyDkpiEU5
573+ 77L90jMOb9NSasjS8Pv0GM2LY/8H8Ck4RwXF/E3maSbc2bAY9ZXH6m82YW6iHnfc
574+ G9L0xVCq549axd1tWUnXdukiuwKBgQDFt9KDtlwMutuQOj+Eup7L0sMAxO4jlghH
575+ hTxSAqQ5mlodbQhULXRk4QWGMjjKG0y4XY2rw+VgBQzFT8W3jlThR3BMWKNv3P+M
576+ zlzkoxcoOio7K25im4Yb0NheOnaxaqhLcRwXcxa5E9kn+108xYIYAACZgmkZo7ab
577+ PCoQicnsfwKBgAzyEIYmBeRGqnn8DWZru95gIbq1BnAxdL5w0gFqDeU8oMprAnK/
578+ S2fOiZv0PHvXxoYVV4yaqCxwEpOGOvmJsjUmzneNtqlp2iyIBEHeFP/uKsa4Cjrk
579+ kOR8N97W/0grd0A+Dk8s6HO+wffctV7SzyqcrwqKq0BTl+cmrooTM6crAoGATjjT
580+ iFh1QnQKuZzR1GkgufLAQ2Wl8V5CGEmV+7wfzMpMLKgeS29QRTjhPp5P6WWzjJ02
581+ l2YBMWPOEaHlzyD4Y8gnnYzT3EXKtKJQDgSX/MpGOvKL0WdGP2r4rw7iNn7D5lTx
582+ kDVwH/jCSRchZBGfzm7xzcnSWtpyPCgpXDGnOXECgYEAyqDrBeKlUDDltoe6xs4K
583+ gEG+V5E5cwZqvSoOlYHqbtP9Dms6z6G8TvPZblwlbgwXFofrd5LN/vK3pZPiU5Y+
584+ sd7MhWnjKf7EX9GJD0VhLabFY/KrloJkyL7gOY21xFvmnNqwvH60eOxbVPzlYjaN
585+ 96rK6qkqEdUgXj0CpJZHAMw=
586+ -----END PRIVATE KEY----- ' );
587+
522588 $ this ->keyManager ->expects ($ this ->once ())
523589 ->method ('getKey ' )
524590 ->with ($ user )
@@ -528,10 +594,6 @@ public function testPushToDeviceSending(bool $isDebug): void {
528594 ->method ('validateToken ' )
529595 ->willReturn (true );
530596
531- $ push ->expects ($ this ->exactly (6 ))
532- ->method ('encryptAndSign ' )
533- ->willReturn (['Payload ' ]);
534-
535597 $ push ->expects ($ this ->never ())
536598 ->method ('deletePushToken ' );
537599
0 commit comments