Package org.gudy.azureus2.core3.util

Examples of org.gudy.azureus2.core3.util.SHA1Hasher


  removeSecretsSupport(
    byte[][]    secrets )
  {
    for (int i=0;i<secrets.length;i++){

      SHA1Hasher hasher = new SHA1Hasher();
        
         hasher.update( REQ2_IV );
         hasher.update( secrets[i] );
        
         byte[]  encoded = hasher.getDigest();
                         
      synchronized( global_shared_secrets ){
       
        global_shared_secrets.remove( new HashWrapper( encoded ));
      }
View Full Code Here


  {
    try{
        //"HASH('keyA', S, SKEY)" if you're A
        //"HASH('keyB', S, SKEY)" if you're B

        SHA1Hasher  hasher = new SHA1Hasher();
       
        hasher.update( KEYA_IV );
        hasher.update( secret_bytes );
        hasher.update( shared_secret );
         
        byte[]  a_key = hasher.getDigest();
       
        hasher = new SHA1Hasher();
       
        hasher.update( KEYB_IV );
        hasher.update( secret_bytes );
        hasher.update( shared_secret );
         
        byte[]  b_key = hasher.getDigest();
       
        SecretKeySpec  secret_key_spec_a = new SecretKeySpec( a_key, RC4_STREAM_ALG );
           
        SecretKeySpec  secret_key_spec_b = new SecretKeySpec( b_key, RC4_STREAM_ALG );
                     
View Full Code Here

           
            write_buffer.put( padding_a );
           
              // HASH('req1', S)
           
            SHA1Hasher  hasher = new SHA1Hasher();
           
            hasher.update( REQ1_IV );
            hasher.update( secret_bytes );
           
            byte[] sha1 = hasher.getDigest();
           
            write_buffer.put( sha1 );
               
              // HASH('req2', SKEY)^HASH('req3', S)
           
            hasher = new SHA1Hasher();
           
            hasher.update( REQ2_IV );
            hasher.update( shared_secret );
           
            byte[] sha1_1 = hasher.getDigest();
           
            hasher = new SHA1Hasher();
           
            hasher.update( REQ3_IV );
            hasher.update( secret_bytes );
           
            byte[] sha1_2 = hasher.getDigest();
           
            for (int i=0;i<sha1_1.length;i++){
             
              sha1_1[i] ^= sha1_2[i];
            }
           
            write_buffer.put( sha1_1 );
           
              // ENCRYPT(VC, crypto_provide, len(PadC), PadC, len(IA)
           
            write_buffer.put( write_cipher.update( VC ));
           
            write_buffer.put( write_cipher.update( new byte[]{ 0, 0, 0, my_supported_protocols }));
           
            write_buffer.put( write_cipher.update( new byte[]{ (byte)(padding_c.length>>8),(byte)padding_c.length }));
         
            write_buffer.put( write_cipher.update( padding_c ));
           
            write_buffer.put( write_cipher.update( new byte[]{ (byte)(initial_data_out_len>>8),(byte)initial_data_out_len }));
               
            if ( initial_data_out_len > 0 ){
           
              int  save_pos = initial_data_out.position();
             
              write_cipher.update( initial_data_out, write_buffer );
             
                // reset in case buffer needs to be used again by caller
             
              initial_data_out.position( save_pos );
             
              initial_data_out = null;
            }
           
            write_buffer.flip();
          }
         
          write( write_buffer );
         
          if ( !write_buffer.hasRemaining()){
         
            write_buffer  = null;
         
            protocol_state  = PS_INBOUND_4;
          }
         
        }else if ( protocol_state == PS_INBOUND_3 ){
         
            // B receives: HASH('req1', S), HASH('req2', SKEY)^HASH('req3', S), ENCRYPT(VC, crypto_provide, len(PadC), PadC, len(IA)), ENCRYPT(IA)
           
          if ( read_buffer == null ){
                       
            read_buffer = ByteBuffer.allocate( 20 + PADDING_MAX );
           
            read_buffer.limit( 20 );
           
            SHA1Hasher hasher = new SHA1Hasher();
           
            hasher.update( REQ1_IV );
            hasher.update( secret_bytes );
           
            padding_skip_marker = hasher.getDigest();

            protocol_substate  = 1;
          }         
         
          while( true ){
           
            read( read_buffer );
               
            if ( read_buffer.hasRemaining()){
           
              break;
            }
           
            if ( protocol_substate == 1 ){
             
                 //skip up to HASH('req1', S)
             
              int  limit = read_buffer.limit();
             
              read_buffer.position( limit - 20 );
             
              boolean match  = true;
             
              for (int i=0;i<20;i++){
               
                if ( read_buffer.get() != padding_skip_marker[i] ){
                 
                  match  = false;
                 
                  break;
                }
              }
             
              if ( match ){
             
                read_buffer = ByteBuffer.allocate( 20 + VC.length + 4 + 2 );
               
                protocol_substate  = 2;
               
                break;
             
              }else{
               
                if ( limit == read_buffer.capacity()){
                 
                  throw( new IOException( "PHE skip to SHA1 marker failed" ));
                }
               
                read_buffer.limit( limit + 1 );
               
                read_buffer.position( limit );
              }
            }else if ( protocol_substate == 2 ){
             
                // find SKEY using HASH('req2', SKEY)^HASH('req3', S)  , ENCRYPT(VC, crypto_provide, len(PadC),
             
              read_buffer.flip();
               
              final byte[]  decode = new byte[20];
             
              read_buffer.get( decode );
             
              SHA1Hasher hasher = new SHA1Hasher();
             
              hasher.update( REQ3_IV );
              hasher.update( secret_bytes );
             
              byte[] sha1 = hasher.getDigest();
             
              for (int i=0;i<decode.length;i++){
               
                decode[i] ^= sha1[i];
              }
View Full Code Here

         
        if ( manager.trace() ){
          trace( "crypto done" );
        }
       
          SHA1Hasher  hasher = new SHA1Hasher();
         
          hasher.update( KEYA_IV );
          hasher.update( session_secret );
           
          byte[]  a_key = hasher.getDigest();
         
          hasher = new SHA1Hasher();
         
          hasher.update( KEYB_IV );
          hasher.update( session_secret );
           
          byte[]  b_key = hasher.getDigest();
         
          hasher = new SHA1Hasher();
         
          hasher.update( KEYC_IV );
          hasher.update( session_secret );
           
          byte[]  c_key = hasher.getDigest();
 
          hasher = new SHA1Hasher();
         
          hasher.update( KEYD_IV );
          hasher.update( session_secret );
           
          byte[]  d_key = hasher.getDigest();
           
            // for RC4 enc/dec is irrelevant
         
          RC4Engine rc4_engine_a  = getCipher( a_key )
          RC4Engine rc4_engine_b  = getCipher( b_key );
View Full Code Here

            return;
          }
         
          header_cipher_in.processBytes( data, 14, header_len-14, data, 14 );
         
          SHA1Hasher  hasher = new SHA1Hasher();
         
          hasher.update( data, 4, 4 );
          hasher.update( data, 12, header_len - 4 - 12 );
                 
          byte[]  hash = hasher.getDigest();
             
          for (int i=0;i<4;i++){
           
            if ( hash[i] != data[header_len-4+i] ){ 
           
View Full Code Here

   
      // hash includes real sequence + header content but obviously not including the hash
   
    byte[] buffer_bytes = buffer.array();
   
    SHA1Hasher  hasher = new SHA1Hasher();
   
    hasher.update( buffer_bytes, 4, 4 );
    hasher.update( buffer_bytes, 12, total_length - 12 );
     
    byte[] hash = hasher.getDigest();

    buffer.position( total_length );
   
    buffer.put( hash, 0, 4 );
   
View Full Code Here

  hashAnnounceURL(
    URL   announce_url )
  {
    /* Calculate SHA1 hash of the hostname. */
   
    byte[] Digest = new SHA1Hasher().calculateHash( announce_url.getHost().getBytes());

    /*
     * Return first 32 characters of the hexadecimal representation of the
     * SHA1 hash.
     */
 
View Full Code Here

      lblX.setImage(img);
    }


    filterDelayTimer = new Timer("Filter");
    filterDelayTimer.addEvent(SystemTime.getCurrentTime() + 300,
        new TimerEventPerformer() {
          public void perform(TimerEvent event) {
            filterDelayTimer.destroy();
            filterDelayTimer = null;
View Full Code Here

      if ( compact_timer == null && System.getProperty("transitory.startup", "0").equals("0")){
               
        compact_timer = SimpleTimer.addPeriodicEvent(
          "IRB:compactor",
          60*1000,
          new TimerEventPerformer()
          {
            public void
            perform(
              TimerEvent event )
            { 
View Full Code Here

          }
         
          System.setProperty( "java.protocol.handler.pkgs", handlers );
          */
       
        URL.setURLStreamHandlerFactory(new AzURLStreamHandlerFactory());
            
            // DNS cache timeouts
         
          System.setProperty("sun.net.inetaddr.ttl", "60");
          System.setProperty("networkaddress.cache.ttl", "60");
View Full Code Here

TOP

Related Classes of org.gudy.azureus2.core3.util.SHA1Hasher

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.