Exemple de rappel que vous pouvez trouver dans l'exemple de travail suivant. Il signe un fichier en mode détaché, c'est-à-dire que le fichier de signature est séparé du fichier d'origine. Il utilise le trousseau de clés par défaut à ~/.gnupg ou quelque chose comme ça. Pour utiliser un répertoire différent pour votre trousseau de clés, définissez la variable d'environnement ENV ["GNUPGHOME"] = "" avant d'appeler GPGME :: sign().
#!/usr/bin/ruby
require 'rubygems'
require 'gpgme'
puts "Signing #{ARGV[0]}"
input = File.open(ARGV[0],'r')
PASSWD = "abc"
def passfunc(hook, uid_hint, passphrase_info, prev_was_bad, fd)
puts("Passphrase for #{uid_hint}: ")
io = IO.for_fd(fd, 'w')
io.write(PASSWD+"\n")
io.flush
end
output = File.open(ARGV[0]+'.asc','w')
sign = GPGME::sign(input, {
:passphrase_callback => method(:passfunc),
:mode => GPGME::SIG_MODE_DETACH
})
output.write(sign)
output.close
input.close
Merci beaucoup – msanteler