use of com.liumapp.digitalsign.engine.keystore.entity.Resource in project spring-cloud-digital-sign by SpringForAll.
the class CertificateController method generate.
/**
* generate personal certificate by self .
* @param personalCertPattern params required
* @return String
*/
@RequestMapping("/generate")
public ResponseEntity<?> generate(@RequestBody PersonalCertPattern personalCertPattern) {
try {
Resource resource = Resource.from(keyStoreSavePath + "/" + personalCertPattern.getKeystore());
KeyStoreAdapter keyStoreAdapter = KeyTools.keyStoreFrom(resource, personalCertPattern.getStorepass());
keyStoreAdapter.newKeyPair().keyLength(personalCertPattern.getKeysize()).generateWithCertificate().withValidity(1, ChronoUnit.YEARS).withDistinguishName().commonName(personalCertPattern.getName()).state(personalCertPattern.getCity()).locality(personalCertPattern.getProvince()).country(personalCertPattern.getCountry()).build().createInKeyStore(personalCertPattern.getAlias(), personalCertPattern.getCertPassword());
FileOutputStream out = new FileOutputStream(keyStoreSavePath + "/" + personalCertPattern.getKeystore());
keyStoreAdapter.writeTo(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return ResponseEntity.ok("generator done");
}
use of com.liumapp.digitalsign.engine.keystore.entity.Resource in project spring-cloud-digital-sign by SpringForAll.
the class CertificateController method export.
// public String generate (@RequestBody )
@RequestMapping("/export")
public ResponseEntity<?> export(@RequestBody ExporterPattern exporterPattern) {
try {
Resource resource = Resource.from(keyStoreSavePath + "/" + exporterPattern.getKeyStore());
KeyStoreAdapter keyStoreAdapter = KeyTools.keyStoreFrom(resource, exporterPattern.getKeyStorePd());
Certificate certificate = keyStoreAdapter.getCertificate(exporterPattern.getAlias());
FileOutputStream out = new FileOutputStream(exporterPattern.getSavePath() + "/" + exporterPattern.getFileName());
out.write(certificate.getEncoded());
out.close();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return ResponseEntity.ok("export done");
}
use of com.liumapp.digitalsign.engine.keystore.entity.Resource in project spring-cloud-digital-sign by SpringForAll.
the class KeyToolsTest method shouldSignCertificateSignRequest.
@Ignore
@Test
public void shouldSignCertificateSignRequest() throws Exception {
Resource resource = Resource.from("classpath:keystore.ks");
KeyStoreAdapter requesterKeyStore = KeyTools.keyStoreFrom(resource, "1234");
X509Certificate[] certificates = requesterKeyStore.getCertificates("test");
assertEquals(1, certificates.length);
CSR csr = requesterKeyStore.generateCSR("test", "456");
Resource ca = Resource.from("classpath:ca.ks");
KeyStoreAdapter caKeyStore = KeyTools.keyStoreFrom(ca, "ca");
P7B signResponse = caKeyStore.signCSR(csr, "ca", "ca").withValidity(1, ChronoUnit.YEARS).sign();
requesterKeyStore.importCAReply(signResponse, "test", "456");
certificates = requesterKeyStore.getCertificates("test");
assertEquals(2, certificates.length);
}
use of com.liumapp.digitalsign.engine.keystore.entity.Resource in project spring-cloud-digital-sign by SpringForAll.
the class KeyToolsTest method shouldNotVerifySignedCertificate.
@Ignore
@Test
public void shouldNotVerifySignedCertificate() throws Exception {
Resource ca = Resource.from("classpath:signed-by-ca.ks");
KeyStoreAdapter caKeyStore = KeyTools.keyStoreFrom(ca, "1234");
Resource signedResource = Resource.from("classpath:ca.ks");
KeyStoreAdapter signedKeyStore = KeyTools.keyStoreFrom(signedResource, "ca");
expectedException.expect(CertificateException.class);
expectedException.expectMessage("unable to find valid certification path to requested target");
signedKeyStore.verifyWithTrustStore("ca", caKeyStore.toKeyStore());
}
Aggregations