]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256Sign.py
BaseTools: Handle the bytes and str difference
[mirror_edk2.git] / BaseTools / Source / Python / Rsa2048Sha256Sign / Rsa2048Sha256Sign.py
index 285635963100fe7b8fdae62c71e720667ba10bcf..be5ebac280b232e504e9d2c8daa8cdde8804e2ee 100644 (file)
@@ -103,7 +103,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 +151,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
@@ -186,7 +187,7 @@ if __name__ == '__main__':
     #\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(bytearray.fromhex(PublicKey))\r
     args.OutputFile.write(Signature)\r
     args.OutputFile.write(args.InputFileBuffer)\r
     args.OutputFile.close()\r
@@ -208,7 +209,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