Return-Path: X-Original-To: apmail-directory-commits-archive@www.apache.org Delivered-To: apmail-directory-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 932F310622 for ; Mon, 12 Jan 2015 13:06:11 +0000 (UTC) Received: (qmail 77447 invoked by uid 500); 12 Jan 2015 13:06:12 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 77233 invoked by uid 500); 12 Jan 2015 13:06:12 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 75109 invoked by uid 99); 12 Jan 2015 13:06:11 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Jan 2015 13:06:11 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 0328D9ABBA8; Mon, 12 Jan 2015 13:06:11 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: drankye@apache.org To: commits@directory.apache.org Date: Mon, 12 Jan 2015 13:06:48 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [40/50] [abbrv] directory-kerberos git commit: Cleanup a bit Cleanup a bit Project: http://git-wip-us.apache.org/repos/asf/directory-kerberos/repo Commit: http://git-wip-us.apache.org/repos/asf/directory-kerberos/commit/e11e7f1b Tree: http://git-wip-us.apache.org/repos/asf/directory-kerberos/tree/e11e7f1b Diff: http://git-wip-us.apache.org/repos/asf/directory-kerberos/diff/e11e7f1b Branch: refs/heads/master Commit: e11e7f1b8167358617a495e1755a5a34216dac7c Parents: 5224d81 Author: Drankye Authored: Fri Dec 26 10:21:59 2014 +0800 Committer: Drankye Committed: Fri Dec 26 10:21:59 2014 +0800 ---------------------------------------------------------------------- .../org/apache/kerberos/kerb/crypto/Cmac.java | 3 ++ .../org/apache/kerberos/kerb/crypto/Hmac.java | 30 +++++++++++++------- 2 files changed, 23 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e11e7f1b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Cmac.java ---------------------------------------------------------------------- diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Cmac.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Cmac.java index d59909d..7f7d333 100644 --- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Cmac.java +++ b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Cmac.java @@ -5,6 +5,9 @@ import org.apache.kerberos.kerb.KrbException; import java.util.Arrays; +/** + * Based on MIT krb5 cmac.c + */ public class Cmac { private static byte[] constRb = { http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e11e7f1b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Hmac.java ---------------------------------------------------------------------- diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Hmac.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Hmac.java index 486f6e1..02e8567 100644 --- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Hmac.java +++ b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/Hmac.java @@ -3,6 +3,11 @@ package org.apache.kerberos.kerb.crypto; import org.apache.kerberos.kerb.crypto.cksum.HashProvider; import org.apache.kerberos.kerb.KrbException; +import java.util.Arrays; + +/** + * Based on MIT krb5 hmac.c + */ public class Hmac { public static byte[] hmac(HashProvider hashProvider, byte[] key, @@ -28,23 +33,28 @@ public class Hmac { byte[] key, byte[] data, int start, int len) throws KrbException { int blockLen = hashProvider.blockSize(); - byte[] ipad = new byte[blockLen]; - byte[] opad = new byte[blockLen]; - - int ki; - for (int i = 0; i < blockLen; i++) { - ki = (i < key.length) ? key[i] : 0; - ipad[i] = (byte)(ki ^ 0x36); - opad[i] = (byte)(ki ^ 0x5c); + byte[] innerPaddedKey = new byte[blockLen]; + byte[] outerPaddedKey = new byte[blockLen]; + + // Create the inner padded key + Arrays.fill(innerPaddedKey, (byte)0x36); + for (int i = 0; i < key.length; i++) { + innerPaddedKey[i] ^= key[i]; + } + + // Create the outer padded key + Arrays.fill(outerPaddedKey, (byte)0x5c); + for (int i = 0; i < key.length; i++) { + outerPaddedKey[i] ^= key[i]; } - hashProvider.hash(ipad); + hashProvider.hash(innerPaddedKey); hashProvider.hash(data, start, len); byte[] tmp = hashProvider.output(); - hashProvider.hash(opad); + hashProvider.hash(outerPaddedKey); hashProvider.hash(tmp); tmp = hashProvider.output();