Element name |
Format |
Explanation |
|---|---|---|
<wsu:Created> (in the Timestamp element) |
XML date type (ex. 2008-05-21T12:22:30Z ) |
Current date/time when the message was created |
<wsu:Expires> |
XML date type (ex. 2008-05-21T12:22:30Z ) |
Future date/time when the message expires |
<wsse:Username> |
Non specific |
---- |
<wsse:Password> |
Password Digest |
Digest process |
<wsse:Nonce> |
Unique value (base64’d) |
A suitably unique value that is Base64’d |
<wsu:Created> (in the UsernameToken element) |
XML date type (ex. 2008-05-21T12:22:30Z ) |
Current date/time when the message was created |
<wsu:Expires> |
XML date type (ex. 2008-05-21T12:22:30Z ) |
Future date/time when the message expires |
NB: All timestamps must be in GMT, the gateway servers do not account for BST (British Summer Time)
Using the ‘testing1’ password for this example:
1. Password string must first be made lowercase.
2. The lowercase password must then be MD5 hashed; the output of this operation must be an array of bytes.
3. Byte array must then be base64 encoded, for ‘testing1’ this will give the result: a3MweCsv60kkAgzEpXeCqQ==
The encoded password and two other elements from the token must then be concatenated, the resulting byte array must then be SHA-1’d and Base 64’d.
The end result will be different every time, however there is an example of a correctly calculated digest in the TokenRequest.xml example provided in the techpack.