Radio Interface changes to allow the modem to query the framework

for the key.

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

Merged-In: Iae18382f1f244be6a756a47753f0345e1925ca4a
Change-Id: Iae18382f1f244be6a756a47753f0345e1925ca4a
This commit is contained in:
pkanwar 2017-05-21 10:22:02 -07:00 committed by Steven Moreland
parent bf7dcd2adb
commit fc5f3558fe
3 changed files with 61 additions and 13 deletions

View file

@ -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 (KeepaliveRequest)
#
@ -420,6 +439,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 (KeepaliveRequest)
#

View file

@ -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.

View file

@ -196,3 +196,23 @@ struct KeepaliveStatus {
int32_t sessionHandle; // the sessionHandle provided by the api
KeepaliveStatusCode code; // status for the given keepalive
};
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.
};