[kaffe] CVS kaffe (robilad): Resynced with GNU Classpath: gnu
classpath debugging logger
Kaffe CVS
cvs-commits at kaffe.org
Sat Jul 16 14:24:17 PDT 2005
PatchSet 6736
Date: 2005/07/16 21:19:11
Author: robilad
Branch: HEAD
Tag: (none)
Log:
Resynced with GNU Classpath: gnu classpath debugging logger
2005-07-16 Dalibor Topic <robilad at kaffe.org>
* Resynced with GNU Classpath.
2005-07-10 Casey Marshall <csm at gnu.org>
* gnu/classpath/debug/Component.java: new file.
* gnu/classpath/debug/PreciseFilter.java: new file.
* gnu/classpath/debug/SystemLogger.java: new file.
* gnu/java/security/x509/X509Certificate.java
(DEBUG, debug, debug): removed.
(logger): new constant; use 'logger' with 'Component.X509'
for debug messages throughout.
(parse): always read the next DER value after reading the
version-specific values.
Members:
ChangeLog:1.4260->1.4261
libraries/javalib/Makefile.am:1.373->1.374
libraries/javalib/Makefile.in:1.463->1.464
libraries/javalib/all.files:1.144->1.145
libraries/javalib/gnu/classpath/debug/Component.java:INITIAL->1.1
libraries/javalib/gnu/classpath/debug/PreciseFilter.java:INITIAL->1.1
libraries/javalib/gnu/classpath/debug/SystemLogger.java:INITIAL->1.1
libraries/javalib/gnu/java/security/x509/X509Certificate.java:1.6->1.7
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4260 kaffe/ChangeLog:1.4261
--- kaffe/ChangeLog:1.4260 Fri Jul 15 15:39:16 2005
+++ kaffe/ChangeLog Sat Jul 16 21:19:11 2005
@@ -1,3 +1,19 @@
+2005-07-16 Dalibor Topic <robilad at kaffe.org>
+
+ * Resynced with GNU Classpath.
+
+ 2005-07-10 Casey Marshall <csm at gnu.org>
+
+ * gnu/classpath/debug/Component.java: new file.
+ * gnu/classpath/debug/PreciseFilter.java: new file.
+ * gnu/classpath/debug/SystemLogger.java: new file.
+ * gnu/java/security/x509/X509Certificate.java
+ (DEBUG, debug, debug): removed.
+ (logger): new constant; use 'logger' with 'Component.X509'
+ for debug messages throughout.
+ (parse): always read the next DER value after reading the
+ version-specific values.
+
2005-07-15 Guilhem Lavaux <guilhem at kaffe.org>
* config/i386/solaris2/jit3-md.h: Enabled JIT3 on solaris/x86.
Index: kaffe/libraries/javalib/Makefile.am
diff -u kaffe/libraries/javalib/Makefile.am:1.373 kaffe/libraries/javalib/Makefile.am:1.374
--- kaffe/libraries/javalib/Makefile.am:1.373 Sun Jul 10 02:11:32 2005
+++ kaffe/libraries/javalib/Makefile.am Sat Jul 16 21:19:15 2005
@@ -62,6 +62,7 @@
$(gnu_CORBA_Poa_SRCS) \
$(gnu_bytecode_SRCS) \
$(gnu_classpath_SRCS) \
+ $(gnu_classpath_debug_SRCS) \
$(gnu_classpath_tools_SRCS) \
$(gnu_classpath_tools_javap_SRCS) \
$(gnu_classpath_tools_native2ascii_SRCS) \
@@ -535,6 +536,10 @@
gnu/classpath/SystemProperties.java \
gnu/classpath/VMStackWalker.java \
gnu/classpath/VMSystemProperties.java
+gnu_classpath_debug_SRCS = \
+ gnu/classpath/debug/Component.java \
+ gnu/classpath/debug/PreciseFilter.java \
+ gnu/classpath/debug/SystemLogger.java
gnu_classpath_tools_SRCS = \
gnu/classpath/tools/Util.java
gnu_classpath_tools_javap_SRCS = \
Index: kaffe/libraries/javalib/Makefile.in
diff -u kaffe/libraries/javalib/Makefile.in:1.463 kaffe/libraries/javalib/Makefile.in:1.464
--- kaffe/libraries/javalib/Makefile.in:1.463 Sun Jul 10 02:11:33 2005
+++ kaffe/libraries/javalib/Makefile.in Sat Jul 16 21:19:15 2005
@@ -417,6 +417,7 @@
$(gnu_CORBA_Poa_SRCS) \
$(gnu_bytecode_SRCS) \
$(gnu_classpath_SRCS) \
+ $(gnu_classpath_debug_SRCS) \
$(gnu_classpath_tools_SRCS) \
$(gnu_classpath_tools_javap_SRCS) \
$(gnu_classpath_tools_native2ascii_SRCS) \
@@ -901,6 +902,11 @@
gnu/classpath/SystemProperties.java \
gnu/classpath/VMStackWalker.java \
gnu/classpath/VMSystemProperties.java
+
+gnu_classpath_debug_SRCS = \
+ gnu/classpath/debug/Component.java \
+ gnu/classpath/debug/PreciseFilter.java \
+ gnu/classpath/debug/SystemLogger.java
gnu_classpath_tools_SRCS = \
gnu/classpath/tools/Util.java
Index: kaffe/libraries/javalib/all.files
diff -u kaffe/libraries/javalib/all.files:1.144 kaffe/libraries/javalib/all.files:1.145
--- kaffe/libraries/javalib/all.files:1.144 Sun Jul 10 02:11:36 2005
+++ kaffe/libraries/javalib/all.files Sat Jul 16 21:19:16 2005
@@ -154,6 +154,9 @@
gnu/classpath/SystemProperties.java
gnu/classpath/VMStackWalker.java
gnu/classpath/VMSystemProperties.java
+gnu/classpath/debug/Component.java
+gnu/classpath/debug/PreciseFilter.java
+gnu/classpath/debug/SystemLogger.java
gnu/classpath/tools/Util.java
gnu/classpath/tools/javap/GnuByteCodeJavap.java
gnu/classpath/tools/javap/Javap.java
===================================================================
Checking out kaffe/libraries/javalib/gnu/classpath/debug/Component.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/gnu/classpath/debug/Component.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/gnu/classpath/debug/Component.java Sat Jul 16 21:24:16 2005
@@ -0,0 +1,159 @@
+/* Component.java -- a component log level.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is a part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under terms
+of your choice, provided that you also meet, for each linked independent
+module, the terms and conditions of the license of that module. An
+independent module is a module which is not derived from or based on
+this library. If you modify this library, you may extend this exception
+to your version of the library, but you are not obligated to do so. If
+you do not wish to do so, delete this exception statement from your
+version. */
+
+
+package gnu.classpath.debug;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.logging.Level;
+
+public final class Component extends Level
+{
+
+ /*
+ * HOW TO ADD NEW COMPONENTS:
+ *
+ * If you want to add a new, simple component, that you will use in
+ * logging statements, simply create a new class variable that
+ * instantiates this class, and choose an appropriate string name
+ * and a integer constant not used by any other component level.
+ *
+ * For example, if my component had to do with 'frobbing', I would
+ * add this entry below:
+ *
+ * private static final Component FROBBING = new Component ("FROBBING", 7);
+ *
+ * Then, I would update the component 'EVERYTHING' to have and end
+ * index ONE GREATER THAN the index of the new component.
+ *
+ * ADDING NEW COMPONENT CLASSES:
+ *
+ * A "component class" is a run of more than one component, which can
+ * be enabled all at once. EVERYTHING and SSL are examples of component
+ * classes. To add a new class, create a new component with a start index
+ * equal to the index of the first member component, and with an end
+ * index equal to the index of the last member component plus one.
+ */
+
+ /**
+ * Signifies that everything should be logged. This should be used to
+ * enable or disable levels only; logging code should not use it.
+ */
+ public static final Component EVERYTHING = new Component ("*", 0, 7);
+
+ /**
+ * Signifies that all SSL related messages should be logged. This should
+ * be used to enable or disable levels only; logging code should not use
+ * it.
+ */
+ public static final Component SSL = new Component ("SSL", 0, 5);
+
+ /**
+ * Traces the progression of an SSL handshake.
+ */
+ public static final Component SSL_HANDSHAKE = new Component ("SSL HANDSHAKE", 0);
+
+ /**
+ * Traces the application messages during SSL communications.
+ */
+ public static final Component SSL_APPLICATION = new Component ("SSL APPLICATION", 1);
+
+ /**
+ * Trace details about the SSL key exchange.
+ */
+ public static final Component SSL_KEY_EXCHANGE = new Component ("SSL KEY EXCHANGE", 2);
+
+ /* Indices 3 and 4 reserved for future use by SSL components. */
+
+ /**
+ * Trace the operation of cryptographic primitives.
+ */
+ public static final Component CRYPTO = new Component ("CRYPTO", 5);
+
+ /**
+ * Trace the parsing of X.509 certificates and related objects.
+ */
+ public static final Component X509 = new Component ("X.509", 6);
+
+ private final int startIndex;
+ private final int endIndex;
+
+ private Component (final String name, final int bitIndex)
+ {
+ this (name, bitIndex, bitIndex + 1);
+ }
+
+ private Component (final String name, final int startIndex, final int endIndex)
+ {
+ super (name, Level.FINE.intValue ());
+ this.startIndex = startIndex;
+ this.endIndex = endIndex;
+ }
+
+ /**
+ * Return the component for the given name.
+ *
+ * @param name The name of the component to get.
+ * @return The named component, or null if there is no such component.
+ */
+ public static Component forName (final String name)
+ {
+ try
+ {
+ Field f = Component.class.getField (name.toUpperCase ());
+ if (!Modifier.isStatic (f.getModifiers ())
+ || Component.class.isAssignableFrom (f.getClass ()))
+ return null;
+ return (Component) f.get (null);
+ }
+ catch (Throwable _)
+ {
+ return null;
+ }
+ }
+
+ public int startIndex ()
+ {
+ return startIndex;
+ }
+
+ public int endIndex ()
+ {
+ return endIndex;
+ }
+}
\ No newline at end of file
===================================================================
Checking out kaffe/libraries/javalib/gnu/classpath/debug/PreciseFilter.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/gnu/classpath/debug/PreciseFilter.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/gnu/classpath/debug/PreciseFilter.java Sat Jul 16 21:24:17 2005
@@ -0,0 +1,105 @@
+/* PreciseFilter.java -- filter log messages by precise level.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is a part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under terms
+of your choice, provided that you also meet, for each linked independent
+module, the terms and conditions of the license of that module. An
+independent module is a module which is not derived from or based on
+this library. If you modify this library, you may extend this exception
+to your version of the library, but you are not obligated to do so. If
+you do not wish to do so, delete this exception statement from your
+version. */
+
+
+package gnu.classpath.debug;
+
+import java.util.BitSet;
+import java.util.logging.Filter;
+import java.util.logging.LogRecord;
+
+public final class PreciseFilter implements Filter
+{
+
+ /**
+ * The singleton filter instance.
+ */
+ public static final PreciseFilter GLOBAL = new PreciseFilter ();
+
+ private final BitSet enabled;
+
+ private PreciseFilter ()
+ {
+ enabled = new BitSet ();
+ }
+
+ /**
+ * Disable logging of a component.
+ *
+ * @param component The component to disable logging for.
+ * @throws NullPointerException If component is null.
+ */
+ public void disable (final Component component)
+ {
+ enabled.clear (component.startIndex (), component.endIndex ());
+ }
+
+ /**
+ * Enable logging of a component.
+ *
+ * @param component The component to enable logging for.
+ * @throws NullPointerException If component is null.
+ */
+ public void enable (final Component component)
+ {
+ enabled.set (component.startIndex (), component.endIndex ());
+ }
+
+ /**
+ * Tell if a component is enabled for logging.
+ *
+ * @param component The component to test.
+ * @return True iff the specified component is enabled for logging.
+ * @throws NullPointerException If component is null.
+ */
+ public boolean isEnabled (final Component component)
+ {
+ return (enabled.get (component.startIndex ()));
+ }
+
+ public boolean isLoggable (final LogRecord record)
+ {
+ try
+ {
+ return isEnabled ((Component) record.getLevel ());
+ }
+ catch (ClassCastException cce)
+ {
+ return true;
+ }
+ }
+}
\ No newline at end of file
===================================================================
Checking out kaffe/libraries/javalib/gnu/classpath/debug/SystemLogger.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/gnu/classpath/debug/SystemLogger.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/gnu/classpath/debug/SystemLogger.java Sat Jul 16 21:24:17 2005
@@ -0,0 +1,71 @@
+/* SystemLogger.java -- Classpath's system debugging logger.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is a part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under terms
+of your choice, provided that you also meet, for each linked independent
+module, the terms and conditions of the license of that module. An
+independent module is a module which is not derived from or based on
+this library. If you modify this library, you may extend this exception
+to your version of the library, but you are not obligated to do so. If
+you do not wish to do so, delete this exception statement from your
+version. */
+
+
+package gnu.classpath.debug;
+
+import gnu.classpath.SystemProperties;
+import java.util.StringTokenizer;
+import java.util.logging.Logger;
+
+public final class SystemLogger
+{
+ public static final Logger SYSTEM = Logger.getLogger ("gnu.classpath");
+
+ static
+ {
+ SYSTEM.setFilter (PreciseFilter.GLOBAL);
+
+ String defaults = SystemProperties.getProperty ("gnu.classpath.debug.components");
+
+ if (defaults != null)
+ {
+ StringTokenizer tok = new StringTokenizer (defaults, ",");
+ while (tok.hasMoreTokens ())
+ {
+ Component c = Component.forName (tok.nextToken ());
+ if (c != null)
+ PreciseFilter.GLOBAL.enable (c);
+ SYSTEM.log (java.util.logging.Level.INFO, "enabled: {0}", c);
+ }
+ }
+
+ java.util.logging.Handler[] h = SYSTEM.getHandlers ();
+ for (int i = 0; i < h.length; i++)
+ System.out.println (h[i]);
+ }
+}
Index: kaffe/libraries/javalib/gnu/java/security/x509/X509Certificate.java
diff -u kaffe/libraries/javalib/gnu/java/security/x509/X509Certificate.java:1.6 kaffe/libraries/javalib/gnu/java/security/x509/X509Certificate.java:1.7
--- kaffe/libraries/javalib/gnu/java/security/x509/X509Certificate.java:1.6 Mon Jul 4 00:05:41 2005
+++ kaffe/libraries/javalib/gnu/java/security/x509/X509Certificate.java Sat Jul 16 21:19:17 2005
@@ -38,6 +38,9 @@
package gnu.java.security.x509;
+import gnu.classpath.debug.Component;
+import gnu.classpath.debug.SystemLogger;
+
import gnu.java.security.OID;
import gnu.java.security.der.BitString;
import gnu.java.security.der.DER;
@@ -86,6 +89,9 @@
import java.util.Map;
import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
import javax.security.auth.x500.X500Principal;
/**
@@ -100,23 +106,7 @@
// Constants and fields.
// ------------------------------------------------------------------------
- private static final boolean DEBUG = false;
- private static void debug(String msg)
- {
- if (DEBUG)
- {
- System.err.print(">> X509Certificate: ");
- System.err.println(msg);
- }
- }
- private static void debug(Throwable t)
- {
- if (DEBUG)
- {
- System.err.print(">> X509Certificate: ");
- t.printStackTrace();
- }
- }
+ private static final Logger logger = SystemLogger.SYSTEM;
protected static final OID ID_DSA = new OID ("1.2.840.10040.4.1");
protected static final OID ID_DSA_WITH_SHA1 = new OID ("1.2.840.10040.4.3");
@@ -177,12 +167,12 @@
}
catch (IOException ioe)
{
- debug(ioe);
+ logger.log (Component.X509, "", ioe);
throw ioe;
}
catch (Exception e)
{
- debug(e);
+ logger.log (Component.X509, "", e);
CertificateException ce = new CertificateException(e.getMessage());
ce.initCause (e);
throw ce;
@@ -543,7 +533,8 @@
private void doVerify(Signature sig, PublicKey key)
throws CertificateException, InvalidKeyException, SignatureException
{
- debug("verifying sig=" + sig + " key=" + key);
+ logger.log (Component.X509, "verifying sig={0} key={1}",
+ new Object[] { sig, key });
sig.initVerify(key);
sig.update(tbsCertBytes);
if (!sig.verify(signature))
@@ -563,7 +554,8 @@
// Certificate ::= SEQUENCE {
DERValue cert = der.read();
- debug("start Certificate len == " + cert.getLength());
+ logger.log (Component.X509, "start Certificate len == {0}",
+ new Integer (cert.getLength()));
this.encoded = cert.getEncoded();
if (!cert.isConstructed())
@@ -578,7 +570,8 @@
throw new IOException("malformed TBSCertificate");
}
tbsCertBytes = tbsCert.getEncoded();
- debug("start TBSCertificate len == " + tbsCert.getLength());
+ logger.log (Component.X509, "start TBSCertificate len == {0}",
+ new Integer (tbsCert.getLength()));
// Version ::= INTEGER [0] { v1(0), v2(1), v3(2) }
DERValue val = der.read();
@@ -591,11 +584,12 @@
{
version = 1;
}
- debug("read version == " + version);
+ logger.log (Component.X509, "read version == {0}",
+ new Integer (version));
// SerialNumber ::= INTEGER
serialNo = (BigInteger) val.getValue();
- debug("read serial number == " + serialNo);
+ logger.log (Component.X509, "read serial number == {0}", serialNo);
// AlgorithmIdentifier ::= SEQUENCE {
val = der.read();
@@ -604,12 +598,13 @@
throw new IOException("malformed AlgorithmIdentifier");
}
int certAlgLen = val.getLength();
- debug("start AlgorithmIdentifier len == " + certAlgLen);
+ logger.log (Component.X509, "start AlgorithmIdentifier len == {0}",
+ new Integer (certAlgLen));
val = der.read();
// algorithm OBJECT IDENTIFIER,
algId = (OID) val.getValue();
- debug("read algorithm ID == " + algId);
+ logger.log (Component.X509, "read algorithm ID == {0}", algId);
// parameters ANY DEFINED BY algorithm OPTIONAL }
if (certAlgLen > val.getEncodedLength())
@@ -622,18 +617,18 @@
else
{
algVal = val.getEncoded();
-
- if (val.isConstructed())
- encoded.skip(val.getLength());
+
+ if (val.isConstructed())
+ encoded.skip(val.getLength());
}
- debug("read algorithm parameters == " + algVal);
+ logger.log (Component.X509, "read algorithm parameters == {0}", algVal);
}
// issuer Name,
val = der.read();
issuer = new X500DistinguishedName(val.getEncoded());
der.skip(val.getLength());
- debug("read issuer == " + issuer);
+ logger.log (Component.X509, "read issuer == {0}", issuer);
// Validity ::= SEQUENCE {
// notBefore Time,
@@ -643,15 +638,15 @@
throw new IOException("malformed Validity");
}
notBefore = (Date) der.read().getValue();
+ logger.log (Component.X509, "read notBefore == {0}", notBefore);
notAfter = (Date) der.read().getValue();
- debug("read notBefore == " + notBefore);
- debug("read notAfter == " + notAfter);
+ logger.log (Component.X509, "read notAfter == {0}", notAfter);
// subject Name,
val = der.read();
subject = new X500DistinguishedName(val.getEncoded());
der.skip(val.getLength());
- debug("read subject == " + subject);
+ logger.log (Component.X509, "read subject == {0}", subject);
// SubjectPublicKeyInfo ::= SEQUENCE {
// algorithm AlgorithmIdentifier,
@@ -664,7 +659,7 @@
KeyFactory spkFac = KeyFactory.getInstance("X.509");
subjectKey = spkFac.generatePublic(new X509EncodedKeySpec(spki.getEncoded()));
der.skip(spki.getLength());
- debug("read subjectPublicKey == " + subjectKey);
+ logger.log (Component.X509, "read subjectPublicKey == {0}", subjectKey);
if (version > 1)
{
@@ -674,43 +669,50 @@
{
byte[] b = (byte[]) val.getValue();
issuerUniqueId = new BitString(b, 1, b.length-1, b[0] & 0xFF);
- debug("read issuerUniqueId == " + issuerUniqueId);
+ logger.log (Component.X509, "read issuerUniqueId == {0}", issuerUniqueId);
val = der.read();
}
if (version >= 2 && val.getTagClass() != DER.UNIVERSAL && val.getTag() == 2)
{
byte[] b = (byte[]) val.getValue();
subjectUniqueId = new BitString(b, 1, b.length-1, b[0] & 0xFF);
- debug("read subjectUniqueId == " + subjectUniqueId);
+ logger.log (Component.X509, "read subjectUniqueId == {0}", subjectUniqueId);
val = der.read();
}
if (version >= 3 && val.getTagClass() != DER.UNIVERSAL && val.getTag() == 3)
{
val = der.read();
- debug("start Extensions len == " + val.getLength());
+ logger.log (Component.X509, "start Extensions len == {0}",
+ new Integer (val.getLength()));
int len = 0;
while (len < val.getLength())
{
DERValue ext = der.read();
- debug("start extension len == " + ext.getLength());
+ logger.log (Component.X509, "start extension len == {0}",
+ new Integer (ext.getLength()));
Extension e = new Extension(ext.getEncoded());
extensions.put(e.getOid(), e);
der.skip(ext.getLength());
len += ext.getEncodedLength();
- debug("count == " + len);
+ logger.log (Component.X509, "read extension {0} == {1}",
+ new Object[] { e.getOid (), e });
+ logger.log (Component.X509, "count == {0}", new Integer (len));
}
+
+ val = der.read ();
}
- val = der.read();
+ logger.log (Component.X509, "read value {0}", val);
if (!val.isConstructed())
{
- throw new IOException("malformed AlgorithmIdentifier");
+ throw new CertificateException ("malformed AlgorithmIdentifier");
}
int sigAlgLen = val.getLength();
- debug("start AlgorithmIdentifier len == " + sigAlgLen);
+ logger.log (Component.X509, "start AlgorithmIdentifier len == {0}",
+ new Integer (sigAlgLen));
val = der.read();
sigAlgId = (OID) val.getValue();
- debug("read algorithm id == " + sigAlgId);
+ logger.log (Component.X509, "read algorithm id == {0}", sigAlgId);
if (sigAlgLen > val.getEncodedLength())
{
val = der.read();
@@ -735,9 +737,9 @@
{
encoded.skip(val.getLength());
}
- debug("read parameters == " + sigAlgVal);
+ logger.log (Component.X509, "read parameters == {0}", sigAlgVal);
}
signature = ((BitString) der.read().getValue()).toByteArray();
- debug("read signature ==\n" + Util.hexDump(signature, ">>>> "));
+ logger.log (Component.X509, "read signature ==\n{0}", Util.hexDump(signature, ">>>> "));
}
}
More information about the kaffe
mailing list