2 * ============LICENSE_START====================================================
4 * ===========================================================================
5 * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
7 * Modifications Copyright (C) 2019 IBM.
8 * ===========================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END====================================================
24 package org.onap.aaf.certservice.cmpv2client.external;
26 import java.security.KeyPair;
27 import java.util.ArrayList;
28 import java.util.List;
30 import org.bouncycastle.asn1.x500.X500Name;
31 import org.bouncycastle.asn1.x500.X500NameBuilder;
32 import org.bouncycastle.asn1.x500.style.BCStyle;
33 import org.bouncycastle.asn1.x509.Certificate;
35 public class CsrMeta {
38 private String mechID;
39 private String environment;
41 private String challenge;
42 private String issuerCn;
43 private String issuerEmail;
44 private String password;
46 private List<Rdn> rdns;
47 private ArrayList<String> sanList = new ArrayList<>();
48 private KeyPair keyPair;
49 private X500Name name;
50 private X500Name issuerName;
51 private Certificate certificate;
52 private String senderKid;
54 public CsrMeta(List<Rdn> rdns) {
58 public X500Name getX500Name() {
60 X500NameBuilder nameBuilder = new X500NameBuilder();
61 nameBuilder.addRDN(BCStyle.CN, cn);
62 nameBuilder.addRDN(BCStyle.E, email);
64 if (environment == null) {
65 nameBuilder.addRDN(BCStyle.OU, mechID);
67 nameBuilder.addRDN(BCStyle.OU, mechID + ':' + environment);
70 for (Rdn rdn : rdns) {
71 nameBuilder.addRDN(rdn.getAoi(), rdn.getValue());
73 name = nameBuilder.build();
78 public X500Name getIssuerX500Name() {
79 if (issuerName == null) {
80 X500NameBuilder xnb = new X500NameBuilder();
81 xnb.addRDN(BCStyle.CN, issuerCn);
82 if (issuerEmail != null) {
83 xnb.addRDN(BCStyle.E, issuerEmail);
85 issuerName = xnb.build();
90 public void addSan(String san) {
94 public List<String> getSans() {
98 public KeyPair getKeyPairOrGenerateIfNull() {
99 if (keyPair == null) {
100 keyPair = Factory.generateKeyPair();
105 public KeyPair getKeyPair() {
109 public void setKeyPair(KeyPair keyPair) {
110 this.keyPair = keyPair;
113 public String getCn() {
117 public void setCn(String cn) {
121 public void setEnvironment(String env) {
125 public String getEnvironment() {
129 public String getMechID() {
133 public void setMechID(String mechID) {
134 this.mechID = mechID;
137 public String getEmail() {
141 public void setEmail(String email) {
145 public String getChallenge() {
149 public void setChallenge(String challenge) {
150 this.challenge = challenge;
153 public void setPassword(String password) {
154 this.password = password;
157 public String getPassword() {
161 public void setCertificate(Certificate certificate) {
162 this.certificate = certificate;
165 public Certificate getCertificate() {
169 public void setIssuerCn(String issuerCn) {
170 this.issuerCn = issuerCn;
173 public String getCaUrl() {
177 public void setCaUrl(String caUrl) {
181 public String getSenderKid() {
185 public void setSenderKid(String senderKid) {
186 this.senderKid = senderKid;
189 public String getIssuerCn() {
193 public String getIssuerEmail() {
197 public void setIssuerEmail(String issuerEmail) {
198 this.issuerEmail = issuerEmail;
201 public void setIssuerName(X500Name issuerName) {
202 this.issuerName = issuerName;
205 public void setName(X500Name name) {