Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a80b6738 authored by Pankaj Kanwar's avatar Pankaj Kanwar Committed by Gerrit Code Review
Browse files

Merge "Radio Interface changes to pass the encryption object, including the key,to the modem."

parents b0303066 9179967a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -21,13 +21,13 @@ import android.os.Message;
import android.os.WorkSource;
import android.service.carrier.CarrierIdentifier;
import android.telephony.ClientRequestStats;
import android.telephony.ImsiEncryptionInfo;

import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
import com.android.internal.telephony.dataconnection.DataProfile;
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
import com.android.internal.telephony.uicc.IccCardStatus;

import java.security.PublicKey;
import java.util.List;

/**
@@ -1460,7 +1460,7 @@ public interface CommandsInterface {
     *        specific.
     * @param response callback message
     */
    void setCarrierInfoForImsiEncryption(PublicKey publicKey, String keyIdentifier,
    void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo,
                                         Message response);

    void invokeOemRilRequestStrings(String[] strings, Message response);
+17 −16
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ import android.os.WorkSource;
import android.service.carrier.CarrierIdentifier;
import android.telephony.CellInfo;
import android.telephony.ClientRequestStats;
import android.telephony.ImsiEncryptionInfo;
import android.telephony.ModemActivityInfo;
import android.telephony.NeighboringCellInfo;
import android.telephony.NetworkScanRequest;
@@ -97,7 +98,6 @@ import java.io.DataInputStream;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.PrintWriter;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -3746,8 +3746,9 @@ public final class RIL extends BaseCommands implements CommandsInterface {
    }

    @Override
    public void setCarrierInfoForImsiEncryption(PublicKey publicKey, String keyIdentifier,
    public void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo,
                                                Message result) {
        checkNotNull(imsiEncryptionInfo, "ImsiEncryptionInfo cannot be null.");
        IRadio radioProxy = getRadioProxy(result);
        if (radioProxy != null) {
            android.hardware.radio.V1_1.IRadio radioProxy11 =
@@ -3764,8 +3765,21 @@ public final class RIL extends BaseCommands implements CommandsInterface {
                if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));

                try {
                    android.hardware.radio.V1_1.ImsiEncryptionInfo halImsiInfo =
                            new android.hardware.radio.V1_1.ImsiEncryptionInfo();
                    halImsiInfo.mnc = imsiEncryptionInfo.getMnc();
                    halImsiInfo.mcc = imsiEncryptionInfo.getMcc();
                    halImsiInfo.keyIdentifier = imsiEncryptionInfo.getKeyIdentifier();
                    if (imsiEncryptionInfo.getExpirationTime() != null) {
                        halImsiInfo.expirationTime =
                                imsiEncryptionInfo.getExpirationTime().getTime();
                    }
                    for (byte b : imsiEncryptionInfo.getPublicKey().getEncoded()) {
                        halImsiInfo.carrierKey.add(new Byte(b));
                    }

                    radioProxy11.setCarrierInfoForImsiEncryption(
                            rr.mSerial, publicKeyToArrayList(publicKey), keyIdentifier);
                            rr.mSerial, halImsiInfo);
                } catch (RemoteException | RuntimeException e) {
                    handleRadioProxyExceptionForRR(rr, "setCarrierInfoForImsiEncryption", e);
                }
@@ -4869,19 +4883,6 @@ public final class RIL extends BaseCommands implements CommandsInterface {
        return arrayList;
    }

    /**
     * Method to serialize the Public Key into ArrayList of bytes
     * @param publicKey publicKey to be converted to ArrayList of bytes.
     **/
    public static ArrayList<Byte> publicKeyToArrayList(PublicKey publicKey) {
        byte[] key = publicKey.getEncoded();
        ArrayList<Byte> arrayList = new ArrayList<>(key.length);
        for (byte b : key) {
            arrayList.add(b);
        }
        return arrayList;
    }

    public static byte[] arrayListToPrimitiveArray(ArrayList<Byte> bytes) {
        byte[] ret = new byte[bytes.size()];
        for (int i = 0; i < ret.length; i++) {
+2 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.service.carrier.CarrierIdentifier;
import android.telephony.ImsiEncryptionInfo;

import com.android.internal.telephony.BaseCommands;
import com.android.internal.telephony.CommandsInterface;
@@ -29,7 +30,6 @@ import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
import com.android.internal.telephony.dataconnection.DataProfile;
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;

import java.security.PublicKey;
import java.util.List;

/**
@@ -624,7 +624,7 @@ class ImsPhoneCommandInterface extends BaseCommands implements CommandsInterface
    }

    @Override
    public void setCarrierInfoForImsiEncryption(PublicKey publicKey, String keyIdentifier,
    public void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo,
                                                Message result) {
    }

+2 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.service.carrier.CarrierIdentifier;
import android.telephony.ImsiEncryptionInfo;

import com.android.internal.telephony.BaseCommands;
import com.android.internal.telephony.CommandsInterface;
@@ -28,7 +29,6 @@ import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
import com.android.internal.telephony.dataconnection.DataProfile;
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;

import java.security.PublicKey;
import java.util.List;

/**
@@ -626,7 +626,7 @@ class SipCommandInterface extends BaseCommands implements CommandsInterface {
    }

    @Override
    public void setCarrierInfoForImsiEncryption(PublicKey carrierPublicKey, String keyIdentifier,
    public void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo,
                                                Message result) {
    }

+3 −3
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.service.carrier.CarrierIdentifier;
import android.telephony.CellInfo;
import android.telephony.CellInfoGsm;
import android.telephony.IccOpenLogicalChannelResponse;
import android.telephony.ImsiEncryptionInfo;
import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
@@ -53,7 +54,6 @@ import com.android.internal.telephony.gsm.SuppServiceNotification;
import com.android.internal.telephony.uicc.IccCardStatus;
import com.android.internal.telephony.uicc.IccIoResult;

import java.security.PublicKey;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -1454,11 +1454,11 @@ public class SimulatedCommands extends BaseCommands
    }

    @Override
    public void setCarrierInfoForImsiEncryption(PublicKey publicKey, String keyIdentifier,
    public void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo,
                                                Message response) {
        // Just echo back data
        if (response != null) {
            AsyncResult.forMessage(response).result = publicKey;
            AsyncResult.forMessage(response).result = imsiEncryptionInfo;
            response.sendToTarget();
        }
    }
Loading