/hg/release/icedtea6-1.10: 5 new changesets

andrew at icedtea.classpath.org andrew at icedtea.classpath.org
Fri Aug 31 12:35:12 PDT 2012


changeset 5b164019304c in /hg/release/icedtea6-1.10
details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=5b164019304c
author: Andrew John Hughes <ahughes at redhat.com>
date: Fri Aug 31 17:42:10 2012 +0100

	Backport Kerberos fixes from b24.

	2012-08-31  Andrew John Hughes  <ahughes at redhat.com>

		* Makefile.am: Add patches.
		* NEWS: Update.
		* patches/openjdk/6815182-gssapi_spnego_does_not_work_with_server.patch,
		* patches/openjdk/6979329-ccacheinput_stream_fails_to_read_ticket_cache.patch,
		* patches/openjdk/7110373-krb5_test_infrastructure.patch:
		Backported Kerberos fixes from b24.


changeset bb69c927dd0a in /hg/release/icedtea6-1.10
details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=bb69c927dd0a
author: Andrew John Hughes <ahughes at redhat.com>
date: Fri Aug 31 17:42:59 2012 +0100

	Set to 1.10.9.

	2012-08-31  Andrew John Hughes  <ahughes at redhat.com>

		* configure.ac: Set to 1.10.9


changeset c361d16a9b40 in /hg/release/icedtea6-1.10
details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=c361d16a9b40
author: Andrew John Hughes <ahughes at redhat.com>
date: Fri Aug 31 17:55:31 2012 +0100

	Fix path to sources so make dist works with a relative source directory.

	2012-08-31  Andrew John Hughes  <ahughes at redhat.com>

		* Makefile.am:
		(EXTRA_DIST): Fix path to patches
		when using relative source directory.
		(REWRITER_SRCS): Likewise.


changeset 27cee12e2bc9 in /hg/release/icedtea6-1.10
details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=27cee12e2bc9
author: Andrew John Hughes <ahughes at redhat.com>
date: Fri Aug 31 18:33:53 2012 +0100

	Don't cd into source directory to build class rewriter.

	2012-08-31  Andrew John Hughes  <ahughes at redhat.com>

		* Makefile.am:
		(rewriter.stamp): Don't cd into the directory,
		as this will fail when source directory path
		is not absolute.


changeset 3e99cfa5acbf in /hg/release/icedtea6-1.10
details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=3e99cfa5acbf
author: Andrew John Hughes <ahughes at redhat.com>
date: Fri Aug 31 20:06:44 2012 +0100

	Added tag icedtea6-1.10.9 for changeset 27cee12e2bc9


diffstat:

 .hgtags                                                                     |    1 +
 ChangeLog                                                                   |   27 +
 Makefile.am                                                                 |   15 +-
 NEWS                                                                        |    3 +
 configure.ac                                                                |    2 +-
 patches/openjdk/6815182-gssapi_spnego_does_not_work_with_server.patch       |  206 ++++++
 patches/openjdk/6979329-ccacheinput_stream_fails_to_read_ticket_cache.patch |  326 ++++++++++
 patches/openjdk/7110373-krb5_test_infrastructure.patch                      |  105 +++
 8 files changed, 677 insertions(+), 8 deletions(-)

diffs (truncated from 759 to 500 lines):

diff -r fa657fd33ff2 -r 3e99cfa5acbf .hgtags
--- a/.hgtags	Fri Aug 31 17:07:24 2012 +0100
+++ b/.hgtags	Fri Aug 31 20:06:44 2012 +0100
@@ -33,3 +33,4 @@
 a49670e226cc5e165da2d63758456f2e265f815f icedtea6-1.10.6
 78c05cb3e3c770ebf53babfb4bc825cd059d3b57 icedtea6-1.10.7
 b69d3219265a08e9eea4c47d7acfb32465be6070 icedtea6-1.10.8
