def splitToken(token)
token = OpenID::Util.fromBase64(token)
return nil if token.length < 20
sig, joined = token[(0...20)], token[(20...token.length)]
return nil if OpenID::Util.hmacSha1(@store.getAuthKey, joined) != sig
s = joined.split("\x00")
return nil if s.length != 5
timestamp, nonce, consumer_id, server_id, server_url = s
timestamp = timestamp.to_i
return nil if timestamp == 0
return nil if (timestamp + @@TOKEN_LIFETIME) < Time.now.to_i
return [nonce, consumer_id, server_id, server_url].freeze
end