>From 297fa7b80677c36baf595cba1bacbdd398590acf Mon Sep 17 00:00:00 2001 From: Fraser Tweedale Date: Wed, 28 Jan 2015 02:41:10 -0500 Subject: [PATCH] Add lightweight sub-CA support --- .../shared/webapps/ca/agent/ca/queryCert.template | 9 +- .../webapps/ca/agent/ca/reasonToRevoke.template | 8 +- .../shared/webapps/ca/agent/ca/srchCert.template | 2 + base/ca/shared/webapps/ca/ee/ca/queryCert.template | 6 +- .../webapps/ca/ee/ca/reasonToRevoke.template | 8 +- .../src/com/netscape/ca/CertificateAuthority.java | 169 ++++++++++++++++++++- base/ca/src/com/netscape/ca/SigningUnit.java | 10 +- .../dogtagpki/server/ca/rest/CAApplication.java | 3 + .../org/dogtagpki/server/ca/rest/SubCAService.java | 165 ++++++++++++++++++++ .../src/com/netscape/certsrv/ca/CAClient.java | 3 +- .../netscape/certsrv/ca/ICertificateAuthority.java | 28 ++++ .../netscape/certsrv/profile/IEnrollProfile.java | 5 + .../netscape/certsrv/security/ISigningUnit.java | 8 + .../src/com/netscape/certsrv/subca/CAData.java | 88 +++++++++++ .../com/netscape/certsrv/subca/SubCAClient.java | 49 ++++++ .../com/netscape/certsrv/subca/SubCAResource.java | 29 ++++ .../src/com/netscape/cmstools/cli/CACLI.java | 2 + .../src/com/netscape/cmstools/subca/SubCACLI.java | 51 +++++++ .../netscape/cmstools/subca/SubCACreateCLI.java | 66 ++++++++ .../com/netscape/cmstools/subca/SubCAShowCLI.java | 57 +++++++ .../cms/profile/common/CAEnrollProfile.java | 7 +- .../netscape/cms/profile/common/EnrollProfile.java | 3 + .../cms/profile/def/AuthInfoAccessExtDefault.java | 8 +- .../def/AuthorityKeyIdentifierExtDefault.java | 17 ++- .../netscape/cms/profile/def/CAEnrollDefault.java | 4 +- .../netscape/cms/servlet/cert/DisplayBySerial.java | 31 ++-- .../com/netscape/cms/servlet/cert/DoRevoke.java | 15 +- .../cms/servlet/cert/EnrollmentProcessor.java | 9 ++ .../com/netscape/cms/servlet/cert/ListCerts.java | 23 ++- .../netscape/cms/servlet/cert/ReasonToRevoke.java | 13 +- .../com/netscape/cms/servlet/cert/SrchCerts.java | 24 ++- .../com/netscape/cms/servlet/csadmin/CertUtil.java | 38 +++-- .../com/netscape/cms/servlet/ocsp/OCSPServlet.java | 5 +- 33 files changed, 874 insertions(+), 89 deletions(-) create mode 100644 base/ca/src/org/dogtagpki/server/ca/rest/SubCAService.java create mode 100644 base/common/src/com/netscape/certsrv/subca/CAData.java create mode 100644 base/common/src/com/netscape/certsrv/subca/SubCAClient.java create mode 100644 base/common/src/com/netscape/certsrv/subca/SubCAResource.java create mode 100644 base/java-tools/src/com/netscape/cmstools/subca/SubCACLI.java create mode 100644 base/java-tools/src/com/netscape/cmstools/subca/SubCACreateCLI.java create mode 100644 base/java-tools/src/com/netscape/cmstools/subca/SubCAShowCLI.java diff --git a/base/ca/shared/webapps/ca/agent/ca/queryCert.template b/base/ca/shared/webapps/ca/agent/ca/queryCert.template index 40ee64b0c0b62a0ff409f2617b956647b8779b59..39f933bcd9cd777a22e1baf4fdc4d8e33e5295bc 100644 --- a/base/ca/shared/webapps/ca/agent/ca/queryCert.template +++ b/base/ca/shared/webapps/ca/agent/ca/queryCert.template @@ -321,8 +321,10 @@ function displayCertificateRecord(i, cert) ""+ " \n"+ "
"+ - " "+ cert.subject+"
"+ ""+ @@ -419,6 +421,7 @@ function doNext(element) var form = element.form; // form.action = "/"+result.header.op; form.action = "/ca/agent/ca/listCerts"; + form.caRef.value = result.header.caRef || ""; form.op.value = result.header.op; form.queryCertFilter.value = result.header.queryCertFilter; form.direction.value= "down"; @@ -472,6 +475,8 @@ document.write( "\n"+ "\n"+ +"\n"+ "\n"+ ""+ " \n"+ "
"+ - " "+ addEscapes(cert.subject)+"
"+ ""+ diff --git a/base/ca/shared/webapps/ca/ee/ca/reasonToRevoke.template b/base/ca/shared/webapps/ca/ee/ca/reasonToRevoke.template index 2a608438b1f46b7695a8692ed857ce7de6e07d42..d81e37a1dab30b079fcbb82c19f6a8ec940deb46 100644 --- a/base/ca/shared/webapps/ca/ee/ca/reasonToRevoke.template +++ b/base/ca/shared/webapps/ca/ee/ca/reasonToRevoke.template @@ -187,9 +187,9 @@ function displayCertInfo() document.write(""); for (var i = 0; i < result.recordSet.length; ++i ) { if (result.recordSet[i].serialNumber != null) { - if (result.header.caSerialNumber != null && - result.recordSet[i].serialNumber == - result.header.caSerialNumber) { + if (result.header.caSerialNumber != null + && result.recordSet[i].serialNumber == result.header.caSerialNumber + && (result.header.caRef || "") == "") { document.write(renderRowWithoutCheckbox("Serial Number: ", toHex(result.recordSet[i].serialNumber))); } else { @@ -448,6 +448,8 @@ function revokeCert(serialNumber)