You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/03/30 10:04:15 UTC

directory-kerby git commit: Added prf & prf-size for enc type handlers

Repository: directory-kerby
Updated Branches:
  refs/heads/master 9f2fe83c1 -> b6aa96875


Added prf & prf-size for enc type handlers


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

Branch: refs/heads/master
Commit: b6aa968758ae6d90351fc3a0b4d01894e5d3f438
Parents: 9f2fe83
Author: Drankye <dr...@gmail.com>
Authored: Mon Mar 30 16:04:02 2015 +0800
Committer: Drankye <dr...@gmail.com>
Committed: Mon Mar 30 16:04:02 2015 +0800

----------------------------------------------------------------------
 .../apache/kerby/kerberos/kerb/crypto/EncTypeHandler.java   | 5 +++++
 .../kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java    | 9 ++++++++-
 .../apache/kerby/kerberos/kerb/crypto/enc/DesCbcEnc.java    | 8 +++++++-
 .../apache/kerby/kerberos/kerb/crypto/enc/KeKiCmacEnc.java  | 6 ++++++
 .../org/apache/kerby/kerberos/kerb/crypto/enc/KeKiEnc.java  | 2 +-
 .../kerby/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java     | 6 ++++++
 .../apache/kerby/kerberos/kerb/crypto/enc/Rc4HmacEnc.java   | 8 +++++++-
 7 files changed, 40 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b6aa9687/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/EncTypeHandler.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/EncTypeHandler.java b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/EncTypeHandler.java
index 4c42a0d..7a9a6a6 100644
--- a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/EncTypeHandler.java
+++ b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/EncTypeHandler.java
@@ -21,6 +21,7 @@ package org.apache.kerby.kerberos.kerb.crypto;
 
 import org.apache.kerby.kerberos.kerb.KrbException;
 import org.apache.kerby.kerberos.kerb.spec.base.CheckSumType;
+import org.apache.kerby.kerberos.kerb.spec.base.EncryptionKey;
 import org.apache.kerby.kerberos.kerb.spec.base.EncryptionType;
 
 public interface EncTypeHandler extends CryptoTypeHandler {
@@ -35,6 +36,10 @@ public interface EncTypeHandler extends CryptoTypeHandler {
 
     public int checksumSize();
 
+    public int prfSize();
+
+    public byte[] prf(byte[] key, byte[] seed);
+
     public int paddingSize();
 
     public byte[] str2key(String string,

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b6aa9687/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java
index 9708de7..e122937 100644
--- a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java
+++ b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java
@@ -28,11 +28,13 @@ import org.apache.kerby.kerberos.kerb.KrbException;
 public abstract class AbstractEncTypeHandler
         extends AbstractCryptoTypeHandler implements EncTypeHandler {
 
+    private int prfSize;
     private KeyMaker keyMaker;
 
     public AbstractEncTypeHandler(EncryptProvider encProvider,
-                                  HashProvider hashProvider) {
+                                  HashProvider hashProvider, int prfSize) {
         super(encProvider, hashProvider);
+        this.prfSize = prfSize;
     }
 
     protected void keyMaker(KeyMaker keyMaker) {
@@ -44,6 +46,11 @@ public abstract class AbstractEncTypeHandler
     }
 
     @Override
+    public int prfSize() {
+        return this.prfSize;
+    }
+
+    @Override
     public String name() {
         return eType().getName();
     }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b6aa9687/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/DesCbcEnc.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/DesCbcEnc.java b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/DesCbcEnc.java
index a639d56..38c1eb1 100644
--- a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/DesCbcEnc.java
+++ b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/DesCbcEnc.java
@@ -29,11 +29,17 @@ import org.apache.kerby.kerberos.kerb.KrbException;
 abstract class DesCbcEnc extends AbstractEncTypeHandler {
 
     public DesCbcEnc(HashProvider hashProvider) {
-        super(new DesProvider(), hashProvider);
+        super(new DesProvider(), hashProvider, 16);
         keyMaker(new DesKeyMaker(this.encProvider()));
     }
 
     @Override
+    public byte[] prf(byte[] key, byte[] seed) {
+        // TODO: krb5int_des_prf
+        return null;
+    }
+
+    @Override
     protected void encryptWith(byte[] workBuffer, int[] workLens,
                                  byte[] key, byte[] iv, int usage) throws KrbException {
         int confounderLen = workLens[0];

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b6aa9687/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiCmacEnc.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiCmacEnc.java b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiCmacEnc.java
index efe3abf..84c328c 100644
--- a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiCmacEnc.java
+++ b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiCmacEnc.java
@@ -39,6 +39,12 @@ public abstract class KeKiCmacEnc extends KeKiEnc {
     }
 
     @Override
+    public byte[] prf(byte[] key, byte[] seed) {
+        // TODO: krb5int_dk_cmac_prf
+        return null;
+    }
+
+    @Override
     protected byte[] makeChecksum(byte[] key, byte[] data, int hashSize)
             throws KrbException {
 

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b6aa9687/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiEnc.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiEnc.java b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiEnc.java
index 9f2e5ec..091572b 100644
--- a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiEnc.java
+++ b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiEnc.java
@@ -30,7 +30,7 @@ public abstract class KeKiEnc extends AbstractEncTypeHandler {
 
     public KeKiEnc(EncryptProvider encProvider,
                    HashProvider hashProvider) {
-        super(encProvider, hashProvider);
+        super(encProvider, hashProvider, 16);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b6aa9687/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java
index 0220830..b55475c 100644
--- a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java
+++ b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java
@@ -36,6 +36,12 @@ public abstract class KeKiHmacSha1Enc extends KeKiEnc {
     }
 
     @Override
+    public byte[] prf(byte[] key, byte[] seed) {
+        // TODO: krb5int_dk_prf
+        return null;
+    }
+
+    @Override
     protected byte[] makeChecksum(byte[] key, byte[] data, int hashSize)
             throws KrbException {
 

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b6aa9687/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/Rc4HmacEnc.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/Rc4HmacEnc.java b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/Rc4HmacEnc.java
index c40aa09..2080b7f 100644
--- a/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/Rc4HmacEnc.java
+++ b/kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/enc/Rc4HmacEnc.java
@@ -39,7 +39,7 @@ public class Rc4HmacEnc extends AbstractEncTypeHandler {
     }
 
     public Rc4HmacEnc(boolean exportable) {
-        super(new Rc4Provider(), new Md5Provider());
+        super(new Rc4Provider(), new Md5Provider(), 20);
         keyMaker(new Rc4KeyMaker(this.encProvider()));
         this.exportable = exportable;
     }
@@ -49,6 +49,12 @@ public class Rc4HmacEnc extends AbstractEncTypeHandler {
     }
 
     @Override
+    public byte[] prf(byte[] key, byte[] seed) {
+        // TODO: krb5int_arcfour_prf
+        return null;
+    }
+
+    @Override
     public int confounderSize() {
         return 8;
     }