Shared Secret Token Algorithm

The following example illustrates the shared secret token generation algorithm that is used by Emptoris® Contract Management authentication.

Example: Shared secret token generation algorithm

public class SharedSecretAlgorithm 
{
static public DateFormat SHARED_SECRET_DATE_FORMAT = 
new SimpleDateFormat("MMMMMMMM dd, yyyy hh:mm:ss aa");
public String generateToken
(String user, String host, String source, Date date, String algorithm, String secret) 
{
MessageDigest md = MessageDigest.getInstance(algorithm);
md.reset();
md.update(user);
md.update( (byte)':');
md.update(host);
md.update( (byte)':');
md.update(source);
md.update( (byte)':');
String dateStr = SHARED_SECRET_DATE_FORMAT.format(date);
md.update( dateStr.getBytes() );
md.update( (byte)':');
md.update( cred.getDigestAlgorithm().getBytes() );
md.update( (byte)':');
md.update( sharedSecret.getBytes() );
byte[] digestBytes = md.digest();
String token = new String( Base64.encode( digestBytes ) );
return token; }
}