From 2af431f900ea1b63da0e0d8d92ad8496932ddd89 Mon Sep 17 00:00:00 2001 From: bvenkateswarlu Date: Thu, 25 Mar 2021 20:10:27 +0000 Subject: [PATCH 1/2] Applet should be able to upgrade even if provision is not done. --- .../com/android/javacard/keymaster/KMAndroidSEProvider.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Applet/AndroidSEProvider/src/com/android/javacard/keymaster/KMAndroidSEProvider.java b/Applet/AndroidSEProvider/src/com/android/javacard/keymaster/KMAndroidSEProvider.java index 369276c7..b1cfae86 100644 --- a/Applet/AndroidSEProvider/src/com/android/javacard/keymaster/KMAndroidSEProvider.java +++ b/Applet/AndroidSEProvider/src/com/android/javacard/keymaster/KMAndroidSEProvider.java @@ -218,6 +218,12 @@ public KMAndroidSEProvider() { //Allocate buffer for certificate chain. if (!isUpgrading()) { certificateChain = new byte[CERT_CHAIN_MAX_SIZE]; + // Initialize attestationKey and preShared key with zeros. + Util.arrayFillNonAtomic(tmpArray, (short) 0, TMP_ARRAY_SIZE, (byte) 0); + // Assuming secret key length of P-256 curve is 32 bytes. + createAttestationKey(tmpArray, (short)0, (short) 32); + // Pre-shared secret key length is 32 bytes. + createPresharedKey(tmpArray, (short)0, (short) KMRepository.SHARED_SECRET_KEY_SIZE); } androidSEProvider = this; } From 723576bfe2d46346ddd9366c78128662e265d913 Mon Sep 17 00:00:00 2001 From: BKSSMVenkateswarlu <40534495+BKSSMVenkateswarlu@users.noreply.github.com> Date: Sun, 28 Mar 2021 16:45:53 +0100 Subject: [PATCH 2/2] Updated comment --- .../src/com/android/javacard/keymaster/KMAndroidSEProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Applet/AndroidSEProvider/src/com/android/javacard/keymaster/KMAndroidSEProvider.java b/Applet/AndroidSEProvider/src/com/android/javacard/keymaster/KMAndroidSEProvider.java index b1cfae86..2cd42182 100644 --- a/Applet/AndroidSEProvider/src/com/android/javacard/keymaster/KMAndroidSEProvider.java +++ b/Applet/AndroidSEProvider/src/com/android/javacard/keymaster/KMAndroidSEProvider.java @@ -220,7 +220,7 @@ public KMAndroidSEProvider() { certificateChain = new byte[CERT_CHAIN_MAX_SIZE]; // Initialize attestationKey and preShared key with zeros. Util.arrayFillNonAtomic(tmpArray, (short) 0, TMP_ARRAY_SIZE, (byte) 0); - // Assuming secret key length of P-256 curve is 32 bytes. + // Create attestation key of P-256 curve. createAttestationKey(tmpArray, (short)0, (short) 32); // Pre-shared secret key length is 32 bytes. createPresharedKey(tmpArray, (short)0, (short) KMRepository.SHARED_SECRET_KEY_SIZE);