#-*-mode:ruby-*- def usage () print "\n" print "*** Retrieve Public Key From OpenPKSD Type Keyserver ***\n" print "Usage: rpk [options] argument\n" print "Options:\n" print " -o=FILENAME\n" print " --output=FILENAME output FILENAME\n" print " --keyserver=site OpenPKSD keyserver site\n" print " (default openpksd.org)\n" print " --mew Mew mode\n" print "Argument: (alternative)\n" print " email-address retrieve by email address\n" print " KeyID retrieve by KeyID (32bit/64bit)\n" print "Example:\n" print " rpk --output=key.asc foo@example.com\n" print " rpk --output=key.asc 0xFFFFFFFF\n" print "\n" print "More info: http://openpksd.org\n" print "Version: ",RetrievePublicKey.new.version,"\n" end mew_mode=false rpk=RetrievePublicKey::new #rpk.debug(10) ARGV.each {|argv| if (argv =~ /^--help$/) usage exit(0) elsif ( argv =~ /^-o=(.*)$/ or argv =~ /^--output=(.*)$/) rpk.setOutputFileName($1) elsif ( argv =~ /([!-~]+@[!-~]+)/) rpk.setEmailAddress($1) elsif ( argv =~ /^(0x[0-9A-Z]+)$/ ) rpk.setKeyid($1) elsif ( argv =~ /^--keyserver=([-A-Za-z0-9._:]+)/ ) rpk.setOpenPKSDSite($1) elsif ( argv =~ /^--mew/ ) # # run as Mew mode (special mode) # mew_mode=true ARGV.shift # shift away "--mew" mew_arg=ARGV.shift # must be "http://....." if ( mew_arg =~ /^http:\/\// ) if ( mew_arg =~ /^http:\/\/([-A-Za-z0-9._:]+)\// ) # get OpenPKSD site rpk.setOpenPKSDSite($1) end if ( mew_arg =~ /search=([!-~]+@[!-~]+)/) # Email address (if it is there) rpk.setEmailAddress($1) end if ( mew_arg =~ /search=(0x[0-9A-Z]+)/) # KeyID (if it is there) rpk.setKeyid($1) end else print "Mew mode option: uri error\n" exit(1) end end } if ( ! rpk.validParameter ) printf "Invalid option or argument\n" usage() exit(1) end rpk.getPublicKey