From: Borodin O. <bo...@un...> - 2017-02-01 22:00:13
|
Hi! I wrote little patches for reading/writing encrypted or unencrypted RSA keys with Crypt::OpenSSL::RSA. Patches in attachment. Extensions can be seen from the example below. Found little limitation: for ciphers need module Crypt::OpenSSL::CA =( In general, changes in the unit works well in my programs. If next test shows a good result then we can make changes in the package? $ cat rsa-openssl.pl #!/usr/local/bin/perl use Crypt::OpenSSL::CA; use Crypt::OpenSSL::Random; use Crypt::OpenSSL::RSA; $pemkey = <<EOF; -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,26A1EA21DC1B67BC94B1C43932110101 F23zd98vPLg5SQcfvSFru1u0cVuBpsr+zKLySo3JxEf1JHYzJk6Y2LJU57+uZAJ/ U3VfK04mXu/MGuunw97ThwkCCxnzjWdHuE/SYTo/e4OpZbPn0miz8I5GeS/McP4i t6ya/IKmoVMBLLEP2xpTguRuaMUlh+RBFiR/rIMaUOQvHAK6lBTM1/GNAMdr4ysg c4CYztLH4DKY2nvo/p/bJwOLIx4uLzBjGlohwu77we6l+FXziXZPN98HpjxfIiYC ztBFaeeNDJWwFQUqZgNmzYukEPIPlW+NWShk4CFSOJ6jz8cDPMkT2hOdz4GaebRQ nRy1y+kNtz6f/tQmxwybM7295bWWxg2xL0Ho5IGrF0BfsATESxWD4zD0vJO7jmaO MX54l6n8EC/4goVTBmZpdyJ9YSozx8rMKih+sLl69NrvruQ1Yio+zpToLDuNOV1W oPVy+JAXQWI/c5QEDd85FZQoxJU3cY23E49WFEOy25gBYXNPMF6Vyv4x7XIs2C1f Z1lKaFy1uuRgAq9BG7qVVDm4ZHANtE90pbpi4CjUvuedpCjulqlB5tdazPhiwpQI Xk3XSFzOUXCsX19pPH184OJ8HYT45s8mEav24WnNo5H2OphkE9Lb5E+wEBi6Hbbz nL7FoCAvqPE7L01TAaabuShIMAl6vxpWXuheOcQDgt+HgwRF4xLer0DWrY4v1I22 k4bVwLhUqzramCKEdO+baHXURC9+whMSb7+DxO4AT7RNgdD9xFybmKrS034WO8YE LNBEnl7A6hLYwEHLJfam/LNQdhld9e8oXel0vOD2ZnOAAMLqx+S6j9pLdTgjGApz -----END RSA PRIVATE KEY----- EOF $rsa = Crypt::OpenSSL::RSA->new_private_key($pemkey, "12345"); print $rsa->get_private_key_string(); print $rsa->get_private_key_string("12345"); print $rsa->get_private_key_string("12345", "aes128"); #EOF $ ./rsa-openssl.pl -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDpgvMPC5BUJCGC8yAulg0yLmcSF+PhI/JJl55ng/lTP5H9Dhzb mmTrHXX3OjJcPCUygVCLtHqgmfL0dXZjycl+VIGyaEyCZmEv8y0XGYus219tUVIW GblppdonQPiky9K2soBXxGmQAbRmRp8RsFHKDS8hhHWguLK3fAQLbcMWGwIDAQAB AoGBAMSc0qSvWuXNyj2lEkrHYvMGqRhN7zyo9J9MPz7vmyWiF/zXPisVc7WXh7UT VkXdCoDc6wHGg53oIe39XSKmS7Ur6NLyL6DyzT2f/9kGHrJ2NNo3SG87N5VPaWwv MOF2CtdW12PV8dOJzE9tj8DmPvIRI8R9otkZ7nyw9qrWe+mZAkEA/FIop/gNROll SYR+tc/+IFZxdymnbczZlvDYJDS1X4WKZrmhP6AYSKdVOhoZHGC445X9OR3Rchlx TPGNfc8hxQJBAOzqlJ3Obsz+vdtx8vi9H2aLCONO50j/OV5kiOaoPFjnOk7fM1ig lFgkUU7iKaXFaPSu8YZaYYxwuVaDgqQONl8CQFnBnCbMLWQzJk21rSFd4Md+GJTM I3wCn/B6sliGy3I0XdxW8k5g0+Kca8vkVsRqf7qts0trGQNem5hEYRG86gUCQQDc JmNxfJkjbng4Cdvw3bTnEb1xlCmBgIDrwNoiFCT3q+5XyjqpWZZfjWfsuGZg/183 N7WB1kydN0ZSKSRllDtbAkEA2fQDzTqIZL8tjM62C1FgyGzJrLw7GuLWA1o5NBr2 PXbsA37Q5XdtB7J9ZRsW6KK6TgW31CpN16RJlF1/sBOXKw== -----END RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,2388A87A8E71B093 Fq7Mg4ynkMJ2L8+/uZc8HPz0e94ciIpTJCDaOE46rHgs6q84luIr+4P6tleHT1m2 saIwH5t2nbDh3mL661oGvDGYveexCt62drF03StQExhWBP2kqO+JQVlx9LdRbSwO yrzOZ6DYGvEUf1aBqZxvRuY+LWGT3D5EZnMzFaLIZUfXE6r166qnXDUR/d2SZgMp YQ7oljkRh+M0p6wMSEkoiwqDSstUBTACs5FDhfHbK09AWjNyZn8Dp2jm+K7mt9qg DFMPHpE8eWgdBHWv4WRMF7AKK36Z3eyDIZXmD29+r8T/Yp27Cvh9kmKZMP2HxUr0 XLImEV2KMPGqvWmaP8f6VbpSFBDHW7FZfFbqMrvwx/KFlvhoZzjqpvOSHVwnsd2Z e6MpI5214fQQusLRcx1LcRmDoM8KMVUFZ0WtLsBPBkJQnqyQUAV9ClNYLJUlDe4p GLex7sRhWKINKUMk7LAsqNs1TIeIroxNd6z8oCY48FV+vQeJrVE101UP7SzFLCWf LEtpNJM7pCVBEWq/1eq5QGyJiQ5rTvD5epzOaaVg2Sw8y8L4iDg+BD1UWgtFwIYh hZO9n0Ax61DcG4GIN81Eo+zFzWUvKOH39byCVsQLRHd7BZfOaGZzsd5DWT6PUji/ 9UgfirJeCF7+mKoT0Sddk4X9WOfLfxMF7ZV3qk1TvO8nQfiE9zvmYkqWgNacp4IQ PXCzyRjZMROuvsIQnZ73g9qwZZIPvL6Bjngq0AT4Fk0FGekmzxC5XbeNUwcsLqV7 oN/pZfejwOKmVksPCOLv2dh8ejATZsw6kVTlhqTQNzfuUvwowFp/9Q== -----END RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,D4E4C65A1D901C671D3AD960DE509399 Ns0WUNbPKKDFZPEoExSqYP46Qk2P8Jaazuk/92OKe5hQSjJ/3qpA8LQSd+tw2Bjn UUFdhUO1rCHYIbzR/RSUYNlHyDFODZYHMp6mC9uDOksOSj25tCrZvPRiv8JMdmSj 0a4QL8VlaLnsJtXRKSnoYoKvdLqwflnvVSgetPCf4HhN3jFmGopyX5vdufXUQxMo oBLPPezYBMKVEeyE2Pb13NYLzlvIh2hJBaX3tv5p/hhLLGDa7KYv4inwfxAlI8B4 5FFX2uIsNw4Gm0sOfjq8saVLg0KLyDqkd4thKxtrxHHKLf1W18v+pbPrZEXvRe/C YVGu0rE3NQUtx0IlcNIuwV3DvmQtxqN4l568MqR2UJcKc61umDPMAbIW1TorF4Fm PqC6W6z+rxUqY2zvCKIjWTQnYbOJ1dkyZj5rM6kgacvXEehjYOCuPTLMDb0rUjLo JvtKdRJqFYvEI/jXThlMns7GXXJhQegGgCgWdTaNg3kEkX4pbneUl2PmKa9HDmvB oaC5hFDonRDriCtfpVhr7Sdn9zOQVCytcvB/eLlH451/xZNlMlSlCjPCiYuCXNz1 uQf2GOhllkYuQren5JtgNTcXKR3Z0fu0jTqjwGijoN5KXlRItcfJlNJ9/9/tNJ3y Mql4qr8L3Dkhh6wJI/8PIyNa06IBuhs51B1057e1gHlzeZHMbr5rZO5lfIHXqf3Z XvT2KV8+fyqvaYHd1rJjB7+QrMClhVmOLhp6DCBp2gNlgqDc/n1X0BB/JYx94CFn WW2cYM9n8R4fXGy/mZRqYcBoydzZ+tENDZpXXITNl1CBBwrI1vl7/2j//kk3QkPN -----END RSA PRIVATE KEY----- -- With best regards, Oleg Borodin +7-952-058-72-64 bo...@un... onb...@gm... |