jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java
changeset 73 cf334423502b
parent 2 90ce3da70b43
child 5506 202f599c92aa
--- a/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	Tue Mar 04 17:09:09 2008 +0000
+++ b/jdk/src/share/classes/sun/security/krb5/internal/KRBCred.java	Wed Mar 05 09:52:50 2008 +0800
@@ -56,128 +56,134 @@
  * <a href="http://www.ietf.org/rfc/rfc4120.txt">
  * http://www.ietf.org/rfc/rfc4120.txt</a>.
  */
+public class KRBCred {
 
-public class KRBCred {
-        public Ticket[] tickets = null;
-        public EncryptedData encPart;
-
-        private int pvno;
-        private int msgType;
+    public Ticket[] tickets = null;
+    public EncryptedData encPart;
+    private int pvno;
+    private int msgType;
 
-        public KRBCred(Ticket[] new_tickets, EncryptedData new_encPart) throws IOException {
-                pvno = Krb5.PVNO;
-                msgType = Krb5.KRB_CRED;
-                if (new_tickets != null) {
-                    tickets = new Ticket[new_tickets.length];
-                    for (int i = 0; i < new_tickets.length; i++) {
-                        if (new_tickets[i] == null) {
-                            throw new IOException("Cannot create a KRBCred");
-                        } else {
-                            tickets[i] = (Ticket)new_tickets[i].clone();
-                        }
-                    }
+    public KRBCred(Ticket[] new_tickets, EncryptedData new_encPart) throws IOException {
+        pvno = Krb5.PVNO;
+        msgType = Krb5.KRB_CRED;
+        if (new_tickets != null) {
+            tickets = new Ticket[new_tickets.length];
+            for (int i = 0; i < new_tickets.length; i++) {
+                if (new_tickets[i] == null) {
+                    throw new IOException("Cannot create a KRBCred");
+                } else {
+                    tickets[i] = (Ticket) new_tickets[i].clone();
                 }
-                encPart = new_encPart;
+            }
         }
+        encPart = new_encPart;
+    }
 
-        public KRBCred(byte[] data) throws Asn1Exception,
-                RealmException, KrbApErrException, IOException {
-                init(new DerValue(data));
-        }
+    public KRBCred(byte[] data) throws Asn1Exception,
+            RealmException, KrbApErrException, IOException {
+        init(new DerValue(data));
+    }
 
-        public KRBCred(DerValue encoding) throws Asn1Exception,
-                RealmException, KrbApErrException, IOException {
-                init(encoding);
-        }
+    public KRBCred(DerValue encoding) throws Asn1Exception,
+            RealmException, KrbApErrException, IOException {
+        init(encoding);
+    }
 
-        /**
-         * Initializes an KRBCred object.
-         * @param encoding a single DER-encoded value.
-         * @exception Asn1Exception if an error occurs while decoding an ASN1 encoded data.
-         * @exception IOException if an I/O error occurs while reading encoded data.
-         * @exception KrbApErrException if the value read from the DER-encoded data
-         *  stream does not match the pre-defined value.
-         * @exception RealmException if an error occurs while parsing a Realm object.
-         */
-        private void init(DerValue encoding) throws Asn1Exception,
-                RealmException, KrbApErrException, IOException {
-        if (((encoding.getTag() & (byte)0x1F) != (byte)0x16)
-                        || (encoding.isApplication() != true)
-                        || (encoding.isConstructed() != true))
-                        throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+    /**
+     * Initializes an KRBCred object.
+     * @param encoding a single DER-encoded value.
+     * @exception Asn1Exception if an error occurs while decoding an ASN1 encoded data.
+     * @exception IOException if an I/O error occurs while reading encoded data.
+     * @exception KrbApErrException if the value read from the DER-encoded data
+     *  stream does not match the pre-defined value.
+     * @exception RealmException if an error occurs while parsing a Realm object.
+     */
+    private void init(DerValue encoding) throws Asn1Exception,
+            RealmException, KrbApErrException, IOException {
+        if (((encoding.getTag() & (byte) 0x1F) != (byte) 0x16)
+                || (encoding.isApplication() != true)
+                || (encoding.isConstructed() != true)) {
+            throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+        }
         DerValue der, subDer;
-                der = encoding.getData().getDerValue();
-                if (der.getTag() != DerValue.tag_Sequence)
-                        throw new Asn1Exception(Krb5.ASN1_BAD_ID);
-                subDer = der.getData().getDerValue();
-            if ((subDer.getTag() & 0x1F) == 0x00) {
-                        pvno = subDer.getData().getBigInteger().intValue();
-                        if (pvno != Krb5.PVNO) {
+        der = encoding.getData().getDerValue();
+        if (der.getTag() != DerValue.tag_Sequence) {
+            throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+        }
+        subDer = der.getData().getDerValue();
+        if ((subDer.getTag() & 0x1F) == 0x00) {
+            pvno = subDer.getData().getBigInteger().intValue();
+            if (pvno != Krb5.PVNO) {
                 throw new KrbApErrException(Krb5.KRB_AP_ERR_BADVERSION);
-                        }
-                }
-        else
-                        throw new Asn1Exception(Krb5.ASN1_BAD_ID);
-                subDer = der.getData().getDerValue();
-                if ((subDer.getTag() & 0x1F) == 0x01) {
-                        msgType = subDer.getData().getBigInteger().intValue();
-            if (msgType != Krb5.KRB_CRED)
+            }
+        } else {
+            throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+        }
+        subDer = der.getData().getDerValue();
+        if ((subDer.getTag() & 0x1F) == 0x01) {
+            msgType = subDer.getData().getBigInteger().intValue();
+            if (msgType != Krb5.KRB_CRED) {
                 throw new KrbApErrException(Krb5.KRB_AP_ERR_MSG_TYPE);
-                }
-                else
-                        throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+            }
+        } else {
+            throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+        }
         subDer = der.getData().getDerValue();
-                if ((subDer.getTag() & 0x1F) == 0x02) {
-                        DerValue subsubDer = subDer.getData().getDerValue();
+        if ((subDer.getTag() & 0x1F) == 0x02) {
+            DerValue subsubDer = subDer.getData().getDerValue();
             if (subsubDer.getTag() != DerValue.tag_SequenceOf) {
-                                throw new Asn1Exception(Krb5.ASN1_BAD_ID);
-                        }
-            Vector<Ticket> v = new Vector<Ticket> ();
+                throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+            }
+            Vector<Ticket> v = new Vector<Ticket>();
             while (subsubDer.getData().available() > 0) {
-                                v.addElement(new Ticket(subsubDer.getData().getDerValue()));
-                        }
+                v.addElement(new Ticket(subsubDer.getData().getDerValue()));
+            }
             if (v.size() > 0) {
-                                tickets = new Ticket[v.size()];
-                                v.copyInto(tickets);
-                        }
-                }
-                else
-                        throw new Asn1Exception(Krb5.ASN1_BAD_ID);
-                encPart = EncryptedData.parse(der.getData(), (byte)0x03, false);
+                tickets = new Ticket[v.size()];
+                v.copyInto(tickets);
+            }
+        } else {
+            throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+        }
+        encPart = EncryptedData.parse(der.getData(), (byte) 0x03, false);
 
-                if (der.getData().available() > 0)
-                        throw new Asn1Exception(Krb5.ASN1_BAD_ID);
+        if (der.getData().available() > 0) {
+            throw new Asn1Exception(Krb5.ASN1_BAD_ID);
         }
-
+    }
 
-        /**
-         * Encodes an KRBCred object.
-         * @return the data of encoded EncAPRepPart object.
-         * @exception Asn1Exception if an error occurs while decoding an ASN1 encoded data.
-         * @exception IOException if an I/O error occurs while reading encoded data.
-         */
-        public byte[] asn1Encode() throws Asn1Exception, IOException {
+    /**
+     * Encodes an KRBCred object.
+     * @return the data of encoded EncAPRepPart object.
+     * @exception Asn1Exception if an error occurs while decoding an ASN1 encoded data.
+     * @exception IOException if an I/O error occurs while reading encoded data.
+     */
+    public byte[] asn1Encode() throws Asn1Exception, IOException {
         DerOutputStream temp, bytes, out;
         temp = new DerOutputStream();
         temp.putInteger(BigInteger.valueOf(pvno));
         out = new DerOutputStream();
-        out.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x00), temp);
-                temp = new DerOutputStream();
-                temp.putInteger(BigInteger.valueOf(msgType));
-                out.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), temp);
+        out.write(DerValue.createTag(DerValue.TAG_CONTEXT,
+                true, (byte) 0x00), temp);
         temp = new DerOutputStream();
