Author: erodriguez
Date: Thu Oct  7 12:41:14 2004
New Revision: 54008

Added:
   
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/ApOptions.java
   
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/KdcOptions.java
   
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/Options.java
   
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/TicketFlags.java
Log:
kerberos options and flags

Added: 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/ApOptions.java
==============================================================================
--- (empty file)
+++ 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/ApOptions.java
    Thu Oct  7 12:41:14 2004
@@ -0,0 +1,56 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.kerberos.messages.value;
+
+public class ApOptions extends Options {
+    // AP Request option - reserved
+       public static final int RESERVED        = 0;
+    // AP Request option - use session key
+       public static final int USE_SESSION_KEY = 1;
+    // AP Request option - mutual authentication required
+       public static final int MUTUAL_REQUIRED = 2;
+       
+    // AP Request option - maximum value
+       public static final int MAX_VALUE       = 32;
+       
+    /**
+     * Class constructors
+     */
+       public ApOptions() {
+               super(MAX_VALUE);
+       }
+       
+       public ApOptions(byte[] options) {
+               super(MAX_VALUE);
+               setBytes(options);
+       }
+       
+       /**
+        * Converts the object to a printable string
+        */
+       public String toString() {
+               StringBuffer result = new StringBuffer();
+               if (get(MUTUAL_REQUIRED))
+                       result.append("MUTUAL_REQUIRED ");
+               if (get(RESERVED))
+                       result.append("RESERVED ");
+               if (get(USE_SESSION_KEY))
+                       result.append("USE_SESSION_KEY ");
+               return result.toString().trim();
+       }
+}
+

Added: 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/KdcOptions.java
==============================================================================
--- (empty file)
+++ 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/KdcOptions.java
   Thu Oct  7 12:41:14 2004
@@ -0,0 +1,108 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.kerberos.messages.value;
+
+public class KdcOptions extends Options {
+    // KDC option - reserved
+       public static final int RESERVED                    = 0;
+    // KDC option - forwardable
+       public static final int FORWARDABLE                 = 1;
+    // KDC option - forwarded
+       public static final int FORWARDED                   = 2;
+    // KDC option - proxiable
+       public static final int PROXIABLE                   = 3;
+    // KDC option - proxy
+       public static final int PROXY                       = 4;
+    // KDC option - allow postdate
+       public static final int ALLOW_POSTDATE              = 5;
+    // KDC option - postdated
+       public static final int POSTDATED                   = 6;
+    // KDC option - unused7
+       public static final int UNUSED7                     = 7;
+    // KDC option - renewable
+       public static final int RENEWABLE                   = 8;
+    // KDC option - unused9
+       public static final int UNUSED9                     = 9;
+    // KDC option - unused10
+       public static final int UNUSED10                    = 10;
+    // KDC option - unused11
+       public static final int UNUSED11                    = 11;
+    // KDC option - unused12
+       public static final int UNUSED12                    = 12;
+    // KDC option - unused13
+       public static final int UNUSED13                    = 13;
+    // KDC option - disable transisted checked
+       public static final int DISABLE_TRANSISTED_CHECKED  = 26;
+    // KDC option - renewable is ok
+       public static final int RENEWABLE_OK                = 27;
+    // KDC option - encrypted key in skey
+       public static final int ENC_TKT_IN_SKEY             = 28;
+    // KDC option - renew
+       public static final int RENEW                       = 30;
+    // KDC option - validate
+       public static final int VALIDATE                    = 31;
+       
+    // KDC option - maximum value
+       public static final int MAX_VALUE                   = 32;
+       
+       /**
+        * Class constructors
+        */
+       public KdcOptions() {
+               super(MAX_VALUE);
+       }
+       
+       public KdcOptions(byte[] bytes) {
+               super(MAX_VALUE);
+               setBytes(bytes);
+       }
+       
+       /**
+        * Converts the object to a printable string
+        */
+       public String toString() {
+               StringBuffer result = new StringBuffer();
+               if (get(ALLOW_POSTDATE))
+                       result.append("ALLOW_POSTDATE ");
+               if (get(DISABLE_TRANSISTED_CHECKED))
+                       result.append("DISABLE_TRANSISTED_CHECKED ");
+               if (get(ENC_TKT_IN_SKEY))
+                       result.append("ENC_TKT_IN_SKEY ");
+               if (get(FORWARDABLE))
+                       result.append("FORWARDABLE ");
+               if (get(FORWARDED))
+                       result.append("FORWARDED ");
+               if (get(POSTDATED))
+                       result.append("POSTDATED ");
+               if (get(PROXIABLE))
+                       result.append("PROXIABLE ");
+               if (get(PROXY))
+                       result.append("PROXY ");
+               if (get(RENEW))
+                       result.append("RENEW ");
+               if (get(RENEWABLE))
+                       result.append("RENEWABLE ");
+               if (get(RENEWABLE_OK))
+                       result.append("RENEWABLE_OK ");
+               if (get(RESERVED))
+                       result.append("RESERVED ");
+               if (get(VALIDATE))
+                       result.append("VALIDATE ");
+               return result.toString().trim();
+       }
+}
+

