From b2def06770ad5d7a1b52270c8645765eabafde7f Mon Sep 17 00:00:00 2001 From: avinashhedage Date: Fri, 5 Aug 2022 10:10:53 +0000 Subject: [PATCH] In import key, handled RSA private key of size 257 bytes --- Applet/src/com/android/javacard/keymaster/KMAsn1Parser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Applet/src/com/android/javacard/keymaster/KMAsn1Parser.java b/Applet/src/com/android/javacard/keymaster/KMAsn1Parser.java index 9d801044..be6590e3 100644 --- a/Applet/src/com/android/javacard/keymaster/KMAsn1Parser.java +++ b/Applet/src/com/android/javacard/keymaster/KMAsn1Parser.java @@ -168,20 +168,21 @@ public short decodeRsaPrivateKey(short version){ len = header(ASN1_INTEGER); short modulus = KMByteBlob.instance(len); getBytes(modulus); - updateModulus(modulus); + updateRsaKeyBuffer(modulus); len = header(ASN1_INTEGER); short pubKey = KMByteBlob.instance(len); getBytes(pubKey); len = header(ASN1_INTEGER); short privKey = KMByteBlob.instance(len); getBytes(privKey); + updateRsaKeyBuffer(privKey); KMArray.cast(resp).add((short)0, modulus); KMArray.cast(resp).add((short)1, pubKey); KMArray.cast(resp).add((short)2, privKey); return resp; } - private void updateModulus(short blob) { + private void updateRsaKeyBuffer(short blob) { byte[] buffer = KMByteBlob.cast(blob).getBuffer(); short startOff = KMByteBlob.cast(blob).getStartOff(); short len = KMByteBlob.cast(blob).length();