Skip to content

Commit

Permalink
RSA keys for PSS can be imported
Browse files Browse the repository at this point in the history
  • Loading branch information
Legrandin committed Jun 16, 2024
1 parent a6b6ecd commit c88f666
Show file tree
Hide file tree
Showing 18 changed files with 210 additions and 141 deletions.
1 change: 1 addition & 0 deletions Changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Under development
++++++++++++++++++++++++++
* By setting the PYCRYPTODOME_DISABLE_GMP environment variable,
the GMP library will not be used even if detected.
* GH#814: RSA keys for PSS can be imported.

3.20.0 (9 January 2024)
++++++++++++++++++++++++++
Expand Down
7 changes: 6 additions & 1 deletion lib/Crypto/PublicKey/RSA.py
Original file line number Diff line number Diff line change
Expand Up @@ -711,8 +711,10 @@ def _import_pkcs1_public(encoded, *kwargs):

def _import_subjectPublicKeyInfo(encoded, *kwargs):

oids = (oid, "1.2.840.113549.1.1.10")

algoid, encoded_key, params = _expand_subject_public_key_info(encoded)
if algoid != oid or params is not None:
if algoid not in oids or params is not None:
raise ValueError("No RSA subjectPublicKeyInfo")
return _import_pkcs1_public(encoded_key)

Expand Down Expand Up @@ -860,5 +862,8 @@ def import_key(extern_key, passphrase=None):
#: a generic RSA key, even when such key will be actually used for digital
#: signatures.
#:
#: .. note:
#: An RSA key meant for PSS padding has a dedicated Object ID ``1.2.840.113549.1.1.10``
#:
#: .. _`Object ID`: http://www.alvestrand.no/objectid/1.2.840.113549.1.1.1.html
oid = "1.2.840.113549.1.1.1"
9 changes: 9 additions & 0 deletions lib/Crypto/SelfTest/PublicKey/test_import_RSA.py
Original file line number Diff line number Diff line change
Expand Up @@ -559,6 +559,15 @@ def test_x509v3(self):

class TestImport_2048(unittest.TestCase):

def test_import_pss(self):
pub_key_file = load_file("rsa2048_pss_public.pem")
pub_key = RSA.import_key(pub_key_file)

priv_key_file = load_file("rsa2048_pss_private.pem")
priv_key = RSA.import_key(pub_key_file)

self.assertEqual(pub_key.n, priv_key.n)

def test_import_openssh_public(self):
key_file_ref = load_file("rsa2048_private.pem")
key_file = load_file("rsa2048_public_openssh.txt")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,23 @@ openssl version | tee openssl_version.txt

# Private key
openssl genrsa -out rsa2048_private.pem 2048
openssl rsa -in rsa2048_private.pem -out rsa2048_public.pem -pubout
openssl pkcs8 -in rsa2048_private.pem -topk8 -iter 12345 -out rsa2048_private_p8.der -outform DER -v2 aes256 -v2prf hmacWithSHA512 -passout pass:secret

# Private key - PSS
openssl genpkey -algorithm RSA-PSS -out rsa2048_pss_private.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -in rsa2048_pss_private.pem -out rsa2048_pss_public.pem -pubout

# OpenSSH
chmod 600 rsa2048_private.pem
ssh-keygen -f rsa2048_private.pem -y > rsa2048_public_openssh.txt
ssh-keygen -f rsa2048_private.pem -y -C comment > rsa2048_public_openssh.txt

ssh-keygen -t rsa -b 2048 -f rsa2048_private_openssh.pem -P ""
ssh-keygen -t rsa -b 2048 -f rsa2048_private_openssh.pem -P "" -C comment
cp -fa rsa2048_private_openssh.pem rsa2048_private_openssh_old.pem
chmod 600 rsa2048_private_openssh_old.pem
ssh-keygen -p -f rsa2048_private_openssh_old.pem -m PEM -N ""

