Single retrieval of AES_CBC cipher instance and RandomData
This commit is contained in:
parent
04404d6a4e
commit
fa15c73220
@ -31,8 +31,12 @@ public final class SmartPGPApplet extends Applet {
|
|||||||
|
|
||||||
private final Transients transients;
|
private final Transients transients;
|
||||||
|
|
||||||
|
private final Cipher cipher_aes_cbc_nopad;
|
||||||
|
private final RandomData random_data;
|
||||||
|
|
||||||
public SmartPGPApplet() {
|
public SmartPGPApplet() {
|
||||||
|
cipher_aes_cbc_nopad = Cipher.getInstance(Cipher.ALG_AES_BLOCK_128_CBC_NOPAD, false);
|
||||||
|
random_data = RandomData.getInstance(RandomData.ALG_SECURE_RANDOM);
|
||||||
data = new Persistent();
|
data = new Persistent();
|
||||||
transients = new Transients();
|
transients = new Transients();
|
||||||
}
|
}
|
||||||
@ -1235,11 +1239,10 @@ public final class SmartPGPApplet extends Applet {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Cipher cipher = Cipher.getInstance(Cipher.ALG_AES_BLOCK_128_CBC_NOPAD, false);
|
cipher_aes_cbc_nopad.init(data.aes_key, Cipher.MODE_DECRYPT);
|
||||||
cipher.init(data.aes_key, Cipher.MODE_DECRYPT);
|
|
||||||
|
|
||||||
final short res = cipher.doFinal(transients.buffer, (short)1, (short)(lc - 1),
|
final short res = cipher_aes_cbc_nopad.doFinal(transients.buffer, (short)1, (short)(lc - 1),
|
||||||
transients.buffer, lc);
|
transients.buffer, lc);
|
||||||
|
|
||||||
Util.arrayCopyNonAtomic(transients.buffer, lc,
|
Util.arrayCopyNonAtomic(transients.buffer, lc,
|
||||||
transients.buffer, (short)0, res);
|
transients.buffer, (short)0, res);
|
||||||
@ -1267,11 +1270,10 @@ public final class SmartPGPApplet extends Applet {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Cipher cipher = Cipher.getInstance(Cipher.ALG_AES_BLOCK_128_CBC_NOPAD, false);
|
cipher_aes_cbc_nopad.init(data.aes_key, Cipher.MODE_ENCRYPT);
|
||||||
cipher.init(data.aes_key, Cipher.MODE_ENCRYPT);
|
|
||||||
|
|
||||||
final short res = cipher.doFinal(transients.buffer, (short)0, lc,
|
final short res = cipher_aes_cbc_nopad.doFinal(transients.buffer, (short)0, lc,
|
||||||
transients.buffer, (short)(lc + 1));
|
transients.buffer, (short)(lc + 1));
|
||||||
|
|
||||||
transients.buffer[lc] = (byte)0x02;
|
transients.buffer[lc] = (byte)0x02;
|
||||||
Util.arrayCopyNonAtomic(transients.buffer, lc,
|
Util.arrayCopyNonAtomic(transients.buffer, lc,
|
||||||
@ -1319,7 +1321,7 @@ public final class SmartPGPApplet extends Applet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(le != 0) {
|
if(le != 0) {
|
||||||
RandomData.getInstance(RandomData.ALG_SECURE_RANDOM).generateData(transients.buffer, (short)0, le);
|
random_data.generateData(transients.buffer, (short)0, le);
|
||||||
}
|
}
|
||||||
|
|
||||||
return le;
|
return le;
|
||||||
|
Loading…
Reference in New Issue
Block a user