Help with Sha + Base64 for WSSE encoding.

G

Gregg Pollack

Hello there.

I've got a numbers puzzle for someone out there.

I'm currently trying to implement X-WSSE authentication, which
basically means you follow these steps to create a PasswordDigest:

1. Create a random Nonce(or string)
2. create the token by doing Base64(sha(nonce + timestamp + password)

Use this string to autenticate. Basically. Now here's my problem.

I have an example to work from:

Nonce =
MjAwNi0wMi0yM1QxODo1NjozMVogNDdjYzM5NTVlZmY1NzljZGIwMzVkNTljZjI4ZWU3NzE3Y2Y4NmM5Zg==
Timestamp = 2006-02-23T18:56:31Z
password = test

I know the result is supposed to be:
267V1V5JW5xqct0bOAoFEaSDL7Y= (since this works)

But when I use ruby for this:

nonce =
"MjAwNi0wMi0yM1QxODo1NjozMVogNDdjYzM5NTVlZmY1NzljZGIwMzVkNTljZjI4ZWU3NzE3Y2Y4NmM5Zg=="
time = "2006-02-23T18:56:31Z"
password = "test"
puts Base64.encode64(Digest::SHA1.hexdigest(nonce + time +
password)).strip

I get:
MzI2OTQ4YzY4OWQ3MGMxYzMzYTEwZWI2Yzg5MzZiYzMzZGE2ZTJhMg==


Can anyone see the step I'm missing?

Thanks,

Gregg Pollack
Patched Software
www.PatchedSoftware.com
 
T

Tom Copeland

1. Create a random Nonce(or string)
2. create the token by doing Base64(sha(nonce + timestamp + password)
Cool.

puts Base64.encode64(Digest::SHA1.hexdigest(nonce + time +
password)).strip

Hm, do you want to be calling SHA1.hexdigest() here? Or just
SHA1.digest()?

Yours,

Tom
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top