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...
|