Разобрать пару ключей RSA из строки в Python
Я пытаюсь сгенерировать / прочитать пару ключей RSA из publicKey и privateKey в виде строки.
Что-то вроде этого:
priK = "-----BEGIN RSA PRIVATE KEY-----MIIBOQIBAAJAVJhUS0gLqXLOmVv2xG23oFPwim9+rVxGhLUXqKShQCvB3iRMOHn7/GNJumpwmnglcsNXuqAhN0OxqKGGJdtYdwIDAQABAkBP0VrXnSbDvvuIX+k59Xvo3sp7FDAmSoaO+H9WM9+ht5H/f/geIrSEXSIkFLnzniMwtOJ422GmkDkL1F67HuDhAiEAlNauDiq3RqoXufbauyPEOG9fMS2pvB+auT2XCHJhhKsCIQCRgIo7WIRZYnNpNRWaoppUQK3g+aM8sdeBYpbs2nwDZQIgZXIxrmxFAUAb7d+oVFdbfc/DRSTHhPbRoaKuF87GUwMCIFmzaATsLjO42TPMETSS+BfnBAtFe5hIf3Z5pFgC3h9tAiEAgYjug92fmVvE+CcRSg6at7meSEbK/Kxg7Ar4mlkXMlI=-----END RSA PRIVATE KEY-----"
pubK = "-----BEGIN PUBLIC KEY-----MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAVJhUS0gLqXLOmVv2xG23oFPwim9+rVxGhLUXqKShQCvB3iRMOHn7/GNJumpwmnglcsNXuqAhN0OxqKGGJdtYdwIDAQAB-----END PUBLIC KEY-----"
keyPair = RSA.importKey(priK + pubK)
Моя ошибка, которую я получаю:
in importKey
if lines[1].startswith(b('Proc-Type:4,ENCRYPTED')):
Я даже не знаю, возможно ли это так. Я действительно не нашел информацию об этом.
1 ответ
Решение
RSA.importKey(key)
импортирует один ключ. Он не может импортировать сцепленные ключи.
Если вы импортируете закрытый ключ, вы можете извлечь из него открытый ключ, потому что общий формат PKCS#1 и PKCS#8 содержит всю необходимую информацию для создания открытого ключа. Таким образом, вам даже не нужно объединять открытый ключ к нему.
Использование:
privateKey = RSA.importKey(priK)
publicKey = privateKey.publickey()