You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2005/08/30 22:04:01 UTC
svn commit: r264844 [1/6] - in /directory/shared/kerberos/trunk/common: ./
src/java/org/apache/kerberos/chain/ src/java/org/apache/kerberos/chain/impl/
src/java/org/apache/kerberos/crypto/
src/java/org/apache/kerberos/crypto/checksum/ src/java/org/apac...
Author: erodriguez
Date: Tue Aug 30 13:02:20 2005
New Revision: 264844
URL: http://svn.apache.org/viewcvs?rev=264844&view=rev
Log:
Merged refactor-to-chain branch changes r233207:264841 into the kerberos-common trunk.
Added:
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/
- copied from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/Chain.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/Chain.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/Command.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/Command.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/Context.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/Context.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/Filter.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/Filter.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/impl/
- copied from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/impl/
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/impl/ChainBase.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/impl/ChainBase.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/impl/CommandBase.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/impl/CommandBase.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/impl/ContextBase.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/chain/impl/ContextBase.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/service/ErrorMessageHandler.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/service/ErrorMessageHandler.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/service/GetPrincipalStoreEntry.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/service/GetPrincipalStoreEntry.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/service/VerifyAuthHeader.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/service/VerifyAuthHeader.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/service/VerifyTicket.java (props changed)
- copied unchanged from r264841, directory/shared/kerberos/branches/refactor-to-chain/common/src/java/org/apache/kerberos/service/VerifyTicket.java
Removed:
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/service/KdcConfiguration.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/service/KerberosService.java
Modified:
directory/shared/kerberos/trunk/common/project.xml
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/DesStringToKey.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/RandomKey.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumEngine.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Crc32Checksum.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd4Checksum.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd5Checksum.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Sha1Checksum.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/CipherType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcEncryption.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcMd5Encryption.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcSha1Encryption.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcCrcEncryption.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcEncryption.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd4Encryption.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd5Encryption.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngine.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngineFactory.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/NullEncryption.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/ErrorType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/KerberosException.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/ChecksumDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/EncryptedDataDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/EncryptedTimestampDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/EncryptionKeyDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/EncryptionTypeDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/HostAddressDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/KerberosTimeDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/LastRequestDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/PreAuthenticationDataDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/PrincipalNameDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/decoder/TicketDecoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/ApplicationReplyEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/AuthorizationDataEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/ChecksumEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncApRepPartEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncAsRepPartEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncKdcRepPartEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncKrbPrivPartEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncTgsRepPartEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncTicketPartEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncryptedDataEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncryptedTimestampEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncryptionKeyEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncryptionTypeEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/EncryptionTypeInfoEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/ErrorMessageEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/HostAddressesEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/KdcReplyEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/KdcReqBodyEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/KerberosTimeEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/LastRequestEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/PreAuthenticationDataEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/PrincipalNameEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/PrivateMessageEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/TicketEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/io/encoder/TransitedEncodingEncoder.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/jaas/CallbackHandlerBean.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/jaas/Krb5LoginConfiguration.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/ApplicationRequest.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/AuthenticationReply.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/ErrorMessage.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/ErrorMessageModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/KdcReply.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/KdcRequest.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/KerberosMessage.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/MessageType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/TicketGrantReply.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/application/ApplicationReply.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/application/CredentialMessage.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/application/PrivateMessage.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/application/SafeBody.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/application/SafeMessage.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/Authenticator.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/AuthenticatorModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncApRepPart.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncApRepPartModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncAsRepPart.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncKdcRepPart.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncKrbCredPart.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncKrbPrivPart.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncKrbPrivPartModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncTgsRepPart.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncTicketPart.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/EncTicketPartModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/MessageComponentType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/Ticket.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/components/TicketModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/ApOptions.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/AuthorizationData.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/AuthorizationDataEntry.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/AuthorizationType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/Checksum.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/EncryptedData.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/EncryptedDataModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/EncryptedTimeStamp.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/EncryptedTimeStampModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/EncryptionKey.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/EncryptionTypeInfoEntry.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/HostAddress.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/HostAddressType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/HostAddresses.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/KdcOptions.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/KerberosPrincipalModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/KerberosTime.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/KrbCredInfo.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/LastRequest.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/LastRequestEntry.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/LastRequestType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/Options.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/PreAuthenticationData.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/PreAuthenticationDataModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/PreAuthenticationDataType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/PrincipalName.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/PrincipalNameModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/PrincipalNameType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/RequestBody.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/RequestBodyModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/SamType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/TicketFlags.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/TransitedEncoding.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/messages/value/TransitedEncodingType.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/replay/InMemoryReplayCache.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/replay/ReplayCache.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/store/ContextOperation.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/store/JndiPrincipalStoreImpl.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/store/KerberosAttribute.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/store/PrincipalStore.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/store/PrincipalStoreEntry.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/store/PrincipalStoreEntryModifier.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/store/operations/ChangePassword.java
directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/store/operations/GetPrincipal.java
Modified: directory/shared/kerberos/trunk/common/project.xml
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/project.xml?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/project.xml (original)
+++ directory/shared/kerberos/trunk/common/project.xml Tue Aug 30 13:02:20 2005
@@ -11,11 +11,6 @@
<description>Common Kerberos 5 classes.</description>
<dependencies>
<dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.0.4</version>
- </dependency>
- <dependency>
<groupId>directory-asn1</groupId>
<artifactId>asn1-der</artifactId>
<version>0.3.1</version>
@@ -23,7 +18,7 @@
<dependency>
<groupId>directory-shared</groupId>
<artifactId>ldap-common</artifactId>
- <version>0.9.1</version>
+ <version>0.9.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>bouncycastle</groupId>
Propchange: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/Chain.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/Command.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/Context.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/Filter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/impl/ChainBase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/impl/CommandBase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/chain/impl/ContextBase.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/DesStringToKey.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/DesStringToKey.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/DesStringToKey.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/DesStringToKey.java Tue Aug 30 13:02:20 2005
@@ -16,158 +16,192 @@
*/
package org.apache.kerberos.crypto;
-import org.bouncycastle.crypto.engines.*;
-import org.bouncycastle.crypto.modes.*;
-import org.bouncycastle.crypto.params.*;
-
-public class DesStringToKey {
-
- private byte[] _desKey;
-
- public DesStringToKey(String passPhrase) {
- _desKey = generateKey(passPhrase);
- }
-
- // This is the concatenation order as designated in RFC 1510
- public DesStringToKey(String password, String realmName, String userName) {
- _desKey = generateKey(password + realmName + userName);
- }
-
- public byte[] getKey() {
- return _desKey;
- }
-
- private byte[] generateKey(String passPhrase) {
-
- byte encodedByteArray[] = characterEncodeString(passPhrase);
-
- byte paddedByteArray[] = padString(encodedByteArray);
-
- byte secretKey[] = fanFold(paddedByteArray);
-
- DESParameters.setOddParity(secretKey);
-
- if (DESParameters.isWeakKey(secretKey, 0))
- secretKey = getStrongKey(secretKey);
-
- secretKey = encryptSecretKey(paddedByteArray, secretKey);
-
- DESParameters.setOddParity(secretKey);
-
- if (DESParameters.isWeakKey(secretKey, 0))
- secretKey = getStrongKey(secretKey);
-
- return secretKey;
- }
-
- private byte[] fanFold(byte[] paddedByteArray) {
-
- byte secretKey[] = new byte[8];
-
- int i = paddedByteArray.length / 8;
-
- for (int x = 0; x < i; x++) {
- byte blockValue1[] = new byte[8];
- System.arraycopy(paddedByteArray, x * 8, blockValue1, 0, 8);
-
- if (x % 2 == 1) {
- byte tempbyte1 = 0;
- byte tempbyte2 = 0;
- byte blockValue2[] = new byte[8];
-
- for (int y = 0; y < 8; y++) {
- tempbyte2 = 0;
- for (int z = 0; z < 4; z++) {
- tempbyte2 = (byte) ((1 << (7 - z)) & 0xff);
- tempbyte1 |= (blockValue1[y] & tempbyte2) >>> (7 - 2 * z);
- tempbyte2 = 0;
- }
- for (int z = 4; z < 8; z++) {
- tempbyte2 = (byte) ((1 << (7 - z)) & 0xff);
- tempbyte1 |= (blockValue1[y] & tempbyte2) << (2 * z - 7);
- tempbyte2 = 0;
- }
- blockValue2[7 - y] = tempbyte1;
- tempbyte1 = 0;
- }
-
- for (int a = 0; a < 8; a++)
- blockValue2[a] = (byte) (((blockValue2[a] & 0xff) >>> 1) & 0xff);
-
- System.arraycopy(blockValue2, 0, blockValue1, 0, blockValue2.length);
- }
-
- for (int a = 0; a < 8; a++)
- blockValue1[a] = (byte) (((blockValue1[a] & 0xff) << 1) & 0xff);
-
- // ... eXclusive-ORed with itself to form an 8-byte DES key
- for (int b = 0; b < 8; b++)
- secretKey[b] ^= blockValue1[b];
- }
- return secretKey;
- }
-
- // TODO - Re-evaluate when DES3 keys are supported. This is duplicated
- // with parts of CryptoService, but makes this class standalone.
- private byte[] encryptSecretKey(byte data[], byte key[]) {
-
- CBCBlockCipher cipher = new CBCBlockCipher(new DESEngine());
- KeyParameter kp = new KeyParameter(key);
- ParametersWithIV iv;
-
- iv = new ParametersWithIV(kp, key);
- cipher.init(true, iv);
-
- byte encKey[] = new byte[data.length];
- byte ivBytes[] = new byte[8];
-
- for (int x = 0; x < data.length / 8; x++) {
- cipher.processBlock(data, x * 8, encKey, x * 8);
- System.arraycopy(encKey, x * 8, ivBytes, 0, 8);
- iv = new ParametersWithIV(kp, ivBytes);
- cipher.init(true, iv);
- }
-
- return ivBytes;
- }
-
- // Corrects the weak key by exclusive OR with 0xF0 constant.
- private byte[] getStrongKey(byte keyValue[]) {
- keyValue[7] ^= 0xf0;
- return keyValue;
- }
-
- // Encodes string with ISO-Latin encoding
- private byte[] characterEncodeString(String str) {
- byte encodedByteArray[] = new byte[str.length()];
- try {
- encodedByteArray = str.getBytes("8859_1");
- } catch (java.io.UnsupportedEncodingException ue) {
- }
- return encodedByteArray;
- }
-
- // Add padding to make an exact multiple of 8.
- // TODO - Re-evaluate when DES3 keys are supported. This is duplicated
- // with parts of CryptoService, but makes this class standalone.
- private byte[] padString(byte encodedString[]) {
- int x;
- if (encodedString.length < 8)
- x = encodedString.length;
- else
- x = encodedString.length % 8;
-
- if (x == 0)
- return encodedString;
-
- byte paddedByteArray[] = new byte[(8 - x) + encodedString.length];
- for (int y = paddedByteArray.length - 1; y > encodedString.length - 1; y--)
- paddedByteArray[y] = 0;
+import org.bouncycastle.crypto.engines.DESEngine;
+import org.bouncycastle.crypto.modes.CBCBlockCipher;
+import org.bouncycastle.crypto.params.DESParameters;
+import org.bouncycastle.crypto.params.KeyParameter;
+import org.bouncycastle.crypto.params.ParametersWithIV;
+
+public class DesStringToKey
+{
+ private byte[] desKey;
+
+ public DesStringToKey( String passPhrase )
+ {
+ desKey = generateKey( passPhrase );
+ }
+
+ // This is the concatenation order as designated in RFC 1510
+ public DesStringToKey( String password, String realmName, String userName )
+ {
+ desKey = generateKey( password + realmName + userName );
+ }
+
+ public byte[] getKey()
+ {
+ return desKey;
+ }
+
+ private byte[] generateKey( String passPhrase )
+ {
+ byte encodedByteArray[] = characterEncodeString( passPhrase );
+
+ byte paddedByteArray[] = padString( encodedByteArray );
+
+ byte secretKey[] = fanFold( paddedByteArray );
+
+ DESParameters.setOddParity( secretKey );
+
+ if ( DESParameters.isWeakKey( secretKey, 0 ) )
+ {
+ secretKey = getStrongKey( secretKey );
+ }
+
+ secretKey = encryptSecretKey( paddedByteArray, secretKey );
+
+ DESParameters.setOddParity( secretKey );
+
+ if ( DESParameters.isWeakKey( secretKey, 0 ) )
+ {
+ secretKey = getStrongKey( secretKey );
+ }
+
+ return secretKey;
+ }
+
+ private byte[] fanFold( byte[] paddedByteArray )
+ {
+ byte secretKey[] = new byte[ 8 ];
+
+ int i = paddedByteArray.length / 8;
+
+ for ( int x = 0; x < i; x++ )
+ {
+ byte blockValue1[] = new byte[ 8 ];
+ System.arraycopy( paddedByteArray, x * 8, blockValue1, 0, 8 );
+
+ if ( x % 2 == 1 )
+ {
+ byte tempbyte1 = 0;
+ byte tempbyte2 = 0;
+ byte blockValue2[] = new byte[ 8 ];
+
+ for ( int y = 0; y < 8; y++ )
+ {
+ tempbyte2 = 0;
+ for ( int z = 0; z < 4; z++ )
+ {
+ tempbyte2 = (byte) ( ( 1 << ( 7 - z ) ) & 0xff );
+ tempbyte1 |= ( blockValue1[ y ] & tempbyte2 ) >>> ( 7 - 2 * z );
+ tempbyte2 = 0;
+ }
+ for ( int z = 4; z < 8; z++ )
+ {
+ tempbyte2 = (byte) ( ( 1 << ( 7 - z ) ) & 0xff );
+ tempbyte1 |= ( blockValue1[ y ] & tempbyte2 ) << ( 2 * z - 7 );
+ tempbyte2 = 0;
+ }
+ blockValue2[ 7 - y ] = tempbyte1;
+ tempbyte1 = 0;
+ }
+
+ for ( int a = 0; a < 8; a++ )
+ {
+ blockValue2[ a ] = (byte) ( ( ( blockValue2[ a ] & 0xff ) >>> 1 ) & 0xff );
+ }
+
+ System.arraycopy( blockValue2, 0, blockValue1, 0, blockValue2.length );
+ }
+
+ for ( int a = 0; a < 8; a++ )
+ {
+ blockValue1[ a ] = (byte) ( ( ( blockValue1[ a ] & 0xff ) << 1 ) & 0xff );
+ }
+
+ // ... eXclusive-ORed with itself to form an 8-byte DES key
+ for ( int b = 0; b < 8; b++ )
+ {
+ secretKey[ b ] ^= blockValue1[ b ];
+ }
+ }
+ return secretKey;
+ }
+
+ // TODO - Re-evaluate when DES3 keys are supported. This is duplicated
+ // with parts of CryptoService, but makes this class standalone.
+ private byte[] encryptSecretKey( byte data[], byte key[] )
+ {
+ CBCBlockCipher cipher = new CBCBlockCipher( new DESEngine() );
+ KeyParameter kp = new KeyParameter( key );
+ ParametersWithIV iv;
+
+ iv = new ParametersWithIV( kp, key );
+ cipher.init( true, iv );
+
+ byte encKey[] = new byte[ data.length ];
+ byte ivBytes[] = new byte[ 8 ];
+
+ for ( int x = 0; x < data.length / 8; x++ )
+ {
+ cipher.processBlock( data, x * 8, encKey, x * 8 );
+ System.arraycopy( encKey, x * 8, ivBytes, 0, 8 );
+ iv = new ParametersWithIV( kp, ivBytes );
+ cipher.init( true, iv );
+ }
+
+ return ivBytes;
+ }
+
+ // Corrects the weak key by exclusive OR with 0xF0 constant.
+ private byte[] getStrongKey( byte keyValue[] )
+ {
+ keyValue[ 7 ] ^= 0xf0;
+ return keyValue;
+ }
+
+ // Encodes string with ISO-Latin encoding
+ private byte[] characterEncodeString( String str )
+ {
+ byte encodedByteArray[] = new byte[ str.length() ];
+ try
+ {
+ encodedByteArray = str.getBytes( "8859_1" );
+ }
+ catch ( java.io.UnsupportedEncodingException ue )
+ {
+ }
+ return encodedByteArray;
+ }
+
+ // Add padding to make an exact multiple of 8.
+ // TODO - Re-evaluate when DES3 keys are supported. This is duplicated
+ // with parts of CryptoService, but makes this class standalone.
+ private byte[] padString( byte encodedString[] )
+ {
+ int x;
+ if ( encodedString.length < 8 )
+ {
+ x = encodedString.length;
+ }
+ else
+ {
+ x = encodedString.length % 8;
+ }
+
+ if ( x == 0 )
+ {
+ return encodedString;
+ }
+
+ byte paddedByteArray[] = new byte[ ( 8 - x ) + encodedString.length ];
+
+ for ( int y = paddedByteArray.length - 1; y > encodedString.length - 1; y-- )
+ {
+ paddedByteArray[ y ] = 0;
+ }
- System.arraycopy(encodedString, 0, paddedByteArray, 0, encodedString.length);
+ System.arraycopy( encodedString, 0, paddedByteArray, 0, encodedString.length );
- return paddedByteArray;
-
- }
+ return paddedByteArray;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/RandomKey.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/RandomKey.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/RandomKey.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/RandomKey.java Tue Aug 30 13:02:20 2005
@@ -16,44 +16,44 @@
*/
package org.apache.kerberos.crypto;
-import org.apache.kerberos.crypto.encryption.EncryptionType;
-import org.apache.kerberos.messages.value.EncryptionKey;
+import java.security.SecureRandom;
import javax.security.auth.kerberos.KerberosKey;
import javax.security.auth.kerberos.KerberosPrincipal;
-import java.security.SecureRandom;
+
+import org.apache.kerberos.crypto.encryption.EncryptionType;
+import org.apache.kerberos.messages.value.EncryptionKey;
public class RandomKey
{
private static final SecureRandom random = new SecureRandom();
- public EncryptionKey getNewSessionKey()
+ public EncryptionKey getNewSessionKey()
{
- byte[] confounder = getRandomBytes( 8 );
- DesStringToKey subSessionKey = new DesStringToKey(new String(confounder));
+ byte[] confounder = getRandomBytes( 8 );
+ DesStringToKey subSessionKey = new DesStringToKey( new String( confounder ) );
- return new EncryptionKey(EncryptionType.DES_CBC_MD5, subSessionKey.getKey());
- }
+ return new EncryptionKey( EncryptionType.DES_CBC_MD5, subSessionKey.getKey() );
+ }
- public static KerberosKey getRandomKeyFor(KerberosPrincipal principal)
+ public static KerberosKey getRandomKeyFor( KerberosPrincipal principal )
{
final int DES_KEY_TYPE = 3;
- int keyVersion = 1;
+ int keyVersion = 1;
- byte[] randomBytes = getRandomBytes( 8 );
- DesStringToKey randomKey = new DesStringToKey( new String( randomBytes ) );
+ byte[] randomBytes = getRandomBytes( 8 );
+ DesStringToKey randomKey = new DesStringToKey( new String( randomBytes ) );
- return new KerberosKey( principal, randomKey.getKey(), DES_KEY_TYPE, keyVersion );
+ return new KerberosKey( principal, randomKey.getKey(), DES_KEY_TYPE, keyVersion );
}
- private static byte[] getRandomBytes(int size)
+ private static byte[] getRandomBytes( int size )
{
- byte[] bytes = new byte[size];
+ byte[] bytes = new byte[ size ];
// SecureRandom.nextBytes is already synchronized
- random.nextBytes(bytes);
+ random.nextBytes( bytes );
return bytes;
}
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumEngine.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumEngine.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumEngine.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumEngine.java Tue Aug 30 13:02:20 2005
@@ -22,24 +22,23 @@
public abstract class ChecksumEngine
{
public abstract Digest getDigest();
- public abstract ChecksumType checksumType();
- public abstract CipherType keyType();
- public abstract int checksumSize();
- public abstract int keySize();
- public abstract int confounderSize();
- public abstract boolean isSafe();
- public abstract byte[] calculateKeyedChecksum( byte[] data, byte[] key );
- public abstract boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum );
+ public abstract ChecksumType checksumType();
+ public abstract CipherType keyType();
+ public abstract int checksumSize();
+ public abstract int keySize();
+ public abstract int confounderSize();
+ public abstract boolean isSafe();
+ public abstract byte[] calculateKeyedChecksum( byte[] data, byte[] key );
+ public abstract boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum );
public byte[] calculateChecksum( byte[] data )
{
Digest digester = getDigest();
- digester.reset();
- digester.update( data, 0, data.length );
- byte[] returnValue = new byte[ digester.getDigestSize() ];
- digester.doFinal( returnValue, 0 );
- return returnValue;
- }
+ digester.reset();
+ digester.update( data, 0, data.length );
+ byte[] returnValue = new byte[ digester.getDigestSize() ];
+ digester.doFinal( returnValue, 0 );
+ return returnValue;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumType.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumType.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumType.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/ChecksumType.java Tue Aug 30 13:02:20 2005
@@ -42,47 +42,48 @@
public String toString()
{
- return _fName;
- }
+ return name;
+ }
- public int compareTo( Object that )
+ public int compareTo( Object that )
{
- return _fOrdinal - ((ChecksumType) that)._fOrdinal;
- }
+ return ordinal - ( (ChecksumType) that ).ordinal;
+ }
- public static ChecksumType getTypeByOrdinal( int type )
+ public static ChecksumType getTypeByOrdinal( int type )
{
- for (int i = 0; i < fValues.length; i++)
- if (fValues[i]._fOrdinal == type)
- return fValues[i];
- return NULL;
- }
-
- public int getOrdinal()
+ for ( int i = 0; i < values.length; i++ )
+ {
+ if ( values[ i ].ordinal == type ) return values[ i ];
+ }
+
+ return NULL;
+ }
+
+ public int getOrdinal()
{
- return _fOrdinal;
- }
+ return ordinal;
+ }
- /// PRIVATE /////
- private final String _fName;
- private final int _fOrdinal;
-
- /**
- * Private constructor prevents construction outside of this class.
- */
- private ChecksumType( int ordinal, String name )
+ /// PRIVATE /////
+ private final String name;
+ private final int ordinal;
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private ChecksumType( int ordinal, String name )
{
- _fOrdinal = ordinal;
- _fName = name;
- }
-
- /**
- * These two lines are all that's necessary to export a List of VALUES.
- */
- private static final ChecksumType[] fValues = {NULL, CRC32, RSA_MD4, RSA_MD4_DES,
- DES_MAC, DES_MAC_K, RSA_MD4_DES_K, RSA_MD5, RSA_MD5_DES, RSA_MD5_DES3,
- SHA1, UNKNOWN11, HMAC_SHA1_DES3};
- // VALUES needs to be located here, otherwise illegal forward reference
- public static final List VALUES = Collections.unmodifiableList( Arrays.asList(fValues) );
+ this.ordinal = ordinal;
+ this.name = name;
+ }
+
+ /**
+ * These two lines are all that's necessary to export a List of VALUES.
+ */
+ private static final ChecksumType[] values = { NULL, CRC32, RSA_MD4, RSA_MD4_DES, DES_MAC,
+ DES_MAC_K, RSA_MD4_DES_K, RSA_MD5, RSA_MD5_DES, RSA_MD5_DES3, SHA1, UNKNOWN11,
+ HMAC_SHA1_DES3 };
+ // VALUES needs to be located here, otherwise illegal forward reference
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Crc32Checksum.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Crc32Checksum.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Crc32Checksum.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Crc32Checksum.java Tue Aug 30 13:02:20 2005
@@ -16,11 +16,11 @@
*/
package org.apache.kerberos.crypto.checksum;
+import java.util.zip.CRC32;
+
import org.apache.kerberos.crypto.encryption.CipherType;
import org.bouncycastle.crypto.Digest;
-import java.util.zip.CRC32;
-
public class Crc32Checksum extends ChecksumEngine
{
public Digest getDigest()
@@ -28,45 +28,45 @@
return new CRC32Digest();
}
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.CRC32;
- }
+ return ChecksumType.CRC32;
+ }
- public CipherType keyType()
+ public CipherType keyType()
{
- return CipherType.NULL;
- }
+ return CipherType.NULL;
+ }
- public int checksumSize()
+ public int checksumSize()
{
return 4;
- }
+ }
- public int keySize()
+ public int keySize()
{
- return 0;
- }
+ return 0;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 0;
- }
+ return 0;
+ }
- public boolean isSafe()
+ public boolean isSafe()
{
- return false;
- }
+ return false;
+ }
- public byte[] calculateKeyedChecksum( byte[] data, byte[] key )
+ public byte[] calculateKeyedChecksum( byte[] data, byte[] key )
{
- return null;
- }
+ return null;
+ }
- public boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum )
+ public boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum )
{
- return false;
- }
+ return false;
+ }
private class CRC32Digest implements Digest
{
@@ -97,22 +97,24 @@
crc32.update( in, inOff, len );
}
- public int doFinal(byte[] out, int outOff)
+ public int doFinal( byte[] out, int outOff )
{
- out = int2octet( (int)crc32.getValue() );
+ out = int2octet( (int) crc32.getValue() );
return 0;
}
private byte[] int2octet( int value )
{
- byte[] bytes = new byte[4];
+ byte[] bytes = new byte[ 4 ];
int i, shift;
- for (i = 0, shift = 24; i < 4; i++, shift -= 8)
- bytes[i] = (byte) (0xFF & (value >> shift));
+ for ( i = 0, shift = 24; i < 4; i++, shift -= 8 )
+ {
+ bytes[ i ] = (byte) ( 0xFF & ( value >> shift ) );
+ }
+
return bytes;
}
}
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd4Checksum.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd4Checksum.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd4Checksum.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd4Checksum.java Tue Aug 30 13:02:20 2005
@@ -27,44 +27,43 @@
return new MD4Digest();
}
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.RSA_MD4;
- }
+ return ChecksumType.RSA_MD4;
+ }
- public CipherType keyType()
+ public CipherType keyType()
{
- return CipherType.NULL;
- }
-
- public int checksumSize()
+ return CipherType.NULL;
+ }
+
+ public int checksumSize()
{
- return 16;
- }
+ return 16;
+ }
- public int keySize()
+ public int keySize()
{
- return 0;
- }
+ return 0;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 0;
- }
+ return 0;
+ }
- public boolean isSafe()
+ public boolean isSafe()
{
- return false;
- }
+ return false;
+ }
- public byte[] calculateKeyedChecksum(byte[] data, byte[] key)
+ public byte[] calculateKeyedChecksum( byte[] data, byte[] key )
{
- return null;
- }
+ return null;
+ }
- public boolean verifyKeyedChecksum(byte[] data, byte[] key, byte[] checksum)
+ public boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum )
{
- return false;
- }
+ return false;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd5Checksum.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd5Checksum.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd5Checksum.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/RsaMd5Checksum.java Tue Aug 30 13:02:20 2005
@@ -27,44 +27,43 @@
return new MD5Digest();
}
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.RSA_MD5;
- }
+ return ChecksumType.RSA_MD5;
+ }
- public CipherType keyType()
+ public CipherType keyType()
{
- return CipherType.NULL;
- }
+ return CipherType.NULL;
+ }
- public int checksumSize()
+ public int checksumSize()
{
- return 16;
- }
+ return 16;
+ }
- public int keySize()
+ public int keySize()
{
- return 0;
- }
+ return 0;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 0;
- }
+ return 0;
+ }
- public boolean isSafe()
+ public boolean isSafe()
{
- return false;
- }
+ return false;
+ }
- public byte[] calculateKeyedChecksum( byte[] data, byte[] key )
+ public byte[] calculateKeyedChecksum( byte[] data, byte[] key )
{
- return null;
- }
+ return null;
+ }
- public boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum )
+ public boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum )
{
- return false;
- }
+ return false;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Sha1Checksum.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Sha1Checksum.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Sha1Checksum.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/checksum/Sha1Checksum.java Tue Aug 30 13:02:20 2005
@@ -27,44 +27,43 @@
return new SHA1Digest();
}
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.SHA1;
- }
+ return ChecksumType.SHA1;
+ }
- public CipherType keyType()
+ public CipherType keyType()
{
- return CipherType.NULL;
- }
-
- public int checksumSize()
+ return CipherType.NULL;
+ }
+
+ public int checksumSize()
{
- return 20;
- }
+ return 20;
+ }
- public int keySize()
+ public int keySize()
{
- return 0;
- }
+ return 0;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 0;
- }
+ return 0;
+ }
- public boolean isSafe()
+ public boolean isSafe()
{
- return false;
- }
+ return false;
+ }
- public byte[] calculateKeyedChecksum( byte[] data, byte[] key )
+ public byte[] calculateKeyedChecksum( byte[] data, byte[] key )
{
- return null;
- }
+ return null;
+ }
- public boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum )
+ public boolean verifyKeyedChecksum( byte[] data, byte[] key, byte[] checksum )
{
- return false;
- }
+ return false;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/CipherType.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/CipherType.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/CipherType.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/CipherType.java Tue Aug 30 13:02:20 2005
@@ -16,10 +16,12 @@
*/
package org.apache.kerberos.crypto.encryption;
-import java.util.*;
-
-public final class CipherType implements Comparable {
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+public final class CipherType implements Comparable
+{
/**
* Enumeration elements are constructed once upon class loading.
* Order of appearance here determines the order of compareTo.
@@ -29,38 +31,40 @@
public static final CipherType DES3 = new CipherType("DES3");
public static final CipherType AES128 = new CipherType("AES128");
- public String toString() {
- return fName;
- }
-
- public int compareTo(Object that) {
- return fOrdinal - ((CipherType) that).fOrdinal;
- }
-
- public CipherType getTypeByOrdinal(int type) {
- for (int i = 0; i < fValues.length; i++)
- if (fValues[i].fOrdinal == type)
- return fValues[i];
- return NULL;
- }
-
- /// PRIVATE /////
- private final String fName;
- private static int fNextOrdinal = 0;
- private final int fOrdinal = fNextOrdinal++;
-
- /**
- * Private constructor prevents construction outside of this class.
- */
- private CipherType(String aName) {
- fName = aName;
- }
-
- /**
- * These two lines are all that's necessary to export a List of VALUES.
- */
- private static final CipherType[] fValues = {NULL, DES, DES3, AES128};
- // VALUES needs to be located here, otherwise illegal forward reference
- public static final List VALUES = Collections.unmodifiableList(Arrays.asList(fValues));
+ public String toString()
+ {
+ return name;
+ }
+
+ public int compareTo( Object that )
+ {
+ return ordinal - ( (CipherType) that ).ordinal;
+ }
+
+ public CipherType getTypeByOrdinal( int type )
+ {
+ for ( int i = 0; i < values.length; i++ )
+ if ( values[ i ].ordinal == type ) return values[ i ];
+ return NULL;
+ }
+
+ /// PRIVATE /////
+ private final String name;
+ private static int nextOrdinal = 0;
+ private final int ordinal = nextOrdinal++;
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private CipherType( String name )
+ {
+ this.name = name;
+ }
+
+ /**
+ * These two lines are all that's necessary to export a List of VALUES.
+ */
+ private static final CipherType[] values = { NULL, DES, DES3, AES128 };
+ // VALUES needs to be located here, otherwise illegal forward reference
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcEncryption.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcEncryption.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcEncryption.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcEncryption.java Tue Aug 30 13:02:20 2005
@@ -26,19 +26,18 @@
return new DESedeEngine();
}
- public CipherType keyType()
+ public CipherType keyType()
{
- return CipherType.DES3;
- }
+ return CipherType.DES3;
+ }
- public int blockSize()
+ public int blockSize()
{
- return 8;
- }
+ return 8;
+ }
- public int keySize()
+ public int keySize()
{
- return 24;
- }
+ return 24;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcMd5Encryption.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcMd5Encryption.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcMd5Encryption.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcMd5Encryption.java Tue Aug 30 13:02:20 2005
@@ -27,29 +27,28 @@
return new RsaMd5Checksum();
}
- public EncryptionType encryptionType()
+ public EncryptionType encryptionType()
{
- return EncryptionType.DES3_CBC_MD5;
- }
+ return EncryptionType.DES3_CBC_MD5;
+ }
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.RSA_MD5;
- }
+ return ChecksumType.RSA_MD5;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 8;
- }
+ return 8;
+ }
- public int checksumSize()
+ public int checksumSize()
{
- return 16;
- }
-
- public int minimumPadSize()
+ return 16;
+ }
+
+ public int minimumPadSize()
{
- return 0;
- }
+ return 0;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcSha1Encryption.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcSha1Encryption.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcSha1Encryption.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/Des3CbcSha1Encryption.java Tue Aug 30 13:02:20 2005
@@ -27,29 +27,28 @@
return new Sha1Checksum();
}
- public EncryptionType encryptionType()
+ public EncryptionType encryptionType()
{
- return EncryptionType.DES3_CBC_SHA1;
- }
+ return EncryptionType.DES3_CBC_SHA1;
+ }
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.SHA1;
- }
+ return ChecksumType.SHA1;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 8;
- }
+ return 8;
+ }
- public int checksumSize()
+ public int checksumSize()
{
- return 20;
- }
-
- public int minimumPadSize()
+ return 20;
+ }
+
+ public int minimumPadSize()
{
- return 0;
- }
+ return 0;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcCrcEncryption.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcCrcEncryption.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcCrcEncryption.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcCrcEncryption.java Tue Aug 30 13:02:20 2005
@@ -27,34 +27,33 @@
return new Crc32Checksum();
}
- public EncryptionType encryptionType()
+ public EncryptionType encryptionType()
{
- return EncryptionType.DES_CBC_CRC;
- }
+ return EncryptionType.DES_CBC_CRC;
+ }
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.CRC32;
- }
+ return ChecksumType.CRC32;
+ }
- public CipherType cipherType()
+ public CipherType cipherType()
{
- return CipherType.DES;
- }
+ return CipherType.DES;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 8;
- }
+ return 8;
+ }
- public int checksumSize()
+ public int checksumSize()
{
- return 4;
- }
+ return 4;
+ }
- public int minimumPadSize()
+ public int minimumPadSize()
{
- return 4;
- }
+ return 4;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcEncryption.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcEncryption.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcEncryption.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcEncryption.java Tue Aug 30 13:02:20 2005
@@ -26,19 +26,18 @@
return new DESEngine();
}
- public CipherType keyType()
+ public CipherType keyType()
{
- return CipherType.DES;
- }
+ return CipherType.DES;
+ }
- public int blockSize()
+ public int blockSize()
{
- return 8;
- }
+ return 8;
+ }
- public int keySize()
+ public int keySize()
{
- return 8;
- }
+ return 8;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd4Encryption.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd4Encryption.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd4Encryption.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd4Encryption.java Tue Aug 30 13:02:20 2005
@@ -27,29 +27,28 @@
return new RsaMd4Checksum();
}
- public EncryptionType encryptionType()
+ public EncryptionType encryptionType()
{
- return EncryptionType.DES_CBC_MD4;
- }
+ return EncryptionType.DES_CBC_MD4;
+ }
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.RSA_MD4;
- }
+ return ChecksumType.RSA_MD4;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 8;
- }
+ return 8;
+ }
- public int checksumSize()
+ public int checksumSize()
{
- return 16;
- }
-
- public int minimumPadSize()
+ return 16;
+ }
+
+ public int minimumPadSize()
{
- return 0;
- }
+ return 0;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd5Encryption.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd5Encryption.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd5Encryption.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/DesCbcMd5Encryption.java Tue Aug 30 13:02:20 2005
@@ -27,29 +27,28 @@
return new RsaMd5Checksum();
}
- public EncryptionType encryptionType()
+ public EncryptionType encryptionType()
{
- return EncryptionType.DES_CBC_MD5;
- }
+ return EncryptionType.DES_CBC_MD5;
+ }
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.RSA_MD5;
- }
+ return ChecksumType.RSA_MD5;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 8;
- }
+ return 8;
+ }
- public int checksumSize()
+ public int checksumSize()
{
- return 16;
- }
-
- public int minimumPadSize()
+ return 16;
+ }
+
+ public int minimumPadSize()
{
- return 0;
- }
+ return 0;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngine.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngine.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngine.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngine.java Tue Aug 30 13:02:20 2005
@@ -31,147 +31,167 @@
public abstract class EncryptionEngine
{
private static final SecureRandom random = new SecureRandom();
-
public abstract ChecksumEngine getChecksumEngine();
public abstract BlockCipher getBlockCipher();
-
- public abstract EncryptionType encryptionType();
- public abstract ChecksumType checksumType();
- public abstract CipherType keyType();
- public abstract int confounderSize();
- public abstract int checksumSize();
- public abstract int blockSize();
- public abstract int minimumPadSize();
- public abstract int keySize();
+ public abstract EncryptionType encryptionType();
+ public abstract ChecksumType checksumType();
+ public abstract CipherType keyType();
+ public abstract int confounderSize();
+ public abstract int checksumSize();
+ public abstract int blockSize();
+ public abstract int minimumPadSize();
+ public abstract int keySize();
public byte[] getDecryptedData( EncryptionKey key, EncryptedData data )
throws KerberosException
{
- byte[] decryptedData = decrypt( data.getCipherText(), key.getKeyValue() );
+ byte[] decryptedData = decrypt( data.getCipherText(), key.getKeyValue() );
- return removeBytes( decryptedData, confounderSize(), checksumSize() );
- }
+ return removeBytes( decryptedData, confounderSize(), checksumSize() );
+ }
public EncryptedData getEncryptedData( EncryptionKey key, byte[] plainText )
- throws KerberosException
+ throws KerberosException
{
- byte[] conFounder = getRandomBytes(confounderSize());
- byte[] zeroedChecksum = new byte[checksumSize()];
- byte[] paddedPlainText = padString(plainText);
- byte[] dataBytes = concatenateBytes(conFounder, concatenateBytes(zeroedChecksum, paddedPlainText));
- byte[] checksumBytes = calculateChecksum(dataBytes);
- byte[] paddedDataBytes = padString(dataBytes);
+ byte[] conFounder = getRandomBytes( confounderSize() );
+ byte[] zeroedChecksum = new byte[ checksumSize() ];
+ byte[] paddedPlainText = padString( plainText );
+ byte[] dataBytes = concatenateBytes( conFounder, concatenateBytes( zeroedChecksum,
+ paddedPlainText ) );
+ byte[] checksumBytes = calculateChecksum( dataBytes );
+ byte[] paddedDataBytes = padString( dataBytes );
// lay the checksum into the ciphertext
- for (int i = confounderSize(); i < confounderSize() + checksumSize(); i++)
+ for ( int i = confounderSize(); i < confounderSize() + checksumSize(); i++ )
{
- paddedDataBytes[i] = checksumBytes[i - confounderSize()];
+ paddedDataBytes[ i ] = checksumBytes[ i - confounderSize() ];
}
- byte[] encryptedData = encrypt(paddedDataBytes, key.getKeyValue());
+ byte[] encryptedData = encrypt( paddedDataBytes, key.getKeyValue() );
- return new EncryptedData( encryptionType(), key.getKeyVersion(), encryptedData );
- }
+ return new EncryptedData( encryptionType(), key.getKeyVersion(), encryptedData );
+ }
private byte[] encrypt( byte[] data, byte[] key )
{
- return processBlockCipher( true, data, key, null );
- }
+ return processBlockCipher( true, data, key, null );
+ }
- private byte[] decrypt( byte[] data, byte[] key )
+ private byte[] decrypt( byte[] data, byte[] key )
{
- return processBlockCipher( false, data, key, null );
- }
+ return processBlockCipher( false, data, key, null );
+ }
private byte[] getRandomBytes( int size )
{
- byte[] bytes = new byte[size];
+ byte[] bytes = new byte[ size ];
// SecureRandom.nextBytes is already synchronized
- random.nextBytes(bytes);
+ random.nextBytes( bytes );
return bytes;
}
- private byte[] padString( byte encodedString[] )
+ private byte[] padString( byte encodedString[] )
{
- int x;
- if (encodedString.length < 8)
- x = encodedString.length;
- else
- x = encodedString.length % 8;
+ int x;
+ if ( encodedString.length < 8 )
+ {
+ x = encodedString.length;
+ }
+ else
+ {
+ x = encodedString.length % 8;
+ }
- if (x == 0)
- return encodedString;
+ if ( x == 0 )
+ {
+ return encodedString;
+ }
- byte paddedByteArray[] = new byte[(8 - x) + encodedString.length];
- for (int y = paddedByteArray.length - 1; y > encodedString.length - 1; y--)
- paddedByteArray[y] = 0;
+ byte paddedByteArray[] = new byte[ ( 8 - x ) + encodedString.length ];
+
+ for ( int y = paddedByteArray.length - 1; y > encodedString.length - 1; y-- )
+ {
+ paddedByteArray[ y ] = 0;
+ }
- System.arraycopy(encodedString, 0, paddedByteArray, 0, encodedString.length);
+ System.arraycopy( encodedString, 0, paddedByteArray, 0, encodedString.length );
- return paddedByteArray;
- }
+ return paddedByteArray;
+ }
- private byte[] concatenateBytes( byte[] array1, byte[] array2 )
+ private byte[] concatenateBytes( byte[] array1, byte[] array2 )
{
- byte concatenatedBytes[] = new byte[array1.length + array2.length];
+ byte concatenatedBytes[] = new byte[ array1.length + array2.length ];
- for (int i = 0; i < array1.length; i++)
- concatenatedBytes[i] = array1[i];
+ for ( int i = 0; i < array1.length; i++ )
+ {
+ concatenatedBytes[ i ] = array1[ i ];
+ }
- for (int j = array1.length; j < concatenatedBytes.length; j++)
- concatenatedBytes[j] = array2[j - array1.length];
+ for ( int j = array1.length; j < concatenatedBytes.length; j++ )
+ {
+ concatenatedBytes[ j ] = array2[ j - array1.length ];
+ }
- return concatenatedBytes;
- }
+ return concatenatedBytes;
+ }
private byte[] calculateChecksum( byte[] data )
{
- ChecksumEngine digester = getChecksumEngine();
+ ChecksumEngine digester = getChecksumEngine();
- return digester.calculateChecksum(data);
- }
+ return digester.calculateChecksum( data );
+ }
private byte[] removeBytes( byte[] array, int confounder, int checksum )
{
- byte lessBytes[] = new byte[array.length - confounder - checksum];
+ byte lessBytes[] = new byte[ array.length - confounder - checksum ];
- int j = 0;
- for (int i = confounder + checksum; i < array.length; i++) {
- lessBytes[j] = array[i];
- j++;
- }
+ int j = 0;
+ for ( int i = confounder + checksum; i < array.length; i++ )
+ {
+ lessBytes[ j ] = array[ i ];
+ j++;
+ }
- return lessBytes;
- }
+ return lessBytes;
+ }
private byte[] processBlockCipher( boolean encrypt, byte[] data, byte[] key, byte[] ivec )
{
- byte[] returnData = new byte[data.length];
- CBCBlockCipher cbcCipher = new CBCBlockCipher(getBlockCipher());
- KeyParameter keyParameter = new KeyParameter(key);
-
- if (ivec != null) {
- ParametersWithIV kpWithIV = new ParametersWithIV(keyParameter, ivec);
- cbcCipher.init(encrypt, kpWithIV);
- } else
- cbcCipher.init(encrypt, keyParameter);
-
- int offset = 0;
- int processedBytesLength = 0;
-
- while (offset < returnData.length) {
- try {
- processedBytesLength = cbcCipher.processBlock(data, offset, returnData, offset);
- offset += processedBytesLength;
- } catch (Exception e) {
- e.printStackTrace();
- break;
- }
- }
+ byte[] returnData = new byte[ data.length ];
+ CBCBlockCipher cbcCipher = new CBCBlockCipher( getBlockCipher() );
+ KeyParameter keyParameter = new KeyParameter( key );
- return returnData;
- }
-}
+ if ( ivec != null )
+ {
+ ParametersWithIV kpWithIV = new ParametersWithIV( keyParameter, ivec );
+ cbcCipher.init( encrypt, kpWithIV );
+ }
+ else
+ {
+ cbcCipher.init( encrypt, keyParameter );
+ }
+ int offset = 0;
+ int processedBytesLength = 0;
+
+ while ( offset < returnData.length )
+ {
+ try
+ {
+ processedBytesLength = cbcCipher.processBlock( data, offset, returnData, offset );
+ offset += processedBytesLength;
+ }
+ catch ( Exception e )
+ {
+ e.printStackTrace();
+ break;
+ }
+ }
+
+ return returnData;
+ }
+}
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngineFactory.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngineFactory.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngineFactory.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionEngineFactory.java Tue Aug 30 13:02:20 2005
@@ -14,14 +14,12 @@
* limitations under the License.
*
*/
-
package org.apache.kerberos.crypto.encryption;
import org.apache.kerberos.exceptions.ErrorType;
import org.apache.kerberos.exceptions.KerberosException;
import org.apache.kerberos.messages.value.EncryptionKey;
-
public class EncryptionEngineFactory
{
public static EncryptionEngine getEncryptionEngineFor( EncryptionKey key )
@@ -48,4 +46,3 @@
throw new KerberosException( ErrorType.KDC_ERR_ETYPE_NOSUPP );
}
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionType.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionType.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionType.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/EncryptionType.java Tue Aug 30 13:02:20 2005
@@ -16,72 +16,83 @@
*/
package org.apache.kerberos.crypto.encryption;
-import java.util.*;
-
-public final class EncryptionType implements Comparable {
-
- /**
- * Enumeration elements are constructed once upon class loading.
- * Order of appearance here determines the order of compareTo.
- */
- public static final EncryptionType NULL = new EncryptionType(0, "null");
- public static final EncryptionType DES_CBC_CRC = new EncryptionType(1, "DES-CBC-CRC");
- public static final EncryptionType DES_CBC_MD4 = new EncryptionType(2, "DES-CBC-MD4");
- public static final EncryptionType DES_CBC_MD5 = new EncryptionType(3, "DES-CBC-MD5");
- public static final EncryptionType RESERVED4 = new EncryptionType(4, "RESERVED-4");
- public static final EncryptionType DES3_CBC_MD5 = new EncryptionType(5, "DES3-CBC-MD5");
- public static final EncryptionType RESERVED6 = new EncryptionType(6, "RESERVED-6");
- public static final EncryptionType DES3_CBC_SHA1 = new EncryptionType(7, "DES3-CBC-SHA1");
- public static final EncryptionType DES3_CBC_SHA1_KD = new EncryptionType(8, "DES3-CBC-SHA1-KD");
- public static final EncryptionType DSAWITHSHA1_CMSOID = new EncryptionType(9, "DSA-with-SHA1-CMS-oid");
- public static final EncryptionType MD5WITHRSAENCRYPTION_CMSOID = new EncryptionType(10, "MD5-with-RSA-encryption-CMS-oid");
- public static final EncryptionType SHA1WITHRSAENCRYPTION_CMSOID = new EncryptionType(11, "SHA1-with-RSA-encryption-CMS-oid");
- public static final EncryptionType RC2CBC_ENVOID = new EncryptionType(12, "RC2-CBC-environment-oid");
- public static final EncryptionType RSAENCRYPTION_ENVOID = new EncryptionType(13, "RSA-encryption-environment-oid");
- public static final EncryptionType RSAES_OAEP_ENV_OID = new EncryptionType(14, "RSA-ES-OAEP-environment-oid");
- public static final EncryptionType DES_EDE3_CBC_ENV_OID = new EncryptionType(15, "DES-EDE3-CBC-environment-oid");
- public static final EncryptionType RC4_HMAC = new EncryptionType(16, "RC4-HMAC");
- public static final EncryptionType PK_CROSS = new EncryptionType(17, "PK-cross");
-
- public String toString() {
- return _fName;
- }
-
- public int compareTo(Object that) {
- return _fOrdinal - ((EncryptionType) that)._fOrdinal;
- }
-
- public static EncryptionType getTypeByOrdinal(int type) {
- for (int i = 0; i < fValues.length; i++)
- if (fValues[i]._fOrdinal == type)
- return fValues[i];
- return NULL;
- }
-
- public int getOrdinal() {
- return _fOrdinal;
- }
-
- /// PRIVATE /////
- private final String _fName;
- private final int _fOrdinal;
-
- /**
- * Private constructor prevents construction outside of this class.
- */
- private EncryptionType(int ordinal, String name) {
- _fOrdinal = ordinal;
- _fName = name;
- }
-
- /**
- * These two lines are all that's necessary to export a List of VALUES.
- */
- private static final EncryptionType[] fValues = {NULL, DES_CBC_CRC, DES_CBC_MD4, DES_CBC_MD5,
- RESERVED4, DES3_CBC_MD5, RESERVED6, DES3_CBC_SHA1, DES3_CBC_SHA1_KD, DSAWITHSHA1_CMSOID,
- MD5WITHRSAENCRYPTION_CMSOID, SHA1WITHRSAENCRYPTION_CMSOID, RC2CBC_ENVOID,
- RSAENCRYPTION_ENVOID, RSAES_OAEP_ENV_OID, DES_EDE3_CBC_ENV_OID, RC4_HMAC, PK_CROSS};
- // VALUES needs to be located here, otherwise illegal forward reference
- public static final List VALUES = Collections.unmodifiableList(Arrays.asList(fValues));
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public final class EncryptionType implements Comparable
+{
+ /**
+ * Enumeration elements are constructed once upon class loading.
+ * Order of appearance here determines the order of compareTo.
+ */
+ public static final EncryptionType NULL = new EncryptionType(0, "null");
+ public static final EncryptionType DES_CBC_CRC = new EncryptionType(1, "DES-CBC-CRC");
+ public static final EncryptionType DES_CBC_MD4 = new EncryptionType(2, "DES-CBC-MD4");
+ public static final EncryptionType DES_CBC_MD5 = new EncryptionType(3, "DES-CBC-MD5");
+ public static final EncryptionType RESERVED4 = new EncryptionType(4, "RESERVED-4");
+ public static final EncryptionType DES3_CBC_MD5 = new EncryptionType(5, "DES3-CBC-MD5");
+ public static final EncryptionType RESERVED6 = new EncryptionType(6, "RESERVED-6");
+ public static final EncryptionType DES3_CBC_SHA1 = new EncryptionType(7, "DES3-CBC-SHA1");
+ public static final EncryptionType DES3_CBC_SHA1_KD = new EncryptionType(8, "DES3-CBC-SHA1-KD");
+ public static final EncryptionType DSAWITHSHA1_CMSOID = new EncryptionType(9, "DSA-with-SHA1-CMS-oid");
+ public static final EncryptionType MD5WITHRSAENCRYPTION_CMSOID = new EncryptionType(10, "MD5-with-RSA-encryption-CMS-oid");
+ public static final EncryptionType SHA1WITHRSAENCRYPTION_CMSOID = new EncryptionType(11, "SHA1-with-RSA-encryption-CMS-oid");
+ public static final EncryptionType RC2CBC_ENVOID = new EncryptionType(12, "RC2-CBC-environment-oid");
+ public static final EncryptionType RSAENCRYPTION_ENVOID = new EncryptionType(13, "RSA-encryption-environment-oid");
+ public static final EncryptionType RSAES_OAEP_ENV_OID = new EncryptionType(14, "RSA-ES-OAEP-environment-oid");
+ public static final EncryptionType DES_EDE3_CBC_ENV_OID = new EncryptionType(15, "DES-EDE3-CBC-environment-oid");
+ public static final EncryptionType RC4_HMAC = new EncryptionType(16, "RC4-HMAC");
+ public static final EncryptionType PK_CROSS = new EncryptionType(17, "PK-cross");
+
+ /**
+ * These two lines are all that's necessary to export a List of VALUES.
+ */
+ private static final EncryptionType[] values = { NULL, DES_CBC_CRC, DES_CBC_MD4, DES_CBC_MD5,
+ RESERVED4, DES3_CBC_MD5, RESERVED6, DES3_CBC_SHA1, DES3_CBC_SHA1_KD,
+ DSAWITHSHA1_CMSOID, MD5WITHRSAENCRYPTION_CMSOID, SHA1WITHRSAENCRYPTION_CMSOID,
+ RC2CBC_ENVOID, RSAENCRYPTION_ENVOID, RSAES_OAEP_ENV_OID, DES_EDE3_CBC_ENV_OID,
+ RC4_HMAC, PK_CROSS };
+
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+
+ private final String name;
+ private final int ordinal;
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private EncryptionType( int ordinal, String name )
+ {
+ this.ordinal = ordinal;
+ this.name = name;
+ }
+
+ public static EncryptionType getTypeByOrdinal( int type )
+ {
+ for ( int ii = 0; ii < values.length; ii++ )
+ {
+ if ( values[ ii ].ordinal == type )
+ {
+ return values[ ii ];
+ }
+ }
+
+ return NULL;
+ }
+
+ public int getOrdinal()
+ {
+ return ordinal;
+ }
+
+ public String toString()
+ {
+ return name + " (" + ordinal + ")";
+ }
+
+ public int compareTo( Object that )
+ {
+ return ordinal - ( (EncryptionType) that ).ordinal;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/NullEncryption.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/NullEncryption.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/NullEncryption.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/crypto/encryption/NullEncryption.java Tue Aug 30 13:02:20 2005
@@ -32,54 +32,53 @@
return null;
}
- public EncryptionType encryptionType()
+ public EncryptionType encryptionType()
{
- return EncryptionType.NULL;
- }
+ return EncryptionType.NULL;
+ }
- public CipherType keyType()
+ public CipherType keyType()
{
- return CipherType.NULL;
- }
+ return CipherType.NULL;
+ }
- public ChecksumType checksumType()
+ public ChecksumType checksumType()
{
- return ChecksumType.NULL;
- }
+ return ChecksumType.NULL;
+ }
- public int blockSize()
+ public int blockSize()
{
- return 1;
- }
+ return 1;
+ }
- public int keySize()
+ public int keySize()
{
- return 0;
- }
+ return 0;
+ }
- public int checksumSize()
+ public int checksumSize()
{
- return 0;
- }
+ return 0;
+ }
- public int confounderSize()
+ public int confounderSize()
{
- return 0;
- }
+ return 0;
+ }
- public int minimumPadSize()
+ public int minimumPadSize()
{
- return 0;
- }
+ return 0;
+ }
- protected byte[] processBlockCipher(boolean encrypt, byte[] data, byte[] key, byte[] ivec)
+ protected byte[] processBlockCipher( boolean encrypt, byte[] data, byte[] key, byte[] ivec )
{
- return data;
- }
+ return data;
+ }
- public byte[] calculateChecksum(byte[] plainText)
+ public byte[] calculateChecksum( byte[] plainText )
{
- return null;
- }
+ return null;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/ErrorType.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/ErrorType.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/ErrorType.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/ErrorType.java Tue Aug 30 13:02:20 2005
@@ -14,7 +14,6 @@
* limitations under the License.
*
*/
-
package org.apache.kerberos.exceptions;
import java.util.Arrays;
@@ -25,7 +24,7 @@
* Type safe enumeration of Kerberos error types
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
- * @version $Rev$
+ * @version $Rev$, $Date$
*/
public final class ErrorType implements Comparable
{
@@ -245,17 +244,15 @@
/** the value/code for the error type */
private final int ordinal;
-
/**
* Private constructor prevents construction outside of this class.
*/
private ErrorType( int ordinal, String name )
{
this.ordinal = ordinal;
- this.name = name;
+ this.name = name;
}
-
/**
* Returns the message for this Kerberos error.
*
@@ -263,9 +260,9 @@
*/
public String getMessage()
{
- return name;
- }
-
+ return name;
+ }
+
/**
* Returns the message for this Kerberos error.
*
@@ -273,9 +270,9 @@
*/
public String toString()
{
- return name;
- }
-
+ return name;
+ }
+
/**
* Compares this type to another object hopefully one that is of the same
* type.
@@ -283,38 +280,37 @@
* @param that the object to compare this KerberosError to
* @return ordinal - ( ( KerberosError ) that ).ordinal;
*/
- public int compareTo( Object that )
+ public int compareTo( Object that )
{
- return ordinal - ( ( ErrorType ) that ).ordinal;
- }
-
+ return ordinal - ( (ErrorType) that ).ordinal;
+ }
+
/**
* Gets the ordinal by its ordinal value.
*
* @param ordinal the ordinal value of the ordinal
* @return the type corresponding to the ordinal value
*/
- public static ErrorType getTypeByOrdinal( int ordinal )
+ public static ErrorType getTypeByOrdinal( int ordinal )
{
- for ( int ii = 0; ii < values.length; ii++ )
+ for ( int ii = 0; ii < values.length; ii++ )
{
- if ( values[ ii ].ordinal == ordinal )
+ if ( values[ ii ].ordinal == ordinal )
{
- return values[ ii ];
+ return values[ ii ];
}
}
- return KRB_ERR_GENERIC;
- }
-
+ return KRB_ERR_GENERIC;
+ }
+
/**
* Gets the ordinal value associated with this Kerberos error.
*
* @return the ordinal value associated with this Kerberos error
*/
- public int getOrdinal()
+ public int getOrdinal()
{
- return ordinal;
- }
+ return ordinal;
+ }
}
-
Modified: directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/KerberosException.java
URL: http://svn.apache.org/viewcvs/directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/KerberosException.java?rev=264844&r1=264843&r2=264844&view=diff
==============================================================================
--- directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/KerberosException.java (original)
+++ directory/shared/kerberos/trunk/common/src/java/org/apache/kerberos/exceptions/KerberosException.java Tue Aug 30 13:02:20 2005
@@ -14,14 +14,13 @@
* limitations under the License.
*
*/
-
package org.apache.kerberos.exceptions;
/**
* The root of the Kerberos exception hierarchy.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
- * @version $Rev$
+ * @version $Rev$, $Date$
*/
public class KerberosException extends Exception
{
@@ -29,18 +28,17 @@
* The Kerberos error code associated with this exception
*/
private final int errorCode;
-
+
/**
* Additional data about the error for use by the application
* to help it recover from or handle the error.
*/
- private byte[] explanatoryData;
-
+ private byte[] explanatoryData;
+
// ------------------------------------------------------------------------
// C O N S T R U C T O R S
// ------------------------------------------------------------------------
-
/**
* Creates a KerberosException with an error code and a message.
*
@@ -54,7 +52,6 @@
this.errorCode = errorCode;
}
-
/**
* Creates a KerberosException with an error code, a message and an
* underlying throwable that caused this fault.
@@ -69,8 +66,7 @@
this.errorCode = errorCode;
}
-
-
+
/**
* Creates a KerberosException with an error code and a message.
*
@@ -83,8 +79,20 @@
this.errorCode = errorType.getOrdinal();
}
-
-
+
+ /**
+ * Creates a KerberosException with an error code and a custom error message.
+ *
+ * @param errorCode the error code associated with this KerberosException
+ * @param msg a custom error message for this KerberosException
+ */
+ public KerberosException( ErrorType errorType, String msg )
+ {
+ super( msg );
+
+ this.errorCode = errorType.getOrdinal();
+ }
+
/**
* Creates a KerberosException with an error code, a message, and
* data helping to explain what caused this fault.
@@ -100,8 +108,7 @@
this.errorCode = errorType.getOrdinal();
this.explanatoryData = explanatoryData;
}
-
-
+
/**
* Gets the protocol error code associated with this KerberosException.
*
@@ -111,15 +118,14 @@
{
return this.errorCode;
}
-
+
/**
* Gets the explanatory data associated with this KerberosException.
*
* @return the explanatory data associated with this KerberosException
*/
- public byte[] getExplanatoryData()
- {
- return explanatoryData;
- }
+ public byte[] getExplanatoryData()
+ {
+ return explanatoryData;
+ }
}
-