Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem bei Zertifikatserstellung

0 views
Skip to first unread message

Lars Schmidt

unread,
Mar 2, 2007, 5:04:16 AM3/2/07
to
In einer Oracle-Datenbank sind Zertifikate abgelegt. Wenn ich ein
einzelnes Zertifikat mittels

InputStream blobStream =
((OracleResultSet)rs).getBLOB(1).binaryStreamValue();

auslese, dann führt der Aufruf von

final CertificateFactory factory =
CertificateFactory.getInstance("X.509");
X509Certificate cert =
(java.security.cert.X509Certificate)factory.generateCertificate(blobStream);

zu folgendem Fehler

java.security.cert.CertificateException: Unable to initialize,
java.io.IOException: insufficient data
at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:300)
at
sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104)
at
java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:389)
at de.osci.helper.Tools.createCertificate(Tools.java:81)
at de.thueringen.tlrz.Clearingstelle.VDIntern.getCert(VDIntern.java:328)
at de.thueringen.tlrz.Clearingstelle.Test.CertTest.main(CertTest.java:54)
Caused by: java.io.IOException: insufficient data
at sun.security.util.DerInputBuffer.truncate(DerInputBuffer.java:108)
at sun.security.util.DerValue.<init>(DerValue.java:261)
at sun.security.util.DerInputStream.getDerValue(DerInputStream.java:386)
at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1657)
at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:297)

Wenn ich allerdings die Zertifikatsdatei über das Dateisystem mittels
eines FileInputStream einlese, dann läuft das Programm fehlerfrei. Wo
liegt der Fehler?

Lars

Bernd 'Nexos' Dutkowski

unread,
Mar 2, 2007, 6:40:23 AM3/2/07
to
Lars Schmidt schrieb:

Es gab da mal nen Bug im Oracle-JDBC-Treiber, der die maximal Grösse der
Blobs auf 4 oder 8 kbyte beschränkte. Eventuell liegt es ja daran,
ansonsten würde ein kleiner Test Klarheit schaffen: Cert aus File in DB,
unter neuer Transaktion Cert aus DB in ein neues File schreiben, die
zwei Files Byteweise vergleichen.

bernd

signature.asc
0 new messages