diff --git a/app/models/request.rb b/app/models/request.rb index 78ae9d9ceb8c05a7febf4f98a860dec68d9e58e9..f39d1267fbb4fdfc238dad319ab6e98730669de0 100644 --- a/app/models/request.rb +++ b/app/models/request.rb @@ -41,16 +41,11 @@ class Request #ENCRYPTION before_validation :sign_if_mine - validates_true_for :creator_signature, :logic => lambda {verify_exported_signature} + validates_true_for :creator_signature, :logic => lambda {self.verify_creator_signature} xml_accessor :creator_signature key :creator_signature, String - - def verify_exported_signature - self.verify_signature_from_key(creator_signature, - OpenSSL::PKey::RSA.new(exported_key)) - end - + def signable_accessors accessors = self.class.roxml_attrs.collect{|definition| definition.accessor} diff --git a/lib/encryptable.rb b/lib/encryptable.rb index 0d1eef643282a5fcd26decc64767a76908817251..4d352971e8d502322d4c4d715a1fb17ccaf40950 100644 --- a/lib/encryptable.rb +++ b/lib/encryptable.rb @@ -18,15 +18,11 @@ return false end Rails.logger.info("Verifying sig on #{signable_string} from person #{person.real_name}") - verify_signature_from_key(signature, person.key) - end - - def verify_signature_from_key signature, key - validity = key.verify "SHA", Base64.decode64(signature), signable_string + validity = person.key.verify "SHA", Base64.decode64(signature), signable_string Rails.logger.info("Validity: #{validity}") validity end - + protected def sign_if_mine if self.person == User.owner