Недавно я пытался выяснить, как заставить PyCrypto распознавать PEM, которые создаются в процессе упаковки в Google Chrome. Проблема в том, что стандартный метод importKey вызывает ошибки. После довольно долгого процесса я наконец понял, что вначале могу смоделировать импорт путем обратной разработки метода DerSequence.decode (все детали здесь ). К сожалению, это оставляет меня с одной нерешенной проблемой.
Я могу получить ключ для импорта, и похоже, что он достаточно последовательный, но у меня осталось 40 символов.
import binascii
# read the pem file into chromepem
# the first and last lines are useless,
# we need it to be a string, not a tuple
# and it needs to be one string with no newlines.
chromepem = ''.join(open("chrome.pem","r").readlines()[1:-1]).replace("\n","")
# not sure why, but it looks like the first 40 characters aren't necessary.
# removing them seems to create a consistent public key anyway...
pem = binascii.a2b_base64(chromepem[40:])
Кто-нибудь знает, почему эти 40 символов есть? Будет ли их игнорирование вызывать проблемы с некоторыми парами закрытых / открытых ключей?