From d388137c26b4d874d93ab734e642ed987fa831f1 Mon Sep 17 00:00:00 2001 From: Kostas Tsiounis Date: Mon, 8 May 2023 09:34:52 -0400 Subject: [PATCH] Get byte array from DerValue without using InputStream --- .../sun/security/krb5/internal/KDCRep.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCRep.java b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCRep.java index 3e8d86c5e92..70a2c1ee566 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCRep.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCRep.java @@ -138,21 +138,23 @@ protected void init(DerValue encoding, int req_type) " req type is " + req_type); System.out.println(">>> KDCRep: Message in bytes is =>"); - byte[] dataBytes = encoding.getDataBytes(); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < dataBytes.length; i++) { - if ((i % 16) == 0) { - sb.append(String.format("%06X", i)); + byte[] dataBytes = encoding.getData().toByteArray(); + if (dataBytes != null) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < dataBytes.length; i++) { + if ((i % 16) == 0) { + sb.append(String.format("%06X", i)); + } + sb.append(String.format(" %02X", dataBytes[i] & 0xFF)); + if ((i % 16) == 15) { + System.out.println(sb.toString()); + sb.setLength(0); + } } - sb.append(String.format(" %02X", dataBytes[i] & 0xFF)); - if ((i % 16) == 15) { + if (sb.length() > 0) { System.out.println(sb.toString()); - sb.setLength(0); } } - if (sb.length() > 0) { - System.out.println(sb.toString()); - } } throw new Asn1Exception(Krb5.ASN1_BAD_ID); }