python fsb795 ведущий ноль серийного номера

Всем привет. Работаю с файлами квалифицированных сертификатов, одна из задач - получить серийный номер. Имеются сертификаты которые начинаются с 0

введите сюда описание изображения

Когда определяю серийный номер с помощью python то теряю лидирующий ноль.

cert = fsb795.Certificate(filename)
if (cert.pyver == ''):
    exit(-1)
print( '{0:x}'.format(cert.serialNumber()) )

вывод cert.serialNumber() : 244779530423518144939779859097793331

Вывод программы: 1d76da04fd9aea00000033603e80002

Должен быть : 01d76da04fd9aea00000033603e80002


Ответы (1 шт):

Автор решения: eri

Переведем байты в число:

s=int.from_bytes(bytes.fromhex('01d76da04fd9aea00000033603e80002'),'big')

s.bit_length()

получается 2447795304235181449397798590977933314 длинной 121 бит, округлим в байтах:

import math
math.ceil(s.bit_length()/8)

16 байт. И переводим обратно в HEX

s.to_bytes(math.ceil(s.bit_length()/8),'big').hex()

'01d76da04fd9aea00000033603e80002'
→ Ссылка