Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

Commit 50c91ff

Browse files
committed
Include additional examples (#25)
Include additional examples (fix key and examples) (#26)
1 parent bec1974 commit 50c91ff

4 files changed

Lines changed: 135 additions & 15 deletions

File tree

README.md

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,63 @@ A basic example of createing a certificate using the VCert java implementation.
2828
.build();
2929
3030
final VCertClient client = new VCertClient(config);
31-
final ZoneConfiguration zoneConfiguration = client.readZoneConfiguration("Public");
3231
final Authentication auth = Authentication.builder()
3332
.apiKey("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
3433
.build();
3534
36-
CertificateRequest certificateRequest = new CertificateRequest().subject(
37-
new CertificateRequest.PKIXName()
38-
.commonName("cert.example.com")
39-
.organization(Collections.singletonList("Venafi, Inc."))
40-
.organizationalUnit(Arrays.asList("Engineering"))
41-
.country(Collections.singletonList("US"))
42-
.locality(Collections.singletonList("SLC"))
43-
.province(Collections.singletonList("Utah")))
35+
client.authenticate(auth);
36+
final ZoneConfiguration zoneConfiguration = client.readZoneConfiguration("Public");
4437
45-
.keyType(KeyType.RSA);
4638
4739
48-
client.authenticate(auth);
49-
certificateRequest = client.generateRequest(zoneConfiguration, certificateRequest);
50-
String newCertId = client.requestCertificate(certificateRequest, "Public");
40+
// Generate a certificate
41+
CertificateRequest certificateRequest = new CertificateRequest().subject(
42+
new CertificateRequest.PKIXName()
43+
.commonName("opencredo.test")
44+
.organization(Collections.singletonList("Venafi, Inc."))
45+
.organizationalUnit(Arrays.asList("Engineering"))
46+
.country(Collections.singletonList("US"))
47+
.locality(Collections.singletonList("SLC"))
48+
.province(Collections.singletonList("Utah")))
49+
50+
.keyType(KeyType.RSA);
51+
certificateRequest = client.generateRequest(zoneConfiguration, certificateRequest);
52+
53+
54+
// Submit the certificate request
55+
String newCertId = client.requestCertificate(certificateRequest, "Default");
56+
57+
58+
// Retrieve PEM collection from Venafi
59+
final CertificateRequest pickupRequest = new CertificateRequest().pickupId(newCertId);
60+
PEMCollection pemCollection = client.retrieveCertificate(pickupRequest);
61+
System.out.println(pemCollection.certificate());
62+
63+
// Renew the certificate
64+
X509Certificate cert = (X509Certificate) pemCollection.certificate();
65+
String thumbprint = DigestUtils.sha1Hex(cert.getEncoded()).toUpperCase();
66+
final CertificateRequest certificateRequestToRenew = new CertificateRequest().subject(
67+
new CertificateRequest.PKIXName()
68+
.commonName("opencredo.test")
69+
.organization(Collections.singletonList("Venafi, Inc."))
70+
.organizationalUnit(Arrays.asList("Engineering"))
71+
.country(Collections.singletonList("US"))
72+
.locality(Collections.singletonList("SLC"))
73+
.province(Collections.singletonList("Utah")));
74+
75+
client.generateRequest(zoneConfiguration, certificateRequestToRenew);
76+
77+
final RenewalRequest renewalRequest = new RenewalRequest()
78+
.thumbprint(thumbprint)
79+
.request(certificateRequestToRenew);
80+
final String renewedCertificate = client.renewCertificate(renewalRequest);
81+
82+
// Retrieve PEM collection from Venafi
83+
final CertificateRequest renewPickupRequest = new CertificateRequest().pickupId(renewedCertificate);
84+
PEMCollection pemCollectionRenewed = client.retrieveCertificate(pickupRequest);
85+
System.out.println(pemCollectionRenewed.certificate());
86+
87+
5188
```
5289

5390
## Prerequisites for using with Trust Protection Platform

src/main/java/com/venafi/vcert/sdk/certificate/CertificateRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public boolean checkCertificate(Certificate certificate) throws VCertException {
225225
default:
226226
throw new VCertException(format("unknown key algorithm %s", publicKeyAlgorithm.name()));
227227
}
228-
} else if(csr.length != 0) {
228+
} else if(Objects.nonNull(csr) && csr.length != 0) {
229229
try {
230230
PemReader pemReader = new PemReader(new StringReader(new String(csr)));
231231
PKCS10CertificationRequest csr = new PKCS10CertificationRequest(pemReader.readPemObject().getContent());

src/main/java/com/venafi/vcert/sdk/connectors/cloud/Cloud.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public interface Cloud {
3030
@RequestLine("GET /v1/certificatepolicies/{id}")
3131
CertificatePolicy policyById(@Param("id") String id, @Param("apiKey") String apiKey);
3232

33-
@Headers({"tppl-api-key: {apiKey}", "Content-Type: application/json"})
33+
@Headers({"tppl-api-key: {apiKey}", "Content-Type: application/json", "Accept: application/json"})
3434
@RequestLine("POST /v1/certificatesearch")
3535
CertificateSearchResponse searchCertificates(@Param("apiKey") String apiKey, SearchRequest searchRequest);
3636

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package com.venafi.vcert.sdk;
2+
3+
import com.venafi.vcert.sdk.certificate.CertificateRequest;
4+
import com.venafi.vcert.sdk.certificate.KeyType;
5+
import com.venafi.vcert.sdk.certificate.PEMCollection;
6+
import com.venafi.vcert.sdk.certificate.RenewalRequest;
7+
import com.venafi.vcert.sdk.connectors.tpp.ZoneConfiguration;
8+
import com.venafi.vcert.sdk.endpoint.Authentication;
9+
import com.venafi.vcert.sdk.endpoint.ConnectorType;
10+
import org.apache.commons.codec.digest.DigestUtils;
11+
12+
import java.security.cert.CertificateEncodingException;
13+
import java.security.cert.X509Certificate;
14+
import java.util.Arrays;
15+
import java.util.Collections;
16+
17+
public class Examples {
18+
19+
public static void main(String ... args) throws VCertException, CertificateEncodingException {
20+
final Config config = Config.builder()
21+
.connectorType(ConnectorType.CLOUD)
22+
.zone("Default")
23+
.build();
24+
25+
final VCertClient client = new VCertClient(config);
26+
27+
final Authentication auth = Authentication.builder()
28+
.apiKey("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
29+
.build();
30+
31+
client.authenticate(auth);
32+
final ZoneConfiguration zoneConfiguration = client.readZoneConfiguration("Default");
33+
34+
// Generate a certificate
35+
CertificateRequest certificateRequest = new CertificateRequest().subject(
36+
new CertificateRequest.PKIXName()
37+
.commonName("cert.test")
38+
.organization(Collections.singletonList("Venafi, Inc."))
39+
.organizationalUnit(Arrays.asList("Engineering"))
40+
.country(Collections.singletonList("US"))
41+
.locality(Collections.singletonList("SLC"))
42+
.province(Collections.singletonList("Utah")))
43+
44+
.keyType(KeyType.RSA);
45+
certificateRequest = client.generateRequest(zoneConfiguration, certificateRequest);
46+
47+
48+
// Submit the certificate request
49+
String newCertId = client.requestCertificate(certificateRequest, "Default");
50+
51+
52+
// Retrieve PEM collection from Venafi
53+
final CertificateRequest pickupRequest = new CertificateRequest().pickupId(newCertId);
54+
PEMCollection pemCollection = client.retrieveCertificate(pickupRequest);
55+
System.out.println(pemCollection.certificate());
56+
57+
// Renew the certificate
58+
X509Certificate cert = (X509Certificate) pemCollection.certificate();
59+
String thumbprint = DigestUtils.sha1Hex(cert.getEncoded()).toUpperCase();
60+
final CertificateRequest certificateRequestToRenew = new CertificateRequest().subject(
61+
new CertificateRequest.PKIXName()
62+
.commonName("cert.test")
63+
.organization(Collections.singletonList("Venafi, Inc."))
64+
.organizationalUnit(Arrays.asList("Engineering"))
65+
.country(Collections.singletonList("US"))
66+
.locality(Collections.singletonList("SLC"))
67+
.province(Collections.singletonList("Utah")));
68+
69+
client.generateRequest(zoneConfiguration, certificateRequestToRenew);
70+
71+
final RenewalRequest renewalRequest = new RenewalRequest()
72+
.thumbprint(thumbprint)
73+
.request(certificateRequestToRenew);
74+
final String renewedCertificate = client.renewCertificate(renewalRequest);
75+
76+
// Retrieve PEM collection from Venafi
77+
final CertificateRequest renewPickupRequest = new CertificateRequest().pickupId(renewedCertificate);
78+
PEMCollection pemCollectionRenewed = client.retrieveCertificate(pickupRequest);
79+
System.out.println(pemCollectionRenewed.certificate());
80+
81+
}
82+
83+
}

0 commit comments

Comments
 (0)