Examples of EncKdcRepPart


Examples of org.apache.directory.server.kerberos.shared.messages.components.EncKdcRepPart

     *                caddr[11]                    HostAddresses OPTIONAL
     * }
     */
    private EncKdcRepPart decodeEncKdcRepPartSequence( DERSequence sequence )
    {
        EncKdcRepPart modifier = new EncKdcRepPart();
        KerberosPrincipalModifier principalModifier = new KerberosPrincipalModifier();

        for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
        {
            DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
            int tag = object.getTagNo();
            DEREncodable derObject = object.getObject();

            switch ( tag )
            {
                case 0:
                    DERSequence tag0 = ( DERSequence ) derObject;
                    modifier.setKey( EncryptionKeyDecoder.decode( tag0 ) );
                    break;
                case 1:
                    DERSequence tag1 = ( DERSequence ) derObject;
                    modifier.setLastRequest( LastRequestDecoder.decodeSequence( tag1 ) );
                    break;
                case 2:
                    DERInteger tag2 = ( DERInteger ) derObject;
                    modifier.setNonce( new Integer( tag2.intValue() ) );
                    break;
                case 3:
                    DERGeneralizedTime tag3 = ( DERGeneralizedTime ) derObject;
                    modifier.setKeyExpiration( KerberosTimeDecoder.decode( tag3 ) );
                    break;
                case 4:
                    DERBitString tag4 = ( DERBitString ) derObject;
                    modifier.setFlags( new TicketFlags( tag4.getOctets() ) );
                    break;
                case 5:
                    DERGeneralizedTime tag5 = ( DERGeneralizedTime ) derObject;
                    modifier.setAuthTime( KerberosTimeDecoder.decode( tag5 ) );
                    break;
                case 6:
                    DERGeneralizedTime tag6 = ( DERGeneralizedTime ) derObject;
                    modifier.setStartTime( KerberosTimeDecoder.decode( tag6 ) );
                    break;
                case 7:
                    DERGeneralizedTime tag7 = ( DERGeneralizedTime ) derObject;
                    modifier.setEndTime( KerberosTimeDecoder.decode( tag7 ) );
                    break;
                case 8:
                    DERGeneralizedTime tag8 = ( DERGeneralizedTime ) derObject;
                    modifier.setRenewTill( KerberosTimeDecoder.decode( tag8 ) );
                    break;
                case 9:
                    DERGeneralString tag9 = ( DERGeneralString ) derObject;
                    principalModifier.setRealm( tag9.getString() );
                    break;
                case 10:
                    DERSequence tag10 = ( DERSequence ) derObject;
                    principalModifier.setPrincipalName( PrincipalNameDecoder.decode( tag10 ) );
                    break;
                case 11:
                    DERSequence tag11 = ( DERSequence ) derObject;
                    modifier.setClientAddresses( HostAddressDecoder.decodeSequence( tag11 ) );
                    break;
            }
        }

        modifier.setServerPrincipal( principalModifier.getKerberosPrincipal() );

        return modifier;
    }
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

        tlv.setExpectedLength( tlv.getExpectedLength() - tlv.getLength() );

        // Update the parent
        encAsRepPartContainer.updateParent();

        EncKdcRepPart encKdcRepPart = encKdcRepPartContainer.getEncKdcRepPart();

        encAsRepPartContainer.getEncAsRepPart().setEncKdcRepPart( encKdcRepPart );

        if ( IS_DEBUG )
        {
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

        {
            throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, de );
        }

        // get the decoded EncKdcRepPart
        EncKdcRepPart encKdcRepPart = ( ( EncKdcRepPartContainer ) encKdcRepPartContainer ).getEncKdcRepPart();

        return encKdcRepPart;
    }
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

     * {@inheritDoc}
     */
    @Override
    protected void setBitString( byte[] data, EncKdcRepPartContainer encKdcRepPartContainer )
    {
        EncKdcRepPart encKdcRepPart = encKdcRepPartContainer.getEncKdcRepPart();
        TicketFlags flags = new TicketFlags( data );

        encKdcRepPart.setFlags( flags );

    }
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

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

        EncKdcRepPart encKdcRepPart = new EncKdcRepPart();
        encKdcRepPartContainer.setEncKdcRepPart( encKdcRepPart );

        if ( IS_DEBUG )
        {
            LOG.debug( "EncKdcRepPart created" );
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

        tlv.setExpectedLength( tlv.getExpectedLength() - tlv.getLength() );

        // Update the parent
        encTgsRepPartContainer.updateParent();

        EncKdcRepPart encKdcRepPart = encKdcRepPartContainer.getEncKdcRepPart();

        encTgsRepPartContainer.getEncTgsRepPart().setEncKdcRepPart( encKdcRepPart );

        if ( IS_DEBUG )
        {
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

        reply.setCName( request.getKdcReqBody().getCName() );
        reply.setCRealm( request.getKdcReqBody().getRealm() );
        reply.setTicket( ticket );

        EncKdcRepPart encKdcRepPart = new EncKdcRepPart();
        //session key
        encKdcRepPart.setKey( ticket.getEncTicketPart().getKey() );

        // TODO - fetch lastReq for this client; requires store
        // FIXME temporary fix, IMO we should create some new ATs to store this info in DIT
        LastReq lastReq = new LastReq();
        lastReq.addEntry( new LastReqEntry( LastReqType.TIME_OF_INITIAL_REQ, new KerberosTime() ) );
        encKdcRepPart.setLastReq( lastReq );
        // TODO - resp.key-expiration := client.expiration; requires store

        encKdcRepPart.setNonce( request.getKdcReqBody().getNonce() );

        encKdcRepPart.setFlags( ticket.getEncTicketPart().getFlags() );
        encKdcRepPart.setAuthTime( ticket.getEncTicketPart().getAuthTime() );
        encKdcRepPart.setStartTime( ticket.getEncTicketPart().getStartTime() );
        encKdcRepPart.setEndTime( ticket.getEncTicketPart().getEndTime() );

        if ( ticket.getEncTicketPart().getFlags().isRenewable() )
        {
            encKdcRepPart.setRenewTill( ticket.getEncTicketPart().getRenewTill() );
        }

        encKdcRepPart.setSName( ticket.getSName() );
        encKdcRepPart.setSRealm( ticket.getRealm() );
        encKdcRepPart.setClientAddresses( ticket.getEncTicketPart().getClientAddresses() );

        EncAsRepPart encAsRepPart = new EncAsRepPart();
        encAsRepPart.setEncKdcRepPart( encKdcRepPart );

        if ( LOG_KRB.isDebugEnabled() )
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

      init( tkt, clientPrincipal );
    }
   
    private void init( AbstractTicket tkt, PrincipalName clientPrincipal )
    {
      EncKdcRepPart kdcRepPart = tkt.getEncKdcRepPart();
     
        this.serverName = kdcRepPart.getSName();
        this.serverRealm = kdcRepPart.getSRealm();
        this.serverName.setRealm(serverRealm);

        this.clientName = clientPrincipal;
       
        this.key = kdcRepPart.getKey();
        this.authTime = kdcRepPart.getAuthTime();
        this.startTime = kdcRepPart.getStartTime();
        this.endTime = kdcRepPart.getEndTime();

        this.renewTill = kdcRepPart.getRenewTill();

        this.flags = kdcRepPart.getFlags();
        this.clientAddresses = kdcRepPart.getClientAddresses();

        this.ticket = tkt.getTicket();
       
        this.isEncInSKey = false;
       
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

                clientKey = KerberosKeyFactory.string2Key( clientTgtReq.getClientPrincipal(), clientTgtReq.getPassword(), encryptionType );
            }
           
            byte[] decryptedEncAsRepPart = cipherTextHandler.decrypt( clientKey, rep.getEncPart(), KeyUsage.AS_REP_ENC_PART_WITH_CKEY );
           
            EncKdcRepPart encKdcRepPart = null;
            try
            {
                EncAsRepPart encAsRepPart = KerberosDecoder.decodeEncAsRepPart( decryptedEncAsRepPart );
                encKdcRepPart = encAsRepPart.getEncKdcRepPart();
            }
            catch( KerberosException e )
            {
                LOG.info("Trying an encTgsRepPart instead");
                EncTgsRepPart encTgsRepPart = KerberosDecoder.decodeEncTgsRepPart( decryptedEncAsRepPart );
                encKdcRepPart = encTgsRepPart.getEncKdcRepPart();
            }
           
            if ( currentNonce != encKdcRepPart.getNonce() )
            {
                throw new KerberosException( ErrorType.KRB_ERR_GENERIC, "received nonce didn't match with the nonce sent in the request" );
            }
                      
            if ( !encKdcRepPart.getSName().getNameString().equals( clientTgtReq.getSName() ) )
            {
                throw new KerberosException( ErrorType.KDC_ERR_SERVER_NOMATCH );
            }
           
            if ( !encKdcRepPart.getSRealm().equals( clientTgtReq.getRealm() ) )
            {
                throw new KerberosException( ErrorType.KRB_ERR_GENERIC, "received server realm does not match with requested server realm" );
            }
           
            List<HostAddress> hosts = clientTgtReq.getHostAddresses();
           
            if( !hosts.isEmpty() )
            {
                HostAddresses addresses = encKdcRepPart.getClientAddresses();
                for( HostAddress h : hosts )
                {
                    if ( !addresses.contains( h ) )
                    {
                        throw new KerberosException( ErrorType.KRB_ERR_GENERIC, "requested client address" + h + " is not found in the ticket" );
View Full Code Here

Examples of org.apache.directory.shared.kerberos.components.EncKdcRepPart

        reply.setCName( tgt.getEncTicketPart().getCName() );
        reply.setCRealm( tgt.getEncTicketPart().getCRealm() );
        reply.setTicket( newTicket );

        EncKdcRepPart encKdcRepPart = new EncKdcRepPart();

        encKdcRepPart.setKey( newTicket.getEncTicketPart().getKey() );
        encKdcRepPart.setNonce( request.getKdcReqBody().getNonce() );
        // TODO - resp.last-req := fetch_last_request_info(client); requires store
        // FIXME temporary fix, IMO we should create some new ATs to store this info in DIT
        LastReq lastReq = new LastReq();
        lastReq.addEntry( new LastReqEntry( LastReqType.TIME_OF_INITIAL_REQ, new KerberosTime() ) );
        encKdcRepPart.setLastReq( lastReq );

        encKdcRepPart.setFlags( newTicket.getEncTicketPart().getFlags() );
        encKdcRepPart.setClientAddresses( newTicket.getEncTicketPart().getClientAddresses() );
        encKdcRepPart.setAuthTime( newTicket.getEncTicketPart().getAuthTime() );
        encKdcRepPart.setStartTime( newTicket.getEncTicketPart().getStartTime() );
        encKdcRepPart.setEndTime( newTicket.getEncTicketPart().getEndTime() );
        encKdcRepPart.setSName( newTicket.getSName() );
        encKdcRepPart.setSRealm( newTicket.getRealm() );

        if ( newTicket.getEncTicketPart().getFlags().isRenewable() )
        {
            encKdcRepPart.setRenewTill( newTicket.getEncTicketPart().getRenewTill() );
        }

        if ( LOG_KRB.isDebugEnabled() )
        {
            monitorContext( tgsContext );
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.