From f90bb8f26ea9f84de21c212f213270cda2c2066d Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 14 Oct 2014 12:07:21 +0300 Subject: [PATCH] Dnskey generation settings --- app/models/dnskey.rb | 9 ++++++++- spec/models/dnskey_spec.rb | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) 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) }