| name | minisign-java |
| description | a Java library to sign and verify signatures with highly secure Ed25519 public-key signature system |
Dependency
Add following dependency into your pom.xml file:
<dependency>
<groupId>org.mvnsearch</groupId>
<artifactId>minisign-java</artifactId>
<version>0.2.2</version>
</dependency>
Attention: Java 17 or later is required for native EdDSA support.
SDK Core
MinisignService: Minisign Service interface
MinisignServiceImpl: Minisign Service implementation
MinisignPublicKey: Minisign Public Key with parsing
MinisignSecretKey: Minisign Secret Key with parsing
A java demo:
MinisignService service = new MinisignServiceImpl();
final MinisignSecretKey secretKey = MinisignSecretKey.fromBase64("xxx");
final MinisignPublicKey publicKey = MinisignPublicKey.fromBase64("xxx");
byte[] data = "hello world!".getBytes();
MinisignSignature sig = service.sign(data, keyPair.getSecretKey());
final String signatureBase64 = sig.toSignatureBase64();
boolean result = service.verify(data, signatureBase64, publicKey);
Compare with Command Line
| Command | API |
|---|
| create key pair | minisign -G | MinisignService.generateKeyPair(), MinisignService.saveKeyPair() |
| Signing a file | minisign -Sm myfile.txt | MiniSignService.sign(data/file, secretKey) |
| verify a fil | minisign -Vm myfile.txt | MiniSignService.verify(data/file, signature, publicKey) |
- Load private key:
MinisignSecretKey.fromBase64() or MinisignSecretKey.fromFileContent()
- Load public key:
MinisignPublicKey.fromBase64() or MinisignPublicKey.fromFileContent()
- Load global key pair:
MinisignService.loadKeyPair()
Attention: password of the secret key is not supported now, please use minisign -C -W to clear the password.
Best Practices
Treat trusted comment as JSON object
You can treat trusted comment as JSON object to store metadata, such as version, author, timestamp, file size etc.
public MinisignSignature sign(byte[] data, @NonNull MinisignSecretKey secretKey, @Nullable String untrustedComment, @NonNull Map<String, Object> trustedComment)
References