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

Commit d8770a03 authored by Pankaj Kanwar's avatar Pankaj Kanwar Committed by Android (Google) Code Review
Browse files

Merge "Radio Interface changes to allow the modem to query the framework for the key."

parents 3eb1fd81 8ab77058
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -74,6 +74,25 @@ $(GEN): $(LOCAL_PATH)/types.hal
	$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)

#
# Build types.hal (ImsiEncryptionInfo)
#
GEN := $(intermediates)/android/hardware/radio/V1_1/ImsiEncryptionInfo.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
$(GEN): PRIVATE_CUSTOM_TOOL = \
        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
        -Ljava \
        -randroid.hardware:hardware/interfaces \
        -randroid.hidl:system/libhidl/transport \
        android.hardware.radio@1.1::types.ImsiEncryptionInfo

$(GEN): $(LOCAL_PATH)/types.hal
	$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)

#
# Build types.hal (NetworkScanRequest)
#
@@ -342,6 +361,25 @@ $(GEN): $(LOCAL_PATH)/types.hal
	$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)

#
# Build types.hal (ImsiEncryptionInfo)
#
GEN := $(intermediates)/android/hardware/radio/V1_1/ImsiEncryptionInfo.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
$(GEN): PRIVATE_CUSTOM_TOOL = \
        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
        -Ljava \
        -randroid.hardware:hardware/interfaces \
        -randroid.hidl:system/libhidl/transport \
        android.hardware.radio@1.1::types.ImsiEncryptionInfo

$(GEN): $(LOCAL_PATH)/types.hal
	$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)

#
# Build types.hal (NetworkScanRequest)
#
+3 −13
Original line number Diff line number Diff line
@@ -34,23 +34,13 @@ interface IRadio extends @1.0::IRadio {
     * switch and everytime the framework receives a new certificate.
     *
     * @param serial Serial number of request.
     * @param carrierKey Carrier specific key to be used for encryption. It must
     *        be opaque to the framework. This is the byte-stream representation
     *        of the key. This is an external encoded form for the key used when
     *        a standard representation of the key is needed outside the Java
     *        Virtual Machine, as when transmitting the key to some other party.
     *        The key is encoded according to a standard format
     *        (such as X.509 SubjectPublicKeyInfo or PKCS#8), and is returned using
     *        the getEncoded method.
     * @param keyIdentifier This is an opaque value we're given by the carrier
     *        and is returned to the carrier. This is used by the server to
     *        help it locate the private key to decrypt the permanent identity.
     * @param message ImsiEncryptionInfo as defined in types.hal.
     *
     *
     * Response callback is
     * IRadioResponse.setCarrierInfoForImsiEncryptionResponse()
     */
     oneway setCarrierInfoForImsiEncryption(int32_t serial, vec<uint8_t> carrierKey,
             string keyIdentifier);
     oneway setCarrierInfoForImsiEncryption(int32_t serial, ImsiEncryptionInfo imsiEncryptionInfo);

    /**
     * Set SIM card power state.
+20 −0
Original line number Diff line number Diff line
@@ -162,3 +162,23 @@ struct NetworkScanResult {
    RadioError error;                       // The error code of the incremental result
    vec<CellInfo> networkInfos;             // List of network information as CellInfo
};

struct ImsiEncryptionInfo {
    string mcc;                   // MCC of the Carrier.
    string mnc;                   // MNC of the Carrier.
    vec<uint8_t> carrierKey;      // Carrier specific key to be used for encryption. It must
                                  // be opaque to the framework. This is the byte-stream
                                  // representation of the key. This is an external encoded
                                  // form for the key used when a standard representation of
                                  // the key is needed outside the Java Virtual Machine, as
                                  // when transmitting the key to some other party.
                                  // The key is encoded according to a standard format
                                  // (such as X.509 SubjectPublicKeyInfo or PKCS#8), and is
                                  // returned using the getEncoded method as defined on the
                                  // java.security.Key interface.
    string keyIdentifier;         // This is an opaque value we're given by the carrier
                                  // and is returned to the carrier. This is used by the server to
                                  // help it locate the private key to decrypt the permanent
                                  // identity.
    int64_t expirationTime;       // date-time in UTC when the key will expire.
};