Method: Cloudinary::Utils.api_sign_request

Defined in:
lib/cloudinary/utils.rb

.api_sign_request(params_to_sign, api_secret, signature_algorithm = nil, signature_version = nil) ⇒ String

Signs API request parameters

Parameters:

  • params_to_sign (Hash)

    Parameters to include in the signature

  • api_secret (String)

    API secret for signing

  • signature_algorithm (Symbol|nil) (defaults to: nil)

    Hash algorithm to use (:sha1 or :sha256)

  • signature_version (Integer|nil) (defaults to: nil)

    Version of signature algorithm to use:

    • Version 1: Original behavior without parameter encoding

    • Version 2+ (default): Includes parameter encoding to prevent parameter smuggling

Returns:

  • (String)

    Hexadecimal signature



513
514
515
516
517
# File 'lib/cloudinary/utils.rb', line 513

def self.api_sign_request(params_to_sign, api_secret, signature_algorithm = nil, signature_version = nil)
  signature_version ||= Cloudinary.config.signature_version || 2
  to_sign = api_string_to_sign(params_to_sign, signature_version)
  hash("#{to_sign}#{api_secret}", signature_algorithm, :hexdigest)
end