4040import org .signal .storageservice .protos .groups .GroupJoinInfo ;
4141import org .whispersystems .signalservice .api .account .AccountAttributes ;
4242import org .whispersystems .signalservice .api .account .ChangePhoneNumberRequest ;
43- import org .whispersystems .signalservice .api .account .PreKeyCollections ;
4443import org .whispersystems .signalservice .api .account .PniKeyDistributionRequest ;
45- import org .whispersystems .signalservice .api .account .PreKeyUpload ;
4644import org .whispersystems .signalservice .api .account .PreKeyCollection ;
45+ import org .whispersystems .signalservice .api .account .PreKeyUpload ;
4746import org .whispersystems .signalservice .api .crypto .UnidentifiedAccess ;
4847import org .whispersystems .signalservice .api .groupsv2 .CredentialResponse ;
4948import org .whispersystems .signalservice .api .groupsv2 .GroupsV2AuthorizationString ;
@@ -394,7 +393,7 @@ public RegistrationSessionMetadataResponse submitVerificationCode(String session
394393 }
395394 }
396395
397- public VerifyAccountResponse submitRegistrationRequest (@ Nullable String sessionId , @ Nullable String recoveryPassword , AccountAttributes attributes , PreKeyCollections preKeys , @ Nullable String fcmToken , boolean skipDeviceTransfer ) throws IOException {
396+ public VerifyAccountResponse submitRegistrationRequest (@ Nullable String sessionId , @ Nullable String recoveryPassword , AccountAttributes attributes , PreKeyCollection aciPreKeys , PreKeyCollection pniPreKeys , @ Nullable String fcmToken , boolean skipDeviceTransfer ) throws IOException {
398397 String path = REGISTRATION_PATH ;
399398 if (sessionId == null && recoveryPassword == null ) {
400399 throw new IllegalArgumentException ("Neither Session ID nor Recovery Password provided." );
@@ -411,36 +410,29 @@ public VerifyAccountResponse submitRegistrationRequest(@Nullable String sessionI
411410 gcmRegistrationId = new GcmRegistrationId (fcmToken , true );
412411 }
413412
414- RegistrationSessionRequestBody body ;
415- if (sessionId != null ) {
416- final PreKeyCollection aciPreKeys = preKeys .getAciPreKeyCollection ();
417- final PreKeyCollection pniPreKeys = preKeys .getPniPreKeyCollection ();
418- final SignedPreKeyEntity aciSignedPreKey = new SignedPreKeyEntity (Objects .requireNonNull (aciPreKeys .getSignedPreKey ()).getId (),
419- aciPreKeys .getSignedPreKey ().getKeyPair ().getPublicKey (),
420- aciPreKeys .getSignedPreKey ().getSignature ());
421- final SignedPreKeyEntity pniSignedPreKey = new SignedPreKeyEntity (Objects .requireNonNull (pniPreKeys .getSignedPreKey ()).getId (),
422- pniPreKeys .getSignedPreKey ().getKeyPair ().getPublicKey (),
423- pniPreKeys .getSignedPreKey ().getSignature ());
424- final KyberPreKeyEntity aciLastResortKyberPreKey = new KyberPreKeyEntity (Objects .requireNonNull (aciPreKeys .getLastResortKyberPreKey ()).getId (),
425- aciPreKeys .getLastResortKyberPreKey ().getKeyPair ().getPublicKey (),
426- aciPreKeys .getLastResortKyberPreKey ().getSignature ());
427- final KyberPreKeyEntity pniLastResortKyberPreKey = new KyberPreKeyEntity (Objects .requireNonNull (pniPreKeys .getLastResortKyberPreKey ()).getId (),
428- pniPreKeys .getLastResortKyberPreKey ().getKeyPair ().getPublicKey (),
429- pniPreKeys .getLastResortKyberPreKey ().getSignature ());
430- body = new RegistrationSessionRequestBody (sessionId ,
431- null ,
432- attributes ,
433- Base64 .encodeBytesWithoutPadding (aciPreKeys .getIdentityKey ().serialize ()),
434- Base64 .encodeBytesWithoutPadding (pniPreKeys .getIdentityKey ().serialize ()),
435- aciSignedPreKey ,
436- pniSignedPreKey ,
437- aciLastResortKyberPreKey ,
438- pniLastResortKyberPreKey ,
439- gcmRegistrationId ,
440- skipDeviceTransfer );
441- } else {
442- body = new RegistrationSessionRequestBody (null , recoveryPassword , attributes , null , null , null , null , null , null , null , skipDeviceTransfer );
443- }
413+ final SignedPreKeyEntity aciSignedPreKey = new SignedPreKeyEntity (Objects .requireNonNull (aciPreKeys .getSignedPreKey ()).getId (),
414+ aciPreKeys .getSignedPreKey ().getKeyPair ().getPublicKey (),
415+ aciPreKeys .getSignedPreKey ().getSignature ());
416+ final SignedPreKeyEntity pniSignedPreKey = new SignedPreKeyEntity (Objects .requireNonNull (pniPreKeys .getSignedPreKey ()).getId (),
417+ pniPreKeys .getSignedPreKey ().getKeyPair ().getPublicKey (),
418+ pniPreKeys .getSignedPreKey ().getSignature ());
419+ final KyberPreKeyEntity aciLastResortKyberPreKey = new KyberPreKeyEntity (Objects .requireNonNull (aciPreKeys .getLastResortKyberPreKey ()).getId (),
420+ aciPreKeys .getLastResortKyberPreKey ().getKeyPair ().getPublicKey (),
421+ aciPreKeys .getLastResortKyberPreKey ().getSignature ());
422+ final KyberPreKeyEntity pniLastResortKyberPreKey = new KyberPreKeyEntity (Objects .requireNonNull (pniPreKeys .getLastResortKyberPreKey ()).getId (),
423+ pniPreKeys .getLastResortKyberPreKey ().getKeyPair ().getPublicKey (),
424+ pniPreKeys .getLastResortKyberPreKey ().getSignature ());
425+ RegistrationSessionRequestBody body = new RegistrationSessionRequestBody (sessionId ,
426+ recoveryPassword ,
427+ attributes ,
428+ Base64 .encodeBytesWithoutPadding (aciPreKeys .getIdentityKey ().serialize ()),
429+ Base64 .encodeBytesWithoutPadding (pniPreKeys .getIdentityKey ().serialize ()),
430+ aciSignedPreKey ,
431+ pniSignedPreKey ,
432+ aciLastResortKyberPreKey ,
433+ pniLastResortKyberPreKey ,
434+ gcmRegistrationId ,
435+ skipDeviceTransfer );
444436
445437 String response = makeServiceRequest (path , "POST" , JsonUtil .toJson (body ), NO_HEADERS , new RegistrationSessionResponseHandler (), Optional .empty ());
446438 return JsonUtil .fromJson (response , VerifyAccountResponse .class );
0 commit comments