|
27 | 27 | qusUO07jKuSxzPumXBeU+JEtx0J1tqZwJlpGt2R+0qN7nKnPl2+hx \ |
28 | 28 | moto@github.com""" |
29 | 29 |
|
30 | | -RSA_PUBLIC_KEY_RFC4716 = b"""\ |
| 30 | +RSA_PUBLIC_KEY_RFC4716_1 = b"""\ |
31 | 31 | ---- BEGIN SSH2 PUBLIC KEY ---- |
32 | 32 | AAAAB3NzaC1yc2EAAAADAQABAAABAQDusXfgTE4eBP50NglSzCSEGnIL6+cr6m3H6cZANO |
33 | 33 | Q+P1o/W4BdtcAL3sor4iGi7SOeJgo8kweyMQrhrt6HaKGgromRiz37LQx4YIAcBi4Zd023 |
|
38 | 38 | ---- END SSH2 PUBLIC KEY ---- |
39 | 39 | """ |
40 | 40 |
|
| 41 | +RSA_PUBLIC_KEY_RFC4716_2 = b"""\ |
| 42 | +---- BEGIN SSH2 PUBLIC KEY ---- |
| 43 | +cOmmENt: moto@github.com |
| 44 | +AAAAB3NzaC1yc2EAAAADAQABAAABAQDusXfgTE4eBP50NglSzCSEGnIL6+cr6m3H6cZANO |
| 45 | +Q+P1o/W4BdtcAL3sor4iGi7SOeJgo8kweyMQrhrt6HaKGgromRiz37LQx4YIAcBi4Zd023 |
| 46 | +mO/V7Rc2Chh18mWgLSmA6ng+j37ip6452zxtv0jHAz9pJolbKBpJzbZlPN45ZCTk9ck0fS |
| 47 | +VHRl6VRSSPQcpqi65XpRf+35zNOCGCc1mAOOTmw59Q2a6A3t8mL7r91aM5q6QOQm219lct |
| 48 | +FM8O7HRJnDgmhGpnjRwE1LyKktWTbgFZ4SNWU2XqusUO07jKuSxzPumXBeU+JEtx0J1tqZ |
| 49 | +wJlpGt2R+0qN7nKnPl2+hx |
| 50 | +---- END SSH2 PUBLIC KEY ---- |
| 51 | +""" |
| 52 | + |
| 53 | +RSA_PUBLIC_KEY_RFC4716_3 = b"""\ |
| 54 | +---- BEGIN SSH2 PUBLIC KEY ---- |
| 55 | +Comment: "1024-bit RSA, converted from OpenSSH by me@example.com" |
| 56 | +x-command: /home/me/bin/lock-in-guest.sh |
| 57 | +AAAAB3NzaC1yc2EAAAADAQABAAABAQDusXfgTE4eBP50NglSzCSEGnIL6+cr6m3H6cZANO |
| 58 | +Q+P1o/W4BdtcAL3sor4iGi7SOeJgo8kweyMQrhrt6HaKGgromRiz37LQx4YIAcBi4Zd023 |
| 59 | +mO/V7Rc2Chh18mWgLSmA6ng+j37ip6452zxtv0jHAz9pJolbKBpJzbZlPN45ZCTk9ck0fS |
| 60 | +VHRl6VRSSPQcpqi65XpRf+35zNOCGCc1mAOOTmw59Q2a6A3t8mL7r91aM5q6QOQm219lct |
| 61 | +FM8O7HRJnDgmhGpnjRwE1LyKktWTbgFZ4SNWU2XqusUO07jKuSxzPumXBeU+JEtx0J1tqZ |
| 62 | +wJlpGt2R+0qN7nKnPl2+hx |
| 63 | +---- END SSH2 PUBLIC KEY ---- |
| 64 | +""" |
| 65 | + |
| 66 | +RSA_PUBLIC_KEY_RFC4716_4 = b"""\ |
| 67 | +---- BEGIN SSH2 PUBLIC KEY ---- |
| 68 | +Comment: This is my public key for use on \ |
| 69 | +servers which I don't like. |
| 70 | +AAAAB3NzaC1yc2EAAAADAQABAAABAQDusXfgTE4eBP50NglSzCSEGnIL6+cr6m3H6cZANO |
| 71 | +Q+P1o/W4BdtcAL3sor4iGi7SOeJgo8kweyMQrhrt6HaKGgromRiz37LQx4YIAcBi4Zd023 |
| 72 | +mO/V7Rc2Chh18mWgLSmA6ng+j37ip6452zxtv0jHAz9pJolbKBpJzbZlPN45ZCTk9ck0fS |
| 73 | +VHRl6VRSSPQcpqi65XpRf+35zNOCGCc1mAOOTmw59Q2a6A3t8mL7r91aM5q6QOQm219lct |
| 74 | +FM8O7HRJnDgmhGpnjRwE1LyKktWTbgFZ4SNWU2XqusUO07jKuSxzPumXBeU+JEtx0J1tqZ |
| 75 | +wJlpGt2R+0qN7nKnPl2+hx |
| 76 | +---- END SSH2 PUBLIC KEY ---- |
| 77 | +""" |
| 78 | + |
41 | 79 | RSA_PUBLIC_KEY_FINGERPRINT = "6a:49:07:1c:7e:bd:d2:bd:96:25:fe:b5:74:83:ae:fd" |
42 | 80 |
|
43 | 81 | DSA_PUBLIC_KEY_OPENSSH = b"""ssh-dss \ |
@@ -157,10 +195,20 @@ def test_key_pairs_delete_exist_boto3(): |
157 | 195 | "public_key,fingerprint", |
158 | 196 | [ |
159 | 197 | (RSA_PUBLIC_KEY_OPENSSH, RSA_PUBLIC_KEY_FINGERPRINT), |
160 | | - (RSA_PUBLIC_KEY_RFC4716, RSA_PUBLIC_KEY_FINGERPRINT), |
| 198 | + (RSA_PUBLIC_KEY_RFC4716_1, RSA_PUBLIC_KEY_FINGERPRINT), |
| 199 | + (RSA_PUBLIC_KEY_RFC4716_2, RSA_PUBLIC_KEY_FINGERPRINT), |
| 200 | + (RSA_PUBLIC_KEY_RFC4716_3, RSA_PUBLIC_KEY_FINGERPRINT), |
| 201 | + (RSA_PUBLIC_KEY_RFC4716_4, RSA_PUBLIC_KEY_FINGERPRINT), |
161 | 202 | (ED25519_PUBLIC_KEY_OPENSSH, ED25519_PUBLIC_KEY_FINGERPRINT), |
162 | 203 | ], |
163 | | - ids=["rsa-openssh", "rsa-rfc4716", "ed25519"], |
| 204 | + ids=[ |
| 205 | + "rsa-openssh", |
| 206 | + "rsa-rfc4716-1", |
| 207 | + "rsa-rfc4716-2", |
| 208 | + "rsa-rfc4716-3", |
| 209 | + "rsa-rfc4716-4", |
| 210 | + "ed25519", |
| 211 | + ], |
164 | 212 | ) |
165 | 213 | def test_key_pairs_import_boto3(public_key, fingerprint): |
166 | 214 | client = boto3.client("ec2", "us-west-1") |
@@ -188,6 +236,18 @@ def test_key_pairs_import_boto3(public_key, fingerprint): |
188 | 236 | assert kp1["KeyName"] in all_names |
189 | 237 |
|
190 | 238 |
|
| 239 | +@mock_aws |
| 240 | +def test_key_pairs_import_invalid_key(): |
| 241 | + client = boto3.client("ec2", "us-west-1") |
| 242 | + |
| 243 | + with pytest.raises(ClientError) as exc: |
| 244 | + client.import_key_pair( |
| 245 | + KeyName="sth", PublicKeyMaterial="---- BEGIN SSH2 PUBLIC KEY ----\nsth" |
| 246 | + ) |
| 247 | + err = exc.value.response["Error"] |
| 248 | + assert err["Code"] == "InvalidKeyPair.Format" |
| 249 | + |
| 250 | + |
191 | 251 | @mock_aws |
192 | 252 | def test_key_pairs_import_exist_boto3(): |
193 | 253 | client = boto3.client("ec2", "us-west-1") |
|
0 commit comments