Class Sm2Signature
java.lang.Object
cloud.opencode.base.crypto.signature.Sm2Signature
- All Implemented Interfaces:
SignatureEngine
SM2 signature implementation (Chinese national cryptographic standard).
SM2 签名实现(中国国家密码标准)。
Requires Bouncy Castle provider for SM2 support. 需要 Bouncy Castle 提供商支持 SM2。
Features | 主要功能:
- SM2 signatures (Chinese national standard) - SM2 签名(中国国密标准)
- Requires Bouncy Castle provider - 需要 Bouncy Castle 提供者
Usage Examples | 使用示例:
Sm2Signature sm2 = Sm2Signature.create();
sm2.setPrivateKey(privateKey);
byte[] sig = sm2.sign(data);
Security | 安全性:
- Thread-safe: No - 线程安全: 否
- Null-safe: Yes - 空值安全: 是
- Since:
- JDK 25, opencode-base-crypto V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic Sm2Signaturecreate()Create SM2 signature instance.byte[]doSign()Complete the multi-part signing operation 完成多部分签名操作Complete the multi-part signing and return Base64 signature 完成多部分签名并返回 Base64 签名booleandoVerify(byte[] signature) Complete the multi-part verification operation 完成多部分验证操作Get the signature algorithm name 获取签名算法名称static booleanCheck if Bouncy Castle provider is available.setKeyPair(KeyPair keyPair) Set both keys from a key pair 从密钥对设置公私钥setPrivateKey(byte[] encodedKey) Set the private key from encoded bytes 从编码字节设置私钥setPrivateKey(PrivateKey privateKey) Set the private key for signing operations 设置用于签名操作的私钥setPrivateKeyPem(String pem) Set the private key from PEM format 从 PEM 格式设置私钥setPublicKey(byte[] encodedKey) Set the public key from encoded bytes 从编码字节设置公钥setPublicKey(PublicKey publicKey) Set the public key for verification operations 设置用于验证操作的公钥setPublicKeyPem(String pem) Set the public key from PEM format 从 PEM 格式设置公钥byte[]sign(byte[] data) Sign data and return signature bytes 签名数据并返回签名字节byte[]sign(InputStream input) Sign data from input stream 从输入流签名数据byte[]Sign UTF-8 encoded string data 签名 UTF-8 编码的字符串数据signBase64(byte[] data) Sign data and return Base64 encoded signature 签名数据并返回 Base64 编码的签名signBase64(String data) Sign UTF-8 encoded string and return Base64 signature 签名 UTF-8 编码字符串并返回 Base64 签名byte[]Sign file content 签名文件内容signHex(byte[] data) Sign data and return hexadecimal encoded signature 签名数据并返回十六进制编码的签名update(byte[] data) Update the signature with additional data (for multi-part signing) 使用额外数据更新签名(用于多部分签名)Update the signature with UTF-8 encoded string 使用 UTF-8 编码字符串更新签名booleanverify(byte[] data, byte[] signature) Verify signature for given data 验证给定数据的签名booleanVerify signature for UTF-8 encoded string 验证 UTF-8 编码字符串的签名booleanverifyBase64(byte[] data, String base64Signature) Verify Base64 encoded signature 验证 Base64 编码的签名booleanverifyBase64(String data, String base64Signature) Verify Base64 encoded signature for string data 验证字符串数据的 Base64 编码签名booleanverifyFile(Path file, byte[] signature) Verify signature for file content 验证文件内容的签名booleanVerify hexadecimal encoded signature 验证十六进制编码的签名
-
Method Details
-
create
Create SM2 signature instance. 创建 SM2 签名实例。- Returns:
- SM2 signature instance / SM2 签名实例
-
isBouncyCastleAvailable
public static boolean isBouncyCastleAvailable()Check if Bouncy Castle provider is available. 检查 Bouncy Castle 提供商是否可用。- Returns:
- true if available / 如果可用则返回 true
-
setPrivateKey
Description copied from interface:SignatureEngineSet the private key for signing operations 设置用于签名操作的私钥- Specified by:
setPrivateKeyin interfaceSignatureEngine- Parameters:
privateKey- the private key- Returns:
- this engine instance for method chaining
-
setPrivateKey
Description copied from interface:SignatureEngineSet the private key from encoded bytes 从编码字节设置私钥- Specified by:
setPrivateKeyin interfaceSignatureEngine- Parameters:
encodedKey- encoded private key bytes- Returns:
- this engine instance for method chaining
-
setPrivateKeyPem
Description copied from interface:SignatureEngineSet the private key from PEM format 从 PEM 格式设置私钥- Specified by:
setPrivateKeyPemin interfaceSignatureEngine- Parameters:
pem- PEM formatted private key- Returns:
- this engine instance for method chaining
-
setPublicKey
Description copied from interface:SignatureEngineSet the public key for verification operations 设置用于验证操作的公钥- Specified by:
setPublicKeyin interfaceSignatureEngine- Parameters:
publicKey- the public key- Returns:
- this engine instance for method chaining
-
setPublicKey
Description copied from interface:SignatureEngineSet the public key from encoded bytes 从编码字节设置公钥- Specified by:
setPublicKeyin interfaceSignatureEngine- Parameters:
encodedKey- encoded public key bytes- Returns:
- this engine instance for method chaining
-
setPublicKeyPem
Description copied from interface:SignatureEngineSet the public key from PEM format 从 PEM 格式设置公钥- Specified by:
setPublicKeyPemin interfaceSignatureEngine- Parameters:
pem- PEM formatted public key- Returns:
- this engine instance for method chaining
-
setKeyPair
Description copied from interface:SignatureEngineSet both keys from a key pair 从密钥对设置公私钥- Specified by:
setKeyPairin interfaceSignatureEngine- Parameters:
keyPair- the key pair- Returns:
- this engine instance for method chaining
-
sign
public byte[] sign(byte[] data) Description copied from interface:SignatureEngineSign data and return signature bytes 签名数据并返回签名字节- Specified by:
signin interfaceSignatureEngine- Parameters:
data- data to sign- Returns:
- signature bytes
-
sign
Description copied from interface:SignatureEngineSign UTF-8 encoded string data 签名 UTF-8 编码的字符串数据- Specified by:
signin interfaceSignatureEngine- Parameters:
data- string data to sign- Returns:
- signature bytes
-
signBase64
Description copied from interface:SignatureEngineSign data and return Base64 encoded signature 签名数据并返回 Base64 编码的签名- Specified by:
signBase64in interfaceSignatureEngine- Parameters:
data- data to sign- Returns:
- Base64 encoded signature
-
signBase64
Description copied from interface:SignatureEngineSign UTF-8 encoded string and return Base64 signature 签名 UTF-8 编码字符串并返回 Base64 签名- Specified by:
signBase64in interfaceSignatureEngine- Parameters:
data- string data to sign- Returns:
- Base64 encoded signature
-
signHex
Description copied from interface:SignatureEngineSign data and return hexadecimal encoded signature 签名数据并返回十六进制编码的签名- Specified by:
signHexin interfaceSignatureEngine- Parameters:
data- data to sign- Returns:
- hexadecimal encoded signature
-
signFile
Description copied from interface:SignatureEngineSign file content 签名文件内容- Specified by:
signFilein interfaceSignatureEngine- Parameters:
file- file to sign- Returns:
- signature bytes
-
sign
Description copied from interface:SignatureEngineSign data from input stream 从输入流签名数据- Specified by:
signin interfaceSignatureEngine- Parameters:
input- input stream to read data from- Returns:
- signature bytes
-
verify
public boolean verify(byte[] data, byte[] signature) Description copied from interface:SignatureEngineVerify signature for given data 验证给定数据的签名- Specified by:
verifyin interfaceSignatureEngine- Parameters:
data- data that was signedsignature- signature bytes- Returns:
- true if signature is valid
-
verify
Description copied from interface:SignatureEngineVerify signature for UTF-8 encoded string 验证 UTF-8 编码字符串的签名- Specified by:
verifyin interfaceSignatureEngine- Parameters:
data- string data that was signedsignature- signature bytes- Returns:
- true if signature is valid
-
verifyBase64
Description copied from interface:SignatureEngineVerify Base64 encoded signature 验证 Base64 编码的签名- Specified by:
verifyBase64in interfaceSignatureEngine- Parameters:
data- data that was signedbase64Signature- Base64 encoded signature- Returns:
- true if signature is valid
-
verifyBase64
Description copied from interface:SignatureEngineVerify Base64 encoded signature for string data 验证字符串数据的 Base64 编码签名- Specified by:
verifyBase64in interfaceSignatureEngine- Parameters:
data- string data that was signedbase64Signature- Base64 encoded signature- Returns:
- true if signature is valid
-
verifyHex
Description copied from interface:SignatureEngineVerify hexadecimal encoded signature 验证十六进制编码的签名- Specified by:
verifyHexin interfaceSignatureEngine- Parameters:
data- data that was signedhexSignature- hexadecimal encoded signature- Returns:
- true if signature is valid
-
verifyFile
Description copied from interface:SignatureEngineVerify signature for file content 验证文件内容的签名- Specified by:
verifyFilein interfaceSignatureEngine- Parameters:
file- file that was signedsignature- signature bytes- Returns:
- true if signature is valid
-
update
Description copied from interface:SignatureEngineUpdate the signature with additional data (for multi-part signing) 使用额外数据更新签名(用于多部分签名)- Specified by:
updatein interfaceSignatureEngine- Parameters:
data- data to add- Returns:
- this engine instance for method chaining
-
update
Description copied from interface:SignatureEngineUpdate the signature with UTF-8 encoded string 使用 UTF-8 编码字符串更新签名- Specified by:
updatein interfaceSignatureEngine- Parameters:
data- string data to add- Returns:
- this engine instance for method chaining
-
doSign
public byte[] doSign()Description copied from interface:SignatureEngineComplete the multi-part signing operation 完成多部分签名操作- Specified by:
doSignin interfaceSignatureEngine- Returns:
- signature bytes
-
doSignBase64
Description copied from interface:SignatureEngineComplete the multi-part signing and return Base64 signature 完成多部分签名并返回 Base64 签名- Specified by:
doSignBase64in interfaceSignatureEngine- Returns:
- Base64 encoded signature
-
doVerify
public boolean doVerify(byte[] signature) Description copied from interface:SignatureEngineComplete the multi-part verification operation 完成多部分验证操作- Specified by:
doVerifyin interfaceSignatureEngine- Parameters:
signature- signature to verify- Returns:
- true if signature is valid
-
getAlgorithm
Description copied from interface:SignatureEngineGet the signature algorithm name 获取签名算法名称- Specified by:
getAlgorithmin interfaceSignatureEngine- Returns:
- algorithm name
-