java安全接口调用_步骤3:调用Java接口

本文档主要介绍了通过调用Java接口生成工作密钥和进行通用数据加解密的操作方法。

整体流程

初始化SDK。具体内容请参见

配置Java接口。具体内容请参见

初始化SDK

使用以下方法初始化SDK。hsmGeneralFinancehsm=hsmGeneralFinance.getInstance("./cacipher.ini");

调用Java接口生成工作密钥

调用以下Java接口生成工作密钥。hsm.genWorkKey(keyType,algFlag,keyIndex,keyLable);

返回值

返回两个值:

0号索引下:密钥在LMK下加密的密文。

1号索引下:密钥校验值。

抛出异常cn.tass.exceptions.TAException //接口自定义异常。

接口定义public String[] genWorkKey(String keyType,

char keyFlag,

int storeKeyIndex,

String storeKeyLabel)

throws cn.tass.exceptions.TAException

请求参数

参数名称

参数类型

参数描述

keyType

String

密钥类型。支持密钥类型编码和密钥类型名称两种格式。例如:ZEK/DEK可以传"00A"和"ZEK/DEK"两种格式。取值:

000:ZMK/KEK

001:ZPK

002:PVK/TPK/TMK

003:TAK

008:ZAK

009:BDK

00A:ZEK/DEK

00B:TEK

011:KMC

109:MK-AC/MDK

10C:HMAC

209:MK-SMI

309:MK-SMC

402:CVK

409:MK-DAK

509:MK-DN

algFlag

char

在LMK下加密的密钥密文标识。取值:

Z:单倍长DES密钥

X:双倍长3DES密钥

Y:三倍长3DES密钥

U:双倍长的3DES算法密钥

T:三倍长的3DES算法密钥

R:16字节SM4密钥

P:16字节SM1密钥

L:16字节AES密钥

M:AES-192算法密钥

N:AES-256算法密钥

KeyIndex

int

密钥存储索引。取值范围:1~2048。

KeyLabel

String

密钥存储标签。包含0~16个ASII字符。

说明 在云密码机内部存储密钥时标记密钥的标签说明。

请求示例keyType:00A

algFlag:R

keyIndex:1

KeyLabel:test

调用Java接口进行数据加密

调用以下Java接口进行数据加密。hsm.generalDataEnc(algType,keyType,sm4SymmKey,disperFactor,sessionType,sessionFactor,padFlag,inData,IV);

返回值

加密之后的密文数据。

抛出异常cn.tass.exceptions.TAException //接口自定义异常。

接口定义public byte[] generalDataEnc(int algType,

String keyType,

Object key,

String disperFactor,

Int sessionType,

String sessionFactor,

Int padFlag,

byte[] inData,

String IV)

throws cn.tass.exceptions.TAException

请求参数

参数名称

参数类型

参数描述

algType

int

加密算法模式。取值:

0:ECB模式加密

1:CBC模式加密

2:CFB模式加密

3:OFB模式加密

4:CTR模式加密(16字节分组长度)

keyType

String

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值