summaryrefslogtreecommitdiffstats
path: root/csarvalidation/src/main/java/org/onap/cvc/csar/security/CmsSignatureData.java
diff options
context:
space:
mode:
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-09-17 14:46:47 +0200
committerBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-09-24 14:07:06 +0200
commit6767596c5b15b75a3f1ae43e169aa88e0de56c3a (patch)
tree2b64ad7df6a076fb8315208ef3f32e355ace4536 /csarvalidation/src/main/java/org/onap/cvc/csar/security/CmsSignatureData.java
parente88eed4a3e6d7b9bf299d95fe2534d9f3bdbafb4 (diff)
Fixing R130206 certificate searching mechanism
Issue-ID: VNFSDK-595 Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> Change-Id: I8dacd924b16812378356b05291229f2097dfcbe1
Diffstat (limited to 'csarvalidation/src/main/java/org/onap/cvc/csar/security/CmsSignatureData.java')
-rw-r--r--csarvalidation/src/main/java/org/onap/cvc/csar/security/CmsSignatureData.java75
1 files changed, 75 insertions, 0 deletions
diff --git a/csarvalidation/src/main/java/org/onap/cvc/csar/security/CmsSignatureData.java b/csarvalidation/src/main/java/org/onap/cvc/csar/security/CmsSignatureData.java
new file mode 100644
index 0000000..456f365
--- /dev/null
+++ b/csarvalidation/src/main/java/org/onap/cvc/csar/security/CmsSignatureData.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2020 Nokia
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.onap.cvc.csar.security;
+
+import org.bouncycastle.cms.SignerInformation;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.util.Optional;
+
+public class CmsSignatureData {
+
+ private X509Certificate certificate;
+ private final SignerInformation signerInformation;
+
+ public CmsSignatureData(X509Certificate certificate, SignerInformation signerInformation) {
+ this.certificate = certificate;
+ this.signerInformation = signerInformation;
+ }
+
+ public CmsSignatureData(SignerInformation signerInformation) {
+ this.signerInformation = signerInformation;
+ }
+
+ public Optional<X509Certificate> getCertificate() {
+ return Optional.ofNullable(certificate);
+ }
+
+ public SignerInformation getSignerInformation() {
+ return signerInformation;
+ }
+
+ public void loadCertificate(Path pathToCertificate) throws CertificateLoadingException {
+ try {
+ loadCertificate(Files.readAllBytes(pathToCertificate));
+ } catch (IOException e) {
+ final String errorMessage = String.format(
+ "Error during loading Certificate from given path: %s !"
+ ,pathToCertificate
+ );
+ throw new CertificateLoadingException(errorMessage, e);
+ }
+ }
+
+ public void loadCertificate(final byte[] certificate) throws CertificateLoadingException {
+ try (InputStream in = new ByteArrayInputStream(certificate)) {
+ CertificateFactory factory = CertificateFactory.getInstance("X.509");
+ this.certificate = (X509Certificate) factory.generateCertificate(in);
+ } catch (IOException | CertificateException e) {
+ throw new CertificateLoadingException("Error during loading Certificate from bytes!", e);
+ }
+ }
+
+}