You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2005/05/06 00:19:22 UTC

svn commit: r168448 - /directory/sandbox/trunk/asn1-new-codec/src/test/org/apache/asn1/spnego/codec/SpnegoTest.java

Author: elecharny
Date: Thu May  5 15:19:21 2005
New Revision: 168448

URL: http://svn.apache.org/viewcvs?rev=168448&view=rev
Log:
Added a full SPNEGO NegTokenTarg test.

Modified:
    directory/sandbox/trunk/asn1-new-codec/src/test/org/apache/asn1/spnego/codec/SpnegoTest.java

Modified: directory/sandbox/trunk/asn1-new-codec/src/test/org/apache/asn1/spnego/codec/SpnegoTest.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/trunk/asn1-new-codec/src/test/org/apache/asn1/spnego/codec/SpnegoTest.java?rev=168448&r1=168447&r2=168448&view=diff
==============================================================================
--- directory/sandbox/trunk/asn1-new-codec/src/test/org/apache/asn1/spnego/codec/SpnegoTest.java (original)
+++ directory/sandbox/trunk/asn1-new-codec/src/test/org/apache/asn1/spnego/codec/SpnegoTest.java Thu May  5 15:19:21 2005
@@ -24,6 +24,7 @@
 import org.apache.asn1.primitives.OID;
 import org.apache.asn1.primitives.OctetString;
 import org.apache.asn1.spnego.pojo.SpnegoNegTokenInitPOJO;
+import org.apache.asn1.spnego.pojo.SpnegoNegTokenTargPOJO;
 import org.apache.asn1.spnego.pojo.SpnegoPOJO;
 import org.apache.asn1.util.pools.PoolException;
 import org.apache.log4j.Logger;
@@ -88,7 +89,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -167,7 +168,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -256,7 +257,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -346,7 +347,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -435,7 +436,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -521,7 +522,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -601,7 +602,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -684,7 +685,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -768,7 +769,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -848,7 +849,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -932,7 +933,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -1033,7 +1034,7 @@
         }
         catch ( PoolException pe )
         {
-            Assert.fail("Cannot allocat a SpnegoContainer : " + pe.getMessage());
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
         }
 
         spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
@@ -1088,6 +1089,104 @@
 
         // Check the mechListMIC
         Assert.assertEquals("[61][62][63][64][65][66][67][68][69][6A][6B][6C]", ((SpnegoNegTokenInitPOJO)spnego).getMechListMIC().toString());
+
+        // Free the BindRequest Container. It will be put back in the IPool
+        // after being reset.
+        spnegoContainer.free();
+    }
+
+    /**
+     * Test the decoding of a full Spnego NegTokenTarg
+     */
+    public void testDecodeSpnegoFullNegTokenTarg()
+    {
+        Asn1Decoder spnegoDecoder = new SpnegoDecoder();
+
+        ByteBuffer  stream      = ByteBuffer.allocate( 0xE0 );
+        stream.put(
+            new byte[]
+            {
+                (byte)0xA1, (byte)0x81, (byte)0xDD,		 		// SPNEGO --> CHOICE {
+                												//     	negTokenTarg  [1]  NegTokenTarg
+                0x30, (byte)0x81, (byte)0xDA,					// NegTokenTarg ::= SEQUENCE {
+                (byte)0xA0, 0x03,								// 		negResult [0] ENUMERATED { 
+                												//      	accept_completed (0),
+                0x0A, 0x01, 0x01,								// 			accept_incomplete (1),
+                												//			rejected (2) } OPTIONAL,
+                (byte)0xA1, 0x0B, 								// 		supportedMech [1] MechType OPTIONAL, 
+                0x06, 0x09, 0x2a, (byte)0x86, 0x48, (byte)0x82, (byte)0xF7, 0x12, 0x01, 0x02, 0x02, 	// mechType = 1.2.840.48018.1.2.2
+                (byte)0xA2, 0x62,								// 		responseToken [2]  OCTET STRING  OPTIONAL ,
+                0x04, 0x60	 							    	//			responseTokenString (96 bytes)
+            } );
+
+        // Add the responseTokenString
+        for ( int i = 0; i < 0x60; i++ )
+        {
+            stream.put((byte)(i%256));
+        }
+        
+        // Add the mechListMIC
+        // 		mechListMIC [3] OCTET STRING OPTIONAL }
+        stream.put(new byte[]{(byte)0xA3, 0x62, 0x04, 0x60});
+
+        for ( int i = 0; i < 0x60; i++ )
+        {
+            stream.put((byte)(i%256));
+        }
+        
+        stream.flip();
+
+        // Allocate a Spnego Container
+        IAsn1Container spnegoContainer = null;
+
+        try
+        {
+            spnegoContainer = ( IAsn1Container ) spnegoDecoder.allocate(
+                    SpnegoPoolEnum.SPNEGO_CONTAINER_POOL );
+        }
+        catch ( PoolException pe )
+        {
+            Assert.fail("Cannot allocate a SpnegoContainer : " + pe.getMessage());
+        }
+
+        spnegoContainer.setPoolManager( spnegoDecoder.getPoolManager() );
+
+        try
+        {
+            spnegoDecoder.decode( stream, spnegoContainer );
+        }
+        catch ( DecoderException de )
+        {
+            de.printStackTrace();
+            Assert.fail( de.getMessage() );
+        }
+    	
+        SpnegoNegTokenTargPOJO spnego = (SpnegoNegTokenTargPOJO)( ( SpnegoContainer ) spnegoContainer ).getSpnego();
+
+        // Checks the result
+        Assert.assertEquals(1, spnego.getNegResult());
+        
+        // Check the supported mech
+        OID supportedMech = spnego.getSupportedMech();
+        Assert.assertEquals("1.2.840.48018.1.2.2", supportedMech.getOID());
+        
+        // Check the responseToken
+        OctetString responseToken = spnego.getResponseToken();
+        byte[] responseTokenBytes = responseToken.getValue();
+        
+        for ( int i = 0; i < 0x60; i++ )
+        {
+            Assert.assertEquals((byte)(i%256), responseTokenBytes[i]);
+        }
+
+        // Check the mechListMIC
+        OctetString mechListMIC = spnego.getMechListMIC();
+        byte[] mechListMICBytes = responseToken.getValue();
+        
+        for ( int i = 0; i < 0x60; i++ )
+        {
+            Assert.assertEquals((byte)(i%256), mechListMICBytes[i]);
+        }
 
         // Free the BindRequest Container. It will be put back in the IPool
         // after being reset.