def verify payload, signature
return unknown_status(cant_find_binary) unless @cmd
payload_fn = Tempfile.new "redwood.payload"
payload_fn.write format_payload(payload)
payload_fn.close
signature_fn = Tempfile.new "redwood.signature"
signature_fn.write signature.decode
signature_fn.close
output = run_gpg "--verify #{signature_fn.path} #{payload_fn.path}"
output_lines = output.split(/\n/)
if output =~ /^gpg: (.* signature from .*$)/
if $? == 0
Chunk::CryptoNotice.new :valid, $1, output_lines
else
Chunk::CryptoNotice.new :invalid, $1, output_lines
end
else
unknown_status output_lines
end
end