Module: Azure::Push::Sas
- Included in:
- Message
- Defined in:
- lib/azure/push/sas.rb
Class Method Summary collapse
Class Method Details
.sas_token(url, key_name, access_key, lifetime: 10) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/azure/push/sas.rb', line 8 def self.sas_token(url, key_name, access_key, lifetime: 10) target_uri = CGI.escape(url.downcase).gsub('+', '%20').downcase expires = Time.now.to_i + lifetime to_sign = "#{target_uri}\n#{expires}" signature = CGI.escape(Base64.strict_encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), access_key, to_sign))).gsub('+', '%20') token = "SharedAccessSignature sr=#{target_uri}&sig=#{signature}&se=#{expires}&skn=#{key_name}" end |