You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2016/01/08 19:49:38 UTC

[1/5] directory-kerby git commit: Fixed the Javadoc

Repository: directory-kerby
Updated Branches:
  refs/heads/trunk bb9b05bc1 -> 7c412570f


Fixed the Javadoc

Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/5bad2a64
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/5bad2a64
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/5bad2a64

Branch: refs/heads/trunk
Commit: 5bad2a64ea26659c6b9f298369d3831fcf4f426c
Parents: 70ce3a8
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Thu Jan 7 13:18:42 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Thu Jan 7 13:18:42 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/kerby/kerberos/kerb/type/ap/EncAPRepPart.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/5bad2a64/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ap/EncAPRepPart.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ap/EncAPRepPart.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ap/EncAPRepPart.java
index 5cc7822..d9c7dfa 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ap/EncAPRepPart.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ap/EncAPRepPart.java
@@ -70,7 +70,7 @@ public class EncAPRepPart extends KrbAppSequenceType {
         }
     }
 
-    /** The ApRep's fields */
+    /** The EncAPRepPart's fields */
     static Asn1FieldInfo[] fieldInfos = new Asn1FieldInfo[] {
             new ExplicitField(EncAPRepPartField.CTIME, KerberosTime.class),
             new ExplicitField(EncAPRepPartField.CUSEC, Asn1Integer.class),


[2/5] directory-kerby git commit: Fixed the Javadoc

Posted by el...@apache.org.
Fixed the Javadoc

Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/106cc760
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/106cc760
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/106cc760

Branch: refs/heads/trunk
Commit: 106cc760103c6184ec054464a2d698d8fd399152
Parents: 5bad2a6
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Thu Jan 7 17:02:54 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Thu Jan 7 17:02:54 2016 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/kerby/kerberos/kerb/type/ad/AdToken.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/106cc760/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ad/AdToken.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ad/AdToken.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ad/AdToken.java
index 90c27b3..520028c 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ad/AdToken.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ad/AdToken.java
@@ -27,7 +27,7 @@ import org.apache.kerby.kerberos.kerb.type.base.KrbToken;
 
 /**
  * The AdToken component as defined in "Token Pre-Authentication for Kerberos", "draft-ietf-kitten-kerb-token-preauth-01" 
- * (not yet published) :
+ * (not yet published, but stored in docs/Token-preauth.pdf) :
  * 
  * <pre>
  * 6.4. AD-TOKEN


[3/5] directory-kerby git commit: o Added some javadoc, and some reference to the RFCs

Posted by el...@apache.org.
o Added some javadoc, and some reference to the RFCs

Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/93c52c39
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/93c52c39
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/93c52c39

Branch: refs/heads/trunk
Commit: 93c52c39e151b9060a731e064e15c2f6a9194cf8
Parents: 106cc76
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Fri Jan 8 15:20:05 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Fri Jan 8 15:20:05 2016 +0100

----------------------------------------------------------------------
 .../kerby/kerberos/kerb/type/base/CheckSum.java |  84 ++++++--
 .../kerberos/kerb/type/base/CheckSumType.java   |  88 ++++++---
 .../kerberos/kerb/type/base/HostAddrType.java   |   2 +-
 .../kerberos/kerb/type/base/HostAddress.java    |   2 +-
 .../kerby/kerberos/kerb/type/pa/PaData.java     |  24 ++-
 .../kerby/kerberos/kerb/type/pa/PaDataType.java | 195 +++++++++++++++----
 6 files changed, 312 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/93c52c39/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSum.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSum.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSum.java
index c46e206..1952a4a 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSum.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSum.java
@@ -29,98 +29,158 @@ import org.apache.kerby.asn1.type.Asn1OctetString;
 import org.apache.kerby.kerberos.kerb.type.KrbSequenceType;
 
 /**
- Checksum        ::= SEQUENCE {
- cksumtype       [0] Int32,
- checksum        [1] OCTET STRING
- }
+ * The CheckSum as defined in RFC 4120 :
+ * <pre>
+ * Checksum        ::= SEQUENCE {
+ *         cksumtype       [0] Int32,
+ *         checksum        [1] OCTET STRING
+ * }
+ * </pre>
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
 public class CheckSum extends KrbSequenceType {
+    /**
+     * The CheckSum fields
+     */
     protected enum CheckSumField implements EnumType {
         CKSUM_TYPE,
         CHECK_SUM;
 
+        /**
+         * {@inheritDoc}
+         */
         @Override
         public int getValue() {
             return ordinal();
         }
 
+        /**
+         * {@inheritDoc}
+         */
         @Override
         public String getName() {
             return name();
         }
     }
 
+    /** The Checksum's fields */
     static Asn1FieldInfo[] fieldInfos = new Asn1FieldInfo[] {
         new ExplicitField(CheckSumField.CKSUM_TYPE, Asn1Integer.class),
         new ExplicitField(CheckSumField.CHECK_SUM, Asn1OctetString.class)
     };
 
+    /**
+     * Creates a new (empty) instance of Checksum
+     */
     public CheckSum() {
         super(fieldInfos);
     }
 
+    /**
+     * Creates a new initialized instance of Checksum
+     * 
+     * @param cksumType The {@link CheckSumType}
+     * @param checksum The checksum as a byte[]
+     */
     public CheckSum(CheckSumType cksumType, byte[] checksum) {
-        this();
+        super(fieldInfos);
 
         setCksumtype(cksumType);
         setChecksum(checksum);
     }
 
+    /**
+     * Creates a new initialized instance of Checksum
+     * 
+     * @param cksumType The {@link CheckSumType} as an int
+     * @param checksum The checksum as a byte[]
+     */
     public CheckSum(int cksumType, byte[] checksum) {
         this(CheckSumType.fromValue(cksumType), checksum);
     }
 
+    /**
+     * @return The {@link CheckSumType} used for this instance
+     */
     public CheckSumType getCksumtype() {
         Integer value = getFieldAsInteger(CheckSumField.CKSUM_TYPE);
+        
         return CheckSumType.fromValue(value);
     }
 
+    /**
+     * Set the {@link CheckSumType}
+     * 
+     * @param cksumtype The {@link CheckSumType} to set
+     */
     public void setCksumtype(CheckSumType cksumtype) {
         setFieldAsInt(CheckSumField.CKSUM_TYPE, cksumtype.getValue());
     }
 
+    /**
+     * @return The checksum
+     */
     public byte[] getChecksum() {
         return getFieldAsOctets(CheckSumField.CHECK_SUM);
     }
 
+    /**
+     * Set the checksum in this instance
+     * 
+     * @param checksum The checksum to set
+     */
     public void setChecksum(byte[] checksum) {
         setFieldAsOctets(CheckSumField.CHECK_SUM, checksum);
     }
 
+    /**
+     * @see Object#equals(Object)
+     */
     @Override
     public boolean equals(Object other) {
         if (this == other) {
             return true;
         }
-        if (other == null || getClass() != other.getClass()) {
+        
+        if (!( other instanceof CheckSum )) {
             return false;
         }
 
         CheckSum that = (CheckSum) other;
 
-        if (getCksumtype() != that.getCksumtype()) {
-            return false;
-        }
-
-        return Arrays.equals(getChecksum(), that.getChecksum());
+        return ((getCksumtype() == that.getCksumtype()) && Arrays.equals(getChecksum(), that.getChecksum()));
     }
     
+    /**
+     * @see Object#hashCode()
+     */
     @Override
     public int hashCode() {
-        int result = 0;
+        int result = 17;
+        
         if (getCksumtype() != null) {
             result = 31 * result + getCksumtype().hashCode();
         }
+        
         if (getChecksum() != null) {
             result = 31 * result + Arrays.hashCode(getChecksum());
         }
+        
         return result;
     }
 
+    /**
+     * @return <tt>true</tt> if the given Checksum is equal to the instance
+     */
     public boolean isEqual(CheckSum other) {
         return this.equals(other);
     }
 
+    /**
+     * Compare the checksum value of a given Checksum instance and this instance.
+     * 
+     * @return <tt>true</tt> if the given CheckSum's checksum is equal to the instance's checksum
+     */
     public boolean isEqual(byte[] cksumBytes) {
         return Arrays.equals(getChecksum(), cksumBytes);
     }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/93c52c39/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSumType.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSumType.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSumType.java
index c566f76..7928541 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSumType.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/CheckSumType.java
@@ -21,63 +21,91 @@ package org.apache.kerby.kerberos.kerb.type.base;
 
 import org.apache.kerby.asn1.EnumType;
 
+/**
+ * The various Checksum types.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
 public enum CheckSumType implements EnumType {
-    NONE(0, "none", "None checksum type"),
+    NONE                (0, "none", "None checksum type"),
 
-    CRC32(0x0001, "crc32", "CRC-32"),
+    /** Defined in RFC 3961, section 6.1.3 */
+    CRC32               (0x0001, "crc32", "CRC-32"),
 
-    RSA_MD4(0x0002, "md4", "RSA-MD4"),
+    /** Defined in RFC 3961, section 6.1.2 */
+    RSA_MD4             (0x0002, "md4", "RSA-MD4"),
 
-    RSA_MD4_DES(0x0003, "md4-des", "RSA-MD4 with DES cbc mode"),
+    /** Defined in RFC 3961, section 6.2.5 */
+    RSA_MD4_DES         (0x0003, "md4-des", "RSA-MD4 with DES cbc mode"),
 
-    DES_CBC(0x0004, "des-cbc", "DES cbc mode"),
-    DES_MAC(0x0004, "des-mac", "DES cbc mode"),
+    DES_CBC             (0x0004, "des-cbc", "DES cbc mode"),
+
+    /** Defined in RFC 3961, section 6.2.7 */
+    DES_MAC             (0x0004, "des-mac", "DES cbc mode"),
 
     //des-mac-k
 
     //rsa-md4-des-k
 
-    RSA_MD5(0x0007, "md5", "RSA-MD5"),
+    /** Defined in RFC 3961, section 6.1.1 */
+    RSA_MD5             (0x0007, "md5", "RSA-MD5"),
 
-    RSA_MD5_DES(0x0008, "md5-des", "RSA-MD5 with DES cbc mode"),
+    /** Defined in RFC 3961, section 6.2.4 */
+    RSA_MD5_DES         (0x0008, "md5-des", "RSA-MD5 with DES cbc mode"),
 
-    NIST_SHA(0x0009, "sha", "NIST-SHA"),
+    NIST_SHA            (0x0009, "sha", "NIST-SHA"),
 
-    HMAC_SHA1_DES3(0x000c, "hmac-sha1-des3", "HMAC-SHA1 DES3 key"),
-    HMAC_SHA1_DES3_KD(0x000c, "hmac-sha1-des3-kd", "HMAC-SHA1 DES3 key"),
+    /** Defined in RFC 3961, section 6.3 */
+    HMAC_SHA1_DES3      (0x000c, "hmac-sha1-des3", "HMAC-SHA1 DES3 key"),
+    HMAC_SHA1_DES3_KD   (0x000c, "hmac-sha1-des3-kd", "HMAC-SHA1 DES3 key"),
 
     ////RFC 3962. Used with ENCTYPE_AES128_CTS_HMAC_SHA1_96
-    HMAC_SHA1_96_AES128(0x000f, "hmac-sha1-96-aes128", "HMAC-SHA1 AES128 key"),
+    /** Defined in RFC 3962, section 7 */
+    HMAC_SHA1_96_AES128 (0x000f, "hmac-sha1-96-aes128", "HMAC-SHA1 AES128 key"),
 
     //RFC 3962. Used with ENCTYPE_AES256_CTS_HMAC_SHA1_96
-    HMAC_SHA1_96_AES256(0x0010, "hmac-sha1-96-aes256", "HMAC-SHA1 AES256 key"),
+    /** Defined in RFC 3962, section 7 */
+    HMAC_SHA1_96_AES256 (0x0010, "hmac-sha1-96-aes256", "HMAC-SHA1 AES256 key"),
 
-    //RFC 6803
-    CMAC_CAMELLIA128(0x0011, "cmac-camellia128", "CMAC Camellia128 key"),
+    /** Defined in RFC 6803, section 9 */
+    CMAC_CAMELLIA128    (0x0011, "cmac-camellia128", "CMAC Camellia128 key"),
 
-    //RFC 6803
-    CMAC_CAMELLIA256(0x0012, "cmac-camellia256", "CMAC Camellia256 key"),
+    /** Defined in RFC 6803, section 9 */
+    CMAC_CAMELLIA256    (0x0012, "cmac-camellia256", "CMAC Camellia256 key"),
 
     //Microsoft netlogon cksumtype
-    MD5_HMAC_ARCFOUR(-137, "md5-hmac-rc4", "Microsoft MD5 HMAC"),
+    MD5_HMAC_ARCFOUR    (-137, "md5-hmac-rc4", "Microsoft MD5 HMAC"),
 
     //Microsoft md5 hmac cksumtype
-    HMAC_MD5_ARCFOUR(-138, "hmac-md5-arcfour", "Microsoft HMAC MD5"),
-    HMAC_MD5_ENC(-138, "hmac-md5-enc", "Microsoft HMAC MD5"),
-    HMAC_MD5_RC4(-138, "hmac-md5-rc4", "Microsoft HMAC MD5");
+    /** Defined in RFC 4757, section 4 */
+    HMAC_MD5_ARCFOUR    (-138, "hmac-md5-arcfour", "Microsoft HMAC MD5"),
+    HMAC_MD5_ENC        (-138, "hmac-md5-enc", "Microsoft HMAC MD5"),
+    HMAC_MD5_RC4        (-138, "hmac-md5-rc4", "Microsoft HMAC MD5");
 
+    /** The inner value */
     private final int value;
 
+    /** The CheckSum name */
     private final String name;
 
+    /** The CheckSum description */
     private final String displayName;
 
+    /**
+     * Create a new enum instance
+     */
     private CheckSumType(int value, String name, String displayName) {
         this.value = value;
         this.name = name;
         this.displayName = displayName;
     }
 
+    /**
+     * Get the CheckSumType associated with a value.
+     * 
+     * @param value The integer value of the CheckSumType we are looking for
+     * @return The associated CheckSumType, or NONE if not found or if value is null
+     */
     public static CheckSumType fromValue(Integer value) {
         if (value != null) {
             for (EnumType e : values()) {
@@ -89,6 +117,12 @@ public enum CheckSumType implements EnumType {
         return NONE;
     }
 
+    /**
+     * Get the CheckSumType associated with a name.
+     * 
+     * @param value The name of the CheckSumType we are looking for
+     * @return The associated CheckSumType, or NONE if not found or if name is null
+     */
     public static CheckSumType fromName(String name) {
         if (name != null) {
             for (CheckSumType cs : values()) {
@@ -100,23 +134,33 @@ public enum CheckSumType implements EnumType {
         return NONE;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public int getValue() {
         return value;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public String getName() {
         return name;
     }
 
+    /**
+     * @return The CheckSum description
+     */
     public String getDisplayName() {
         return displayName;
     }
 
     /**
      * Is the type uses AES256 or not
-     * @return true if uses AES256, false otherwise.
+     * 
+     * @return <tt>true</tt> if uses AES256, <tt>false</tt> otherwise.
      */
     public boolean usesAES256() {
         return name.contains("aes256");

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/93c52c39/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddrType.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddrType.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddrType.java
index 6cc67ac..9e730c2 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddrType.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddrType.java
@@ -109,7 +109,7 @@ public enum HostAddrType implements EnumType {
      * Get the HostAddrType associated with a value.
      * 
      * @param value The integer value of the HostAddrType we are looking for
-     * @return The associated NameType, or NULL if not found or if value is null
+     * @return The associated HostAddrType, or NULL if not found or if value is null
      */
     public static HostAddrType fromValue(Integer value) {
         if (value != null) {

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/93c52c39/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddress.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddress.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddress.java
index d65c49e..194697b 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddress.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/base/HostAddress.java
@@ -72,7 +72,7 @@ public class HostAddress extends KrbSequenceType {
     };
 
     /**
-     * Creates a new (empty) instance ofHostAddress
+     * Creates a new (empty) instance of HostAddress
      */
     public HostAddress() {
         super(fieldInfos);

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/93c52c39/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java
index bcbaaf8..677489d 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java
@@ -22,20 +22,32 @@ package org.apache.kerby.kerberos.kerb.type.pa;
 import org.apache.kerby.kerberos.kerb.type.KrbSequenceOfType;
 
 /**
- PA-DATA         ::= SEQUENCE {
-     -- NOTE: first tag is [1], not [0]
-     padata-type     [1] Int32,
-     padata-value    [2] OCTET STRING -- might be encoded AP-REQ
- }
+ * The PaData component as defined in RFC 4120 :
+ * 
+ * <pre>
+ * PA-DATA         ::= SEQUENCE {
+ *         -- NOTE: first tag is [1], not [0]
+ *         padata-type     [1] Int32,
+ *         padata-value    [2] OCTET STRING -- might be encoded AP-REQ
+ * }
+ * </pre>
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
 public class PaData extends KrbSequenceOfType<PaDataEntry> {
-
+    /**
+     * Creates an instance of PaData
+     * 
+     * @param paType The {@link PaDataType}
+     * @return An instance of {@link PaDataEntry}, or null if not found
+     */
     public PaDataEntry findEntry(PaDataType paType) {
         for (PaDataEntry pae : getElements()) {
             if (pae.getPaDataType() == paType) {
                 return pae;
             }
         }
+        
         return null;
     }
 }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/93c52c39/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataType.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataType.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataType.java
index 06e0db2..fea2097 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataType.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataType.java
@@ -22,67 +22,180 @@ package org.apache.kerby.kerberos.kerb.type.pa;
 import org.apache.kerby.asn1.EnumType;
 
 /**
- * From krb5.h
+ * The various pre-authorization types, as defined in RFC 4120, RFC 3961, RFC 4556, RFC 6820,
+ * RFC 6112, RFC 6113, RFC 6560 and RFC 6806.
+ * 
+ * From RFC 4120 : 
+ * <pre>
+ * 7.5.2.  PreAuthentication Data Types
+ * 
+ *    Padata and Data Type    Padata-type   Comment
+ *                             Value
+ * 
+ *    PA-TGS-REQ                  1
+ *    PA-ENC-TIMESTAMP            2
+ *    PA-PW-SALT                  3
+ *    [reserved]                  4
+ *    PA-ENC-UNIX-TIME            5        (deprecated)
+ *    PA-SANDIA-SECUREID          6
+ *    PA-SESAME                   7
+ *    PA-OSF-DCE                  8
+ *    PA-CYBERSAFE-SECUREID       9
+ *    PA-AFS3-SALT                10
+ *    PA-ETYPE-INFO               11
+ *    PA-SAM-CHALLENGE            12       (sam/otp)
+ *    PA-SAM-RESPONSE             13       (sam/otp)
+ *    PA-PK-AS-REQ_OLD            14       (pkinit)
+ *    PA-PK-AS-REP_OLD            15       (pkinit)
+ *    PA-PK-AS-REQ                16       (pkinit)
+ *    PA-PK-AS-REP                17       (pkinit)
+ *    PA-ETYPE-INFO2              19       (replaces pa-etype-info)
+ *    PA-USE-SPECIFIED-KVNO       20
+ *    PA-SAM-REDIRECT             21       (sam/otp)
+ *    PA-GET-FROM-TYPED-DATA      22       (embedded in typed data)
+ *    TD-PADATA                   22       (embeds padata)
+ *    PA-SAM-ETYPE-INFO           23       (sam/otp)
+ *    PA-ALT-PRINC                24       (crawdad@fnal.gov)
+ *    PA-SAM-CHALLENGE2           30       (kenh@pobox.com)
+ *    PA-SAM-RESPONSE2            31       (kenh@pobox.com)
+ *    PA-EXTRA-TGT                41       Reserved extra TGT
+ *    TD-PKINIT-CMS-CERTIFICATES  101      CertificateSet from CMS
+ *    TD-KRB-PRINCIPAL            102      PrincipalName
+ *    TD-KRB-REALM                103      Realm
+ *    TD-TRUSTED-CERTIFIERS       104      from PKINIT
+ *    TD-CERTIFICATE-INDEX        105      from PKINIT
+ *    TD-APP-DEFINED-ERROR        106      application specific
+ *    TD-REQ-NONCE                107      INTEGER
+ *    TD-REQ-SEQ                  108      INTEGER
+ *    PA-PAC-REQUEST              128      (jbrezak@exchange.microsoft.com)
+ * </pre>
+ * 
+ * From RFC 6113 :
+ * <pre>
+ *    PA-FOR_USER                129  [MS-KILE]
+ *    PA-FOR-X509-USER           130  [MS-KILE]
+ *    PA-FOR-CHECK_DUPS          131  [MS-KILE]
+ *    PA-AS-CHECKSUM             132  [MS-KILE]
+ *    PA-FX-COOKIE               133  [RFC6113]
+ *    PA-AUTHENTICATION-SET      134  [RFC6113]
+ *    PA-AUTH-SET-SELECTED       135  [RFC6113]
+ *    PA-FX-FAST                 136  [RFC6113]
+ *    PA-FX-ERROR                137  [RFC6113]
+ *    PA-ENCRYPTED-CHALLENGE     138  [RFC6113]
+ *    PA-OTP-CHALLENGE           141  (gareth.richards@rsa.com) [OTP-PREAUTH]
+ *    PA-OTP-REQUEST             142  (gareth.richards@rsa.com) [OTP-PREAUTH]
+ *    PA-OTP-CONFIRM             143  (gareth.richards@rsa.com) [OTP-PREAUTH]
+ *    PA-OTP-PIN-CHANGE          144  (gareth.richards@rsa.com) [OTP-PREAUTH]
+ *    PA-EPAK-AS-REQ             145  (sshock@gmail.com) [RFC6113]
+ *    PA-EPAK-AS-REP             146  (sshock@gmail.com) [RFC6113]
+ *    PA_PKINIT_KX               147  [RFC6112]
+ *    PA_PKU2U_NAME              148  [PKU2U]
+ * </pre>
+ * 
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
 public enum PaDataType implements EnumType {
-    NONE                (0),
-    TGS_REQ              (1),
-    AP_REQ              (1),
-    ENC_TIMESTAMP       (2), // RFC 4120
-    PW_SALT             (3), // RFC 4120
-    ENC_ENCKEY        (4),  // Key encrypted within itself
-    ENC_UNIX_TIME       (5),  // timestamp encrypted in key. RFC 4120
-    ENC_SANDIA_SECURID (6),  // SecurId passcode. RFC 4120
-    SESAME              (7),  // Sesame project. RFC 4120
-    OSF_DCE             (8),  // OSF DCE. RFC 4120
-    CYBERSAFE_SECUREID (9),  // Cybersafe. RFC 4120
-    AFS3_SALT           (10), // Cygnus. RFC 4120, 3961
-    ETYPE_INFO          (11), // Etype info for preauth. RFC 4120
-    SAM_CHALLENGE       (12), // SAM/OTP
-    SAM_RESPONSE        (13), // SAM/OTP
-    PK_AS_REQ           (16), // PKINIT. RFC 4556
-    PK_AS_REP           (17), // PKINIT. RFC 4556
-    ETYPE_INFO2         (19), // RFC 4120
-    USE_SPECIFIED_KVNO  (20), // RFC 4120
-    SVR_REFERRAL_INFO   (20), // Windows 2000 referrals. RFC 6820
-    SAM_REDIRECT        (21), // SAM/OTP. RFC 4120
-    GET_FROM_TYPED_DATA (22), // Embedded in typed data. RFC 4120
-    REFERRAL            (25), // draft referral system
-    SAM_CHALLENGE_2     (30), // draft challenge system, updated
-    SAM_RESPONSE_2      (31), // draft challenge system, updated
+    NONE                        (0),
+    TGS_REQ                     (1),  // RFC 4120 : DER encoding of AP-REQ
+    AP_REQ                      (1),  // same
+    ENC_TIMESTAMP               (2),  // RFC 4120 : DER encoding of PA-ENC-TIMESTAMP
+    PW_SALT                     (3),  // RFC 4120 : salt (not ASN.1 encoded)
+    ENC_ENCKEY                  (4),  // RFC 4120 : [reserved] Key encrypted within itself
+    ENC_UNIX_TIME               (5),  // RFC 4120 : deprecated (timestamp encrypted in key )
+    ENC_SANDIA_SECURID          (6),  // RFC 4120 : SecureId passcode
+    SESAME                      (7),  // RFC 4120 : Sesame project 
+    OSF_DCE                     (8),  // RFC 4120 : OSF DCE
+    CYBERSAFE_SECUREID          (9),  // RFC 4120 : Cybersafe 
+    AFS3_SALT                   (10), // RFC 4120 : 
+    ETYPE_INFO                  (11), // RFC 4120 : DER encoding of ETYPE-INFO
+    SAM_CHALLENGE               (12), // RFC 4120 : SAM/OTP
+    SAM_RESPONSE                (13), // RFC 4120 : SAM/OTP
+    PK_AS_REQ_OLD               (14), // RFC 4120 : pkinit
+    PK_AS_REP_OLD               (15), // RFC 4120 : pkinit
+    PK_AS_REQ                   (16), // RFC 4120 : pkinit
+    PK_AS_REP                   (17), // RFC 4120 : pkinit
+    // 18 is undefined
+    ETYPE_INFO2                 (19), // RFC 4120 : DER encoding of ETYPE-INFO2
+    USE_SPECIFIED_KVNO          (20), // RFC 4120
+    SVR_REFERRAL_INFO           (20), // RFC 6806 : Kerberos Principal Name Canonicalization and Cross-Realm Referrals
+    SAM_REDIRECT                (21), // RFC 4120 : SAM/OTP
+    GET_FROM_TYPED_DATA         (22), // RFC 4120 : Embedded in typed data
+    //SAM_ETYPE_INFO            (23), // RFC 4120 : SAM/OTP
+    //ALT_PRINC                 (24), // RFC 4120 : crawdad@fnal.gov
+    REFERRAL                    (25), // draft-ietf-krb-wg-kerberos-referrals, up to version 11. Removed
+    // 26 to 29 undefined
+    SAM_CHALLENGE_2             (30), // kenh@pobox.com
+    SAM_RESPONSE_2              (31), // kenh@pobox.com
+    // 32 to 40 are undefined
+    //EXTRA_TGT                 (41), // RFC 4120 : Reserved extra TGT
+    //TD_PKINIT-CMS_CERTIFICATES(101), // RFC 4120 : CertificateSet from CMS
+    //TD_KRB_PRINCIPAL          (102), // RFC 4120 : PrincipalName
+    //TD_KRB_REALM              (103), // RFC 4120 : Realm
+    //TD_TRUSTED_CERTIFIERS     (104), // RFC 4120 : from PKINIT
+    //TD_CERTIFICATE_INDEX      (105), // RFC 4120 : from PKINIT
+    //TD_APP_DEFINED_ERROR      (106), // RFC 4120 : application specific
+    //TD_REQ_NONCE              (107), // RFC 4120 : INTEGER
+    //TD_REQ_SEQ                (108), // RFC 4120 : INTEGER
+    
     /* MS-KILE */
-    PAC_REQUEST         (128), // include Windows PAC
-    FOR_USER            (129), // username protocol transition request
-    S4U_X509_USER       (130), // certificate protocol transition request
-    AS_CHECKSUM         (132), // AS checksum
-    FX_COOKIE           (133), // RFC 6113
-    FX_FAST             (136), // RFC 6113
-    FX_ERROR            (137), // RFC 6113
-    ENCRYPTED_CHALLENGE (138), // RFC 6113
-    OTP_CHALLENGE       (141), // RFC 6560 section 4.1
-    OTP_REQUEST         (142), // RFC 6560 section 4.2
-    OTP_PIN_CHANGE      (144), // RFC 6560 section 4.3
-    PKINIT_KX           (147), // RFC 6112
-    ENCPADATA_REQ_ENC_PA_REP   (149), // RFC 6806
-    TOKEN_REQUEST       (148), // TokenPreauth
-    TOKEN_CHALLENGE     (149);
+    PAC_REQUEST                 (128), // Microsoft, "Kerberos Protocol Extensions"
+    FOR_USER                    (129), // Microsoft, "Kerberos Protocol Extensions"
+    S4U_X509_USER               (130), // Microsoft, "Kerberos Protocol Extensions"
+    // 131 undefined, Microsoft, "Kerberos Protocol Extensions"
+    AS_CHECKSUM                 (132), // Microsoft, "Kerberos Protocol Extensions"
+    FX_COOKIE                   (133), // RFC 6113 : Managing States for the KDC
+    
+    // 134 and 135 undefined
+    //AUTHENTICATION_SET        (134), // RFC 6113 : Pre-Authentication Set
+    //AUTH_SET_SELECTED         (135), // RFC 6113 : Pre-Authentication Set
+    FX_FAST                     (136), // RFC 6113 : FAST Request
+    FX_ERROR                    (137), // RFC 6113 : Authenticated Kerberos Error Messages Using Kerberos FAST
+    ENCRYPTED_CHALLENGE         (138), // RFC 6113 : The Encrypted Challenge FAST Factor
+    // 139 and 140 undefined
+    
+    OTP_CHALLENGE               (141), // RFC 6560 : One-Time Password pre-auth section 4.1
+    OTP_REQUEST                 (142), // RFC 6560 : One-Time Password pre-auth section 4.2
+    // 143 undefined
+    OTP_PIN_CHANGE              (144), // RFC 6560 : One-Time Password pre-auth section 4.3
+    // 145 and 146 undefined
+    PKINIT_KX                   (147), // RFC 6112 : PKINIT Client Contribution to the Ticket Session Key
+    TOKEN_REQUEST               (148), // [PKU2U]
+    ENCPADATA_REQ_ENC_PA_REP    (149), // RFC 6806 : Negotiation of FAST and Detecting Modified Requests
+    TOKEN_CHALLENGE             (149); // ???
 
+    /** The inner value */
     private final int value;
 
+    /**
+     * Create a new enum instance
+     */
     private PaDataType(int value) {
         this.value = value;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public int getValue() {
         return value;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public String getName() {
         return name();
     }
 
+    /**
+     * Get the PaDataType associated with a value.
+     * 
+     * @param value The integer value of the PaDataType we are looking for
+     * @return The associated PaDataType, or NONE if not found or if value is null
+     */
     public static PaDataType fromValue(Integer value) {
         if (value != null) {
             for (EnumType e : values()) {


[5/5] directory-kerby git commit: Merge branch 'trunk' of http://git-wip-us.apache.org/repos/asf/directory-kerby into trunk

Posted by el...@apache.org.
Merge branch 'trunk' of http://git-wip-us.apache.org/repos/asf/directory-kerby into trunk


Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/7c412570
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/7c412570
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/7c412570

Branch: refs/heads/trunk
Commit: 7c412570fb22654cb93a92c308f2bda675179631
Parents: 00ae062 bb9b05b
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Fri Jan 8 19:49:18 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Fri Jan 8 19:49:18 2016 +0100

----------------------------------------------------------------------
 README.md                        |   5 +-
 kerby-asn1/README.md             | 225 +++++++++++++++++++++++-----------
 kerby-dist/README.md             |   2 +-
 kerby-kerb/kerb-admin/README.md  |  16 ++-
 kerby-kerb/kerb-client/README.md |  67 +++++++++-
 5 files changed, 230 insertions(+), 85 deletions(-)
----------------------------------------------------------------------



[4/5] directory-kerby git commit: o Added some Javadoc o Fixed some Javadoc

Posted by el...@apache.org.
o Added some Javadoc
o Fixed some Javadoc

Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/00ae0620
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/00ae0620
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/00ae0620

Branch: refs/heads/trunk
Commit: 00ae0620701b560ea1499ea2b7b4da8eedb36b07
Parents: 93c52c3
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Fri Jan 8 19:48:49 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Fri Jan 8 19:48:49 2016 +0100

----------------------------------------------------------------------
 .../kerberos/kerb/type/KerberosStrings.java     |  1 +
 .../kerby/kerberos/kerb/type/pa/PaData.java     | 12 ++---
 .../kerberos/kerb/type/pa/PaDataEntry.java      | 54 +++++++++++++++++---
 3 files changed, 54 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/00ae0620/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KerberosStrings.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KerberosStrings.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KerberosStrings.java
index 3103b7a..395a7f2 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KerberosStrings.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KerberosStrings.java
@@ -34,6 +34,7 @@ public class KerberosStrings extends KrbSequenceOfType<KerberosString> {
 
     public void setValues(List<String> values) {
         clear();
+        
         if (values != null) {
             for (String value : values) {
                 addElement(new KerberosString(value));

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/00ae0620/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java
index 677489d..b8f6888 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaData.java
@@ -22,21 +22,19 @@ package org.apache.kerby.kerberos.kerb.type.pa;
 import org.apache.kerby.kerberos.kerb.type.KrbSequenceOfType;
 
 /**
- * The PaData component as defined in RFC 4120 :
+ * The PaData Sequence as defined in RFC 4120, like in :
  * 
  * <pre>
- * PA-DATA         ::= SEQUENCE {
- *         -- NOTE: first tag is [1], not [0]
- *         padata-type     [1] Int32,
- *         padata-value    [2] OCTET STRING -- might be encoded AP-REQ
- * }
+ * ...
+ * padata          [3] SEQUENCE OF PA-DATA
+ * ...
  * </pre>
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
 public class PaData extends KrbSequenceOfType<PaDataEntry> {
     /**
-     * Creates an instance of PaData
+     * Find a PaData from its type
      * 
      * @param paType The {@link PaDataType}
      * @return An instance of {@link PaDataEntry}, or null if not found

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/00ae0620/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataEntry.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataEntry.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataEntry.java
index 9b340c0..bb8078a 100644
--- a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataEntry.java
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/pa/PaDataEntry.java
@@ -27,56 +27,98 @@ import org.apache.kerby.asn1.type.Asn1OctetString;
 import org.apache.kerby.kerberos.kerb.type.KrbSequenceType;
 
 /**
- PA-DATA         ::= SEQUENCE {
-     -- NOTE: first tag is [1], not [0]
-     padata-type     [1] Int32,
-     padata-value    [2] OCTET STRING -- might be encoded AP-REQ
- }
+ * The PaData component as defined in RFC 4120 :
+ * 
+ * <pre>
+ * PA-DATA         ::= SEQUENCE {
+ *         -- NOTE: first tag is [1], not [0]
+ *         padata-type     [1] Int32,
+ *         padata-value    [2] OCTET STRING -- might be encoded AP-REQ
+ * }
+ * </pre>
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
 public class PaDataEntry extends KrbSequenceType {
+    /**
+     * The possible fields
+     */
     protected enum PaDataEntryField implements EnumType {
         PADATA_TYPE,
         PADATA_VALUE;
 
+        /**
+         * {@inheritDoc}
+         */
         @Override
         public int getValue() {
             return ordinal();
         }
 
+        /**
+         * {@inheritDoc}
+         */
         @Override
         public String getName() {
             return name();
         }
     }
 
+    /** The PaDataEntrey's fields */
     static Asn1FieldInfo[] fieldInfos = new Asn1FieldInfo[] {
             new ExplicitField(PaDataEntryField.PADATA_TYPE, 1, Asn1Integer.class),
             new ExplicitField(PaDataEntryField.PADATA_VALUE, 2, Asn1OctetString.class)
     };
 
+    /**
+     * Creates an empty PaDataEntry instance
+     */
     public PaDataEntry() {
         super(fieldInfos);
     }
 
+    /**
+     * Creates a PaDataEntry instance with a type and a value
+     * 
+     * @param type the {@link PaDataType} to use
+     * @param paData the data to store
+     */
     public PaDataEntry(PaDataType type, byte[] paData) {
-        this();
+        super(fieldInfos);
         setPaDataType(type);
         setPaDataValue(paData);
     }
 
+    /**
+     * @return The {@link PaDataType} for this instance
+     */
     public PaDataType getPaDataType() {
         Integer value = getFieldAsInteger(PaDataEntryField.PADATA_TYPE);
+        
         return PaDataType.fromValue(value);
     }
 
+    /**
+     * Sets a {@link PaDataType} in this instance
+     * 
+     * @param paDataType The {@link PaDataType} type to store
+     */
     public void setPaDataType(PaDataType paDataType) {
         setFieldAsInt(PaDataEntryField.PADATA_TYPE, paDataType.getValue());
     }
 
+    /**
+     * @return The data stored in this instance
+     */
     public byte[] getPaDataValue() {
         return getFieldAsOctets(PaDataEntryField.PADATA_VALUE);
     }
 
+    /**
+     * Sets some data in this instance
+     *  
+     * @param paDataValue The data to store
+     */
     public void setPaDataValue(byte[] paDataValue) {
         setFieldAsOctets(PaDataEntryField.PADATA_VALUE, paDataValue);
     }