RSA PSS的算法参数如下:function getBiometricRSAKeyProperties(type: HuksKeyPurpose) { let properties: Array<huks.HuksParam> = new Array(); // 算法秘钥 RSA properties[0] = { tag: huks.HuksTag.HUKS_TAG_ALGORITHM, value: huks.HuksKeyAlg.HUKS_ALG_RSA }; // 秘钥长度 3072 properties[1] = { tag: huks.HuksTag.HUKS_TAG_KEY_SIZE, value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_3072 }; if (type == (HuksKeyPurpose.HuksKeyPurposeSign | HuksKeyPurpose.HuksKeyPurposeVerify)) { // 秘钥目的 SIGN | VERIFY properties[2] = { tag: huks.HuksTag.HUKS_TAG_PURPOSE, value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN | huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY }; } else if (type == HuksKeyPurpose.HuksKeyPurposeSign) { // 秘钥目的 SIGN properties[2] = { tag: huks.HuksTag.HUKS_TAG_PURPOSE, value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN }; } else { // 秘钥目的 VERIFY properties[2] = { tag: huks.HuksTag.HUKS_TAG_PURPOSE, value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY }; } // 补齐算法 PSS properties[3] = { tag: huks.HuksTag.HUKS_TAG_PADDING, value: huks.HuksKeyPadding.HUKS_PADDING_PSS }; // 生成方式 properties[4] = { tag: huks.HuksTag.HUKS_TAG_KEY_GENERATE_TYPE, value: huks.HuksKeyGenerateType.HUKS_KEY_GENERATE_TYPE_DEFAULT }; // 摘要算法 SHA256 properties[5] = { tag: huks.HuksTag.HUKS_TAG_DIGEST, value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256 }; return properties; }示例properties:// 获取RSA公钥 export async function getRSAPublicKey(keyAlias: string): Promise<Uint8Array | undefined> { await generateKeyPair(keyAlias); let keyProperties = getBiometricRSAKeyProperties(HuksKeyPurpose.HuksKeyPurposeSign | HuksKeyPurpose.HuksKeyPurposeVerify); let options: huks.HuksOptions = { properties: keyProperties, }; try { let huksRet = await huks.exportKeyItem(keyAlias, options); return Promise.resolve(huksRet.outData); } catch (error) { Logger.error(JsonBigInt.stringify(error, undefined, undefined)); return Promise.reject(error); } } // 创建RSA秘钥 export async function generateKeyPair(keyAlias: string): Promise { let keyProperties = getBiometricRSAKeyProperties(HuksKeyPurpose.HuksKeyPurposeSign | HuksKeyPurpose.HuksKeyPurposeVerify); let options: huks.HuksOptions = { properties: keyProperties, }; try { await huks.generateKeyItem(keyAlias, options); Logger.info('generateRSAKey success'); Promise.resolve(); } catch (error) { Promise.reject(); } }
RSA PSS的算法参数如下:
示例properties: