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);
}