java-ca-lib
September 18, 2016 ยท View on GitHub
Requirements
This library requires Java 8 or higher.
Setup
java-ca-lib has not been released yet. You can test it using Sonatype's SNAPSHOT repository.
Using Maven, configure Sonatype's SNAPSHOT repository:
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
And add the java-ca-lib dependency:
<dependencies>
<dependency>
<groupId>io.github.olivierlemasle</groupId>
<artifactId>java-ca-lib</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
Usage
The best is to browse the Javadoc.
Example:
import static io.github.olivierlemasle.ca.CA.*;
import io.github.olivierlemasle.ca.*;
import java.security.cert.X509Certificate;
public class Main {
public static void main(final String[] args) {
final DistinguishedName root = dn("CN=Root-Test, O=My Org");
final RootCertificate ca = createSelfSignedCertificate(root)
.validDuringYears(10)
.build();
final CSR csr = createCsr().generateRequest(
dn()
.setCn("John Doe")
.setO("World Company")
.setOu("IT dep.")
.setSt("CA")
.setC("US")
.build());
final Certificate cert = ca.signCsr(csr)
.setRandomSerialNumber()
.validDuringYears(2)
.sign();
System.out.println("Subject: " + cert.getX509Certificate().getSubjectDN());
System.out.println("Issuer: " + cert.getX509Certificate().getIssuerDN());
System.out.println(cert.print());
}
}