def GPGME.verify(sig, *args_options)
raise ArgumentError, 'wrong number of arguments' if args_options.length > 3
args, options = split_args(args_options)
signed_text, plain = args
check_version(options)
GPGME::Ctx.new(options) do |ctx|
sig_data = input_data(sig)
if signed_text
signed_text_data = input_data(signed_text)
plain_data = nil
else
signed_text_data = nil
plain_data = output_data(plain)
end
ctx.verify(sig_data, signed_text_data, plain_data)
ctx.verify_result.signatures.each do |signature|
yield signature
end
if !signed_text && !plain
plain_data.seek(0, IO::SEEK_SET)
plain_data.read
end
end
end