BaseTools: Handle the bytes and str difference
Deal with bytes and str is different, remove the unicode(), correct open file parameter. Using utcfromtimestamp instead of fromtimestamp. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> Tested-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
This commit is contained in:
@ -84,7 +84,7 @@ if __name__ == '__main__':
|
||||
if Process.returncode != 0:
|
||||
print('ERROR: Open SSL command not available. Please verify PATH or set OPENSSL_PATH')
|
||||
sys.exit(Process.returncode)
|
||||
print(Version[0])
|
||||
print(Version[0].decode())
|
||||
|
||||
args.PemFileName = []
|
||||
|
||||
@ -119,19 +119,19 @@ if __name__ == '__main__':
|
||||
args.PemFileName.append(Item.name)
|
||||
Item.close()
|
||||
|
||||
PublicKeyHash = ''
|
||||
PublicKeyHash = bytearray()
|
||||
for Item in args.PemFileName:
|
||||
#
|
||||
# Extract public key from private key into STDOUT
|
||||
#
|
||||
Process = subprocess.Popen('%s rsa -in %s -modulus -noout' % (OpenSslCommand, Item), stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
|
||||
PublicKeyHexString = Process.communicate()[0].split('=')[1].strip()
|
||||
PublicKeyHexString = Process.communicate()[0].split(b'=')[1].strip()
|
||||
if Process.returncode != 0:
|
||||
print('ERROR: Unable to extract public key from private key')
|
||||
sys.exit(Process.returncode)
|
||||
PublicKey = ''
|
||||
PublicKey = bytearray()
|
||||
for Index in range (0, len(PublicKeyHexString), 2):
|
||||
PublicKey = PublicKey + chr(int(PublicKeyHexString[Index:Index + 2], 16))
|
||||
PublicKey = PublicKey + PublicKeyHexString[Index:Index + 2]
|
||||
|
||||
#
|
||||
# Generate SHA 256 hash of RSA 2048 bit public key into STDOUT
|
||||
@ -157,14 +157,14 @@ if __name__ == '__main__':
|
||||
#
|
||||
PublicKeyHashC = '{'
|
||||
for Item in PublicKeyHash:
|
||||
PublicKeyHashC = PublicKeyHashC + '0x%02x, ' % (ord(Item))
|
||||
PublicKeyHashC = PublicKeyHashC + '0x%02x, ' % (Item)
|
||||
PublicKeyHashC = PublicKeyHashC[:-2] + '}'
|
||||
|
||||
#
|
||||
# Write SHA 256 of 2048 bit binary public key to public key hash C structure file
|
||||
#
|
||||
try:
|
||||
args.PublicKeyHashCFile.write (PublicKeyHashC)
|
||||
args.PublicKeyHashCFile.write (bytes(PublicKeyHashC))
|
||||
args.PublicKeyHashCFile.close ()
|
||||
except:
|
||||
pass
|
||||
|
Reference in New Issue
Block a user