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