1# 签名/验签介绍及算法规格 2 3为实现数据完整性保护和防抵赖,可使用生成/导入的密钥,对数据进行签名验签操作。 4 5## 支持的算法 6 7以下为密钥签名/验签支持的规格说明。 8<!--Del--> 9面向OpenHarmony的厂商适配密钥管理服务规格分为必选规格和可选规格。必选规格为所有厂商均支持的算法规格。而对于可选规格,厂商将基于实际情况决定是否实现,如需使用,请查阅具体厂商提供的说明,确保规格支持再使用。 10 11**建议开发者使用必选规格开发应用,可保证全平台兼容。** 12<!--DelEnd--> 13**标准设备规格** 14| 算法/摘要算法/填充模式 | 备注 | API级别 | <!--DelCol4-->是否必选规格 | 15| -------- | -------- | -------- | -------- | 16| <!--DelRow-->RSA/MD5/PKCS1_V1_5<br/>RSA/SHA1/PKCS1_V1_5<br/>RSA/SHA224/PKCS1_V1_5<br/>RSA/SHA224/PSS | 对于PSS模式,salt长度支持设置为摘要长度和最大长度(最大长度=密钥长度-摘要长度-2),对应枚举值详见[HuksRsaPssSaltLenType](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksrsapsssaltlentype10)。| 8+ | 否 | 17| RSA/SHA256/PKCS1_V1_5<br/>RSA/SHA384/PKCS1_V1_5<br/>RSA/SHA512/PKCS1_V1_5<br/>RSA/SHA256/PSS<br/>RSA/SHA384/PSS<br/>RSA/SHA512/PSS | 对于PSS模式,salt长度支持设置为摘要长度和最大长度(最大长度=密钥长度-摘要长度-2),对应枚举值详见[HuksRsaPssSaltLenType](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksrsapsssaltlentype10)。 | 8+ | 是 | 18| RSA/NoDigest/PKCS1_V1_5 | NoDigest需要指定TAG HuksKeyDigest.HUKS_DIGEST_NONE。由业务对明文做哈希,再将哈希后的数据传入,哈希后的数据长度必须满足RSA签名验签支持的摘要算法规格。 | 9+ | 是 | 19| <!--DelRow-->DSA/SHA1<br/>DSA/SHA224<br/>DSA/SHA256<br/>DSA/SHA384<br/>DSA/SHA512 | - | 8+ | 否 | 20| <!--DelRow-->DSA/NoDigest | NoDigest需要指定TAG HuksKeyDigest.HUKS_DIGEST_NONE。 | 9+ | 否 | 21| <!--DelRow-->ECC/SHA1<br/>ECC/SHA224 | - | 8+ | 否 | 22| ECC/SHA256<br/>ECC/SHA384<br/>ECC/SHA512 | ECC算法支持的椭圆曲线函数包括:P-256、P-384、P-521。 | 8+ | 是 | 23| <!--DelRow-->ECC/NoDigest | NoDigest需要指定TAG HuksKeyDigest.HUKS_DIGEST_NONE。 | 9+ | 否 | 24| ED25519/NoDigest | NoDigest需要指定TAG HuksKeyDigest.HUKS_DIGEST_NONE。 | 8+ | 是 | 25| SM2/SM3 | - | 9+ | 是 | 26 27**轻设备规格** 28 29<!--Del--> 30轻量级设备所列规格,OEM厂商将基于实际情况决定是否实现,如需使用,请查阅具体厂商提供的说明,确保规格支持再使用。 31<!--DelEnd--> 32 33| 算法/摘要算法/填充模式 | 备注 | API级别 | 34| -------- | -------- | -------- | 35| RSA/SHA256/PKCS1_V1_5 | - | 12+ | 36| RSA/SHA256/PSS | - | 12+ | 37| RSA/SHA1/ISO_IEC_9796_2 | 数据最小长度=密钥长度-21字节 | 12+ | 38 39<!--RP1--><!--RP1End-->