# File lib/openid/consumer.rb, line 625
    def split_token(token)
      return nil if token.nil?

      token = OpenID::Util.from_base64(token)
      return nil if token.length < 20
      
      sig, joined = token[(0...20)], token[(20...token.length)]
      return nil if OpenID::Util.hmac_sha1(@store.get_auth_key, joined) != sig
      
      s = joined.split("\x00")
      return nil if s.length != 4

      timestamp, 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 [consumer_id, server_id, server_url].freeze
    end