diff --git a/app/models/dnskey.rb b/app/models/dnskey.rb index a37ef39a9..832ee4108 100644 --- a/app/models/dnskey.rb +++ b/app/models/dnskey.rb @@ -61,7 +61,14 @@ class Dnskey < ActiveRecord::Base hex = [domain.name_in_wire_format, flags_hex, protocol_hex, alg_hex, public_key_hex].join bin = self.class.hex_to_bin(hex) - self.ds_digest = Digest::SHA256.hexdigest(bin).upcase + + sg = SettingGroup.dnskeys.setting(Setting::DS_ALGORITHM).value + + if sg == '1' + self.ds_digest = Digest::SHA1.hexdigest(bin).upcase + elsif sg == '2' + self.ds_digest = Digest::SHA256.hexdigest(bin).upcase + end end def public_key_hex diff --git a/spec/models/dnskey_spec.rb b/spec/models/dnskey_spec.rb index 4a8dfce80..18488e220 100644 --- a/spec/models/dnskey_spec.rb +++ b/spec/models/dnskey_spec.rb @@ -1,7 +1,13 @@ require 'rails_helper' describe Dnskey do - before(:each) { Fabricate(:domain_validation_setting_group) } + before(:each) do + Fabricate(:domain_validation_setting_group) + + Fabricate(:setting_group, code: 'dnskeys', settings: [ + Fabricate(:setting, code: Setting::DS_ALGORITHM, value: 2) + ]) + end it { should belong_to(:domain) }