|
2 | 2 | require 'cgi' |
3 | 3 | require 'rexml/document' |
4 | 4 | require 'digest/sha1' |
| 5 | +require 'digest/sha2' |
5 | 6 | require 'rubygems' |
6 | 7 | require 'bigbluebutton_hash_to_xml' |
7 | 8 | require 'bigbluebutton_exception' |
@@ -68,13 +69,16 @@ class BigBlueButtonApi |
68 | 69 | # url:: URL to a BigBlueButton server (e.g. http://demo.bigbluebutton.org/bigbluebutton/api) |
69 | 70 | # secret:: Shared secret for this server |
70 | 71 | # 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) |
72 | 75 | @supported_versions = ['0.8', '0.81', '0.9', '1.0'] |
73 | 76 | @url = url |
74 | 77 | @secret = secret |
75 | 78 | @timeout = 10 # default timeout for api requests |
76 | 79 | @request_headers = {} # http headers sent in all requests |
77 | 80 | @logger = logger |
| 81 | + @sha256 = sha256 |
78 | 82 | if logger.nil? |
79 | 83 | @logger = Logger.new(STDOUT) |
80 | 84 | @logger.level = Logger::INFO |
@@ -680,7 +684,7 @@ def get_url(method, params={}) |
680 | 684 | # checksum calc |
681 | 685 | checksum_param = params_string + @secret |
682 | 686 | 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) |
684 | 688 |
|
685 | 689 | if method == :setConfigXML |
686 | 690 | params_string = "checksum=#{checksum}&#{params_string}" |
|
0 commit comments