2

新しい証明書を作成しようとすると、次の例外が発生します。

java.security.cert.CertificateParsingException: 署名付きオーバーラン、バイト = 224

    try
    {
        InputStream certificateStream = new ByteArrayInputStream(certificate);
        CertificateFactory cf = CertificateFactory.getInstance("X.509");
        Collection certificateCollection = cf.generateCertificates(certificateStream);
    }
    catch (CertificateException ex)
    {

    }

例外がスローされます: Collection certificateCollection = cf.generateCertificates(certificateStream);

誰かがこの問題を理解して解決するのを手伝ってくれますか?

ありがとう

4

2 に答える 2

1

これは、コードに基づいた適切に機能する例です。を使用しFileInputStreamます。ByteArrayを使用する場合は、その中のデータに注意してください。

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Collection;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.security.cert.CertificateException;
import java.io.FileNotFoundException;

public class StackOverflow {

    public static void main(String[] args) throws FileNotFoundException, CertificateException {
        InputStream certificateStream = new FileInputStream("stackoverflow.cert");
        CertificateFactory cf = CertificateFactory.getInstance("X.509");
        Collection certificateCollection = cf.generateCertificates(certificateStream);
    }
}
于 2012-08-14T20:55:32.080 に答える
0

わかりました、私の間違いです。

ファイルから証明書を読みましたが、バイナリとして読みませんでした...

バイナリとして読み取ることで、この問題は解決しました。

すべての回答/コメントに感謝します!

于 2012-08-14T22:50:55.940 に答える