다음 작업 예제에서 확인할 수있는 콜백 샘플입니다. 분리 모드에서 파일에 서명합니다. 즉, 서명 파일이 원래 파일과 분리됩니다. ~/.gnupg 또는 그와 비슷한 기본 키링을 사용합니다. 키링에 다른 디렉토리를 사용하려면 GPGME :: sign()을 호출하기 전에 환경 변수 ENV [ "GNUPGHOME"] = ""을 설정하십시오.
#!/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
정말 고마워요. – msanteler