Package cn.gmkit.sm9
Class SM9SignMasterKey
java.lang.Object
cn.gmkit.sm9.SM9SignMasterKey
- All Implemented Interfaces:
AutoCloseable
SM9 签名主密钥(由 KGC 持有)。
通过 generate() 生成包含私有部分的完整主密钥,用于派生用户签名私钥;
通过 importPublicMasterKeyPem(String) 仅导入公开主密钥,用于验签。
使用完毕后应调用 close() 释放 native 资源(推荐使用 try-with-resources)。
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()释放底层 native 资源。重复调用安全。voidexportEncryptedMasterKeyInfoPem(String password, String file) 将主密钥(含私有部分)以口令加密导出为 PEM 文件。void将公开主密钥导出为 PEM 文件(用于分发给验签方)。extractKey(String id) 为指定用户标识派生签名私钥。static SM9SignMasterKeygenerate()生成新的 SM9 签名主密钥(含私有部分)。static SM9SignMasterKeyimportEncryptedMasterKeyInfoPem(String password, String file) 从加密 PEM 文件导入主密钥(含私有部分)。static SM9SignMasterKey从 PEM 文件导入公开主密钥(仅含公开部分,用于验签)。
-
Method Details
-
generate
生成新的 SM9 签名主密钥(含私有部分)。- Returns:
- 签名主密钥
- Throws:
SM9Exception- native 不可用或生成操作失败时抛出
-
extractKey
为指定用户标识派生签名私钥。- Parameters:
id- 用户标识(ID)- Returns:
- 用户签名私钥
- Throws:
SM9Exception- ID 为空、当前对象已关闭或 native 派生失败时抛出
-
exportEncryptedMasterKeyInfoPem
将主密钥(含私有部分)以口令加密导出为 PEM 文件。- Parameters:
password- 加密口令file- 输出文件路径- Throws:
SM9Exception- 口令/路径为空、对象已关闭或 native 写入失败时抛出
-
importEncryptedMasterKeyInfoPem
从加密 PEM 文件导入主密钥(含私有部分)。- Parameters:
password- 解密口令file- PEM 文件路径- Returns:
- 签名主密钥
- Throws:
SM9Exception- native 不可用、参数无效、口令错误或 PEM 读取失败时抛出
-
exportPublicMasterKeyPem
将公开主密钥导出为 PEM 文件(用于分发给验签方)。- Parameters:
file- 输出文件路径- Throws:
SM9Exception- 路径为空、对象已关闭或 native 写入失败时抛出
-
importPublicMasterKeyPem
从 PEM 文件导入公开主密钥(仅含公开部分,用于验签)。- Parameters:
file- PEM 文件路径- Returns:
- 仅含公开部分的签名主密钥
- Throws:
SM9Exception- native 不可用、路径无效或 PEM 读取失败时抛出
-
close
public void close()释放底层 native 资源。重复调用安全。- Specified by:
closein interfaceAutoCloseable
-