+27cee12e2bc9cd27d97d68ea53e1bb005416d4e9 icedtea6-1.10.9
diff -r fa657fd33ff2 -r 3e99cfa5acbf ChangeLog
--- a/ChangeLog	Fri Aug 31 17:07:24 2012 +0100
+++ b/ChangeLog	Fri Aug 31 20:06:44 2012 +0100
@@ -1,3 +1,30 @@
+2012-08-31  Andrew John Hughes  <ahughes at redhat.com>
+
+	* Makefile.am:
+	(rewriter.stamp): Don't cd into the directory,
+	as this will fail when source directory path
+	is not absolute.
+
+2012-08-31  Andrew John Hughes  <ahughes at redhat.com>
+
+	* Makefile.am:
+	(EXTRA_DIST): Fix path to patches
+	when using relative source directory.
+	(REWRITER_SRCS): Likewise.
+
+2012-08-31  Andrew John Hughes  <ahughes at redhat.com>
+
+	* configure.ac: Set to 1.10.9
+
+2012-08-31  Andrew John Hughes  <ahughes at redhat.com>
+
+	* Makefile.am: Add patches.
+	* NEWS: Update.
+	* patches/openjdk/6815182-gssapi_spnego_does_not_work_with_server.patch,
+	* patches/openjdk/6979329-ccacheinput_stream_fails_to_read_ticket_cache.patch,
+	* patches/openjdk/7110373-krb5_test_infrastructure.patch:
+	Backported Kerberos fixes from b24.
+
 2012-08-31  Andrew John Hughes  <ahughes at redhat.com>
 
 	* NEWS: Updated with latest fixes.
diff -r fa657fd33ff2 -r 3e99cfa5acbf Makefile.am
--- a/Makefile.am	Fri Aug 31 17:07:24 2012 +0100
+++ b/Makefile.am	Fri Aug 31 20:06:44 2012 +0100
@@ -179,7 +179,7 @@
 
 # Sources list
 
-REWRITER_SRCS = $(abs_top_srcdir)/rewriter/com/redhat/rewriter/ClassRewriter.java
+REWRITER_SRCS = $(top_srcdir)/rewriter/com/redhat/rewriter/ClassRewriter.java
 
 # Patch list
 
@@ -400,7 +400,10 @@
 	patches/openjdk/7140882-dont-return-booleans-from-methods-returning-pointers.patch \
 	patches/openjdk/remove-mimpure-option-to-gcc.patch \
 	patches/coverage-table.patch \
-	patches/openjdk/7185678-xmenuitem_peer_npe.patch
+	patches/openjdk/7185678-xmenuitem_peer_npe.patch \
+	patches/openjdk/6815182-gssapi_spnego_does_not_work_with_server.patch \
+	patches/openjdk/6979329-ccacheinput_stream_fails_to_read_ticket_cache.patch \
+	patches/openjdk/7110373-krb5_test_infrastructure.patch
 
 if WITH_ALT_HSBUILD
 ICEDTEA_PATCHES += \
@@ -628,7 +631,7 @@
 # FIXME (distclean): Add pulseaudio sources
 
 EXTRA_DIST = generated \
