mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
commit
697718d132
@ -39,13 +39,19 @@ import org.bouncycastle.cms.CMSException;
|
||||
import org.bouncycastle.cms.CMSSignedData;
|
||||
import org.bouncycastle.cms.CMSSignedDataGenerator;
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||
import org.bouncycastle.openssl.PEMWriter;
|
||||
import org.bouncycastle.operator.ContentSigner;
|
||||
import org.bouncycastle.operator.OperatorCreationException;
|
||||
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
|
||||
import org.bouncycastle.pkcs.PKCS10CertificationRequest;
|
||||
import org.bouncycastle.util.Store;
|
||||
import org.jscep.message.*;
|
||||
import org.jscep.message.PkcsPkiEnvelopeDecoder;
|
||||
import org.jscep.message.PkiMessageDecoder;
|
||||
import org.jscep.message.PkiMessage;
|
||||
import org.jscep.message.CertRep;
|
||||
import org.jscep.message.PkcsPkiEnvelopeEncoder;
|
||||
import org.jscep.message.PkiMessageEncoder;
|
||||
import org.jscep.message.MessageEncodingException;
|
||||
import org.jscep.message.MessageDecodingException;
|
||||
import org.jscep.transaction.FailInfo;
|
||||
import org.jscep.transaction.Nonce;
|
||||
import org.jscep.transaction.TransactionId;
|
||||
@ -65,7 +71,6 @@ import org.wso2.carbon.device.mgt.common.TransactionManagementException;
|
||||
import javax.security.auth.x500.X500Principal;
|
||||
import javax.xml.bind.DatatypeConverter;
|
||||
import java.io.*;
|
||||
import java.math.BigInteger;
|
||||
import java.security.*;
|
||||
import java.security.cert.Certificate;
|
||||
import java.security.cert.*;
|
||||
@ -276,7 +281,7 @@ public class CertificateGenerator {
|
||||
|
||||
public boolean verifySignature(String headerSignature) throws KeystoreException {
|
||||
Certificate certificate = extractCertificateFromSignature(headerSignature);
|
||||
return (certificate != null);
|
||||
return (certificate != null);
|
||||
}
|
||||
|
||||
public CertificateResponse verifyPEMSignature(X509Certificate requestCertificate) throws KeystoreException {
|
||||
@ -303,7 +308,7 @@ public class CertificateGenerator {
|
||||
|
||||
public static String getCommonName(X509Certificate requestCertificate) {
|
||||
String distinguishedName = requestCertificate.getSubjectDN().getName();
|
||||
if(distinguishedName != null && !distinguishedName.isEmpty()) {
|
||||
if (distinguishedName != null && !distinguishedName.isEmpty()) {
|
||||
String[] dnSplits = distinguishedName.split(",");
|
||||
for (String dnSplit : dnSplits) {
|
||||
if (dnSplit.contains("CN=")) {
|
||||
@ -363,12 +368,12 @@ public class CertificateGenerator {
|
||||
X509Certificate reqCert = (X509Certificate) certificateFactory.
|
||||
generateCertificate(byteArrayInputStream);
|
||||
|
||||
if(reqCert != null && reqCert.getSerialNumber() != null) {
|
||||
if (reqCert != null && reqCert.getSerialNumber() != null) {
|
||||
Certificate lookUpCertificate = keyStoreReader.getCertificateByAlias(
|
||||
reqCert.getSerialNumber().toString());
|
||||
|
||||
if (lookUpCertificate != null && (lookUpCertificate instanceof X509Certificate)) {
|
||||
return (X509Certificate)lookUpCertificate;
|
||||
return (X509Certificate) lookUpCertificate;
|
||||
}
|
||||
}
|
||||
|
||||
@ -391,8 +396,8 @@ public class CertificateGenerator {
|
||||
}
|
||||
|
||||
public X509Certificate generateCertificateFromCSR(PrivateKey privateKey,
|
||||
PKCS10CertificationRequest request,
|
||||
String issueSubject)
|
||||
PKCS10CertificationRequest request,
|
||||
String issueSubject)
|
||||
throws KeystoreException {
|
||||
|
||||
CommonUtil commonUtil = new CommonUtil();
|
||||
@ -424,10 +429,10 @@ public class CertificateGenerator {
|
||||
certificateBuilder.addExtension(X509Extension.keyUsage, true, new KeyUsage(
|
||||
KeyUsage.digitalSignature | KeyUsage.keyEncipherment));
|
||||
|
||||
if(attributes != null) {
|
||||
if (attributes != null) {
|
||||
ASN1Encodable extractedValue = getChallengePassword(attributes);
|
||||
|
||||
if(extractedValue != null) {
|
||||
if (extractedValue != null) {
|
||||
certificateBuilder.addExtension(PKCSObjectIdentifiers.pkcs_9_at_challengePassword, true,
|
||||
extractedValue);
|
||||
}
|
||||
@ -466,7 +471,7 @@ public class CertificateGenerator {
|
||||
|
||||
for (Attribute attribute : attributes) {
|
||||
if (PKCSObjectIdentifiers.pkcs_9_at_challengePassword.equals(attribute.getAttrType())) {
|
||||
if(attribute.getAttrValues() != null && attribute.getAttrValues().size() > 0) {
|
||||
if (attribute.getAttrValues() != null && attribute.getAttrValues().size() > 0) {
|
||||
return attribute.getAttrValues().getObjectAt(0);
|
||||
}
|
||||
}
|
||||
@ -623,13 +628,12 @@ public class CertificateGenerator {
|
||||
log.error(errorMsg, e);
|
||||
CertificateManagementDAOFactory.rollbackTransaction();
|
||||
throw new KeystoreException(errorMsg, e);
|
||||
}finally {
|
||||
} finally {
|
||||
CertificateManagementDAOFactory.closeConnection();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String extractChallengeToken(X509Certificate certificate) {
|
||||
|
||||
byte[] challengePassword = certificate.getExtensionValue(
|
||||
|
||||
@ -17,7 +17,8 @@
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>device-mgt</artifactId>
|
||||
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||
@ -60,5 +61,5 @@
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
</project>
|
||||
|
||||
@ -18,6 +18,9 @@
|
||||
|
||||
package org.wso2.carbon.device.mgt.common.configuration.mgt;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
@ -30,10 +33,16 @@ import java.util.List;
|
||||
*/
|
||||
@XmlRootElement(name = "tenantConfiguration")
|
||||
@XmlAccessorType(XmlAccessType.NONE)
|
||||
|
||||
@ApiModel(value = "TenantConfiguration",
|
||||
description = "This class carries all information related to a Tenant configuration")
|
||||
public class TenantConfiguration implements Serializable {
|
||||
|
||||
@XmlElement(name = "type")
|
||||
@ApiModelProperty(name = "type", value = "type of device", required = true)
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty(name = "configuration", value = "List of Configuration Entries", required = true)
|
||||
@XmlElement(name = "configuration")
|
||||
private List<ConfigurationEntry> configuration;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user