Class EddsaSignature
java.lang.Object
cloud.opencode.base.crypto.signature.EddsaSignature
- All Implemented Interfaces:
SignatureEngine
EdDSA signature implementation - Edwards-curve Digital Signature Algorithm (recommended)
EdDSA 签名实现 - 爱德华兹曲线数字签名算法(推荐)
EdDSA using Ed25519 and Ed448 curves provides excellent security and performance. It is deterministic and resistant to side-channel attacks. Native support in JDK 15+. EdDSA 使用 Ed25519 和 Ed448 曲线提供出色的安全性和性能。 它是确定性的且能抵抗侧信道攻击。JDK 15+ 原生支持。
Features | 主要功能:
- Ed25519 and Ed448 signatures - Ed25519 和 Ed448 签名
- High performance Edwards-curve signatures - 高性能 Edwards 曲线签名
Usage Examples | 使用示例:
EddsaSignature ed = EddsaSignature.ed25519();
ed.setPrivateKey(privateKey);
byte[] sig = ed.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 完成多部分验证操作static EddsaSignatureed25519()Create EdDSA signature with Ed25519 curve (recommended for most uses) 创建使用 Ed25519 曲线的 EdDSA 签名(推荐用于大多数场景)static EddsaSignatureCreate EdDSA Ed25519 signature with generated key pair 创建带有生成密钥对的 EdDSA Ed25519 签名static EddsaSignatureed448()Create EdDSA signature with Ed448 curve (higher security) 创建使用 Ed448 曲线的 EdDSA 签名(更高安全性)static EddsaSignatureCreate EdDSA Ed448 signature with generated key pair 创建带有生成密钥对的 EdDSA Ed448 签名Get the signature algorithm name 获取签名算法名称Get the private key 获取私钥Get the public key 获取公钥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 验证十六进制编码的签名Generate a new EdDSA key pair for the configured algorithm 为配置的算法生成新的 EdDSA 密钥对
-
Method Details
-
ed25519
Create EdDSA signature with Ed25519 curve (recommended for most uses) 创建使用 Ed25519 曲线的 EdDSA 签名(推荐用于大多数场景)Ed25519 provides 128-bit security with 256-bit keys and 512-bit signatures. It is fast, secure, and widely supported. Ed25519 提供 128 位安全性,密钥为 256 位,签名为 512 位。 它快速、安全且广泛支持。
- Returns:
- EdDSA Ed25519 signature instance
-
ed448
Create EdDSA signature with Ed448 curve (higher security) 创建使用 Ed448 曲线的 EdDSA 签名(更高安全性)Ed448 provides 224-bit security with 456-bit keys and 912-bit signatures. Use when higher security margins are required. Ed448 提供 224 位安全性,密钥为 456 位,签名为 912 位。 当需要更高安全边际时使用。
- Returns:
- EdDSA Ed448 signature instance
-
ed25519WithGeneratedKeyPair
Create EdDSA Ed25519 signature with generated key pair 创建带有生成密钥对的 EdDSA Ed25519 签名- Returns:
- EdDSA Ed25519 signature with generated keys
-
ed448WithGeneratedKeyPair
Create EdDSA Ed448 signature with generated key pair 创建带有生成密钥对的 EdDSA Ed448 签名- Returns:
- EdDSA Ed448 signature with generated keys
-
withGeneratedKeyPair
Generate a new EdDSA key pair for the configured algorithm 为配置的算法生成新的 EdDSA 密钥对- 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
-
getPublicKey
-
getPrivateKey
Get the private key 获取私钥- Returns:
- the private key, or null if not set
-