summaryrefslogtreecommitdiffstats
path: root/certService/src/main/java/org/onap/oom/certservice/certification/CertificationModelFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'certService/src/main/java/org/onap/oom/certservice/certification/CertificationModelFactory.java')
-rw-r--r--certService/src/main/java/org/onap/oom/certservice/certification/CertificationModelFactory.java37
1 files changed, 30 insertions, 7 deletions
diff --git a/certService/src/main/java/org/onap/oom/certservice/certification/CertificationModelFactory.java b/certService/src/main/java/org/onap/oom/certservice/certification/CertificationModelFactory.java
index 94332f2d..d5d9d9b8 100644
--- a/certService/src/main/java/org/onap/oom/certservice/certification/CertificationModelFactory.java
+++ b/certService/src/main/java/org/onap/oom/certservice/certification/CertificationModelFactory.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * PROJECT
+ * Cert Service
* ================================================================================
* Copyright (C) 2020 Nokia. All rights reserved.
* ================================================================================
@@ -22,10 +22,12 @@ package org.onap.oom.certservice.certification;
import org.onap.oom.certservice.certification.configuration.Cmpv2ServerProvider;
import org.onap.oom.certservice.certification.configuration.model.Cmpv2Server;
+import org.onap.oom.certservice.certification.exception.CertificateDecryptionException;
import org.onap.oom.certservice.certification.exception.DecryptionException;
import org.onap.oom.certservice.certification.model.CertificateUpdateModel;
import org.onap.oom.certservice.certification.model.CertificationModel;
import org.onap.oom.certservice.certification.model.CsrModel;
+import org.onap.oom.certservice.certification.model.X509CertificateModel;
import org.onap.oom.certservice.cmpv2client.exceptions.CmpClientException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,23 +42,28 @@ public class CertificationModelFactory {
private final CsrModelFactory csrModelFactory;
private final Cmpv2ServerProvider cmpv2ServerProvider;
private final CertificationProvider certificationProvider;
+ private final X509CertificateModelFactory x509CertificateModelFactory;
+ private final UpdateRequestTypeDetector updateRequestTypeDetector;
@Autowired
CertificationModelFactory(
CsrModelFactory csrModelFactory,
Cmpv2ServerProvider cmpv2ServerProvider,
- CertificationProvider certificationProvider
- ) {
+ CertificationProvider certificationProvider,
+ X509CertificateModelFactory x509CertificateModelFactory,
+ UpdateRequestTypeDetector updateRequestTypeDetector) {
this.cmpv2ServerProvider = cmpv2ServerProvider;
this.csrModelFactory = csrModelFactory;
this.certificationProvider = certificationProvider;
+ this.x509CertificateModelFactory = x509CertificateModelFactory;
+ this.updateRequestTypeDetector = updateRequestTypeDetector;
}
public CertificationModel createCertificationModel(String encodedCsr, String encodedPrivateKey, String caName)
throws DecryptionException, CmpClientException {
CsrModel csrModel = csrModelFactory.createCsrModel(
- new CsrModelFactory.StringBase64(encodedCsr),
- new CsrModelFactory.StringBase64(encodedPrivateKey)
+ new StringBase64(encodedCsr),
+ new StringBase64(encodedPrivateKey)
);
LOGGER.debug("Received CSR meta data: \n{}", csrModel);
@@ -68,10 +75,26 @@ public class CertificationModelFactory {
return certificationProvider.signCsr(csrModel, cmpv2Server);
}
- public CertificationModel createCertificationModel(CertificateUpdateModel certificateUpdateModel) {
+ public CertificationModel createCertificationModel(CertificateUpdateModel certificateUpdateModel)
+ throws DecryptionException, CertificateDecryptionException {
LOGGER.info("CSR: " + certificateUpdateModel.getEncodedCsr() +
", old cert: " + certificateUpdateModel.getEncodedOldCert() +
", CA: " + certificateUpdateModel.getCaName());
- throw new UnsupportedOperationException("TODO: it will be delivered in the next MR");
+ final CsrModel csrModel = csrModelFactory.createCsrModel(
+ new StringBase64(certificateUpdateModel.getEncodedCsr()),
+ new StringBase64(certificateUpdateModel.getEncodedPrivateKey())
+ );
+ final X509CertificateModel certificateModel = x509CertificateModelFactory.createCertificateModel(
+ new StringBase64(certificateUpdateModel.getEncodedOldCert()));
+
+ if (updateRequestTypeDetector.isKur(csrModel.getCertificateData(), certificateModel.getCertificateData())) {
+ LOGGER.info(
+ "Certificate Signing Request and Old Certificate have the same parameters. Preparing Key Update Request");
+ throw new UnsupportedOperationException("TODO: implement KUR in separate MR");
+ } else {
+ LOGGER.info(
+ "Certificate Signing Request and Old Certificate have different parameters. Preparing Certification Request");
+ throw new UnsupportedOperationException("TODO: implement CR in separate MR");
+ }
}
}