Feature #25048 » 0002-Ruby-2.4-Fixed-key-must-be-32-bytes-error-of-OpenSSL.patch
| lib/redmine/ciphering.rb | ||
|---|---|---|
| 26 | 26 | if cipher_key.blank? || text.blank? | 
| 27 | 27 | text | 
| 28 | 28 | else | 
| 29 |           c = OpenSSL::Cipher::Cipher.new("aes-256-cbc") | |
| 29 |           c = OpenSSL::Cipher.new("aes-256-cbc") | |
| 30 | 30 | iv = c.random_iv | 
| 31 | 31 | c.encrypt | 
| 32 | 32 | c.key = cipher_key | 
| ... | ... | |
| 44 | 44 | return text | 
| 45 | 45 | end | 
| 46 | 46 | text = match[1] | 
| 47 |           c = OpenSSL::Cipher::Cipher.new("aes-256-cbc") | |
| 47 |           c = OpenSSL::Cipher.new("aes-256-cbc") | |
| 48 | 48 |           e, iv = text.split("--").map {|s| Base64.decode64(s)} | 
| 49 | 49 | c.decrypt | 
| 50 | 50 | c.key = cipher_key | 
| ... | ... | |
| 58 | 58 | |
| 59 | 59 | def cipher_key | 
| 60 | 60 | key = Redmine::Configuration['database_cipher_key'].to_s | 
| 61 | key.blank? ? nil : Digest::SHA256.hexdigest(key) | |
| 61 |         key.blank? ? nil : Digest::SHA256.hexdigest(key)[0..31] | |
| 62 | 62 | end | 
| 63 |  | |
| 63 | ||
| 64 | 64 | def logger | 
| 65 | 65 | Rails.logger | 
| 66 | 66 | end | 
| ... | ... | |
| 84 | 84 | object.send :write_attribute, attribute, clear | 
| 85 | 85 | raise(ActiveRecord::Rollback) unless object.save(:validation => false) | 
| 86 | 86 | end | 
| 87 | end | |
| 88 |       end ? true : false | |
| 87 |         end ? true : false | |
| 88 | end | |
| 89 | 89 | end | 
| 90 | 90 | |
| 91 | 91 | private |