密钥存储flash空间80->120,写调用说明
This commit is contained in:
@@ -31,10 +31,10 @@ public final class Method {
|
||||
// (byte)0x67,(byte)0xC3,(byte)0x1C,(byte)0xB3,(byte)0xD3,(byte)0x5D,(byte)0xB7
|
||||
// };
|
||||
private static final byte[] IV25 = {
|
||||
(byte)0x30,(byte)0x31,(byte)0x32,(byte)0x33,(byte)0x34,(byte)0x35,(byte)0x36,(byte)0x37,
|
||||
(byte)0x38,(byte)0x39,(byte)0x61,(byte)0x62,(byte)0x63,(byte)0x64,(byte)0x65,(byte)0x66,
|
||||
(byte)0x67,(byte)0x30,(byte)0x31,(byte)0x32,(byte)0x33,(byte)0x34,(byte)0x35,(byte)0x36,
|
||||
(byte)0x37
|
||||
(byte)0x30,(byte)0x31,(byte)0x32,(byte)0x33,(byte)0x34,(byte)0x35,(byte)0x36,(byte)0x37,
|
||||
(byte)0x38,(byte)0x39,(byte)0x61,(byte)0x62,(byte)0x63,(byte)0x64,(byte)0x65,(byte)0x66,
|
||||
(byte)0x67,(byte)0x30,(byte)0x31,(byte)0x32,(byte)0x33,(byte)0x34,(byte)0x35,(byte)0x36,
|
||||
(byte)0x37
|
||||
};
|
||||
|
||||
// Input: 明文(38字节)
|
||||
@@ -159,12 +159,14 @@ public final class Method {
|
||||
|
||||
|
||||
public Method() {
|
||||
// key list tmp buffer, lenth must equal with key_store(flash)!
|
||||
update_key_buf = JCSystem.makeTransientByteArray((short)120, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
// 算法内部使用23Byte IV
|
||||
extracted_iv_23 = JCSystem.makeTransientByteArray((short)23, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
|
||||
ctx_buf = JCSystem.makeTransientByteArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
LFSR_hi = JCSystem.makeTransientShortArray((short)16, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
LFSR_lo = JCSystem.makeTransientShortArray((short)16, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
LFSR_hi = JCSystem.makeTransientShortArray((short)16, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
LFSR_lo = JCSystem.makeTransientShortArray((short)16, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
// todo buf1 if not use, delete please
|
||||
buf1 = JCSystem.makeTransientByteArray(MAX_DATA_BLOCK_SIZE, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
// todo buf2 if not use, delete please
|
||||
@@ -174,8 +176,6 @@ public final class Method {
|
||||
location_data = JCSystem.makeTransientByteArray((short)5, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
location_res_data = JCSystem.makeTransientByteArray((short)5, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
|
||||
update_key_buf = JCSystem.makeTransientByteArray((short)80, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
|
||||
rot31_bits = JCSystem.makeTransientShortArray((short)31, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
rot31_resBits = JCSystem.makeTransientShortArray((short)31, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
|
||||
@@ -1057,8 +1057,8 @@ public final class Method {
|
||||
|
||||
// 生成指定长度的密钥流
|
||||
public void zuc256GenerateKeystream(short nwords,
|
||||
short[] keystream_hi,
|
||||
short[] keystream_lo) {
|
||||
short[] keystream_hi,
|
||||
short[] keystream_lo) {
|
||||
for (short i = 0; i < nwords; i++) {
|
||||
// 生成一个关键字 -> tmp[0]=lo, tmp[1]=hi
|
||||
zuc256GenerateKeyword(zuc256GenerateKeystream_tmp);
|
||||
|
||||
Reference in New Issue
Block a user