tigase.util
Class Algorithms

java.lang.Object
  extended by 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 Summary
static void $main(String[] args)
          Describe main method here.
static String bytesToHex(byte[] buff)
           
static byte[] digest(String id, String secret, String alg)
           
static String generateDialbackKey(String originatingServer, String receivingServer, String secret, String streamID)
          Calculates dialback key as decribed in XEP-0185 version 1.0.
static String hexDigest(String id, String secret, String alg)
          This method encodes data using digest algorithm described in JEP-0078 documentation.
static String sha256(String data)
          Calculates SHA-256 hash of given data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

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.

digest

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

bytesToHex

public static final String bytesToHex(byte[] buff)

$main

public static void $main(String[] args)
                  throws Exception
Describe main method here.

Parameters:
args - a String[] value
Throws:
Exception

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.

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.


Copyright © 2013 Tigase. All Rights Reserved.