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/01/29 12:57:49 UTC
svn commit: r149028 - /incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java /incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
Author: erodriguez
Date: Sat Jan 29 03:57:46 2005
New Revision: 149028
URL: http://svn.apache.org/viewcvs?view=rev&rev=149028
Log:
Authenticator ASN.1 DER decoder refactoring.
Modified:
incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java
incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java?view=diff&rev=149028&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java&r1=149027&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java&r2=149028
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java (original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java Sat Jan 29 03:57:46 2005
@@ -18,11 +18,18 @@
package org.apache.kerberos.io.decoder;
import java.io.IOException;
+import java.util.Enumeration;
import org.apache.asn1.der.ASN1InputStream;
import org.apache.asn1.der.DERApplicationSpecific;
+import org.apache.asn1.der.DEREncodable;
+import org.apache.asn1.der.DERGeneralString;
+import org.apache.asn1.der.DERGeneralizedTime;
+import org.apache.asn1.der.DERInteger;
import org.apache.asn1.der.DERSequence;
+import org.apache.asn1.der.DERTaggedObject;
import org.apache.kerberos.messages.components.Authenticator;
+import org.apache.kerberos.messages.components.AuthenticatorModifier;
public class AuthenticatorDecoder extends KerberosMessageDecoder
@@ -36,6 +43,79 @@
DERSequence sequence = (DERSequence) app.getObject();
return decodeAuthenticator( sequence );
+ }
+
+ /**
+ * -- Unencrypted authenticator
+ * Authenticator ::= [APPLICATION 2] SEQUENCE
+ * {
+ * authenticator-vno[0] INTEGER,
+ * crealm[1] Realm,
+ * cname[2] PrincipalName,
+ * cksum[3] Checksum OPTIONAL,
+ * cusec[4] INTEGER,
+ * ctime[5] KerberosTime,
+ * subkey[6] EncryptionKey OPTIONAL,
+ * seq-number[7] INTEGER OPTIONAL,
+ *
+ * authorization-data[8] AuthorizationData OPTIONAL
+ * }
+ */
+ private Authenticator decodeAuthenticator( DERSequence sequence )
+ {
+ AuthenticatorModifier modifier = new AuthenticatorModifier();
+
+ for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ {
+ DERTaggedObject object = (DERTaggedObject) e.nextElement();
+ int tag = object.getTagNo();
+ DEREncodable derObject = object.getObject();
+
+ switch ( tag )
+ {
+ case 0:
+ DERInteger tag0 = (DERInteger)derObject;
+ modifier.setVersionNumber( tag0.intValue() );
+ break;
+ case 1:
+ DERGeneralString tag1 = (DERGeneralString)derObject;
+ modifier.setClientRealm( tag1.getString() );
+ break;
+ case 2:
+ DERSequence tag2 = (DERSequence)derObject;
+ modifier.setClientName( decodePrincipalName( tag2 ) );
+ break;
+ case 3:
+ DERSequence tag3 = (DERSequence)derObject;
+ modifier.setChecksum( decodeChecksum( tag3 ) );
+ break;
+ case 4:
+ DERInteger tag4 = (DERInteger)derObject;
+ modifier.setClientMicroSecond( tag4.intValue() );
+ break;
+ case 5:
+ DERGeneralizedTime tag5 = (DERGeneralizedTime)derObject;
+ modifier.setClientTime( decodeKerberosTime( tag5 ) );
+ break;
+ case 6:
+ DERSequence tag6 = (DERSequence) derObject;
+ modifier.setSubSessionKey( decodeEncryptionKey( tag6 ) );
+ break;
+ case 7:
+ DERInteger tag7 = (DERInteger)derObject;
+ modifier.setSequenceNumber( tag7.intValue() );
+ break;
+ case 8:
+ DERSequence tag8 = (DERSequence)derObject;
+ modifier.setAuthorizationData( decodeAuthorizationData( tag8 ) );
+ break;
+ default:
+ System.out.println( derObject );
+ break;
+ }
+ }
+
+ return modifier.getAuthenticator();
}
}
Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java?view=diff&rev=149028&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java&r1=149027&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java&r2=149028
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java (original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java Sat Jan 29 03:57:46 2005
@@ -32,8 +32,6 @@
import org.apache.asn1.der.DERTaggedObject;
import org.apache.kerberos.crypto.checksum.ChecksumType;
import org.apache.kerberos.crypto.encryption.EncryptionType;
-import org.apache.kerberos.messages.components.Authenticator;
-import org.apache.kerberos.messages.components.AuthenticatorModifier;
import org.apache.kerberos.messages.components.Ticket;
import org.apache.kerberos.messages.components.TicketModifier;
import org.apache.kerberos.messages.value.AuthorizationData;
@@ -439,75 +437,6 @@
}
}
return new AuthorizationDataEntry(type, data);
- }
-
- /*
- -- Unencrypted authenticator
- Authenticator ::= [APPLICATION 2] SEQUENCE {
- authenticator-vno[0] INTEGER,
- crealm[1] Realm,
- cname[2] PrincipalName,
- cksum[3] Checksum OPTIONAL,
- cusec[4] INTEGER,
- ctime[5] KerberosTime,
- subkey[6] EncryptionKey OPTIONAL,
- seq-number[7] INTEGER OPTIONAL,
-
- authorization-data[8] AuthorizationData OPTIONAL
- }
- */
- protected Authenticator decodeAuthenticator(DERSequence sequence) {
-
- AuthenticatorModifier modifier = new AuthenticatorModifier();
-
- for (Enumeration e = sequence.getObjects(); e.hasMoreElements();) {
- DERTaggedObject object = ((DERTaggedObject) e.nextElement());
- int tag = object.getTagNo();
- DEREncodable derObject = object.getObject();
-
- switch (tag) {
- case 0:
- DERInteger tag0 = (DERInteger)derObject;
- modifier.setVersionNumber(tag0.intValue());
- break;
- case 1:
- DERGeneralString tag1 = (DERGeneralString)derObject;
- modifier.setClientRealm(tag1.getString());
- break;
- case 2:
- DERSequence tag2 = (DERSequence)derObject;
- modifier.setClientName(decodePrincipalName(tag2));
- break;
- case 3:
- DERSequence tag3 = (DERSequence)derObject;
- modifier.setChecksum(decodeChecksum(tag3));
- break;
- case 4:
- DERInteger tag4 = (DERInteger)derObject;
- modifier.setClientMicroSecond(tag4.intValue());
- break;
- case 5:
- DERGeneralizedTime tag5 = (DERGeneralizedTime)derObject;
- modifier.setClientTime(decodeKerberosTime(tag5));
- break;
- case 6:
- DERSequence tag6 = (DERSequence) derObject;
- modifier.setSubSessionKey(decodeEncryptionKey(tag6));
- break;
- case 7:
- DERInteger tag7 = (DERInteger)derObject;
- modifier.setSequenceNumber(tag7.intValue());
- break;
- case 8:
- DERSequence tag8 = (DERSequence)derObject;
- modifier.setAuthorizationData(decodeAuthorizationData(tag8));
- break;
- default:
- System.out.println(derObject);
- break;
- }
- }
- return modifier.getAuthenticator();
}
}