diff options
Diffstat (limited to 'libjava/classpath/gnu/java/security/der/DERWriter.java')
| -rw-r--r-- | libjava/classpath/gnu/java/security/der/DERWriter.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libjava/classpath/gnu/java/security/der/DERWriter.java b/libjava/classpath/gnu/java/security/der/DERWriter.java index 78524fc949f..0c26336053c 100644 --- a/libjava/classpath/gnu/java/security/der/DERWriter.java +++ b/libjava/classpath/gnu/java/security/der/DERWriter.java @@ -84,6 +84,12 @@ public class DERWriter implements DER public static int write(OutputStream out, DERValue object) throws IOException { + if (DER.CONSTRUCTED_VALUE.equals (object.getValue ())) + { + out.write (object.getEncoded ()); + return object.getLength (); + } + out.write(object.getExternalTag()); Object value = object.getValue(); if (value == null) @@ -216,10 +222,10 @@ public class DERWriter implements DER throws IOException { byte[] buf = bs.getShiftedByteArray(); - out.write(buf.length + 1); + writeLength(out, buf.length + 1); out.write(bs.getIgnoredBits()); out.write(buf); - return buf.length; + return buf.length + 1; } private static int writeString(OutputStream out, int tag, String str) |

