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

Commit 465c960b authored by pkanwar's avatar pkanwar Committed by android-build-merger
Browse files

Radio Interface changes to allow the modem to query the framework for the key. am: 1076d5ba

am: fd603f92

Change-Id: Ib6bdb9102b9271329c29f6f5caf48a7d1a51b584
parents 2d2138d3 fd603f92
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.
};