X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Fclub%2Fwpia%2Fgigi%2Futil%2FCertExporter.java;h=5d465919331ef435e9bec93448eb1c54df1a9519;hp=06102fc006ba482fe31ae80074552c3829875e36;hb=d5a01492f88cd0b87dfaae4701e7f5d25fba50a2;hpb=0d53a31181ded3b9897179d3099ccb74a159d2cc diff --git a/src/club/wpia/gigi/util/CertExporter.java b/src/club/wpia/gigi/util/CertExporter.java index 06102fc0..5d465919 100644 --- a/src/club/wpia/gigi/util/CertExporter.java +++ b/src/club/wpia/gigi/util/CertExporter.java @@ -1,6 +1,7 @@ package club.wpia.gigi.util; import java.io.IOException; +import java.io.OutputStream; import java.math.BigInteger; import java.security.GeneralSecurityException; import java.security.cert.CRLException; @@ -58,7 +59,12 @@ public class CertExporter { } private static PKCS7 toP7Chain(Certificate c) throws IOException, GeneralSecurityException, GigiApiException { - LinkedList ll = getChain(c); + + return generateP7Bundle(getChain(c)); + + } + + private static PKCS7 generateP7Bundle(LinkedList ll) { PKCS7 p7 = new PKCS7(new AlgorithmId[0], new ContentInfo(ContentInfo.DATA_OID, null), ll.toArray(new X509Certificate[ll.size()]), new SignerInfo[0]) { @Override @@ -164,4 +170,17 @@ public class CertExporter { return ll; } + public static void writeCertBundle(OutputStream out) throws IOException, GeneralSecurityException, GigiApiException { + + CACertificate[] cs = CACertificate.getAll(); + LinkedList ll = new LinkedList<>(); + for (CACertificate cb : cs) { + if ( !cb.isSelfsigned()) { + ll.add(cb.getCertificate()); + } + } + + PKCS7 p7 = generateP7Bundle(ll); + p7.encodeSignedData(out); + } }