书接上一篇:
指定二进制数据转换对称密钥
随机生成非对称密钥对
⚫ 以RSA为例,随机生成非对称密钥对(KeyPair),并获得二进制数据。
⚫ 非对称密钥对可用于后续加解密等操作,二进制数据可用于存储或运输。
随机生成非对称密钥对
⚫ 调用cryptoFramework.createAsyKeyGenerator,指定字符串参数
‘RSA1024|PRIMES_2’,创建RSA密钥类型为RSA1024、素数个数为2的非对
称密钥生成器(AsyKeyGenerator)。
⚫ 调用AsyKeyGenerator.generateKeyPair,随机生成非对称密钥对象
(KeyPair)。KeyPair对象中包括公钥PubKey、私钥PriKey。
⚫ 调用PubKey.getEncoded和PriKey.getEncoded,分别获取密钥对象的二进
制数据。
随机生成非对称密钥对
指定二进制数据转换非对称密钥对
以RSA为例,根据指定的对称密钥二进制数据,生成非对称密钥对
(KeyPair)。即将外部或存储的二进制数据转换为算法库的密钥对象,该对
象可用于后续的加解密等操作。
指定二进制数据转换非对称密钥对
⚫ 获取RSA公钥或私钥二进制数据,封装成DataBlob对象。公钥和私钥可只传入其中一个,此
处示例以传入公钥为例。
⚫ 调用cryptoFramework.createAsyKeyGenerator,指定字符串参数’RSA1024’,创建RSA密
钥类型为RSA1024、素数个数为2的非对称密钥生成器(AsyKeyGenerator)。生成RSA非对
称密钥时,默认素数为2,此处省略了参数PRIMES_2。
⚫ 调用AsyKeyGenerator.convertKey,传入二进制密钥数据,生成非对称密钥对象
(KeyPair)。
指定二进制数据转换非对称密钥对
import cryptoFramework from '@ohos.security.cryptoFramework';
function convertAsyKey() {
let rsaGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024');
let pkVal = new Uint8Array([48, 129, 159, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 129, 141, 0,
48, 129, 137, 2, 129, 129, 0, 174, 203, 113, 83, 113, 3, 143, 213, 194, 79, 91, 9, 51, 142, 87, 45, 97, 65, 136,
24, 166, 35, 5, 179, 42, 47, 212, 79, 111, 74, 134, 120, 73, 67, 21, 19, 235, 80, 46, 152, 209, 133, 232, 87,
192, 140, 18, 206, 27, 106, 106, 169, 106, 46, 135, 111, 118, 32, 129, 27, 89, 255, 183, 116, 247, 38, 12, 7,
238, 77, 151, 167, 6, 102, 153, 126, 66, 28, 253, 253, 216, 64, 20, 138, 117, 72, 15, 216, 178, 37, 208, 179,
63, 204, 39, 94, 244, 170, 48, 190, 21, 11, 73, 169, 156, 104, 193, 3, 17, 100, 28, 60, 50, 92, 235, 218, 57, 73,
119, 19, 101, 164, 192, 161, 197, 106, 105, 73, 2, 3, 1, 0, 1]);
let pkBlob: cryptoFramework.DataBlob = { data: pkVal };
rsaGenerator.convertKey(pkBlob, null, (err, keyPair) => {
if (err) {
console.error(`convertKey failed, ${err.code}, ${err.message}`);
return;
}
console.info('convertKey success');
});
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.