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

Commit f24d4ef9 authored by pkanwar's avatar pkanwar Committed by Steven Moreland
Browse files

Radio Interface changes to pass the encryption object, including the

key,to the modem.

We will now pass the ImsiEncryptionInfo object which includes mnc/mcc.
BUG: 35606429
Test: manual

Merged-In: I1bcaf7de424ad6143587fa001b9ecb631009c463
Change-Id: I1bcaf7de424ad6143587fa001b9ecb631009c463
parent 2d56a524
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.os.Message;
import android.os.WorkSource;
import android.service.carrier.CarrierIdentifier;
import android.telephony.ClientRequestStats;
import android.telephony.ImsiEncryptionInfo;
import android.telephony.NetworkScanRequest;

import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
@@ -28,7 +29,6 @@ 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;

/**
@@ -1461,7 +1461,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
@@ -68,6 +68,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;
@@ -98,7 +99,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;
@@ -3778,8 +3778,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 =
@@ -3796,8 +3797,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);
                }
@@ -4907,19 +4921,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 android.telephony.NetworkScanRequest;

import com.android.internal.telephony.BaseCommands;
@@ -30,7 +31,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;

/**
@@ -625,7 +625,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 android.telephony.NetworkScanRequest;

import com.android.internal.telephony.BaseCommands;
@@ -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;

/**
@@ -627,7 +627,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.NetworkScanRequest;
import android.telephony.Rlog;
import android.telephony.ServiceState;
@@ -54,7 +55,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;
@@ -1455,11 +1455,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