Class EcdsaSignature
java.lang.Object
cloud.opencode.base.crypto.signature.EcdsaSignature
- All Implemented Interfaces:
SignatureEngine
ECDSA signature implementation - Elliptic Curve Digital Signature Algorithm
ECDSA 签名实现 - 椭圆曲线数字签名算法
ECDSA provides strong security with smaller key sizes compared to RSA. Commonly used curves are P-256, P-384, and P-521. ECDSA 提供比 RSA 更小的密钥大小和强大的安全性。常用曲线为 P-256、P-384 和 P-521。
Features | 主要功能:
- ECDSA with P-256, P-384, P-521 - ECDSA(P-256、P-384、P-521)
- SHA-256/384/512 digest algorithms - SHA-256/384/512 摘要算法
Usage Examples | 使用示例:
EcdsaSignature ecdsa = EcdsaSignature.p256();
ecdsa.setPrivateKey(privateKey);
byte[] sig = ecdsa.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 TypeMethodDescriptionbyte[]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 获取签名算法名称Get the curve type 获取曲线类型Get the private key 获取私钥Get the public key 获取公钥static EcdsaSignaturep256()Create ECDSA signature with P-256 curve (SHA-256, recommended for most uses) 创建使用 P-256 曲线的 ECDSA 签名(SHA-256,推荐用于大多数场景)static EcdsaSignatureCreate ECDSA P-256 signature with generated key pair 创建带有生成密钥对的 ECDSA P-256 签名static EcdsaSignaturep384()Create ECDSA signature with P-384 curve (SHA-384, higher security) 创建使用 P-384 曲线的 ECDSA 签名(SHA-384,更高安全性)static EcdsaSignatureCreate ECDSA P-384 signature with generated key pair 创建带有生成密钥对的 ECDSA P-384 签名static EcdsaSignaturep521()Create ECDSA signature with P-521 curve (SHA-512, maximum security) 创建使用 P-521 曲线的 ECDSA 签名(SHA-512,最高安全性)static EcdsaSignatureCreate ECDSA P-521 signature with generated key pair 创建带有生成密钥对的 ECDSA P-521 签名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 验证十六进制编码的签名static EcdsaSignatureCreate ECDSA signature with custom curve type 创建使用自定义曲线类型的 ECDSA 签名Generate a new EC key pair for the configured curve 为配置的曲线生成新的 EC 密钥对
-
Method Details
-
p256
Create ECDSA signature with P-256 curve (SHA-256, recommended for most uses) 创建使用 P-256 曲线的 ECDSA 签名(SHA-256,推荐用于大多数场景)- Returns:
- ECDSA P-256 signature instance
-
p384
Create ECDSA signature with P-384 curve (SHA-384, higher security) 创建使用 P-384 曲线的 ECDSA 签名(SHA-384,更高安全性)- Returns:
- ECDSA P-384 signature instance
-
p521
Create ECDSA signature with P-521 curve (SHA-512, maximum security) 创建使用 P-521 曲线的 ECDSA 签名(SHA-512,最高安全性)- Returns:
- ECDSA P-521 signature instance
-
withCurve
Create ECDSA signature with custom curve type 创建使用自定义曲线类型的 ECDSA 签名- Parameters:
curve- the elliptic curve type- Returns:
- ECDSA signature instance
-
p256WithGeneratedKeyPair
Create ECDSA P-256 signature with generated key pair 创建带有生成密钥对的 ECDSA P-256 签名- Returns:
- ECDSA P-256 signature with generated keys
-
p384WithGeneratedKeyPair
Create ECDSA P-384 signature with generated key pair 创建带有生成密钥对的 ECDSA P-384 签名- Returns:
- ECDSA P-384 signature with generated keys
-
p521WithGeneratedKeyPair
Create ECDSA P-521 signature with generated key pair 创建带有生成密钥对的 ECDSA P-521 签名- Returns:
- ECDSA P-521 signature with generated keys
-
withGeneratedKeyPair
Generate a new EC key pair for the configured curve 为配置的曲线生成新的 EC 密钥对- Returns:
- this signature instance with generated keys
-
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
-
getCurveType
-
getPublicKey
-
getPrivateKey
Get the private key 获取私钥- Returns:
- the private key, or null if not set
-