Search in sources :

Example 6 with PNI

use of org.whispersystems.signalservice.api.push.PNI in project Signal-Android by WhisperSystems.

the class SignalServiceAccountManager method addDevice.

public void addDevice(String deviceIdentifier, ECPublicKey deviceKey, IdentityKeyPair aciIdentityKeyPair, IdentityKeyPair pniIdentityKeyPair, ProfileKey profileKey, String code) throws InvalidKeyException, IOException {
    String e164 = credentials.getE164();
    ACI aci = credentials.getAci();
    PNI pni = credentials.getPni();
    Preconditions.checkArgument(e164 != null, "Missing e164!");
    Preconditions.checkArgument(aci != null, "Missing ACI!");
    Preconditions.checkArgument(pni != null, "Missing PNI!");
    PrimaryProvisioningCipher cipher = new PrimaryProvisioningCipher(deviceKey);
    ProvisionMessage.Builder message = ProvisionMessage.newBuilder().setAciIdentityKeyPublic(ByteString.copyFrom(aciIdentityKeyPair.getPublicKey().serialize())).setAciIdentityKeyPrivate(ByteString.copyFrom(aciIdentityKeyPair.getPrivateKey().serialize())).setPniIdentityKeyPublic(ByteString.copyFrom(pniIdentityKeyPair.getPublicKey().serialize())).setPniIdentityKeyPrivate(ByteString.copyFrom(pniIdentityKeyPair.getPrivateKey().serialize())).setAci(aci.toString()).setPni(pni.toString()).setNumber(e164).setProfileKey(ByteString.copyFrom(profileKey.serialize())).setProvisioningCode(code).setProvisioningVersion(ProvisioningVersion.CURRENT_VALUE);
    byte[] ciphertext = cipher.encrypt(message.build());
    this.pushServiceSocket.sendProvisioningMessage(deviceIdentifier, ciphertext);
}
Also used : ProvisionMessage(org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage) PrimaryProvisioningCipher(org.whispersystems.signalservice.internal.crypto.PrimaryProvisioningCipher) ACI(org.whispersystems.signalservice.api.push.ACI) PNI(org.whispersystems.signalservice.api.push.PNI) ByteString(com.google.protobuf.ByteString)

Aggregations

PNI (org.whispersystems.signalservice.api.push.PNI)6 ACI (org.whispersystems.signalservice.api.push.ACI)4 SignalServiceAccountDataStoreImpl (org.thoughtcrime.securesms.crypto.storage.SignalServiceAccountDataStoreImpl)2 RecipientId (org.thoughtcrime.securesms.recipients.RecipientId)2 SignalServiceAccountManager (org.whispersystems.signalservice.api.SignalServiceAccountManager)2 NonNull (androidx.annotation.NonNull)1 WorkerThread (androidx.annotation.WorkerThread)1 ByteString (com.google.protobuf.ByteString)1 IOException (java.io.IOException)1 PreKeyMetadataStore (org.thoughtcrime.securesms.crypto.storage.PreKeyMetadataStore)1 SignalBaseIdentityKeyStore (org.thoughtcrime.securesms.crypto.storage.SignalBaseIdentityKeyStore)1 SignalIdentityKeyStore (org.thoughtcrime.securesms.crypto.storage.SignalIdentityKeyStore)1 SignalSenderKeyStore (org.thoughtcrime.securesms.crypto.storage.SignalSenderKeyStore)1 SignalServiceDataStoreImpl (org.thoughtcrime.securesms.crypto.storage.SignalServiceDataStoreImpl)1 TextSecurePreKeyStore (org.thoughtcrime.securesms.crypto.storage.TextSecurePreKeyStore)1 TextSecureSessionStore (org.thoughtcrime.securesms.crypto.storage.TextSecureSessionStore)1 RecipientDatabase (org.thoughtcrime.securesms.database.RecipientDatabase)1 PreKeyRecord (org.whispersystems.libsignal.state.PreKeyRecord)1 SignalProtocolStore (org.whispersystems.libsignal.state.SignalProtocolStore)1 SignedPreKeyRecord (org.whispersystems.libsignal.state.SignedPreKeyRecord)1