You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pl...@apache.org on 2017/08/04 06:11:40 UTC

directory-kerby git commit: DIRKRB-642 Remove the bytes util functions in GssTokenBase. Contributed by Lin Zeng.

Repository: directory-kerby
Updated Branches:
  refs/heads/trunk 8053f03aa -> 358c37296


DIRKRB-642 Remove the bytes util functions in GssTokenBase. Contributed by Lin Zeng.


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

Branch: refs/heads/trunk
Commit: 358c372960903e5b979402e1ce76d45e547bb017
Parents: 8053f03
Author: plusplusjiajia <ji...@intel.com>
Authored: Fri Aug 4 14:11:33 2017 +0800
Committer: plusplusjiajia <ji...@intel.com>
Committed: Fri Aug 4 14:11:33 2017 +0800

----------------------------------------------------------------------
 .../kerberos/kerb/gss/impl/GssTokenBase.java    | 31 --------------------
 .../kerberos/kerb/gss/impl/GssTokenV1.java      |  9 ++----
 .../kerberos/kerb/gss/impl/GssTokenV2.java      | 10 +++----
 3 files changed, 8 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/358c3729/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenBase.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenBase.java b/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenBase.java
index ec66aa5..c629209 100644
--- a/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenBase.java
+++ b/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenBase.java
@@ -25,35 +25,4 @@ public abstract class GssTokenBase {
     public static final int TOKEN_MIC_V1 = 0x101;
     public static final int TOKEN_WRAP_V2 = 0x504;
     public static final int TOKEN_MIC_V2 = 0x404;
-
-    public void writeBigEndian(byte[] buf, int offset, int value) {
-        buf[offset] = (byte) (value >>> 24);
-        buf[offset + 1] = (byte) (value >>> 16);
-        buf[offset + 2] = (byte) (value >>> 8);
-        buf[offset + 3] = (byte) (value);
-    }
-
-    public int readBigEndian(byte[] buf, int offset) {
-        int value = 0;
-        value += (buf[offset] & 0xFF) << 24;
-        value += (buf[offset + 1] & 0xFF) << 16;
-        value += (buf[offset + 2] & 0xFF) << 8;
-        value += buf[offset + 3] & 0xFF;
-        return value;
-    }
-
-    /**
-     *
-     * @param buf
-     * @param offset
-     * @param len should not be larger than sizeof(int)
-     * @return
-     */
-    public int readBigEndian(byte[] buf, int offset, int len) {
-        int value = 0;
-        for (int i = 0; i < len; i++) {
-            value += (buf[offset + i] & 0xFF) << 8;
-        }
-        return value;
-    }
 }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/358c3729/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV1.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV1.java b/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV1.java
index 1f063c3..715301f 100644
--- a/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV1.java
+++ b/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV1.java
@@ -19,9 +19,9 @@
  */
 package org.apache.kerby.kerberos.kerb.gss.impl;
 
-
 import org.ietf.jgss.GSSException;
 import org.ietf.jgss.MessageProp;
+import org.apache.kerby.kerberos.kerb.crypto.util.BytesUtil;
 import sun.security.jgss.GSSHeader;
 import sun.security.util.ObjectIdentifier;
 
@@ -219,12 +219,9 @@ abstract class GssTokenV1 extends GssTokenBase {
     private void encryptSequenceNumber() throws GSSException {
         plainSequenceBytes = new byte[8];
         if (encryptor.isArcFourHmac()) {
-            writeBigEndian(plainSequenceBytes, 0, sequenceNumber);
+            BytesUtil.int2bytes(sequenceNumber, plainSequenceBytes, 0, true);
         } else {
-            plainSequenceBytes[0] = (byte) sequenceNumber;
-            plainSequenceBytes[1] = (byte) (sequenceNumber >>> 8);
-            plainSequenceBytes[2] = (byte) (sequenceNumber >>> 16);
-            plainSequenceBytes[3] = (byte) (sequenceNumber >>> 24);
+            BytesUtil.int2bytes(sequenceNumber, plainSequenceBytes, 0, false);
         }
 
         // Hex 0 - sender is the context initiator, Hex FF - sender is the context acceptor

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/358c3729/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV2.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV2.java b/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV2.java
index 5220900..9c381ec 100644
--- a/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV2.java
+++ b/kerby-kerb/kerb-gssapi/src/main/java/org/apache/kerby/kerberos/kerb/gss/impl/GssTokenV2.java
@@ -21,6 +21,7 @@ package org.apache.kerby.kerberos.kerb.gss.impl;
 
 import org.ietf.jgss.GSSException;
 import org.ietf.jgss.MessageProp;
+import org.apache.kerby.kerberos.kerb.crypto.util.BytesUtil;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -221,7 +222,7 @@ abstract class GssTokenV2 extends GssTokenBase {
             header[6] = (byte) 0xFF;
             header[7] = (byte) 0xFF;
         }
-        writeBigEndian(header, 12, sequenceNumber);
+        BytesUtil.int2bytes(sequenceNumber, header, 12, true);
     }
 
     // Reconstruct a token header
@@ -253,9 +254,8 @@ abstract class GssTokenV2 extends GssTokenBase {
                 if (header[3] != (byte) 0xFF) {
                     throw new GSSException(GSSException.DEFECTIVE_TOKEN, -1, "Invalid token filler");
                 }
-
-                ec = readBigEndian(header, OFFSET_EC, 2);
-                rrc = readBigEndian(header, OFFSET_RRC, 2);
+                ec = BytesUtil.bytes2short(header, OFFSET_EC, true);
+                rrc = BytesUtil.bytes2short(header, OFFSET_RRC, true);
             } else if (tokenType == TOKEN_MIC_V2) {
                 for (int i = 3; i < 8; i++) {
                     if ((header[i] & 0xFF) != 0xFF) {
@@ -265,7 +265,7 @@ abstract class GssTokenV2 extends GssTokenBase {
             }
 
             prop.setQOP(0);
-            sequenceNumber = readBigEndian(header, 0, 8);
+            sequenceNumber = (int) BytesUtil.bytes2long(header, 0, true);
         } catch (IOException e) {
             throw new GSSException(GSSException.FAILURE, -1, "Phrase token header failed");
         }