Added: 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/Options.java
==============================================================================
--- (empty file)
+++ 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/Options.java
      Thu Oct  7 12:41:14 2004
@@ -0,0 +1,74 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.kerberos.messages.value;
+
+import java.util.*;
+
+public abstract class Options {
+       
+       private BitSet _options;
+       private int    _maxSize;
+       
+       protected Options(int maxSize) {
+               _maxSize = maxSize;
+               _options = new BitSet(_maxSize);
+       }
+       
+       public boolean match(Options options, int option) {
+               return options.get(option) == this.get(option);
+       }
+       
+       public boolean get(int index) {
+               return _options.get(index);
+       }
+       
+       public void set(int index) {
+               _options.set(index);
+       }
+       
+       public void clear(int index) {
+               _options.clear(index);
+       }
+       
+       /*
+        * Byte-reversing methods are an anomaly of the BouncyCastle
+        * DERBitString endianness.  Thes methods can be removed if the
+        * Apache Directory Snickers codecs operate differently.
+        */
+    public byte[] getBytes() {
+        byte[] bytes = new byte[_maxSize/8];
+        for (int i=0; i<_maxSize; i++) {
+            if (_options.get(reversePosition(i))) {
+                bytes[bytes.length-i/8-1] |= 1<<(i%8);
+            }
+        }
+        return bytes;
+    }
+       
+    protected void setBytes(byte[] bytes) {
+           for (int i=0; i<bytes.length*8; i++) {
+               if ((bytes[bytes.length-i/8-1]&(1<<(i%8))) > 0) {
+                   _options.set(reversePosition(i));
+               }
+           }
+    }
+    
+       private int reversePosition(int position) {
+               return _maxSize - 1 - position;
+       }
+}
+

Added: 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/TicketFlags.java
==============================================================================
--- (empty file)
+++ 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/TicketFlags.java
  Thu Oct  7 12:41:14 2004
@@ -0,0 +1,98 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.kerberos.messages.value;
+
+public class TicketFlags extends Options {
+       // Ticket flag - reserved
+       public static final int RESERVED                 = 0;
+       // Ticket flag - forwardable
+       public static final int FORWARDABLE              = 1;
+       // Ticket flag - forwarded
+       public static final int FORWARDED                = 2;
+       // Ticket flag - proxiable
+       public static final int PROXIABLE                = 3;
+       // Ticket flag - proxy
+       public static final int PROXY                    = 4;
+       // Ticket flag - may be postdated
+       public static final int MAY_POSTDATE             = 5;
+       // Ticket flag - postdated
+       public static final int POSTDATED                = 6;
+       // Ticket flag - invalid
+       public static final int INVALID                  = 7;
+       // Ticket flag - renewable
+       public static final int RENEWABLE                = 8;
+       // Ticket flag - initial
+       public static final int INITIAL                  = 9;
+       // Ticket flag - pre-authentication
+       public static final int PRE_AUTHENT              = 10;
+       // Ticket flag - hardware authentication
+       public static final int HW_AUTHENT               = 11;
+       // Ticket flag - transitedEncoding policy checked
+       public static final int TRANSITED_POLICY_CHECKED = 12;
+       // Ticket flag - OK as delegate
+       public static final int OK_AS_DELEGATE           = 13;
+       
+       // Ticket flag - maximum value
+       public static final int MAX_VALUE                = 32;
+
+       /**
+        * Class constructor
+        */
+       public TicketFlags() {
+               super(MAX_VALUE);
+       }
+       
+       public TicketFlags(byte[] options) {
+               super(MAX_VALUE);
+               setBytes(options);
+       }
+
+       /**
+        * Converts the object to a printable string
+        */
+       public String toString() {
+               StringBuffer result = new StringBuffer();
+               if (get(FORWARDABLE))
+                       result.append("FORWARDABLE ");
+               if (get(FORWARDED))
+                       result.append("FORWARDED ");
+               if (get(PROXIABLE))
+                       result.append("PROXIABLE ");
+               if (get(PROXY))
+                       result.append("PROXY ");
+               if (get(MAY_POSTDATE))
+                       result.append("MAY_POSTDATE ");
+               if (get(POSTDATED))
+                       result.append("POSTDATED ");
+               if (get(INVALID))
+                       result.append("INVALID ");
+               if (get(RENEWABLE))
+                       result.append("RENEWABLE ");
+               if (get(INITIAL))
+                       result.append("INITIAL ");
+               if (get(PRE_AUTHENT))
+                       result.append("PRE_AUTHENT ");
+               if (get(HW_AUTHENT))
+                       result.append("HW_AUTHENT ");
+               if (get(TRANSITED_POLICY_CHECKED))
+                       result.append("TRANSITED_POLICY_CHECKED ");
+               if (get(OK_AS_DELEGATE))
+                       result.append("OPTS_OK_AS_DELEGATE ");
+               return result.toString().trim();
+       }
+}
+

Reply via email to