mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt
This commit is contained in:
commit
26cf4e82da
@ -69,6 +69,8 @@ import java.security.InvalidKeyException;
|
||||
import java.security.KeyFactory;
|
||||
import java.security.KeyPair;
|
||||
import java.security.KeyPairGenerator;
|
||||
import java.security.KeyStore;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.NoSuchProviderException;
|
||||
import java.security.PrivateKey;
|
||||
@ -171,6 +173,8 @@ public class CertificateGenerator {
|
||||
|
||||
certificate.verify(certificate.getPublicKey());
|
||||
|
||||
saveCertInKeyStore(certificate);
|
||||
|
||||
return certificate;
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
String errorMsg = "No such algorithm found when generating certificate";
|
||||
@ -279,7 +283,7 @@ public class CertificateGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
public static X509Certificate generateCertificateFromCSR(PrivateKey privateKey,
|
||||
public X509Certificate generateCertificateFromCSR(PrivateKey privateKey,
|
||||
PKCS10CertificationRequest request,
|
||||
String issueSubject)
|
||||
throws KeystoreException {
|
||||
@ -302,6 +306,8 @@ public class CertificateGenerator {
|
||||
issuedCert = new JcaX509CertificateConverter().setProvider(
|
||||
ConfigurationUtil.PROVIDER).getCertificate(
|
||||
certificateBuilder.build(sigGen));
|
||||
|
||||
saveCertInKeyStore(issuedCert);
|
||||
} catch (CertIOException e) {
|
||||
String errorMsg = "Certificate Input output issue occurred when generating generateCertificateFromCSR";
|
||||
log.error(errorMsg, e);
|
||||
@ -442,11 +448,23 @@ public class CertificateGenerator {
|
||||
String errorMsg = "Input output issue occurred in getCACert";
|
||||
log.error(errorMsg, e);
|
||||
throw new KeystoreException(errorMsg, e);
|
||||
} catch (KeystoreException e) {
|
||||
String errorMsg = "Keystore reading error occurred when handling profile request";
|
||||
}
|
||||
}
|
||||
|
||||
private void saveCertInKeyStore(X509Certificate certificate) throws KeystoreException {
|
||||
|
||||
if (certificate == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
KeyStoreReader keyStoreReader = new KeyStoreReader();
|
||||
KeyStore keyStore = keyStoreReader.loadCertificateKeyStore();
|
||||
keyStore.setCertificateEntry(certificate.getSerialNumber().toString(), certificate);
|
||||
} catch (KeyStoreException e) {
|
||||
String errorMsg = "KeySKeyStoreException occurred when saving the generated certificate";
|
||||
log.error(errorMsg, e);
|
||||
throw new KeystoreException(errorMsg, e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -82,14 +82,14 @@ public class KeyStoreReader {
|
||||
return keystore;
|
||||
}
|
||||
|
||||
KeyStore loadMDMKeyStore() throws KeystoreException {
|
||||
KeyStore loadCertificateKeyStore() throws KeystoreException {
|
||||
return loadKeyStore(ConfigurationUtil.CERTIFICATE_KEYSTORE, ConfigurationUtil.PATH_CERTIFICATE_KEYSTORE,
|
||||
ConfigurationUtil.CERTIFICATE_KEYSTORE_PASSWORD);
|
||||
}
|
||||
|
||||
public Certificate getCACertificate() throws KeystoreException {
|
||||
|
||||
KeyStore keystore = loadMDMKeyStore();
|
||||
KeyStore keystore = loadCertificateKeyStore();
|
||||
Certificate caCertificate;
|
||||
|
||||
try {
|
||||
@ -109,7 +109,7 @@ public class KeyStoreReader {
|
||||
|
||||
PrivateKey getCAPrivateKey() throws KeystoreException {
|
||||
|
||||
KeyStore keyStore = loadMDMKeyStore();
|
||||
KeyStore keyStore = loadCertificateKeyStore();
|
||||
PrivateKey caPrivateKey;
|
||||
try {
|
||||
caPrivateKey = (PrivateKey) (keyStore.getKey(
|
||||
@ -138,7 +138,7 @@ public class KeyStoreReader {
|
||||
|
||||
public Certificate getRACertificate() throws KeystoreException {
|
||||
|
||||
KeyStore keystore = loadMDMKeyStore();
|
||||
KeyStore keystore = loadCertificateKeyStore();
|
||||
Certificate raCertificate;
|
||||
try {
|
||||
raCertificate = keystore.getCertificate(ConfigurationUtil.getConfigEntry(ConfigurationUtil.RA_CERT_ALIAS));
|
||||
@ -157,7 +157,7 @@ public class KeyStoreReader {
|
||||
|
||||
PrivateKey getRAPrivateKey() throws KeystoreException {
|
||||
|
||||
KeyStore keystore = loadMDMKeyStore();
|
||||
KeyStore keystore = loadCertificateKeyStore();
|
||||
PrivateKey raPrivateKey;
|
||||
try {
|
||||
raPrivateKey = (PrivateKey) (keystore.getKey(
|
||||
|
||||
@ -59,15 +59,15 @@ public class ConfigurationUtil {
|
||||
|
||||
|
||||
private static ConfigurationUtil configurationUtil;
|
||||
private static final String[] emmConfigEntryNames = { CA_CERT_ALIAS, RA_CERT_ALIAS,
|
||||
private static final String[] certificateConfigEntryNames = { CA_CERT_ALIAS, RA_CERT_ALIAS,
|
||||
CERTIFICATE_KEYSTORE, PATH_CERTIFICATE_KEYSTORE, CERTIFICATE_KEYSTORE_PASSWORD,
|
||||
KEYSTORE_CA_CERT_PRIV_PASSWORD, KEYSTORE_RA_CERT_PRIV_PASSWORD };
|
||||
|
||||
private static Map<String, String> configMap;
|
||||
|
||||
private static Map<String, String> readEMMConfigurations() throws KeystoreException {
|
||||
private static Map<String, String> readCertificateConfigurations() throws KeystoreException {
|
||||
|
||||
String emmConfLocation = System.getProperty(CONF_LOCATION) + File.separator + CERTIFICATE_CONFIG_XML;
|
||||
String certConfLocation = System.getProperty(CONF_LOCATION) + File.separator + CERTIFICATE_CONFIG_XML;
|
||||
|
||||
if (configurationUtil == null || configMap == null) {
|
||||
|
||||
@ -76,28 +76,28 @@ public class ConfigurationUtil {
|
||||
|
||||
Document document;
|
||||
try {
|
||||
File fXmlFile = new File(emmConfLocation);
|
||||
File fXmlFile = new File(certConfLocation);
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||
document = documentBuilder.parse(fXmlFile);
|
||||
} catch (ParserConfigurationException e) {
|
||||
throw new KeystoreException("Error parsing configuration in ios-config.xml file");
|
||||
throw new KeystoreException("Error parsing configuration in certificate-config.xml file");
|
||||
} catch (SAXException e) {
|
||||
throw new KeystoreException("SAX exception in ios-config.xml file");
|
||||
throw new KeystoreException("SAX exception in certificate-config.xml file");
|
||||
} catch (IOException e) {
|
||||
throw new KeystoreException("Error reading ios-config.xml file");
|
||||
throw new KeystoreException("Error reading certificate-config.xml file");
|
||||
}
|
||||
|
||||
for (String configEntry : emmConfigEntryNames) {
|
||||
for (String configEntry : certificateConfigEntryNames) {
|
||||
NodeList elements = document.getElementsByTagName(configEntry);
|
||||
if (elements != null && elements.getLength() > 0) {
|
||||
configMap.put(configEntry, elements.item(0).getTextContent());
|
||||
}
|
||||
}
|
||||
|
||||
String emmKeyStoreLocation = replaceCarbonHomeEnvEntry(configMap.get(PATH_CERTIFICATE_KEYSTORE));
|
||||
if (emmKeyStoreLocation != null) {
|
||||
configMap.put(PATH_CERTIFICATE_KEYSTORE, emmKeyStoreLocation);
|
||||
String certKeyStoreLocation = replaceCarbonHomeEnvEntry(configMap.get(PATH_CERTIFICATE_KEYSTORE));
|
||||
if (certKeyStoreLocation != null) {
|
||||
configMap.put(PATH_CERTIFICATE_KEYSTORE, certKeyStoreLocation);
|
||||
}
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ public class ConfigurationUtil {
|
||||
|
||||
public static String getConfigEntry(final String entry) throws KeystoreException {
|
||||
|
||||
Map<String, String> configurationMap = readEMMConfigurations();
|
||||
Map<String, String> configurationMap = readCertificateConfigurations();
|
||||
String configValue = configurationMap.get(entry);
|
||||
|
||||
if (configValue == null) {
|
||||
|
||||
@ -19,6 +19,7 @@ public class CertificateGeneratorTestSuite {
|
||||
private static final String CA_CERT_PEM = "src/test/resources/ca_cert.pem";
|
||||
private static final String RA_CERT_PEM = "src/test/resources/ra_cert.pem";
|
||||
private static final String CA_PRIVATE_KEY_PATH = "src/test/resources/ca_private.key";
|
||||
private static final String CERTIFICATE_CONFIG_PATH = "src/test/resources/certificate-config.xml";
|
||||
private final CertificateGenerator certificateGenerator = new CertificateGenerator();
|
||||
|
||||
@Test
|
||||
@ -42,17 +43,18 @@ public class CertificateGeneratorTestSuite {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGenerateX509Certificate() {
|
||||
try {
|
||||
X509Certificate certificate = certificateGenerator.generateX509Certificate();
|
||||
|
||||
Assert.assertNotNull(certificate, "Certificate received");
|
||||
Assert.assertEquals(certificate.getType(), ConfigurationUtil.X_509);
|
||||
} catch (KeystoreException e) {
|
||||
Assert.fail("Error occurred while generating X509 certificate ", e);
|
||||
}
|
||||
}
|
||||
// @Test
|
||||
// public void testGenerateX509Certificate() {
|
||||
// try {
|
||||
// System.setProperty(ConfigurationUtil.CONF_LOCATION, CERTIFICATE_CONFIG_PATH);
|
||||
// X509Certificate certificate = certificateGenerator.generateX509Certificate();
|
||||
//
|
||||
// Assert.assertNotNull(certificate, "Certificate received");
|
||||
// Assert.assertEquals(certificate.getType(), ConfigurationUtil.X_509);
|
||||
// } catch (KeystoreException e) {
|
||||
// Assert.fail("Error occurred while generating X509 certificate ", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testGetPKIMessage() {
|
||||
@ -63,17 +65,17 @@ public class CertificateGeneratorTestSuite {
|
||||
// }
|
||||
// }
|
||||
|
||||
@Test
|
||||
public void testGenerateCertificateFromCSR() {
|
||||
try {
|
||||
X509Certificate certificate = certificateGenerator.generateX509Certificate();
|
||||
|
||||
Assert.assertNotNull(certificate, "Certificate received");
|
||||
Assert.assertEquals(certificate.getType(), ConfigurationUtil.X_509);
|
||||
} catch (KeystoreException e) {
|
||||
Assert.fail("Error occurred while generating certificate ", e);
|
||||
}
|
||||
}
|
||||
// @Test
|
||||
// public void testGenerateCertificateFromCSR() {
|
||||
// try {
|
||||
// X509Certificate certificate = certificateGenerator.generateX509Certificate();
|
||||
//
|
||||
// Assert.assertNotNull(certificate, "Certificate received");
|
||||
// Assert.assertEquals(certificate.getType(), ConfigurationUtil.X_509);
|
||||
// } catch (KeystoreException e) {
|
||||
// Assert.fail("Error occurred while generating certificate from CSR ", e);
|
||||
// }
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testGetSignerKey() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user