Changeset 73749 in vbox for trunk/src/VBox/Runtime/testcase
- Timestamp:
- Aug 18, 2018 12:25:57 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 124432
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/testcase/tstRTCrPkix-1.cpp
r73679 r73749 45 45 * Key pairs to use when testing. 46 46 */ 47 static const struct { unsigned cBits; const char *pszPrivateKey, *pszPublicKey ; } g_aKeyPairs[] =47 static const struct { unsigned cBits; const char *pszPrivateKey, *pszPublicKey, *pszPassword; } g_aKeyPairs[] = 48 48 { 49 49 { … … 113 113 "l93DTgQaXwX/ZjXmwjXvQ0W4OxxexqyW6YvDBYeNKxstuM5qfgzYf7FD/8lZYkyM\n" 114 114 "AXELgpCqC92xlTbWpRVNpXcCAwEAAQ==\n" 115 "-----END PUBLIC KEY-----\n" 115 "-----END PUBLIC KEY-----\n", 116 NULL 116 117 }, 117 118 { … … 152 153 "RNsEv/qoK+g/h+b2C0sVO7eUyM6nx9VT8w+ODunnYWs1HiAGAhzj7NhsnJp0gm88\n" 153 154 "KwIDAQAB\n" 154 "-----END PUBLIC KEY-----\n" 155 "-----END PUBLIC KEY-----\n", 156 NULL 155 157 }, 156 158 { … … 176 178 "jljAj3vfF9HpyyKOBgLwY1Plfwj3bNPUomGZ+sgigNYWJ4+lXlSxJ7UlTQuQd7Pi\n" 177 179 "RsgCEIRny+5thH/rSwIDAQAB\n" 178 "-----END PUBLIC KEY-----\n" 180 "-----END PUBLIC KEY-----\n", 181 NULL 179 182 }, 180 183 { … … 192 195 "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMgbhgcN8LxMNpEZgOC3hgI61pAwSxn4\n" 193 196 "X8rSBHyTt7pfqbU0g2TkPsNT7J6YS2xN+MwKiYNDeCTjRRbt67o1ZscCAwEAAQ==\n" 194 "-----END PUBLIC KEY-----\n" 197 "-----END PUBLIC KEY-----\n", 198 NULL 199 }, 200 201 /* 202 * Keys with passwords. 203 */ 204 { 205 2048, 206 "-----BEGIN RSA PRIVATE KEY-----\n" 207 "Proc-Type: 4,ENCRYPTED\n" 208 "DEK-Info: AES-128-CBC,86B32E02F476832DE26291AEF884BFB2\n" 209 "\n" 210 "3vqVAOubNaajTSUj/t0ueXRG11kVOCbQkj6AoB4bO+xYUabtcisM4I34It6GN1ZJ\n" 211 "yXv2DcCE3At31LvvqS8bYGvRhY+oPpCUkC4DX+RX9Tkw5ivl1F9pv/rL3nv2F3LX\n" 212 "KxMUcygwJOG2ItPu+vLI0HDYGn9reR+6boriwQfU6S8An4C6LrIZK0hUN0Bpr6W+\n" 213 "JyTX9B3Tgy/BldW6yziRzYUZHnnKEKKacvHP5l0n/6nn6iFSJSFmnzvsedwOvUI0\n" 214 "eHQ1LvbfQnd5yIalQ5S8UkgpKb5S4s2U0AthAC67m+Nc0E8NcbCMY1JT4FlsWVLD\n" 215 "GqWmjKhwEBgoPRROEiq39KgPnoxnCEIOiQ6l8kZ0uvqlCHhWM4b1UVqb6hyrmY32\n" 216 "SEBiwRqFewVYzPFI1+vT3CH/BJcXCBISNj2c4OZDqhmgncGWpLwqU1GIlLp82o3l\n" 217 "t58WfNuqUM7bc/T6cIKAI2JoR2R96Zo0cgL+419msVUdZXhM/10K3W+wbHUVuSqh\n" 218 "iDOCJhXWIhu47kjbCOh7OvpOtOPayWBLQiGh1Q4+WQU6t6Vdr/i71dKP0/P/QHwk\n" 219 "ELNaWv/RLbE6PqKuXcjtoIqzynTvS/6C7PLEKEX3PB6kZNV+m7C0Dxu4BFj04vtx\n" 220 "5CL71sGaB1ETYUdMRSvCa+f/1zwUXngmozUL+D4PkCz/vT5FYKElWt7RBMt8N+rC\n" 221 "Iga+YqqvnuSPrxGXLCGZBuI2V+0BwG1pUHwk/C3uo/ggacj9+E/Oiei725cEI7H5\n" 222 "FnJdFrubYsoGtyII4H1MJzp768s+bD5Bs9m/6a1m+HtzwjxNt329MyAW4DixNGEp\n" 223 "T1e1e6DMnYU8XlxHkRu3IkgWjY3GPw+mfnxT5ThM16w3XC5bvRPMbIukJxFE3yDL\n" 224 "jsUeVhA9NHBZbrFIjLwBWoxqlmgZjJrMFE8pcdFbNl2nKvOK0DHw6Tc93Qz0pg4q\n" 225 "tvt51k9FR4WNmUY8uElmkhepAAAyzcGAHqxvrzkBmXOh76i5+j32swmmaTdx35I2\n" 226 "GdRPAl75JEKZVKgHZOW6f/eCWdY7z0GAOnn+fkEzxAufU+DQAOuNkgVKySTyov5J\n" 227 "v3aaMBuyrxyhgqt+k7PahlRE00S84+QvEgeiTmP/Beyd2GHwKiQ0G/9mwkVjSB1Y\n" 228 "rFw0pzzud1JcYy3uFKZB+YHrV4YbfUHmJR0CKCqHUD2R95rNBIcS5ZpMm1Ak0d5E\n" 229 "jAQsYlGIbWGx6aNmmf7NWacRpwVPnViU30cumeQxbCLQ2Mfb9N2zuwgplOSNp/2m\n" 230 "KRU7jRs3ZLD21iplVBbmmvpC8HyJ7605bDWBw+eVaS92sEmA5lnD3uRil+7/tM8C\n" 231 "rXrnU8h7vFBSWxcVM1kEiocE8eetSMczI7uA36KWbAWcMlG6hCyQSLuGkxGSZpaM\n" 232 "Ro+IJx/vHNvnVj2ObqHCmSIE0+VkeyV3SlF2MqrdHNss/iOUBYFsE9zVN/oQcibt\n" 233 "dXMXRN81KyHg8keNiwdd18ZWVW2+lix1mbPPgwd5iptnT4Qyder5HJroV52LdRZc\n" 234 "nf3XjVzVp7tTGjGi9T/FvkpQR4tkU+Sl17qDrw9H/Y7k1j90zWFn8kykpwSRt0bV\n" 235 "-----END RSA PRIVATE KEY-----\n", 236 "-----BEGIN PUBLIC KEY-----\n" 237 "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvvqfSDO1HN3Els04TSGE\n" 238 "sJ0Himl934+ryfNXYIRWkq91i5+rENyZ475XBMjg8fblhvHy7vy4GfUo0PKVXxWS\n" 239 "nPqOPSLEP3r2vsCX5l+KRBnGi4TeGWDTB8R6oA6HKY5ybtzUr1MHKwa7K7YJu7M9\n" 240 "DW7n2JPLRajUMioO9wbYK70qlbxjeOu0V62D68fWoa3alSWMlMBv9KZW9g2oJHQy\n" 241 "mUO2OdJFdyaah3z6vTKtzxmZ+NB4iwIjD6Go1CMj+FOjjjJb3EgUOIZAsRz/+9MF\n" 242 "S3cRfh/8u9cZQ20Woh5vmw1anXxbwk6Z8uIFYrdgcY5G7ak0/3VukbP7VzvG+voY\n" 243 "AwIDAQAB\n" 244 "-----END PUBLIC KEY-----\n", 245 "password" 195 246 } 196 247 }; … … 217 268 */ 218 269 rc = RTCrKeyCreateFromBuffer(&hPublicKey, 0, g_aKeyPairs[i].pszPublicKey, strlen(g_aKeyPairs[i].pszPublicKey), 219 NULL /*p ErrInfo*/, NULL /*pszErrorTag*/);270 NULL /*pszPassword*/, NULL /*pErrInfo*/, NULL /*pszErrorTag*/); 220 271 if (RT_FAILURE(rc)) 221 272 RTTestIFailed("Error %Rrc decoding public key #%u (%u bits)", rc, i, g_aKeyPairs[i].cBits); 222 273 223 274 rc = RTCrKeyCreateFromBuffer(&hPrivateKey, 0, g_aKeyPairs[i].pszPrivateKey, strlen(g_aKeyPairs[i].pszPrivateKey), 224 NULL /*pErrInfo*/, NULL /*pszErrorTag*/);275 g_aKeyPairs[i].pszPassword, NULL /*pErrInfo*/, NULL /*pszErrorTag*/); 225 276 if (RT_FAILURE(rc)) 226 277 RTTestIFailed("Error %Rrc decoding private key #%u (%u bits)", rc, i, g_aKeyPairs[i].cBits); … … 228 279 if (hPrivateKey == NIL_RTCRKEY || hPublicKey == NIL_RTCRKEY) 229 280 continue; 281 282 /* 283 * If we've got a password encrypted key, try some incorrect password. 284 */ 285 if (g_aKeyPairs[i].pszPassword) 286 { 287 static const char * const s_apszBadPassword[] = 288 { 289 "bad-password", "", "<>", "really really long long long bad bad bad bad bad password password password password", 290 "a", "ab", "abc", "abcd", "abcde", "fdcba" 291 }; 292 for (unsigned iPasswd = 0; iPasswd < RT_ELEMENTS(s_apszBadPassword); iPasswd++) 293 { 294 RTCRKEY hKey = NIL_RTCRKEY; 295 rc = RTCrKeyCreateFromBuffer(&hKey, 0, g_aKeyPairs[i].pszPrivateKey, strlen(g_aKeyPairs[i].pszPrivateKey), 296 s_apszBadPassword[iPasswd], NULL /*pErrInfo*/, NULL /*pszErrorTag*/); 297 if (rc != VERR_CR_KEY_DECRYPTION_FAILED) 298 RTTestIFailed("Unexpected bad password response %Rrc decoding private key #%u (%u bits) using '%s' as password", 299 rc, i, g_aKeyPairs[i].cBits, s_apszBadPassword[iPasswd]); 300 } 301 } 230 302 231 303 /*
Note:
See TracChangeset
for help on using the changeset viewer.