Skip to content
This repository was archived by the owner on May 24, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -1144,18 +1144,12 @@ public void onSave(Element element, byte interfaceType, Object object) {
return;
}
switch (interfaceType) {
case KMDataStoreConstants.INTERFACE_TYPE_COMPUTED_HMAC_KEY:
KMHmacKey.onSave(element, (KMHmacKey) object);
break;
case KMDataStoreConstants.INTERFACE_TYPE_MASTER_KEY:
KMAESKey.onSave(element, (KMAESKey) object);
break;
case KMDataStoreConstants.INTERFACE_TYPE_PRE_SHARED_KEY:
KMHmacKey.onSave(element, (KMHmacKey) object);
break;
case KMDataStoreConstants.INTERFACE_TYPE_ATTESTATION_KEY:
KMECPrivateKey.onSave(element, (KMECPrivateKey) object);
break;
case KMDataStoreConstants.INTERFACE_TYPE_DEVICE_UNIQUE_KEY_PAIR:
KMECDeviceUniqueKey.onSave(element, (KMECDeviceUniqueKey) object);
break;
Expand All@@ -1180,8 +1174,6 @@ public Object onRestore(Element element) {
return KMAESKey.onRestore((AESKey) element.readObject());
case KMDataStoreConstants.INTERFACE_TYPE_PRE_SHARED_KEY:
return KMHmacKey.onRestore((HMACKey) element.readObject());
case KMDataStoreConstants.INTERFACE_TYPE_ATTESTATION_KEY:
return KMECPrivateKey.onRestore((KeyPair) element.readObject());
case KMDataStoreConstants.INTERFACE_TYPE_DEVICE_UNIQUE_KEY_PAIR:
return KMECDeviceUniqueKey.onRestore((KeyPair) element.readObject());
case KMDataStoreConstants.INTERFACE_TYPE_RKP_MAC_KEY:
Expand All@@ -1196,18 +1188,12 @@ public Object onRestore(Element element) {
public short getBackupPrimitiveByteCount(byte interfaceType) {
short primitiveCount = 1; // interface type
switch (interfaceType) {
case KMDataStoreConstants.INTERFACE_TYPE_COMPUTED_HMAC_KEY:
primitiveCount += KMHmacKey.getBackupPrimitiveByteCount();
break;
case KMDataStoreConstants.INTERFACE_TYPE_MASTER_KEY:
primitiveCount += KMAESKey.getBackupPrimitiveByteCount();
break;
case KMDataStoreConstants.INTERFACE_TYPE_PRE_SHARED_KEY:
primitiveCount += KMHmacKey.getBackupPrimitiveByteCount();
break;
case KMDataStoreConstants.INTERFACE_TYPE_ATTESTATION_KEY:
primitiveCount += KMECPrivateKey.getBackupPrimitiveByteCount();
break;
case KMDataStoreConstants.INTERFACE_TYPE_DEVICE_UNIQUE_KEY_PAIR:
primitiveCount += KMECDeviceUniqueKey.getBackupPrimitiveByteCount();
break;
Expand All@@ -1223,14 +1209,10 @@ public short getBackupPrimitiveByteCount(byte interfaceType) {
@Override
public short getBackupObjectCount(byte interfaceType) {
switch (interfaceType) {
case KMDataStoreConstants.INTERFACE_TYPE_COMPUTED_HMAC_KEY:
return KMHmacKey.getBackupObjectCount();
case KMDataStoreConstants.INTERFACE_TYPE_MASTER_KEY:
return KMAESKey.getBackupObjectCount();
case KMDataStoreConstants.INTERFACE_TYPE_PRE_SHARED_KEY:
return KMHmacKey.getBackupObjectCount();
case KMDataStoreConstants.INTERFACE_TYPE_ATTESTATION_KEY:
return KMECPrivateKey.getBackupObjectCount();
case KMDataStoreConstants.INTERFACE_TYPE_DEVICE_UNIQUE_KEY_PAIR:
return KMECDeviceUniqueKey.getBackupObjectCount();
case KMDataStoreConstants.INTERFACE_TYPE_RKP_MAC_KEY:
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -910,7 +910,7 @@ private void handlePreviousVersionUpgrade(Element element) {
element.readObject(); // pop verifiedHash
element.readObject(); //pop bootKey
element.readObject(); // pop bootPatchLevel
additionalCertChain = (byte[]) element.readObject(); //
additionalCertChain = (byte[]) element.readObject();
bcc = (byte[]) element.readObject();

// Read Key Objects
Expand DownExpand Up@@ -953,12 +953,13 @@ void handleProvisionStatusUpgrade(byte[] dataTable, short dataTableIndex){
short dInex = repository.allocReclaimableMemory((short)2);
byte data[] = repository.getHeap();
getProvisionStatus(dataTable, data, dInex);
JCSystem.beginTransaction();
provisionStatus = (short)( data[dInex] & 0x00ff);
short pStatus = (short)( data[dInex] & 0x00ff);
if( KMKeymasterApplet.PROVISION_STATUS_PROVISIONING_LOCKED
== (provisionStatus & KMKeymasterApplet.PROVISION_STATUS_PROVISIONING_LOCKED)) {
provisionStatus |= KMKeymasterApplet.PROVISION_STATUS_SE_LOCKED;
== (pStatus & KMKeymasterApplet.PROVISION_STATUS_PROVISIONING_LOCKED)) {
pStatus |= KMKeymasterApplet.PROVISION_STATUS_SE_LOCKED;
}
JCSystem.beginTransaction();
provisionStatus = pStatus;
JCSystem.commitTransaction();
repository.reclaimMemory((short)2);
}
Expand All@@ -980,12 +981,10 @@ public short getBackupObjectCount() {
// BCC - 1
// oemRootPublicKey - 1
return (short) (11 +
seProvider.getBackupObjectCount(KMDataStoreConstants.INTERFACE_TYPE_COMPUTED_HMAC_KEY) +
seProvider.getBackupObjectCount(KMDataStoreConstants.INTERFACE_TYPE_MASTER_KEY) +
seProvider.getBackupObjectCount(KMDataStoreConstants.INTERFACE_TYPE_PRE_SHARED_KEY) +
seProvider.getBackupObjectCount(KMDataStoreConstants.INTERFACE_TYPE_DEVICE_UNIQUE_KEY_PAIR) +
seProvider.getBackupObjectCount(
KMDataStoreConstants.INTERFACE_TYPE_RKP_MAC_KEY));
seProvider.getBackupObjectCount(KMDataStoreConstants.INTERFACE_TYPE_RKP_MAC_KEY));
}

}