diff --git a/jams-ca/src/main/java/net/jami/jams/ca/JamsCA.java b/jams-ca/src/main/java/net/jami/jams/ca/JamsCA.java index cd207c3214b3de773dfcc380d1cd5afe92345143..5c78b814b04533eeee890e7c37ab1dd720d1dc5d 100644 --- a/jams-ca/src/main/java/net/jami/jams/ca/JamsCA.java +++ b/jams-ca/src/main/java/net/jami/jams/ca/JamsCA.java @@ -18,6 +18,7 @@ import org.bouncycastle.cert.ocsp.OCSPResp; import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.security.Security; +import java.util.Base64; import java.util.concurrent.atomic.AtomicReference; @Slf4j @@ -86,6 +87,17 @@ public class JamsCA implements CertificateAuthority { return crlWorker.getExistingCRL(); } + @Override + public String getLatestCRLPEMEncoded() { + try { + return Base64.getEncoder().encodeToString(getLatestCRL().get().getEncoded()); + } + catch (Exception e){ + log.error("Could not return a valid CRL!"); + return null; + } + } + @Override public OCSPResp getOCSPResponse(OCSPReq ocspRequest) { return null; diff --git a/jams-common/src/main/java/net/jami/jams/common/cryptoengineapi/CertificateAuthority.java b/jams-common/src/main/java/net/jami/jams/common/cryptoengineapi/CertificateAuthority.java index 3deaa15e399d6f94863b21bbf0354fa11c72ec67..a6a6e0441222a3487578ac1bfc48a91e0008dc4a 100644 --- a/jams-common/src/main/java/net/jami/jams/common/cryptoengineapi/CertificateAuthority.java +++ b/jams-common/src/main/java/net/jami/jams/common/cryptoengineapi/CertificateAuthority.java @@ -18,5 +18,7 @@ public interface CertificateAuthority { SystemAccount getSignedCertificate(SystemAccount systemAccount); void revokeCertificate(RevocationRequest revocationRequest); AtomicReference<X509CRLHolder> getLatestCRL(); + String getLatestCRLPEMEncoded(); OCSPResp getOCSPResponse(OCSPReq ocspRequest); + } diff --git a/jams-server/src/main/java/module-info.java b/jams-server/src/main/java/module-info.java index 27fec84671cea9ebd16130d4d9ffe3eacedc54ca..49235bdd9469f7d6c68192b13977c9e5a01a2469 100644 --- a/jams-server/src/main/java/module-info.java +++ b/jams-server/src/main/java/module-info.java @@ -17,4 +17,5 @@ module jams.server { exports net.jami.jams.server.servlets.api.auth.device to org.apache.tomcat.embed.core; exports net.jami.jams.server.servlets.api.install to org.apache.tomcat.embed.core; exports net.jami.jams.server.servlets.api.jaminameserver to org.apache.tomcat.embed.core; + exports net.jami.jams.server.servlets.x509 to org.apache.tomcat.embed.core; } \ No newline at end of file diff --git a/jams-server/src/main/java/net/jami/jams/server/core/utils/ResponseBuilder.java b/jams-server/src/main/java/net/jami/jams/server/core/utils/ResponseBuilder.java deleted file mode 100644 index 498e32cd17692cc31dd24746d578eb5e57479df9..0000000000000000000000000000000000000000 --- a/jams-server/src/main/java/net/jami/jams/server/core/utils/ResponseBuilder.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.jami.jams.server.core.utils; - -import jakarta.servlet.http.HttpServletResponse; - -public class ResponseBuilder { - - public void buildResponse(Integer status, String body, HttpServletResponse resp) throws Exception{ - resp.setStatus(status); - resp.getOutputStream().write(body.getBytes()); - } - - -} diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/x509/CRLServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/x509/CRLServlet.java index a9e4bbfaaa5fd5408eab1402ed43930f2635bf1c..912e41534b53148416177c2c6c3a672b8da62ed8 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/x509/CRLServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/x509/CRLServlet.java @@ -22,7 +22,7 @@ public class CRLServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(CRL_HEAD); - stringBuilder.append(Base64.getEncoder().encodeToString(certificateAuthority.getLatestCRL().get().getEncoded())); + stringBuilder.append(certificateAuthority.getLatestCRLPEMEncoded()); stringBuilder.append(CRL_TAIL); resp.getOutputStream().write(stringBuilder.toString().getBytes()); }