-	$(abs_top_srcdir)/patches/* \
+	$(top_srcdir)/patches/* \
 	contrib arm_port \
 	overlays \
 	jconsole.desktop policytool.desktop \
@@ -1817,10 +1820,8 @@
 stamps/rewriter.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP)
 if WITH_RHINO
 	mkdir -p $(abs_top_builddir)/rewriter.build && \
-	(cd $(abs_top_srcdir)/rewriter ; \
-	 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
-	 -d $(abs_top_builddir)/rewriter.build $(REWRITER_SRCS) \
-	)
+	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
+	 -d $(abs_top_builddir)/rewriter.build $(REWRITER_SRCS)
 endif
 	mkdir -p stamps
 	touch stamps/rewriter.stamp
diff -r fa657fd33ff2 -r 3e99cfa5acbf NEWS
--- a/NEWS	Fri Aug 31 17:07:24 2012 +0100
+++ b/NEWS	Fri Aug 31 20:06:44 2012 +0100
@@ -17,6 +17,9 @@
 * OpenJDK
   - S7182135: Impossible to use some editors directly
   - S7185678: java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java failed with NPE
+  - S6815182: GSSAPI/SPNEGO does not work with server using MIT Kerberos library
+  - S6979329: CCacheInputStream fails to read ticket cache files from Kerberos 1.8.1
+  - S7110373: krb5 test in openjdk6 without test infrastructure
 
 New in release 1.10.8 (2012-06-12):
 
diff -r fa657fd33ff2 -r 3e99cfa5acbf configure.ac
--- a/configure.ac	Fri Aug 31 17:07:24 2012 +0100
+++ b/configure.ac	Fri Aug 31 20:06:44 2012 +0100
@@ -1,4 +1,4 @@
-AC_INIT([icedtea6],[1.10.9pre],[distro-pkg-dev at openjdk.java.net])
+AC_INIT([icedtea6],[1.10.9],[distro-pkg-dev at openjdk.java.net])
 AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
 AC_CONFIG_FILES([Makefile])
 
diff -r fa657fd33ff2 -r 3e99cfa5acbf patches/openjdk/6815182-gssapi_spnego_does_not_work_with_server.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6815182-gssapi_spnego_does_not_work_with_server.patch	Fri Aug 31 20:06:44 2012 +0100
@@ -0,0 +1,206 @@
+# HG changeset patch
+# User weijun
+# Date 1236907256 -28800
+# Node ID d4f7664a6c3ca90e09480ccfea4806e44bc9d967
+# Parent  95ac2f7ddad0b8350d5ea3aed7d7d028c44396ba
+6815182: GSSAPI/SPNEGO does not work with server using MIT Kerberos library
+Reviewed-by: valeriep
+
+diff --git a/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java b/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java
+--- openjdk/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java
++++ openjdk/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -66,11 +66,11 @@
+     private byte[] mechTypes = null;
+     private Oid[] mechTypeList = null;
+ 
+-    private byte[] reqFlags = null;
++    private BitArray reqFlags = null;
+     private byte[] mechToken = null;
+     private byte[] mechListMIC = null;
+ 
+-    NegTokenInit(byte[] mechTypes, byte[] flags,
++    NegTokenInit(byte[] mechTypes, BitArray flags,
+                 byte[] token, byte[] mechListMIC)
+     {
+         super(NEG_TOKEN_INIT_ID);
+@@ -101,7 +101,7 @@
+             // write context flags with CONTEXT 01
+             if (reqFlags != null) {
+                 DerOutputStream flags = new DerOutputStream();
+-                flags.putBitString(reqFlags);
++                flags.putUnalignedBitString(reqFlags);
+                 initToken.write(DerValue.createTag(DerValue.TAG_CONTEXT,
+                                                 true, (byte) 0x01), flags);
+             }
+@@ -237,7 +237,7 @@
+         return mechTypeList;
+     }
+ 
+-    byte[] getReqFlags() {
++    BitArray getReqFlags() {
+         return reqFlags;
+     }
+ 
+diff --git a/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java b/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java
+--- openjdk/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java
++++ openjdk/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -53,13 +53,6 @@
+ 
+     private int state = STATE_NEW;
+ 
+-    private static final int CHECKSUM_DELEG_FLAG    = 1;
+-    private static final int CHECKSUM_MUTUAL_FLAG   = 2;
+-    private static final int CHECKSUM_REPLAY_FLAG   = 4;
+-    private static final int CHECKSUM_SEQUENCE_FLAG = 8;
+-    private static final int CHECKSUM_CONF_FLAG     = 16;
+-    private static final int CHECKSUM_INTEG_FLAG    = 32;
+-
+     /*
+      * Optional features that the application can set and their default
+      * values.
+@@ -700,25 +693,17 @@
+     /**
+      * get the context flags
+      */
+-    private byte[] getContextFlags() {
+-        int flags = 0;
++    private BitArray getContextFlags() {
++        BitArray out = new BitArray(7);
+ 
+-        if (getCredDelegState())
+-            flags |= CHECKSUM_DELEG_FLAG;
+-        if (getMutualAuthState())
+-            flags |= CHECKSUM_MUTUAL_FLAG;
+-        if (getReplayDetState())
+-            flags |= CHECKSUM_REPLAY_FLAG;
+-        if (getSequenceDetState())
+-            flags |= CHECKSUM_SEQUENCE_FLAG;
+-        if (getIntegState())
+-            flags |= CHECKSUM_INTEG_FLAG;
+-        if (getConfState())
+-            flags |= CHECKSUM_CONF_FLAG;
++        if (getCredDelegState()) out.set(0, true);
++        if (getMutualAuthState()) out.set(1, true);
++        if (getReplayDetState()) out.set(2, true);
++        if (getSequenceDetState()) out.set(3, true);
++        if (getConfState()) out.set(5, true);
++        if (getIntegState()) out.set(6, true);
+ 
+-        byte[] temp = new byte[1];
+-        temp[0] = (byte)(flags & 0xff);
+-        return temp;
++        return out;
+     }
+ 
+     private void setContextFlags() {
+diff --git a/test/sun/security/krb5/auto/SpnegoReqFlags.java b/test/sun/security/krb5/auto/SpnegoReqFlags.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/sun/security/krb5/auto/SpnegoReqFlags.java
+@@ -0,0 +1,92 @@
++/*
++ * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code 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
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions. 
++ */
++
++/*
++ * @test
++ * @bug 6815182
++ * @summary GSSAPI/SPNEGO does not work with server using MIT Kerberos library
++ */
++
++import sun.security.jgss.GSSUtil;
++import sun.security.util.BitArray;
++import sun.security.util.DerInputStream;
++import sun.security.util.DerValue;
++
++public class SpnegoReqFlags {
++
++    public static void main(String[] args)
++            throws Exception {
++
++        // Create and start the KDC
++        new OneKDC(null).writeJAASConf();
++        new SpnegoReqFlags().go();
++    }
++
++    void go() throws Exception {
++        Context c = Context.fromJAAS("client");
++        c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_SPNEGO_MECH_OID);
++
++        byte[] token = c.doAs(new Action() {
++            @Override
++            public byte[] run(Context me, byte[] input) throws Exception {
++                me.x().requestCredDeleg(true);
++                me.x().requestReplayDet(false);
++                me.x().requestSequenceDet(false);
++                return me.x().initSecContext(new byte[0], 0, 0);
++            }
++        }, null);
++
++        DerValue d = new DerValue(token);   // GSSToken
++        DerInputStream ins = d.data;        // OID + mech token
++        d.data.getDerValue();               // skip OID
++        d = d.data.getDerValue();           // NegTokenInit
++        d = d.data.getDerValue();           // The SEQUENCE inside
++
++        boolean found = false;
++
++        // Go through all fields inside NegTokenInit. The reqFlags field
++        // is optional. It's even not recommended in RFC 4178.
++        while (d.data.available() > 0) {
++            DerValue d2 = d.data.getDerValue();
++            if (d2.isContextSpecific((byte)1)) {
++                found = true;
++                System.out.println("regFlags field located.");
++                BitArray ba = d2.data.getUnalignedBitString();
++                if (ba.length() != 7) {
++                    throw new Exception("reqFlags should contain 7 bits");
++                }
++                if (!ba.get(0)) {
++                    throw new Exception("delegFlag should be true");
++                }
++                if (ba.get(2) || ba.get(3)) {
++                    throw new Exception("replay/sequenceFlag should be false");
++                }
++            }
++        }
++
++        if (!found) {
++            System.out.println("Warning: regFlags field not found, too new?");
++        }
++        c.dispose();
++    }
++}
diff -r fa657fd33ff2 -r 3e99cfa5acbf patches/openjdk/6979329-ccacheinput_stream_fails_to_read_ticket_cache.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6979329-ccacheinput_stream_fails_to_read_ticket_cache.patch	Fri Aug 31 20:06:44 2012 +0100
@@ -0,0 +1,326 @@
+# HG changeset patch
+# User weijun
+# Date 1290390238 -28800
+# Node ID b139627f7bc3ef57bf7e4a49490783ab9dbfcd95
+# Parent  d4f7664a6c3ca90e09480ccfea4806e44bc9d967
+6979329: CCacheInputStream fails to read ticket cache files from Kerberos 1.8.1
+Reviewed-by: valeriep
+
+diff --git a/src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java b/src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java
+--- openjdk/jdk/src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java
++++ openjdk/jdk/src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java
+@@ -247,16 +247,16 @@
+         else return null;
+     }
+ 
+-    Ticket readData() throws IOException, RealmException, KrbApErrException, Asn1Exception {
++    byte[] readData() throws IOException {
+         int length;
+         length = read(4);
+-        if (length > 0) {
++        if (length == 0) {
++            return null;
++        } else {
+             byte[] bytes = new byte[length];
+             read(bytes, 0, length);
+-            Ticket ticket = new Ticket(bytes);
+-            return ticket;
++            return bytes;
+         }
+-        else return null;
+     }
+ 
+     boolean[] readFlags() throws IOException {
+@@ -325,6 +325,17 @@
+         }
+         return flags;
+     }
++
++    /**
++     * Reads the next cred in stream.
++     * @return the next cred, null if ticket or second_ticket unparseable.
++     *
++     * Note: MIT krb5 1.8.1 might generate a config entry with server principal
++     * X-CACHECONF:/krb5_ccache_conf_data/fast_avail/krbtgt/REALM at REALM. The
++     * entry is used by KDC to inform the client that it support certain
++     * features. Its ticket is not a valid krb5 ticket and thus this method
++     * returns null.
++     */
+     Credentials readCred(int version) throws IOException,RealmException, KrbApErrException, Asn1Exception {
+         PrincipalName cpname = readPrincipal(version);
+         if (DEBUG)
+@@ -360,17 +371,17 @@
+         if (auData != null) {
+             auData = new AuthorizationData(auDataEntry);
+         }
+-        Ticket ticket = readData();
+-        if (DEBUG) {
+-            System.out.println(">>>DEBUG <CCacheInputStream>");
+-            if (ticket == null) {
+-                System.out.println("///ticket is null");
+-            }
++        byte[] ticketData = readData();
++        byte[] ticketData2 = readData();
++
++        try {
++            return new Credentials(cpname, spname, key, authtime, starttime,
++                endtime, renewTill, skey, tFlags,
++                addrs, auData,
++                ticketData != null ? new Ticket(ticketData) : null,
++                ticketData2 != null ? new Ticket(ticketData2) : null);
++        } catch (Exception e) {     // If any of new Ticket(*) fails.
++            return null;
+         }
+-        Ticket secTicket = readData();
+-        Credentials cred = new Credentials(cpname, spname, key, authtime, starttime,
+-                                           endtime, renewTill, skey, tFlags,
+-                                           addrs, auData, ticket, secTicket);
+-        return cred;
+     }
+ }
+diff --git a/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java b/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
+--- openjdk/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
++++ openjdk/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -186,7 +186,10 @@
+         primaryRealm = primaryPrincipal.getRealm();
+         credentialsList = new Vector<Credentials> ();
+         while (cis.available() > 0) {
+-            credentialsList.addElement(cis.readCred(version));
++            Credentials cred = cis.readCred(version);
++            if (cred != null) {
++                credentialsList.addElement(cred);
++            }
+         }
+         cis.close();
+     }
+diff --git a/test/sun/security/krb5/UnknownCCEntry.java b/test/sun/security/krb5/UnknownCCEntry.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/sun/security/krb5/UnknownCCEntry.java
+@@ -0,0 +1,219 @@
++/*
++ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code 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
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions.
++ */
++/*
++ * @test
++ * @bug 6979329
++ * @summary CCacheInputStream fails to read ticket cache files from Kerberos 1.8.1
++ */
++
++import java.io.ByteArrayInputStream;
++import java.io.File;
++import java.io.FileOutputStream;
++import sun.security.krb5.internal.ccache.CCacheInputStream;
++import sun.security.krb5.internal.ccache.CredentialsCache;
++
++public class UnknownCCEntry {
++    public static void main(String[] args) throws Exception {
++        // This is a ccache file generated on a test machine:
++        // Default principal: dummy at MAX.LOCAL
++        // Valid starting     Expires            Service principal
++        // 08/24/10 10:37:28  08/25/10 10:37:28  krbtgt/MAX.LOCAL at MAX.LOCAL
++        // Flags: FI, Etype (skey, tkt): AES-128 CTS mode with 96-bit SHA-1
++        //        HMAC, AES-256 CTS mode with 96-bit SHA-1 HMAC
++        byte[] krb5cc = {
++            (byte)0x05, (byte)0x04, (byte)0x00, (byte)0x0C,
++            (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x08,
++            (byte)0xFF, (byte)0xFF, (byte)0xFF, (byte)0xFA,
++            (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
++            (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01,
++            (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01,
++            (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x09,
++            (byte)0x4D, (byte)0x41, (byte)0x58, (byte)0x2E,
++            (byte)0x4C, (byte)0x4F, (byte)0x43, (byte)0x41,
++            (byte)0x4C, (byte)0x00, (byte)0x00, (byte)0x00,
++            (byte)0x05, (byte)0x64, (byte)0x75, (byte)0x6D,
++            (byte)0x6D, (byte)0x79, (byte)0x00, (byte)0x00,
++            (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x00,
++            (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x00,
++            (byte)0x00, (byte)0x09, (byte)0x4D, (byte)0x41,
++            (byte)0x58, (byte)0x2E, (byte)0x4C, (byte)0x4F,
++            (byte)0x43, (byte)0x41, (byte)0x4C, (byte)0x00,
++            (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x64,
++            (byte)0x75, (byte)0x6D, (byte)0x6D, (byte)0x79,
++            (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
++            (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x02,
++            (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x09,
++            (byte)0x4D, (byte)0x41, (byte)0x58, (byte)0x2E,
++            (byte)0x4C, (byte)0x4F, (byte)0x43, (byte)0x41,
++            (byte)0x4C, (byte)0x00, (byte)0x00, (byte)0x00,
++            (byte)0x06, (byte)0x6B, (byte)0x72, (byte)0x62,



More information about the distro-pkg-dev mailing list