ssh-keygen -t rsa -b 2048 -f rsa2048_private_openssh_pwd.pem -P "password"
ssh-keygen -t rsa -b 2048 -f rsa2048_private_openssh_pwd.pem -P "password" -C comment
cp -fa rsa2048_private_openssh_pwd.pem rsa2048_private_openssh_pwd_old.pem
ssh-keygen -p -f rsa2048_private_openssh_pwd_old.pem -m PEM -N "" -P "password"
chmod 600 rsa2048_private_openssh_pwd_old.pem
ssh-keygen -p -f rsa2048_private_openssh_pwd_old.pem -m PEM -N "" -P "password" -C comment
Original file line number Diff line number Diff line change
@@ -1 +1 @@
OpenSSL 1.1.1c FIPS 28 May 2019
OpenSSL 3.1.1 30 May 2023 (Library: OpenSSL 3.1.1 30 May 2023)
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAzf6A6XjM4skBCd6SBt6g8GkO6Zg6sfC+7jvrmEyERWdm2iVP
SDyWONzKprIT8tRaDHbtkhsJnff5F0Pq/gO6lMPKcgADn/DUAW0C8C6y8ns7tkKY
fGbSdJQo/JIA7IEecEV5Jb/1p5GHwUQQIxa5QLqBNXBNsnX27vlVNT2RZ8cos82Y
nKl9YhvjJzdC/G9eYlwe+DrYtVyw5yh6fjJvU1fx5EFbYbLAaSZ9lY7byqIxVFCG
Hmqasx2MVtTdOwVSlA3mxXiMpN2lWPSICbVxiooGxQifBuEnQXYJfWQdGIxjWuqK
J4L4Pn4C16quEVjrwO7psE+DBTZS7m8RWDdfLwIDAQABAoIBAQCwoKLkjgIQCw3q
6n8HiOkyesKgpTjeznDIUXSneCSKZikYr5kVdW3Rf+/7kwHr2w0DVw5Jkwlh+/gH
bOMXvxbC7EawDTcOcy81scUtML2bkPMYSm35bSjTcR7bwk0sfWIeHlPMfJYkgnKG
0teLXralu8WCjrLwbJm5Ou1G423ELsTrCFTvM8n0x2Wgpvevfyuh3un1CO6Hpi7/
o5ZFUt4Vu6MCmQprD7OrsdG4wxIJJpnVDtTa/CE3tiSKG+yrF5FlxKgnAZK90UTJ
AsZsdkVzXwhcbTuVwFghyZa8t90rDKMGPU4XrW8GxN3TTYN9vvPwAPtsXBSE0QYi
+yPPN63BAoGBAOkVFdg+i2y3wL3zJuR9v4IgN+eHW+HysK55nLUN+qXuKZ3xNnrh
Lf1xKp8XOG+qfHolwuqELAbu9q8VoY2qOlZkI2CWJnHESL2oY5Ws2FSFaqUvrgsZ
vj6dYqHR5/vRqvbZWp7kRHtcO97/c91U8qc0u7scgY3V+5nyYsXK5/m/AoGBAOI/
lMFO6EtI8OfiV5AvjS17FaX9C00rVtWL5vLH9q4aq4qBuaB+pnX/zb3FrzxRTxg1
pdghMkj/6ms3cwEahvnnPC4P3FVkjLFpl1rDb3yXCak8sZTekVaRbR8Y1fxvjeQk
es5+bJHNa9ugsWLPwksTeu+cuguqxYBgRoo+w5aRAoGAOvd+o0qPc125gVS2ji/R
91W3TvfLowoG8N0LbDKxKrFqDe8sXUICpI+wvLbfLEDxZOWQvkvZ55clCX5rdK+Q
OrLy0EisSTPjQzgKmZ80y41FQa0iVuSYYLbocQ/tpKOSoQi0CGavfJYE/5GY+nG3
Qd3xcJDxpbRxBq1vl6KRtXkCgYBCVZ/4uXj0MdOoOT2xIbAD6LWlMDbzDkTsYZN6
FVTnIRywhG53dwq5SCH7hQ1m4vQMxhX082655obFnsFSToPKm5iSbMYOJ2f00F+3
FdwHLIWBoDD00/jK5+KVnoOG+vIgNO3owzpz2UXJZCj+LqnptzFxNYN6zjwP8qpb
+CECcQKBgC1i8ptWWx6LVrBTvxdrAI9JeJz/wEvzX2+Ca2lpAlaxW4wM4M9CinGs
MJuv//vv/bO6BcTLnkP3D3K7TmfYF05ECyDIaUEvlcAhO85su6WfJLLJY+bIWC2o
2g0PpIlRhksVTeNfR1eoNUeALvpxZE3VjmU7CVZk0NaI9CZUfCu9
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCpAV3XSrUUwaYW
qeByIAXhfLBm3UuhVa/SRWKkd32UKWi5ygbaqwdiacLU89qYVKfqU7CGphWewf8W
AfqUIXZ/u51PkzU42ihhqkTlIchpDBTocJv7NR3UVETHesdOLfu0plL7aS3LcFqK
Rr1ZroeQ9o05z48eCPkKVeTHhrzppZjfFTRuGgSP/tNpTJgRd+CFW1wUQ3CoX5fW
NFAAfMSfUQBWKpiYoTjjWutQ44ZEFlcYeqtntY8GpVEJavmfGIeq4rgwRhJCuRnB
oHb8l6lZ3B+QsGRnUqjN0d1ijv2GiVdsQZBftTRgb8Qlk1URcPhBpfiLIEUCQdsE
nZNHDhg1AgMBAAECggEAEMNqb/LgkDz/AOt7sEY93xZTlvhnSorpxCUOujqB8cLD
uP3xfRoOwvOzmBTR/18SQrtnXIu3xEYAy8mJdcz16IiO+3giBNAaxkkxyTp3GvhQ
UJfu2NV1bnynT9P9VeNYvpvqyjYuDSpJSMLogC9AEiBqdKwCSZvhO+W2KhZSwaf6
YK+6WRKf+6ITze3VCOmwhBloowdprBBRpSGFeBzwoukwm7l7f6D6AjL5VQoJdWk+
bgL4OErQ+wZnBZTeEmzFOLBtLw5yn/+UPf4nTsix9M9I5ZcZWdXCHi89ogteL8IU
JbjaW/DdXrnYLQz/jXbcz/CQc4Ha236phoYD1NtuoQKBgQDh8IIxvZ73NZAmQ66d
1mYSiqXbKMhz4ldTzFV34iobaC1fSQ+x2L/zBaKjr7UTtcUafi92NvHwk6T7gDoL
yy6qOJVsidw4OFvlxk+ZljqiwL45E7/vZLNsKgOzEx/ta1yb7plIJURmuqcrRYRY
+DCTJRhoFnkXJzJx+D1Bxy6spQKBgQC/fa7K+OeL1jTOvTsXe0rF2vhsXXftamlQ
P7LU0yWjVW4yh7dQ9RDXKFQ1v/aavzObvRJZ8WDHtSq/CjCboHzFs3P0Gv9bVRUl
HMFEiu3Xk4jpYzQd8K3tlWWxb91Sf6Bwb/jknuTtZ7/HkPQpbaZNugZuP/zg+BVq
TR4zz5IYUQKBgQCwHNSfCPs8Hpg5+0/E4DW4BjK53dRB4A/J1eBZDgVcT5vuRfjh
293jBGV9yZwPvQPiXrGIJ9P2fl9/WrfkMYAyVuDCNcNeXy/iru2k/iC+dBbSTr6x
T4E7spQnpaShX6pUMWtxfPsQSDW92PYMk4jpaWTY3YuNrJP5mlHFUAjlsQKBgHi8
HL47C3relzMWmrBmezGeq21fzWKy6i2/y9hmPN/r2Gwhp9Jygai288lj/G97SGXU
Y0K0bynbr1T+bsFhAeqBCAYME58ZWRiqNa0qz2VRz0wf0VdjTbZzsMecWXZPo+/g
mZREHuEUvhVs7pVEXku5k55l1+JcaNw6PWW7ZUjRAoGACJ42UkdjoHbFUTKNDqid
TXnqlsxuH+vJo3WuyVLSdCQWxAQvToB6jO9BFbVMhvGJuYj6IrAyZ//bv78+OXQU
v+TaACl9otiUXvwl9wDreNAtsQxGqsEHMkXWM6mAGqjNcCrl9qmyj+DS3xy6cjqM
S0pacWuaqFJt8IGZFVwnVj0=
-----END PRIVATE KEY-----
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
P8mUZXFDf+8g/iHtAAAAB2NvbW1lbnQBAgM=
-----END OPENSSH PRIVATE KEY-----
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzS5+hE7yO9DJidXnNIX4R2LKZ3+aDL522RKCC0gYDctbttnxDvx9QBI5L26ooF+opgo8cKBh8L8iOmTJBnORl0JkAaCcrgAOTzOrVYpJXbEyi3FUHqL8QiPEetr3pzx7xBG6OlTXWDLBTB6upuCL2g8vy/l1EBRrAxYJ5tjpA+sm4YtvgwzjE3+MaP0r5Lx3YECucJLRZX9J+/S/ZBFHZlJseGQS5t0zZJH4Ji83yG7eW4W1fkMsHn2M/8vvZhU1jc+PGgd+fCxZr3QdZcLrBWZW1TnZoTVLwI2R6xrRIUa2NCWciJSFko2ZrUNQ/MtLU8OZuVpRHQi/WdKs+MA4/ comment
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDUbsJJcM8UjoZV
opwPdexW2ZUBdinsRfMO0196ekvyBXu6NbNDZHtVEz47CbDxDgBlfw7DqkrePYt9
6qs583pibtAYKdZ3OUAVwIsFO9CSfFO14xLyscaU7L7IIhbbVOYpgc7hzz57+cfN
LiIIX0N+WaoHdzcd8Ii9fl9nXTh5AB/CxXe5vyx8WqyyRHsRg+TmZfRcKzEa/fmS
qmCTnYMlSSMx3LT3thLwxlV/ZODs9tsguY0Rk9UeYgOXeTOjSO7k6/6FnqVQny7/
drbeM2ZmDkOCUi1hp333GiqB6Tac6xu+yZZNl5lnuL+xMESqR6JCT/POcQqLEEBr
KhYQi0mvAgMBAAECggEAPqFxEqn5w7vJi1Hn5P8FcQ2xSr8F2S0+Xe6fxcJsxaws
MFhIw+PKIOkNfeZ7jnZsU4BEYBfC/wbyK2uWk/1e5cp5+8XJ/1iXtlIQKrjZ43ZY
T9Xk7jzPqXSrQuIaDwxW14H39sddSrv31lx1mDZN9eCFqrHRRDh4eDXb9uObFMEU
pMlnk3q3/QlMnhQXLvlVC63hh3odsTXUu3QeS6oVDfh5sw0UZad8UXy9Pkb3s8cm
j1sFPVvLFJNTMysYL+PSiIwLc5nNvXg7SEacoPPQ8fGQ1imYAmS9x37AiyGkrI6m
mS9UeBH/8iMjMTeINe1KUWih58E3YI0mIAEt/HpsAQKBgQD8/uXoRvNfZ0EPTrD0
10kxM7qWg4LBcKLeRJ0G4KWUL5RmvD/s6VhWP5RztqsGIB8IIeS3+JqsyXb6yooa
kCfkO53fG+gluQVtYPMEIt9xkHlSirz9v/B47y2o7p5j2/j8Z40AC63F/ayU+Wfu
9/0emReHbbUKCl27JFBT5IR6rwKBgQDW9IzNJrcxRpTxQ6m2kp7rEOKSsUJ7VWif
HeuD8LRab6hJTdrLdvTbcZyHJX5kjg6r0wI+GvJr0WbWXiQGCTEsak+iFKnJt7C/
M30/QgoUm+Nkc0VlvcsM0X1EDEEnab+1FbUUSpJ18/TvzrhxgBVbAN05rncrwEKA
3N3dp73hAQKBgQDjbrX5aIbydd0byK71e++1Rn5vPkw2X25ah63t99eB7n/nF0YU
UPTzm/Z1S3pVaFzdL7Lv25IY0IegDqG2HW9vElTqs6iu+LQzTttIFZ1u9uTJ2iTp
rDmeTc1rNw+2T5J2PRSZPOZ7vX7+8XKIdfDbJ97qBSqhmw4F5TA9KooZywKBgDDE
Aj14jw7qyFeD1jjJQqxphD1rYX3Bfp66lvez3/a0ZiVbOEv4jMxMFgrDAs2lPMbW
dCfKzTyQoRf4+4szAqjk5XQL5AkTV1HJSJzVSpwqUYg0boYKbMpXrGeHsDBU2V0n
s5EK6fdAhUzyRP3a5P1kUMwJPJf8YhoCAYOLzpQBAoGBAI1J8q/ii97I1qHFHvzz
qUzlUJj+ZgMZkFhcIhFxX/qLwLZ2lnRMdmUkT6iOpYxbxwzHWwRThj3vtsYl99nf
7AYLGKBj51Y5Yidhin1G9LJo2MRvrYLuTVzydVe5//w0fN0intLdgGBITw7lrhk6
vfySnQoWOsBsSPdqmIqAzPFC
-----END PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAs0ufoRO8jvQyYnV5zSF+Ediymd/mgy+dtkSggtIGA3LW7bZ8
Q78fUASOS9uqKBfqKYKPHCgYfC/IjpkyQZzkZdCZAGgnK4ADk8zq1WKSV2xMotxV
B6i/EIjxHra96c8e8QRujpU11gywUwerqbgi9oPL8v5dRAUawMWCebY6QPrJuGLb
4MM4xN/jGj9K+S8d2BArnCS0WV/Sfv0v2QRR2ZSbHhkEubdM2SR+CYvN8hu3luFt
X5DLB59jP/L72YVNY3PjxoHfnwsWa90HWXC6wVmVtU52aE1S8CNkesa0SFGtjQln
IiUhZKNma1DUPzLS1PDmblaUR0Iv1nSrPjAOPwIDAQABAoIBAD4R0BFTY9OZdlff
k2sQTTSgcDQU7xg7Q731xBuF2c8X0pA4vIw3ff+VlC1uvlli7g2wxRpaRx+26xdy
sZNFXUxiCpW5eNX2W0avihyVI1RgiadX35fnMz3mKpMXcGeg7HVDs4Jo5VpUyjX0
UdlPhcsRlWlp5Z/GpJxXw/Oewkv78XCiqYJagdWkwko79/WksCgvx1nbXxLmSuel
/OEmhJG+EhhTXoJvZ7B+yo+K4aEi8cTYogiedjYA0NWLNJS3qqtwc4LPE1/+VXWj
3orRUONYfhC1//SCM+x74WeOS0jH3NR0r1CgwnX0IyHwR8Szhz3W5957mg0kU+Ct
KxE22wECgYEA5NYWjvQfwBIMuQHoHimbbrXpGdN0F9njYSjAGFd1lw4Ldnr2yGNV
b4JcjG848eD4LAzjthYxxv3DziOIrJDkJuAqeqDZ2DnKkQxITk9rYQdmcBEewLib
qPaYYdt5V/ReToe0yF/8279rWrgAMi6R54USqpK+adUusj27MR6eG1sCgYEAyJQU
ZoD+ahLLrEXa8QkGcIXPJ1br6Cl9jPtrQggy8+6Hp9CRMC0QJepi5j9z4m4+aYKm
+ydsv+0Sv9OF/3zYwy7Z2fH+b5NE+Q1U8kirIYbuzFpNISrLkOUlB//kb+0wsKok
jhbT7Umc3N+B/Ypc5yTr4+A/yZRlcUN/7yD+Ie0CgYAhPNNT+jNuY3DDonpDf0mb
QALWhHcVS8mSACg+oN1sjlat49habMspAidNIo6D22hQhaLBfOHIBG3fUBv27Kim
2OJyo1Bg7qv0e3M5JKH1Gu0PE/2Cgo3hccfaVtV+J/lWsLFadU614EzIhXdJ0qfQ
l+yJJ/1OQ++fZgX9cXQHhwKBgQC4B7VX/w5ugGRC4azp7h/sabkRHR1BW6AIFD3q
zd8CFF5+yEwN6aqhPxYSrzFCFWhKIkfWs+uBhKDpQ8f0C7ZODtRutSt/b52e7G5+
BdKN5mF/OXL+9WbkwHljh5MuZm+AB/uWKrezRREZTjDUUXi/0w5je8LKzs7sRsRA
wQKqWQKBgQCWf4enNsHxbGgUBDWA6aaBxCDL/IACGOqtD4GBuSG/HhbysuunXIKQ
ntqozDkTSgpQ2wkqXvMP24aOFSa7mgbxyhNYba2+jqFVnwHpJEf3ct/VUJf8dXvj
NGKN59DxgtHWV3Ze4ZGKDOWoJTDK+uUF+wwPmulZRPnfzYPGVMG2XQ==
-----END RSA PRIVATE KEY-----
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
33qpGiKA==
-----END OPENSSH PRIVATE KEY-----
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOAZeG2U9Vgxu/A6BfgKNTUovMsbv6jo+BZjMWnoDararh7Jn1G3OquMFNNnxDZiyB7Jfl3HBupRlZBFydmqnU46dnAsX6Lg9eR7P54haF0p0EDAQb/dJ5W8QIZOXXlCu8BnpiW+qUF9dhPxHv8XrXghN4wE6gDRgsmWSFGYeAF2ac56P8bhrOkN4CTW2SFFiFaqo2I19/YwPQgiu5KRoBaZBLJf8QkHWuwwF5s/JBV16iunyaO4ztItjUYlqXKXcInzHFaM/g5kDY3YcSyaj+ETEZkIPRLEM97hA6Z0C6jaU/AErFZ+YA6AogUJUcSBRWTvoY6HwY/KHu3vK5n+sD comment
Loading

0 comments on commit c88f666

Please sign in to comment.