Package org.apache.directory.api.asn1.ber.grammar

Examples of org.apache.directory.api.asn1.ber.grammar.GrammarAction


     * Test the decoding of a PrincipalName with an empty type
     */
    @Test(expected = DecoderException.class)
    public void testPrincipalNameEmptyType() throws DecoderException
    {
        Asn1Decoder kerberosDecoder = new Asn1Decoder();

        ByteBuffer stream = ByteBuffer.allocate( 0x06 );

        stream.put( new byte[]
            { 0x30, 0x04,
                ( byte ) 0xA0, 0x02, // name-type
                0x02,
                0x00 // NT-PRINCIPAL
        } );

        stream.flip();

        // Allocate a PrincipalName Container
        Asn1Container principalNameContainer = new PrincipalNameContainer();

        // Decode the PrincipalName PDU
        kerberosDecoder.decode( stream, principalNameContainer );
        fail();
    }
View Full Code Here


     * Test the decoding of a PrincipalName with a wrong type
     */
    @Test(expected = DecoderException.class)
    public void testPrincipalNameBadType() throws DecoderException
    {
        Asn1Decoder kerberosDecoder = new Asn1Decoder();

        ByteBuffer stream = ByteBuffer.allocate( 0x0B );

        stream.put( new byte[]
            { 0x30, 0x09,
                ( byte ) 0xA0, 0x03, // name-type
                0x02,
                0x01,
                0x7F, // NT-PRINCIPAL
                ( byte ) 0xA1,
                0x02, // name-string
                0x30,
                0x00
        } );

        stream.flip();

        // Allocate a PrincipalName Container
        Asn1Container principalNameContainer = new PrincipalNameContainer();

        // Decode the PrincipalName PDU
        kerberosDecoder.decode( stream, principalNameContainer );
        fail();
    }
View Full Code Here

     * Test the decoding of a PrincipalName with an empty name
     */
    @Test(expected = DecoderException.class)
    public void testPrincipalNameEmptyName() throws DecoderException
    {
        Asn1Decoder kerberosDecoder = new Asn1Decoder();

        ByteBuffer stream = ByteBuffer.allocate( 0x09 );

        stream.put( new byte[]
            { 0x30, 0x07,
                ( byte ) 0xA0, 0x03, // name-type
                0x02,
                0x01,
                0x01, // NT-PRINCIPAL
                ( byte ) 0xA1,
                0x00 // name-string
        } );

        stream.flip();

        // Allocate a PrincipalName Container
        Asn1Container principalNameContainer = new PrincipalNameContainer();

        // Decode the PrincipalName PDU
        kerberosDecoder.decode( stream, principalNameContainer );
        fail();
    }
View Full Code Here

     * Test the decoding of a PrincipalName with no name
     */
    @Test(expected = DecoderException.class)
    public void testPrincipalNameNoName() throws DecoderException
    {
        Asn1Decoder kerberosDecoder = new Asn1Decoder();

        ByteBuffer stream = ByteBuffer.allocate( 0x0B );

        stream.put( new byte[]
            { 0x30, 0x09,
                ( byte ) 0xA0, 0x03, // name-type
                0x02,
                0x01,
                0x01, // NT-PRINCIPAL
                ( byte ) 0xA1,
                0x02, // name-string
                0x30,
                0x00
        } );

        stream.flip();

        // Allocate a PrincipalName Container
        Asn1Container principalNameContainer = new PrincipalNameContainer();

        // Decode the PrincipalName PDU
        kerberosDecoder.decode( stream, principalNameContainer );
        fail();
    }
View Full Code Here

     * Test the decoding of a PrincipalName
     */
    @Test(expected = DecoderException.class)
    public void testPrincipalNameBadName() throws DecoderException
    {
        Asn1Decoder kerberosDecoder = new Asn1Decoder();

        ByteBuffer stream = ByteBuffer.allocate( 0x0D );

        stream.put( new byte[]
            { 0x30, 0x0B,
                ( byte ) 0xA0, 0x03, // name-type
                0x02,
                0x01,
                0x01, // NT-PRINCIPAL
                ( byte ) 0xA1,
                0x04, // name-string
                0x30,
                0x02,
                0x1B,
                0x00
        } );

        stream.flip();

        // Allocate a PrincipalName Container
        Asn1Container principalNameContainer = new PrincipalNameContainer();

        // Decode the PrincipalName PDU
        kerberosDecoder.decode( stream, principalNameContainer );
        fail();
    }
