1 /*******************************************************************************
\r
2 * ============LICENSE_START====================================================
\r
4 * * ===========================================================================
\r
5 * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * * Copyright © 2017 Amdocs
\r
7 * * ===========================================================================
\r
8 * * Licensed under the Apache License, Version 2.0 (the "License");
\r
9 * * you may not use this file except in compliance with the License.
\r
10 * * You may obtain a copy of the License at
\r
12 * * http://www.apache.org/licenses/LICENSE-2.0
\r
14 * * Unless required by applicable law or agreed to in writing, software
\r
15 * * distributed under the License is distributed on an "AS IS" BASIS,
\r
16 * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
17 * * See the License for the specific language governing permissions and
\r
18 * * limitations under the License.
\r
19 * * ============LICENSE_END====================================================
\r
21 * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
\r
23 ******************************************************************************/
\r
24 package com.att.authz.cm.ca;
\r
26 import static org.mockito.Mockito.CALLS_REAL_METHODS;
\r
27 import static org.mockito.Mockito.mock;
\r
28 import static org.mockito.Mockito.when;
\r
29 import static org.junit.Assert.*;
\r
31 import java.io.IOException;
\r
32 import java.math.BigInteger;
\r
33 import java.security.InvalidKeyException;
\r
34 import java.security.NoSuchAlgorithmException;
\r
35 import java.security.NoSuchProviderException;
\r
36 import java.security.Principal;
\r
37 import java.security.PublicKey;
\r
38 import java.security.SignatureException;
\r
39 import java.security.cert.CertificateEncodingException;
\r
40 import java.security.cert.CertificateException;
\r
41 import java.security.cert.CertificateExpiredException;
\r
42 import java.security.cert.CertificateNotYetValidException;
\r
43 import java.security.cert.X509Certificate;
\r
44 import java.util.Date;
\r
45 import java.util.Set;
\r
47 import javax.security.auth.x500.X500Principal;
\r
48 import javax.servlet.http.HttpServletRequest;
\r
50 import org.junit.BeforeClass;
\r
51 import org.junit.Test;
\r
52 import org.junit.runner.RunWith;
\r
53 import org.mockito.InjectMocks;
\r
54 import org.mockito.Mock;
\r
55 import org.mockito.Mockito;
\r
56 import org.mockito.runners.MockitoJUnitRunner;
\r
58 import com.att.aft.dme2.api.http.HttpResponse;
\r
59 import com.att.aft.dme2.request.HttpRequest;
\r
60 import com.att.authz.cm.cert.CSRMeta;
\r
61 import com.att.cadi.cm.CertException;
\r
62 import com.att.dao.aaf.cached.CachedCertDAO;
\r
63 import com.att.dao.aaf.cass.CertDAO;
\r
64 import com.att.inno.env.Trans;
\r
67 @RunWith(MockitoJUnitRunner.class)
\r
68 public class JU_AppCA {
\r
71 private static CachedCertDAO certDAO;
\r
74 private static HttpServletRequest req;
\r
77 private static CSRMeta csrMeta;
\r
81 static X509Certificate cert;
\r
82 static byte [] name = {1,23,4,54,6,56};
\r
84 private static AppCA appCA;
\r
87 public static void setUp() throws CertificateException, CertException, IOException {
\r
88 String str = "core java api";
\r
89 byte[] b = str.getBytes();
\r
90 Principal prc = new X500Principal("CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US");
\r
91 req = mock(HttpServletRequest.class);
\r
92 appCA = mock(AppCA.class);
\r
93 X509Certificate cert = new X509Certificate() {
\r
96 public boolean hasUnsupportedCriticalExtension() {
\r
101 public Set<String> getNonCriticalExtensionOIDs() {
\r
107 public byte[] getExtensionValue(String oid) {
\r
113 public Set<String> getCriticalExtensionOIDs() {
\r
119 public void verify(PublicKey key, String sigProvider) throws CertificateException, NoSuchAlgorithmException,
\r
120 InvalidKeyException, NoSuchProviderException, SignatureException {
\r
126 public void verify(PublicKey key) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException,
\r
127 NoSuchProviderException, SignatureException {
\r
133 public String toString() {
\r
139 public PublicKey getPublicKey() {
\r
145 public byte[] getEncoded() throws CertificateEncodingException {
\r
151 public int getVersion() {
\r
157 public byte[] getTBSCertificate() throws CertificateEncodingException {
\r
163 public boolean[] getSubjectUniqueID() {
\r
169 public Principal getSubjectDN() {
\r
175 public byte[] getSignature() {
\r
181 public byte[] getSigAlgParams() {
\r
187 public String getSigAlgOID() {
\r
193 public String getSigAlgName() {
\r
199 public BigInteger getSerialNumber() {
\r
205 public Date getNotBefore() {
\r
211 public Date getNotAfter() {
\r
217 public boolean[] getKeyUsage() {
\r
223 public boolean[] getIssuerUniqueID() {
\r
229 public Principal getIssuerDN() {
\r
235 public int getBasicConstraints() {
\r
241 public void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException {
\r
247 public void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException {
\r
251 when(appCA.sign(Mockito.any(Trans.class), Mockito.any(CSRMeta.class))).thenReturn(cert);
\r
252 certDAO = mock(CachedCertDAO.class, CALLS_REAL_METHODS);
\r
256 public void identity_True() throws CertificateException, IOException, CertException {
\r
257 assertNotNull(appCA.sign(trans, csrMeta));
\r
262 public void identityNull() throws CertificateException {
\r
264 assertNotNull(appCA.sign(null, csrMeta));
\r
265 } catch (IOException e) {
\r
267 e.printStackTrace();
\r
268 } catch (CertException e) {
\r
270 e.printStackTrace();
\r
275 public void identityBothNull() throws CertificateException {
\r
277 assertNotNull(appCA.sign(null, null));
\r
278 } catch (IOException e) {
\r
280 e.printStackTrace();
\r
281 } catch (CertException e) {
\r
283 e.printStackTrace();
\r