Gdy próbuję przekonwertować ciąg znaków z certyfikatem, wywoływany jest wyjątek

Mam aplet, który podpisuje dokument i wysyła dokument, znak i certyfikat po stronie serwera. W portlecie po stronie serwera otrzymuje te 3 pliki, wszystkie pliki są przechowywane w formacie base64, ale gdy próbuję uzyskać certyfikat, wywołuje wyjątek

java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104)

kod boczny apletu:

public static byte[] certificate;

public static String getCertificateString() {
        String str = "";
        byte[] result = null;
        result = Base64.encode(certificate);
        for (int i = 0; i < result.length; i++) {
            str += (char) (result[i]);
        }
        return str;
    }

    //initialization of certificate from the store
    Certificate cert = store.getCertificate(aliasKey);
    certificate = cert.toString().getBytes();

po tym wysyłam certyfikat do portletu, gdzie muszę zweryfikować znak. Ale konwersja certyfikatu nie powiodła się.

kod portletu:

String certificate = request.getParameter("cert");
byte[] cert_array = Base64.decode(certificate.getBytes());
try {
    cert = CertificateFactory.getInstance("X509").generateCertificate(new ByteArrayInputStream(cert_array));
}catch(Exception e){
    e.printStackTrace();
}

W tym momencie, w bloku try, wyjątek jest podniesiony

questionAnswers(2)

yourAnswerToTheQuestion