Merge pull request #1187 from Toporin/patch-satochip-error-0x9C01

satochip: flush card cache where cache memory is full
This commit is contained in:
craigraw 2023-12-01 09:12:58 +02:00 committed by GitHub
commit 20b4d5a1b5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -347,8 +347,14 @@ public class SatochipCommandSet {
public APDUResponse cardBip32GetExtendedKey(byte[] bytePath) { public APDUResponse cardBip32GetExtendedKey(byte[] bytePath) {
byte p1 = (byte) (bytePath.length / 4); byte p1 = (byte) (bytePath.length / 4);
APDUCommand plainApdu = new APDUCommand(0xB0, INS_BIP32_GET_EXTENDED_KEY, p1, 0x40, bytePath); APDUCommand capdu = new APDUCommand(0xB0, INS_BIP32_GET_EXTENDED_KEY, p1, 0x40, bytePath);
return this.cardTransmit(plainApdu); APDUResponse rapdu = this.cardTransmit(capdu);
if(rapdu.getSw() == 0x9C01) {
// error 0X9C01: no memory available for key derivation => flush memory cache in card
capdu = new APDUCommand(0xB0, INS_BIP32_GET_EXTENDED_KEY, p1, 0x80, bytePath);
rapdu = this.cardTransmit(capdu);
}
return rapdu;
} }
/* /*