Sha256: bbd4abf1a48783a1d8c97ff9308db954635f33cf9386981ba02545fe599005e5

Contents?: true

Size: 672 Bytes

Versions: 4

Compression:

Stored size: 672 Bytes

Contents

require 'openssl'
require 'base64'

module Stream
    class Signer
        @key = nil

        def initialize(key)
            @key = key.to_s
            @sha1 = OpenSSL::Digest.new('sha1')
        end

        def urlSafeB64encode(value)
            value.gsub('+', '-').gsub('/', '_').gsub(/^=+/, '').gsub(/=+$/, '')
        end

        def sign_message(message)
            key = Digest::SHA1.digest @key.to_s
            token = Base64.strict_encode64(OpenSSL::HMAC.digest(@sha1, key, message))
            self.urlSafeB64encode(token)
        end

        def sign(feed_slug, user_id)
            self.sign_message("#{feed_slug}#{user_id}")
        end

    end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
stream-ruby-2.2.3 lib/stream/signer.rb
stream-ruby-2.2.2 lib/stream/signer.rb
stream-ruby-2.2.1 lib/stream/signer.rb
stream-ruby-2.2 lib/stream/signer.rb