Cipher

本文介绍了Cipher的七大核心属性,包括加密、解密、包装和解包装模式,以及公钥、私钥和密钥类型。讲解了如何使用这些模式进行加密操作,并提到了TEEC_Operation的初始化及其参数设置。此外,还讨论了数组复制函数arraycopy的作用以及数值转换方法Integer.toHexString。文章最后提及了JNI中获取对象类的方法jclassGetObjectClass和设置数组区域的函数SetArrayRegion。

Cipher的七个主要公有属性

  • 1、ENCRYPT_MODE,整型值1,加密模式,用于Cipher的初始化。
  • 2、DECRYPT_MODE,整型值2,解密模式,用于Cipher的初始化。
  • 3、WRAP_MODE,整型值3,包装密钥模式,用于Cipher的初始化。
  • 4、UNWRAP_MODE,整型值4,解包装密钥模式,用于Cipher的初始化。
  • 5、PUBLIC_KEY,整型值1,解包装密钥模式下指定密钥类型为公钥。
  • 6、PRIVATE_KEY,整型值2,解包装密钥模式下指定密钥类型为私钥。
  • 7、SECRET_KEY,整型值3,解包装密钥模式下指定密钥类型为密钥,主要用于不是非对称加密的密钥(只有一个密钥,不包含私钥和公钥)

初始化TEEC_Operation类型的变量,并根据实际需要借助TEEC_PARAM_TYPES宏来设定TEEC_Operation类型变量中paramTypes成员的值,该值规定传递到OP-TEE中的最多4个变量缓存或者是数据的作用(作为输入还是输出)。并且还要根据paramTypes的值设定对应的params[x]成员的值或者是指向的地址以及缓存的长度

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
作用:将指定源数组中的数组从指定位置复制到目标数组的指定位置。
参数:

src - 源数组。

srcPos - 源数组中的起始位置。

dest - 目标数组。

destPos - 目的地数据中的起始位置。

length - 要复制的源数组元素的数量

Integer.toHexString  十进制转成十六进制

String toHexString(int i) //以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。

也就是将传入的数值十进制转成十六进制

System.out.println("十进制转十六进制:"+Integer.toHexString(120)); 
十进制转十六进制:78

一个十六进制数(Hex),正好为4个二进制位。一个字节(byte)为8个二进制位。因此,一个字节可表示为两个十六进制数字。

    因此,我们可以将一个byte用两个Hex表示,同理,我们也可以将两个Hex转换为一个byte

  • jclass GetObjectClass(jobject obj) 根据一个对象,获取该对象的类

这个方法比较好理解,根据上面我们讲的根据jobject的类型,我们在JNI中写方法的时候如果是非静态的都会传一个jobject的对象。我们可以根据传入的来获取当前对象的类

void SetArrayRegion(JNIEnv *env, ArrayType array,jsize start, jsize len, const Type *buf):上面方法的对应方法,将缓冲区的部分数据设置回Java原始数组中

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值