Search in sources :

Example 6 with Resource

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");
}
Also used : KeyStoreAdapter(com.liumapp.digitalsign.engine.keystore.service.KeyStoreAdapter) FileOutputStream(java.io.FileOutputStream) Resource(com.liumapp.digitalsign.engine.keystore.entity.Resource) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 7 with Resource

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");
}
Also used : KeyStoreAdapter(com.liumapp.digitalsign.engine.keystore.service.KeyStoreAdapter) FileOutputStream(java.io.FileOutputStream) Resource(com.liumapp.digitalsign.engine.keystore.entity.Resource) Certificate(java.security.cert.Certificate) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 8 with Resource

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);
}
Also used : CSR(com.liumapp.digitalsign.engine.keystore.entity.CSR) Resource(com.liumapp.digitalsign.engine.keystore.entity.Resource) P7B(com.liumapp.digitalsign.engine.keystore.entity.P7B) X509Certificate(java.security.cert.X509Certificate) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 9 with Resource

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());
}
Also used : Resource(com.liumapp.digitalsign.engine.keystore.entity.Resource) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

Resource (com.liumapp.digitalsign.engine.keystore.entity.Resource)9 Ignore (org.junit.Ignore)7 Test (org.junit.Test)7 FileOutputStream (java.io.FileOutputStream)4 Certificate (java.security.cert.Certificate)3 X509Certificate (java.security.cert.X509Certificate)3 CSR (com.liumapp.digitalsign.engine.keystore.entity.CSR)2 KeyStoreAdapter (com.liumapp.digitalsign.engine.keystore.service.KeyStoreAdapter)2 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)2 P7B (com.liumapp.digitalsign.engine.keystore.entity.P7B)1 File (java.io.File)1