1 /*******************************************************************************
\r
2 * ============LICENSE_START====================================================
\r
4 * * ===========================================================================
\r
5 * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * * ===========================================================================
\r
7 * * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * * you may not use this file except in compliance with the License.
\r
9 * * You may obtain a copy of the License at
\r
11 * * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * * Unless required by applicable law or agreed to in writing, software
\r
14 * * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * * See the License for the specific language governing permissions and
\r
17 * * limitations under the License.
\r
18 * * ============LICENSE_END====================================================
\r
20 * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
\r
22 ******************************************************************************/
\r
23 package com.att.authz.cm.ca;
\r
25 import static org.mockito.Mockito.CALLS_REAL_METHODS;
\r
26 import static org.mockito.Mockito.mock;
\r
27 import static org.mockito.Mockito.when;
\r
28 import static org.junit.Assert.*;
\r
30 import java.io.IOException;
\r
31 import java.math.BigInteger;
\r
32 import java.security.InvalidKeyException;
\r
33 import java.security.NoSuchAlgorithmException;
\r
34 import java.security.NoSuchProviderException;
\r
35 import java.security.Principal;
\r
36 import java.security.PublicKey;
\r
37 import java.security.SignatureException;
\r
38 import java.security.cert.CertificateEncodingException;
\r
39 import java.security.cert.CertificateException;
\r
40 import java.security.cert.CertificateExpiredException;
\r
41 import java.security.cert.CertificateNotYetValidException;
\r
42 import java.security.cert.X509Certificate;
\r
43 import java.util.Date;
\r
44 import java.util.Set;
\r
46 import javax.security.auth.x500.X500Principal;
\r
47 import javax.servlet.http.HttpServletRequest;
\r
49 import org.junit.BeforeClass;
\r
50 import org.junit.Test;
\r
51 import org.junit.runner.RunWith;
\r
52 import org.mockito.InjectMocks;
\r
53 import org.mockito.Mock;
\r
54 import org.mockito.Mockito;
\r
55 import org.mockito.runners.MockitoJUnitRunner;
\r
57 import com.att.aft.dme2.api.http.HttpResponse;
\r
58 import com.att.aft.dme2.request.HttpRequest;
\r
59 import com.att.authz.cm.cert.CSRMeta;
\r
60 import com.att.cadi.cm.CertException;
\r
61 import com.att.dao.aaf.cached.CachedCertDAO;
\r
62 import com.att.dao.aaf.cass.CertDAO;
\r
63 import com.att.inno.env.Trans;
\r
66 @RunWith(MockitoJUnitRunner.class)
\r
67 public class JU_DevlCA {
\r
70 private static CachedCertDAO certDAO;
\r
73 private static HttpServletRequest req;
\r
76 private static CSRMeta csrMeta;
\r
80 static X509Certificate cert;
\r
81 static byte [] name = {1,23,4,54,6,56};
\r
83 private static DevlCA devICA;
\r
86 public static void setUp() throws CertificateException, CertException, IOException {
\r
87 String str = "core java api";
\r
88 byte[] b = str.getBytes();
\r
89 Principal prc = new X500Principal("CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US");
\r
90 req = mock(HttpServletRequest.class);
\r
91 devICA = mock(DevlCA.class);
\r
92 X509Certificate cert = new X509Certificate() {
\r
95 public boolean hasUnsupportedCriticalExtension() {
\r
100 public Set<String> getNonCriticalExtensionOIDs() {
\r
106 public byte[] getExtensionValue(String oid) {
\r
112 public Set<String> getCriticalExtensionOIDs() {
\r
118 public void verify(PublicKey key, String sigProvider) throws CertificateException, NoSuchAlgorithmException,
\r
119 InvalidKeyException, NoSuchProviderException, SignatureException {
\r
125 public void verify(PublicKey key) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException,
\r
126 NoSuchProviderException, SignatureException {
\r
132 public String toString() {
\r
138 public PublicKey getPublicKey() {
\r
144 public byte[] getEncoded() throws CertificateEncodingException {
\r
150 public int getVersion() {
\r
156 public byte[] getTBSCertificate() throws CertificateEncodingException {
\r
162 public boolean[] getSubjectUniqueID() {
\r
168 public Principal getSubjectDN() {
\r
174 public byte[] getSignature() {
\r
180 public byte[] getSigAlgParams() {
\r
186 public String getSigAlgOID() {
\r
192 public String getSigAlgName() {
\r
198 public BigInteger getSerialNumber() {
\r
204 public Date getNotBefore() {
\r
210 public Date getNotAfter() {
\r
216 public boolean[] getKeyUsage() {
\r
222 public boolean[] getIssuerUniqueID() {
\r
228 public Principal getIssuerDN() {
\r
234 public int getBasicConstraints() {
\r
240 public void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException {
\r
246 public void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException {
\r
250 when(devICA.sign(Mockito.any(Trans.class), Mockito.any(CSRMeta.class))).thenReturn(cert);
\r
251 certDAO = mock(CachedCertDAO.class, CALLS_REAL_METHODS);
\r
255 public void identity_True() throws CertificateException, IOException, CertException {
\r
256 assertNotNull(devICA.sign(trans, csrMeta));
\r
261 public void identityNull() throws CertificateException {
\r
263 assertNotNull(devICA.sign(null, csrMeta));
\r
264 } catch (IOException e) {
\r
266 e.printStackTrace();
\r
267 } catch (CertException e) {
\r
269 e.printStackTrace();
\r
274 public void identityBothNull() throws CertificateException {
\r
276 assertNotNull(devICA.sign(null, null));
\r
277 } catch (IOException e) {
\r
279 e.printStackTrace();
\r
280 } catch (CertException e) {
\r
282 e.printStackTrace();
\r