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 |