Package tigase.util

Class Algorithms

java.lang.Object
tigase.util.Algorithms

public class Algorithms extends Object
Describe class Algorithms here. Created: Wed May 4 13:24:03 2005
Version:
$Rev$
Author:
Artur Hefczyc
  • Method Details

    • $main

      public static void $main(String[] args) throws Exception
      Describe main method here.
      Parameters:
      args - a String[] value
      Throws:
      Exception
    • bytesToHex

      public static final String bytesToHex(byte[] buff)
    • digest

      public static final byte[] digest(String id, String secret, String alg) throws NoSuchAlgorithmException
      Throws:
      NoSuchAlgorithmException
    • generateDialbackKey

      public static String generateDialbackKey(String originatingServer, String receivingServer, String secret, String streamID)
      Calculates dialback key as decribed in XEP-0185 version 1.0.

      Implemented algorithm (recomended in XEP-0185):
       key = HMAC-SHA256
             (
               SHA256(Secret),
               {
                 Receiving Server, ' ',
                 Originating Server, ' ',
                 Stream ID
               }
             )
       
      Parameters:
      originatingServer - the hostname of the Originating Server
      receivingServer - the hostname of the Receiving Server
      secret - a secret known by the Authoritative Server's network
      streamID - the Stream ID generated by the Receiving Server
      Returns:
      string contains HEX encoded dialback key.
    • hexDigest

      public static final String hexDigest(String id, String secret, String alg) throws NoSuchAlgorithmException
      This method encodes data using digest algorithm described in JEP-0078 documentation. As a result you have String containing digest data which can be compared with data sent by the user to authenticate him.
      Parameters:
      id - a String value of some ID value like session ID to concatenate with secret word.
      secret - a String value of a secret word shared between entites.
      alg - a String value of algorithm name to use for generating diffest message.
      Returns:
      a String value digest message as defined.
      Throws:
      NoSuchAlgorithmException - if an error occurs during encoding digest message.
    • sha256

      public static String sha256(String data)
      Calculates SHA-256 hash of given data.
      Parameters:
      data - data to hash
      Returns:
      string contains HEX encoded SHA-256 of data.