You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by co...@apache.org on 2017/07/21 11:27:19 UTC

[32/50] [abbrv] directory-kerby git commit: DIRKRB-579 KRB_PRIV message type support.

DIRKRB-579 KRB_PRIV message type support.


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

Branch: refs/heads/gssapi
Commit: c1a8e516d68bfbcd302047075d1be1f6e757f610
Parents: 0935dba
Author: plusplusjiajia <ji...@intel.com>
Authored: Tue Jun 7 10:02:38 2016 +0800
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Fri Jul 21 12:25:51 2017 +0100

----------------------------------------------------------------------
 .../kerberos/kerb/type/EncKrbPrivPart.java      | 122 +++++++++++++++++++
 .../kerby/kerberos/kerb/type/KrbPriv.java       |  94 ++++++++++++++
 2 files changed, 216 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/c1a8e516/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/EncKrbPrivPart.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/EncKrbPrivPart.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/EncKrbPrivPart.java
new file mode 100644
index 0000000..bccd83c
--- /dev/null
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/EncKrbPrivPart.java
@@ -0,0 +1,122 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.kerby.kerberos.kerb.type;
+
+import org.apache.kerby.asn1.Asn1FieldInfo;
+import org.apache.kerby.asn1.EnumType;
+import org.apache.kerby.asn1.ExplicitField;
+import org.apache.kerby.asn1.type.Asn1Integer;
+import org.apache.kerby.asn1.type.Asn1OctetString;
+import org.apache.kerby.kerberos.kerb.type.base.HostAddress;
+
+/**
+  EncKrbPrivPart ::=   [APPLICATION 28] SEQUENCE {
+                user-data[0]              OCTET STRING,
+                timestamp[1]              KerberosTime OPTIONAL,
+                usec[2]                   INTEGER OPTIONAL,
+                seq-number[3]             INTEGER OPTIONAL,
+                s-address[4]              HostAddress, -- sender's addr
+                r-address[5]              HostAddress OPTIONAL
+                                                      -- recip's addr
+   }
+ */
+public class EncKrbPrivPart extends KrbAppSequenceType {
+     public static final int TAG = 28;
+
+    protected enum EncKrbPrivPartField implements EnumType {
+        USER_DATA,
+        TIMESTAMP,
+        USEC,
+        SEQ_NUMBER,
+        S_ADDRESS,
+        R_ADDRESS;
+
+        @Override
+        public int getValue() {
+            return ordinal();
+        }
+
+        @Override
+        public String getName() {
+            return name();
+        }
+    }
+
+        static Asn1FieldInfo[] fieldInfos = new Asn1FieldInfo[] {
+            new ExplicitField(EncKrbPrivPart.EncKrbPrivPartField.USER_DATA, Asn1OctetString.class),
+            new ExplicitField(EncKrbPrivPart.EncKrbPrivPartField.TIMESTAMP, KerberosTime.class),
+            new ExplicitField(EncKrbPrivPart.EncKrbPrivPartField.USEC, Asn1Integer.class),
+            new ExplicitField(EncKrbPrivPart.EncKrbPrivPartField.SEQ_NUMBER, Asn1Integer.class),
+            new ExplicitField(EncKrbPrivPart.EncKrbPrivPartField.S_ADDRESS, HostAddress.class),
+            new ExplicitField(EncKrbPrivPart.EncKrbPrivPartField.R_ADDRESS, HostAddress.class)
+    };
+
+    public EncKrbPrivPart() {
+        super(TAG, fieldInfos);
+    }
+
+    public byte[] getUserData() {
+        return getFieldAsOctets(EncKrbPrivPart.EncKrbPrivPartField.USER_DATA);
+    }
+
+    public void setUserData(byte[] userData) {
+        setFieldAsOctets(EncKrbPrivPart.EncKrbPrivPartField.USER_DATA, userData);
+    }
+
+    public KerberosTime getTimeStamp() {
+        return getFieldAsTime(EncKrbPrivPart.EncKrbPrivPartField.TIMESTAMP);
+    }
+
+    public void setTimeStamp(KerberosTime timeStamp) {
+        setFieldAs(EncKrbPrivPart.EncKrbPrivPartField.TIMESTAMP, timeStamp);
+    }
+
+    public int getUsec() {
+        return getFieldAsInt(EncKrbPrivPart.EncKrbPrivPartField.USEC);
+    }
+
+    public void setUsec(int usec) {
+        setFieldAsInt(EncKrbPrivPart.EncKrbPrivPartField.USEC, usec);
+    }
+
+    public int getSeqNumber() {
+        return getFieldAsInt(EncKrbPrivPart.EncKrbPrivPartField.SEQ_NUMBER);
+    }
+
+    public void setSeqNumber(int seqNumber) {
+        setFieldAsInt(EncKrbPrivPart.EncKrbPrivPartField.SEQ_NUMBER, seqNumber);
+    }
+
+    public HostAddress getSAddress() {
+        return getFieldAs(EncKrbPrivPart.EncKrbPrivPartField.S_ADDRESS, HostAddress.class);
+    }
+
+    public void setSAddress(HostAddress hostAddress) {
+        setFieldAs(EncKrbPrivPart.EncKrbPrivPartField.S_ADDRESS, hostAddress);
+    }
+
+    public HostAddress getRAddress() {
+        return getFieldAs(EncKrbPrivPart.EncKrbPrivPartField.R_ADDRESS, HostAddress.class);
+    }
+
+    public void setRAddress(HostAddress hostAddress) {
+        setFieldAs(EncKrbPrivPart.EncKrbPrivPartField.R_ADDRESS, hostAddress);
+    }
+}

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/c1a8e516/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KrbPriv.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KrbPriv.java b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KrbPriv.java
new file mode 100644
index 0000000..0354783
--- /dev/null
+++ b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/KrbPriv.java
@@ -0,0 +1,94 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.kerby.kerberos.kerb.type;
+
+import org.apache.kerby.asn1.Asn1FieldInfo;
+import org.apache.kerby.asn1.EnumType;
+import org.apache.kerby.asn1.ExplicitField;
+import org.apache.kerby.asn1.type.Asn1Integer;
+import org.apache.kerby.kerberos.kerb.type.base.EncryptedData;
+import org.apache.kerby.kerberos.kerb.type.base.KrbMessage;
+import org.apache.kerby.kerberos.kerb.type.base.KrbMessageType;
+
+/**
+ * The KRB_PRIV message, as defined in RFC 1510 :
+ * The KRB_PRIV message contains user data encrypted in the Session Key.
+ * The message fields are:
+ * <pre>
+ * KRB-PRIV ::=         [APPLICATION 21] SEQUENCE {
+ *       pvno[0]                   INTEGER,
+ *       msg-type[1]               INTEGER,
+ *       enc-part[3]               EncryptedData
+ * </pre>
+ */
+public class KrbPriv extends KrbMessage {
+    protected enum KrbPrivField implements EnumType {
+        PVNO,
+        MSG_TYPE,
+        ENC_PART;
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public int getValue() {
+            return ordinal();
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public String getName() {
+            return name();
+        }
+    }
+   static Asn1FieldInfo[] fieldInfos = new Asn1FieldInfo[] {
+            new ExplicitField(KrbPriv.KrbPrivField.PVNO, Asn1Integer.class),
+            new ExplicitField(KrbPriv.KrbPrivField.MSG_TYPE, Asn1Integer.class),
+            new ExplicitField(KrbPriv.KrbPrivField.ENC_PART, EncryptedData.class)
+    };
+
+    /**
+     * Creates a new instance of a KRB-PRIv message
+     */
+    public KrbPriv() {
+        super(KrbMessageType.KRB_PRIV, fieldInfos);
+    }
+
+    private EncKrbPrivPart encPart;
+
+    public EncryptedData getEncryptedEncPart() {
+        return getFieldAs(KrbPriv.KrbPrivField.ENC_PART, EncryptedData.class);
+    }
+
+    public void setEncryptedEncPart(EncryptedData encryptedEncPart) {
+        setFieldAs(KrbPriv.KrbPrivField.ENC_PART, encryptedEncPart);
+    }
+
+
+    public EncKrbPrivPart getEncPart() {
+        return encPart;
+    }
+
+    public void setEncPart(EncKrbPrivPart encPart) {
+        this.encPart = encPart;
+    }
+}