适配card short类型,取消int long
This commit is contained in:
@@ -1,15 +1,34 @@
|
||||
package com.zuc.zuc256;
|
||||
|
||||
import javacard.framework.JCSystem;
|
||||
|
||||
/**
|
||||
* MAC上下文类
|
||||
* MAC上下文类(Java Card兼容版本)
|
||||
*/
|
||||
public final class Zuc256MacCtx {
|
||||
int[] LFSR = new int[16];
|
||||
int R1;
|
||||
int R2;
|
||||
byte[] buf = new byte[4];
|
||||
int buflen;
|
||||
int[] T = new int[4];
|
||||
int[] K0 = new int[4];
|
||||
int macbits;
|
||||
// 所有32位int类型改为16位short类型,适应Java Card 16位处理能力
|
||||
short[] LFSR;
|
||||
short R1;
|
||||
short R2;
|
||||
byte[] buf;
|
||||
short buflen; // 长度变量使用short类型
|
||||
short[] T;
|
||||
short[] K0;
|
||||
short macbits; // MAC位数使用short类型
|
||||
|
||||
// 构造函数初始化瞬态数组,符合Java Card内存管理规范
|
||||
public Zuc256MacCtx() {
|
||||
// 使用瞬态内存存储敏感数据,提高安全性
|
||||
// CLEAR_ON_DESELECT:卡片复位或选择其他应用时清除数据
|
||||
LFSR = JCSystem.makeTransientShortArray((short)16, JCSystem.CLEAR_ON_DESELECT);
|
||||
buf = JCSystem.makeTransientByteArray((short)4, JCSystem.CLEAR_ON_DESELECT);
|
||||
T = JCSystem.makeTransientShortArray((short)4, JCSystem.CLEAR_ON_DESELECT);
|
||||
K0 = JCSystem.makeTransientShortArray((short)4, JCSystem.CLEAR_ON_DESELECT);
|
||||
|
||||
// 初始化变量
|
||||
R1 = 0;
|
||||
R2 = 0;
|
||||
buflen = 0;
|
||||
macbits = 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user