View Full Code Here

     * Test the decoding of a PrincipalName
     */
    @Test(expected = DecoderException.class)
    public void testPrincipalNameBadName2() throws DecoderException
    {
        Asn1Decoder kerberosDecoder = new Asn1Decoder();

        ByteBuffer stream = ByteBuffer.allocate( 0x29 );

        stream.put( new byte[]
            { 0x30, 0x27,
                ( byte ) 0xA0, 0x03, // name-type
                0x02,
                0x01,
                0x01, // NT-PRINCIPAL
                ( byte ) 0xA1,
                0x20, // name-string
                0x30,
                0x1E,
                0x1B,
                0x08,
                'h',
                'n',
                'e',
                'l',
                's',
                'o',
                'n',
                '1',
                0x1B,
                0x08,
                'h',
                'n',
                'e',
                '\r',
                's',
                'o',
                'n',
                '2',
                0x1B,
                0x08,
                'h',
                'n',
                'e',
                'l',
                's',
                'o',
                'n',
                '3',
        } );

        stream.flip();

        // Allocate a PrincipalName Container
        Asn1Container principalNameContainer = new PrincipalNameContainer();

        // Decode the PrincipalName PDU
        kerberosDecoder.decode( stream, principalNameContainer );
    }
View Full Code Here

         */
        super.transitions[CancelStatesEnum.START_STATE.ordinal()][UniversalTag.SEQUENCE.getValue()] =
            new GrammarTransition<CancelContainer>( CancelStatesEnum.START_STATE,
                CancelStatesEnum.CANCEL_SEQUENCE_STATE,
                UniversalTag.SEQUENCE.getValue(),
                new GrammarAction( "Init Cancel" )
                {
                    public void action( Asn1Container container )
                    {
                        CancelContainer cancelContainer = ( CancelContainer ) container;
                        Cancel cancel = new Cancel();
                        cancelContainer.setCancel( cancel );
                    }
                } );

        /**
         * Transition from cancel SEQ to cancelId
         *
         * cancelRequestValue ::= SEQUENCE {
         *     cancelId   MessageID
         * }
         *    
         * Set the cancelId value into the Cancel object.   
         */
        super.transitions[CancelStatesEnum.CANCEL_SEQUENCE_STATE.ordinal()][UniversalTag.INTEGER.getValue()] =
            new GrammarTransition<CancelContainer>( CancelStatesEnum.CANCEL_SEQUENCE_STATE,
                CancelStatesEnum.CANCEL_ID_STATE,
                UniversalTag.INTEGER.getValue(),
                new GrammarAction( "Stores CancelId" )
                {
                    public void action( Asn1Container container ) throws DecoderException
                    {
                        CancelContainer cancelContainer = ( CancelContainer ) container;
                        BerValue value = cancelContainer.getCurrentTLV().getValue();
View Full Code Here

    /**
     * {@inheritDoc}
     */
    public void action( KrbCredContainer krbCredContainer ) throws DecoderException
    {
        TLV tlv = krbCredContainer.getCurrentTLV();

        // The Length should not be null
        if ( tlv.getLength() == 0 )
        {
            LOG.error( I18n.err( I18n.ERR_04066 ) );

            // This will generate a PROTOCOL_ERROR
            throw new DecoderException( I18n.err( I18n.ERR_04067 ) );
View Full Code Here

    /**
     * {@inheritDoc}
     */
    public void action( KrbCredContainer krbCredContainer ) throws DecoderException
    {
        TLV tlv = krbCredContainer.getCurrentTLV();

        // The Length should not be null
        if ( tlv.getLength() == 0 )
        {
            LOG.error( I18n.err( I18n.ERR_04066 ) );

            // This will generate a PROTOCOL_ERROR
            throw new DecoderException( I18n.err( I18n.ERR_04067 ) );
        }

        // decoder for Ticket
        Asn1Decoder decoder = new Asn1Decoder();

        // Ticket container
        TicketContainer ticketContainer = new TicketContainer( krbCredContainer.getStream() );

        krbCredContainer.rewind();

        try
        {
            // decode Ticket
            decoder.decode( krbCredContainer.getStream(), ticketContainer );
        }
        catch ( DecoderException e )
        {
            throw e;
        }

        Ticket ticket = ticketContainer.getTicket();
        // add Ticket to the list of tickets
        krbCredContainer.getKrbCred().addTicket( ticket );

        // Update the expected length for the current TLV
        tlv.setExpectedLength( tlv.getExpectedLength() - tlv.getLength() );

        // Update the parent
        krbCredContainer.updateParent();

        if ( IS_DEBUG )
View Full Code Here

    /**
     * {@inheritDoc}
     */
    public void action( KdcReqBodyContainer kdcReqBodyContainer ) throws DecoderException
    {
        TLV tlv = kdcReqBodyContainer.getCurrentTLV();

        // The Length can be null, in this case, we can potentially exit from this grammar
        if ( tlv.getLength() == 0 )
        {
            kdcReqBodyContainer.setGrammarEndAllowed( true );
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.directory.api.asn1.ber.grammar.GrammarAction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.