mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-20 17:57:29 +00:00
1) At registration time, a client generates a random ID and transmits to the the server. 2) The server provides that registration ID to any client that requests a prekey. 3) Clients include that registration ID in any PreKeyWhisperMessage. 4) Clients include that registration ID in their sendMessage API call to the server. 5) The server verifies that the registration ID included in an API call is the same as the current registration ID for the destination device. Otherwise, it notifies the sender that their session is stale.
51 lines
1.5 KiB
Java
51 lines
1.5 KiB
Java
/**
|
|
* Copyright (C) 2013 Open Whisper Systems
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
package org.whispersystems.textsecure.push;
|
|
|
|
import org.whispersystems.textsecure.util.Base64;
|
|
|
|
public class OutgoingPushMessage {
|
|
|
|
private int type;
|
|
private int destinationDeviceId;
|
|
private int destinationRegistrationId;
|
|
private String body;
|
|
|
|
public OutgoingPushMessage(PushAddress address, PushBody body) {
|
|
this.type = body.getType();
|
|
this.destinationDeviceId = address.getDeviceId();
|
|
this.destinationRegistrationId = body.getRemoteRegistrationId();
|
|
this.body = Base64.encodeBytes(body.getBody());
|
|
}
|
|
|
|
public int getDestinationDeviceId() {
|
|
return destinationDeviceId;
|
|
}
|
|
|
|
public String getBody() {
|
|
return body;
|
|
}
|
|
|
|
public int getType() {
|
|
return type;
|
|
}
|
|
|
|
public int getDestinationRegistrationId() {
|
|
return destinationRegistrationId;
|
|
}
|
|
}
|