]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256Sign.py
BaseTools: Rename get_bytes_le() to bytes_le
[mirror_edk2.git] / BaseTools / Source / Python / Rsa2048Sha256Sign / Rsa2048Sha256Sign.py
index 285635963100fe7b8fdae62c71e720667ba10bcf..2f901a7f29fa4c6dca786901099c7cf511c01900 100644 (file)
@@ -61,8 +61,9 @@ if __name__ == '__main__':
   #\r
   # Create command line argument parser object\r
   #\r
-  parser = argparse.ArgumentParser(prog=__prog__, version=__version__, usage=__usage__, description=__copyright__, conflict_handler='resolve')\r
+  parser = argparse.ArgumentParser(prog=__prog__, usage=__usage__, description=__copyright__, conflict_handler='resolve')\r
   group = parser.add_mutually_exclusive_group(required=True)\r
+  group.add_argument("--version", action='version', version=__version__)\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=str, metavar='filename', help="specify the output filename", required=True)\r
@@ -103,7 +104,7 @@ if __name__ == '__main__':
   if Process.returncode != 0:\r
     print('ERROR: Open SSL command not available.  Please verify PATH or set OPENSSL_PATH')\r
     sys.exit(Process.returncode)\r
-  print(Version[0])\r
+  print(Version[0].decode())\r
 \r
   #\r
   # Read input file into a buffer and save input filename\r
@@ -151,10 +152,11 @@ if __name__ == '__main__':
   # Extract public key from private key into STDOUT\r
   #\r
   Process = subprocess.Popen('%s rsa -in "%s" -modulus -noout' % (OpenSslCommand, args.PrivateKeyFileName), stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)\r
-  PublicKeyHexString = Process.communicate()[0].split('=')[1].strip()\r
+  PublicKeyHexString = Process.communicate()[0].split(b'=')[1].strip()\r
+  PublicKeyHexString = PublicKeyHexString.decode(encoding='utf-8')\r
   PublicKey = ''\r
   while len(PublicKeyHexString) > 0:\r
-    PublicKey = PublicKey + chr(int(PublicKeyHexString[0:2], 16))\r
+    PublicKey = PublicKey + PublicKeyHexString[0:2]\r
     PublicKeyHexString=PublicKeyHexString[2:]\r
   if Process.returncode != 0:\r
     sys.exit(Process.returncode)\r
@@ -185,8 +187,8 @@ if __name__ == '__main__':
     # Write output file that contains hash GUID, Public Key, Signature, and Input data\r
     #\r
     args.OutputFile = open(args.OutputFileName, 'wb')\r
-    args.OutputFile.write(EFI_HASH_ALGORITHM_SHA256_GUID.get_bytes_le())\r
-    args.OutputFile.write(PublicKey)\r
+    args.OutputFile.write(EFI_HASH_ALGORITHM_SHA256_GUID.bytes_le)\r
+    args.OutputFile.write(bytearray.fromhex(PublicKey))\r
     args.OutputFile.write(Signature)\r
     args.OutputFile.write(args.InputFileBuffer)\r
     args.OutputFile.close()\r
@@ -208,7 +210,7 @@ if __name__ == '__main__':
     #\r
     # Verify the public key\r
     #\r
-    if Header.PublicKey != PublicKey:\r
+    if Header.PublicKey != bytearray.fromhex(PublicKey):\r
       print('ERROR: Public key in input file does not match public key from private key file')\r
       sys.exit(1)\r
 \r