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