]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256Sign.py
Revert BaseTools: PYTHON3 migration
[mirror_edk2.git] / BaseTools / Source / Python / Rsa2048Sha256Sign / Rsa2048Sha256Sign.py
index 2f901a7f29fa4c6dca786901099c7cf511c01900..3fd7eefd6af5555c7d8678fa095f9d52f6177655 100644 (file)
@@ -17,6 +17,7 @@
 '''\r
 Rsa2048Sha256Sign\r
 '''\r
+from __future__ import print_function\r
 \r
 import os\r
 import sys\r
@@ -61,9 +62,8 @@ if __name__ == '__main__':
   #\r
   # Create command line argument parser object\r
   #\r
-  parser = argparse.ArgumentParser(prog=__prog__, usage=__usage__, description=__copyright__, conflict_handler='resolve')\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("--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
@@ -104,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].decode())\r
+  print(Version[0])\r
 \r
   #\r
   # Read input file into a buffer and save input filename\r
@@ -152,11 +152,10 @@ 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(b'=')[1].strip()\r
-  PublicKeyHexString = PublicKeyHexString.decode(encoding='utf-8')\r
+  PublicKeyHexString = Process.communicate()[0].split('=')[1].strip()\r
   PublicKey = ''\r
   while len(PublicKeyHexString) > 0:\r
-    PublicKey = PublicKey + PublicKeyHexString[0:2]\r
+    PublicKey = PublicKey + chr(int(PublicKeyHexString[0:2], 16))\r
     PublicKeyHexString=PublicKeyHexString[2:]\r
   if Process.returncode != 0:\r
     sys.exit(Process.returncode)\r
@@ -164,9 +163,9 @@ if __name__ == '__main__':
   if args.MonotonicCountStr:\r
     try:\r
       if args.MonotonicCountStr.upper().startswith('0X'):\r
-        args.MonotonicCountValue = (int)(args.MonotonicCountStr, 16)\r
+        args.MonotonicCountValue = (long)(args.MonotonicCountStr, 16)\r
       else:\r
-        args.MonotonicCountValue = (int)(args.MonotonicCountStr)\r
+        args.MonotonicCountValue = (long)(args.MonotonicCountStr)\r
     except:\r
         pass\r
 \r
@@ -187,8 +186,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.bytes_le)\r
-    args.OutputFile.write(bytearray.fromhex(PublicKey))\r
+    args.OutputFile.write(EFI_HASH_ALGORITHM_SHA256_GUID.get_bytes_le())\r
+    args.OutputFile.write(PublicKey)\r
     args.OutputFile.write(Signature)\r
     args.OutputFile.write(args.InputFileBuffer)\r
     args.OutputFile.close()\r
@@ -210,7 +209,7 @@ if __name__ == '__main__':
     #\r
     # Verify the public key\r
     #\r
-    if Header.PublicKey != bytearray.fromhex(PublicKey):\r
+    if Header.PublicKey != PublicKey:\r
       print('ERROR: Public key in input file does not match public key from private key file')\r
       sys.exit(1)\r
 \r