import uuid\r
import struct\r
import collections\r
+from Common.BuildVersion import gBUILD_VERSION\r
+\r
+#\r
+# Globals for help information\r
+#\r
+__prog__ = 'Rsa2048Sha256Sign'\r
+__version__ = '%s Version %s' % (__prog__, '0.9 ' + gBUILD_VERSION)\r
+__copyright__ = 'Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.'\r
+__usage__ = '%s -e|-d [options] <input_file>' % (__prog__)\r
\r
#\r
# GUID for SHA 256 Hash Algorithm from UEFI Specification\r
TEST_SIGNING_PRIVATE_KEY_FILENAME = 'TestSigningPrivateKey.pem'\r
\r
if __name__ == '__main__':\r
- #\r
- # Save name of the program\r
- #\r
- ProgramName = sys.argv[0]\r
- \r
- #\r
- # Print copyright \r
- #\r
- print '%s - Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.' % (ProgramName)\r
- \r
#\r
# Create command line argument parser object\r
# \r
- parser = argparse.ArgumentParser(prog=ProgramName, usage='%(prog)s -e|-d [options] <input_file>', add_help=False)\r
+ parser = argparse.ArgumentParser(prog=__prog__, version=__version__, usage=__usage__, description=__copyright__, conflict_handler='resolve')\r
group = parser.add_mutually_exclusive_group(required=True)\r
group.add_argument("-e", action="store_true", dest='Encode', help='encode file')\r
group.add_argument("-d", action="store_true", dest='Decode', help='decode file')\r
- parser.add_argument("-o", "--output", dest='OutputFile', type=argparse.FileType('wb'), metavar='filename', help="specify the output filename", required=True)\r
+ parser.add_argument("-o", "--output", dest='OutputFile', type=str, metavar='filename', help="specify the output filename", required=True)\r
parser.add_argument("--private-key", dest='PrivateKeyFile', type=argparse.FileType('rb'), help="specify the private key filename. If not specified, a test signing key is used.")\r
parser.add_argument("-v", "--verbose", dest='Verbose', action="store_true", help="increase output messages")\r
parser.add_argument("-q", "--quiet", dest='Quiet', action="store_true", help="reduce output messages")\r
parser.add_argument("--debug", dest='Debug', type=int, metavar='[0-9]', choices=range(0,10), default=0, help="set debug level")\r
- parser.add_argument("--version", dest='Version', action="store_true", help="display the program version and exit")\r
- parser.add_argument("-h", "--help", dest='Help', action="help", help="display this help text")\r
parser.add_argument(metavar="input_file", dest='InputFile', type=argparse.FileType('rb'), help="specify the input filename")\r
\r
#\r
args.InputFile.close()\r
\r
#\r
- # Save output filename and close output file\r
+ # Save output filename and check if path exists\r
#\r
- args.OutputFileName = args.OutputFile.name\r
- args.OutputFile.close()\r
+ OutputDir = os.path.dirname(args.OutputFile)\r
+ if not os.path.exists(OutputDir):\r
+ print 'ERROR: The output path does not exist: %s' % OutputDir\r
+ sys.exit(1)\r
+ args.OutputFileName = args.OutputFile\r
\r
#\r
# Save private key filename and close private key file\r