-                for (int i = 0; i < tickets.length; i++) {
-                        temp.write(tickets[i].asn1Encode());
-                }
+        temp.putInteger(BigInteger.valueOf(msgType));
+        out.write(DerValue.createTag(DerValue.TAG_CONTEXT,
+                true, (byte) 0x01), temp);
+        temp = new DerOutputStream();
+        for (int i = 0; i < tickets.length; i++) {
+            temp.write(tickets[i].asn1Encode());
+        }
         bytes = new DerOutputStream();
         bytes.write(DerValue.tag_SequenceOf, temp);
-        out.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x02), bytes);
-                out.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x03), encPart.asn1Encode());
+        out.write(DerValue.createTag(DerValue.TAG_CONTEXT,
+                true, (byte) 0x02), bytes);
+        out.write(DerValue.createTag(DerValue.TAG_CONTEXT,
+                true, (byte) 0x03), encPart.asn1Encode());
         bytes = new DerOutputStream();
         bytes.write(DerValue.tag_Sequence, out);
-                out = new DerOutputStream();
-                out.write(DerValue.createTag(DerValue.TAG_APPLICATION, true, (byte)0x16), bytes);
-                return out.toByteArray();
-        }
-
+        out = new DerOutputStream();
+        out.write(DerValue.createTag(DerValue.TAG_APPLICATION,
+                true, (byte) 0x16), bytes);
+        return out.toByteArray();
+    }
 }