Skip to content

Commit ae845cc

Browse files
Merge pull request #56 from farhatahmad/sha256-support
Added sha256 support to the API
2 parents 5b803bd + c60524c commit ae845cc

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

lib/bigbluebutton_api.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
require 'cgi'
33
require 'rexml/document'
44
require 'digest/sha1'
5+
require 'digest/sha2'
56
require 'rubygems'
67
require 'bigbluebutton_hash_to_xml'
78
require 'bigbluebutton_exception'
@@ -68,13 +69,16 @@ class BigBlueButtonApi
6869
# url:: URL to a BigBlueButton server (e.g. http://demo.bigbluebutton.org/bigbluebutton/api)
6970
# secret:: Shared secret for this server
7071
# version:: API version e.g. 0.81
71-
def initialize(url, secret, version=nil, logger=nil)
72+
# logger::
73+
# sha256:: Flag to use sha256 when hashing url contents for checksum
74+
def initialize(url, secret, version=nil, logger=nil, sha256=false)
7275
@supported_versions = ['0.8', '0.81', '0.9', '1.0']
7376
@url = url
7477
@secret = secret
7578
@timeout = 10 # default timeout for api requests
7679
@request_headers = {} # http headers sent in all requests
7780
@logger = logger
81+
@sha256 = sha256
7882
if logger.nil?
7983
@logger = Logger.new(STDOUT)
8084
@logger.level = Logger::INFO
@@ -680,7 +684,7 @@ def get_url(method, params={})
680684
# checksum calc
681685
checksum_param = params_string + @secret
682686
checksum_param = method.to_s + checksum_param
683-
checksum = Digest::SHA1.hexdigest(checksum_param)
687+
checksum = @sha256 ? Digest::SHA256.hexdigest(checksum_param) : Digest::SHA1.hexdigest(checksum_param)
684688

685689
if method == :setConfigXML
686690
params_string = "checksum=#{checksum}&#{params_string}"

0 commit comments

Comments
 (0)