1*** Settings *** 2 3Documentation VMI certificate exchange tests. 4 5Library ../../lib/jobs_processing.py 6Resource ../../lib/resource.robot 7Resource ../../lib/bmc_redfish_resource.robot 8Resource ../../lib/openbmc_ffdc.robot 9Resource ../../lib/bmc_redfish_utils.robot 10Resource ../../lib/utils.robot 11 12Suite Setup Suite Setup Execution 13Test Teardown FFDC On Test Case Fail 14Suite Teardown Suite Teardown Execution 15 16 17*** Variables *** 18 19# users User Name password 20@{ADMIN} admin_user TestPwd123 21@{OPERATOR} operator_user TestPwd123 22@{ReadOnly} readonly_user TestPwd123 23@{NoAccess} noaccess_user TestPwd123 24&{USERS} Administrator=${ADMIN} Operator=${OPERATOR} ReadOnly=${ReadOnly} 25... NoAccess=${NoAccess} 26${VMI_BASE_URI} /ibm/v1/ 27 28 29*** Test Cases *** 30 31Get CSR Request Signed By VMI And Verify 32 [Documentation] Get CSR request signed by VMI using different user roles and verify. 33 [Tags] Get_CSR_Request_Signed_By_VMI_And_Verify 34 [Setup] Redfish Power On 35 [Template] Get Certificate Signed By VMI 36 37 # username password force_create valid_csr valid_status_code 38 ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 39 40 # Send CSR request from operator user. 41 operator_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 42 43 # Send CSR request from ReadOnly user. 44 readonly_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 45 46 # Send CSR request from NoAccess user. 47 noaccess_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 48 49 50Get Root Certificate Using Different Privilege Users Roles 51 [Documentation] Get root certificate using different users. 52 [Tags] Get_Root_Certificate_Using_Different_Users 53 [Setup] Redfish Power On 54 [Template] Get Root Certificate 55 56 # username password force_create valid_csr valid_status_code 57 # Request root certificate from admin user. 58 admin_user TestPwd123 ${True} ${True} ${HTTP_OK} 59 60 # Request root certificate from operator user. 61 operator_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 62 63 # Request root certificate from ReadOnly user. 64 readonly_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 65 66 # Request root certificate from NoAccess user. 67 noaccess_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 68 69 70Send CSR Request When VMI Is Off And Verify 71 [Documentation] Send CSR signing request to VMI when it is off and expect an error. 72 [Tags] Get_CSR_Request_When_VMI_Is_Off_And_verify 73 [Setup] Redfish Power Off 74 [Template] Get Certificate Signed By VMI 75 76 # username password force_create valid_csr valid_status_code 77 ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_INTERNAL_SERVER_ERROR} 78 79 # Send CSR request from operator user. 80 operator_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 81 82 # Send CSR request from ReadOnly user. 83 readonly_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 84 85 # Send CSR request from NoAccess user. 86 noaccess_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 87 88Get Corrupted CSR Request Signed By VMI And Verify 89 [Documentation] Send corrupted CSR for signing and expect an error. 90 [Tags] Get_Corrupted_CSR_Request_Signed_By_VMI_And_Verify 91 [Setup] Redfish Power On 92 [Template] Get Certificate Signed By VMI 93 94 # username password force_create valid_csr valid_status_code 95 ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR} 96 97 # Send CSR request from operator user. 98 operator_user TestPwd123 ${False} ${False} ${HTTP_FORBIDDEN} 99 100 # Send CSR request from ReadOnly user. 101 readonly_user TestPwd123 ${False} ${False} ${HTTP_FORBIDDEN} 102 103 # Send CSR request from NoAccess user. 104 noaccess_user TestPwd123 ${False} ${False} ${HTTP_FORBIDDEN} 105 106Get Root Certificate When VMI Is Off And Verify 107 [Documentation] Get root certificate when vmi is off and verify. 108 [Tags] Get_Root_Certificate_When_VMI_Is_Off_And_Verify 109 [Setup] Redfish Power Off 110 [Template] Get Root Certificate 111 112 # username password force_create valid_csr valid_status_code 113 ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 114 115 # Request root certificate from operator user. 116 operator_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 117 118 # Request root certificate from ReadOnly user. 119 readonly_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 120 121 # Request root certificate from NoAccess user. 122 noaccess_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 123 124 125Get Root Certificate After BMC Reboot And Verify 126 [Documentation] Get root certificate after bmc reboot and verify. 127 [Tags] Get_Root_Certificate_After_BMC_Reboot_And_Verify 128 [Setup] Run Keywords OBMC Reboot (off) AND Redfish Power On 129 [Template] Get Root Certificate 130 131 # username password force_create valid_csr valid_status_code 132 ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 133 134 # Request root certificate from operator user. 135 operator_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 136 137 # Request root certificate from ReadOnly user. 138 readonly_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 139 140 # Request root certificate from NoAccess user. 141 noaccess_user TestPwd123 ${False} ${True} ${HTTP_FORBIDDEN} 142 143Get Concurrent Root Certificate Requests From Multiple Admin Users 144 [Documentation] Get multiple concurrent root certificate requests from multiple admins 145 ... and verify no errors. 146 [Tags] Get_Concurrent_Root_Certificate_Requests_From_Multiple_Admin_Users 147 148 FOR ${i} IN RANGE ${5} 149 ${dict}= Execute Process Multi Keyword ${5} 150 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 151 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 152 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 153 Dictionary Should Not Contain Value ${dict} False 154 ... msg=One or more operations has failed. 155 END 156 157Get Concurrent CSR Requests From Multiple Admin Users 158 [Documentation] Get multiple concurrent csr requests from multiple admins and verify no errors. 159 [Tags] Get_Concurrent_CSR_Requests_From_Multiple_Admin_Users 160 161 FOR ${i} IN RANGE ${5} 162 ${dict}= Execute Process Multi Keyword ${5} 163 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 164 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 165 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 166 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 167 Dictionary Should Not Contain Value ${dict} False 168 ... msg=One or more operations has failed. 169 END 170 171Get Concurrent Corrupted CSR Requests From Multiple Admin Users 172 [Documentation] Get multiple concurrent corrupted csr requests from multiple admins and verify no errors. 173 [Tags] Get_Concurrent_Corrupted_CSR_Requests_From_Multiple_Admin_Users 174 175 FOR ${i} IN RANGE ${5} 176 ${dict}= Execute Process Multi Keyword ${5} 177 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR} 178 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR} 179 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR} 180 Dictionary Should Not Contain Value ${dict} False 181 ... msg=One or more operations has failed. 182 END 183 184Get Concurrent Root Certificate Request From Operator Users 185 [Documentation] Get multiple concurrent root certificate from non admin users and verify no errors. 186 [Tags] Get_Concurrent_Root_Certificate_Request_From_Operator_Users 187 188 FOR ${i} IN RANGE ${5} 189 ${dict}= Execute Process Multi Keyword ${5} 190 ... Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 191 ... Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 192 ... Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 193 Dictionary Should Not Contain Value ${dict} False 194 ... msg=One or more operations has failed. 195 END 196 197Get Concurrent Root Certificate Request From Admin And Non Admin Users 198 [Documentation] Get multiple concurrent root certificate from admin and non admin users 199 ... and verify no errors. 200 [Tags] Get_Concurrent_Root_Certificate_Request_From_Admin_And_Non_Admin_Users 201 202 FOR ${i} IN RANGE ${5} 203 ${dict}= Execute Process Multi Keyword ${5} 204 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 205 ... Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 206 ... Get Root Certificate readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 207 Dictionary Should Not Contain Value ${dict} False 208 ... msg=One or more operations has failed. 209 END 210 211Get Concurrent Root Certificate Request From Different Non Admin Users 212 [Documentation] Get multiple concurrent root certificate from different non admin users 213 ... and verify no errors. 214 [Tags] Get_Concurrent_Root_Certificate_Request_From_Different_Non_Admin_Users 215 216 FOR ${i} IN RANGE ${5} 217 ${dict}= Execute Process Multi Keyword ${5} 218 ... Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 219 ... Get Root Certificate readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 220 ... Get Root Certificate noaccess_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 221 Dictionary Should Not Contain Value ${dict} False 222 ... msg=One or more operations has failed. 223 END 224 225Get Concurrent CSR Request From Operator Users 226 [Documentation] Get multiple concurrent csr request from non admin users and verify no errors. 227 [Tags] Get_Concurrent_CSR_Request_From_Operator_Users 228 229 FOR ${i} IN RANGE ${5} 230 ${dict}= Execute Process Multi Keyword ${5} 231 ... Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 232 ... Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 233 ... Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN} 234 Dictionary Should Not Contain Value ${dict} False 235 ... msg=One or more operations has failed. 236 END 237 238Get Root Certificate And Send CSR Request Concurrently And Verify 239 [Documentation] Get root certificate and send csr request concurrently and 240 ... verify gets root and signed certificate. 241 [Tags] Get_Root_Certificate_And_Send_CSR_Request_Concurrently_And_Verify 242 243 FOR ${i} IN RANGE ${5} 244 ${dict}= Execute Process Multi Keyword ${5} 245 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 246 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 247 Dictionary Should Not Contain Value ${dict} False 248 ... msg=One or more operations has failed. 249 END 250 251Get Concurrent Root Certificate And Send CSR Request And Verify 252 [Documentation] Get concurrent root certificate and send csr request 253 ... and verify gets root certificate and signed certificate. 254 [Tags] Get_Concurrent_Root_Certificate_And_Send_CSR_Request_And_Verify 255 256 FOR ${i} IN RANGE ${5} 257 ${dict}= Execute Process Multi Keyword ${5} 258 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 259 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 260 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 261 Dictionary Should Not Contain Value ${dict} False 262 ... msg=One or more operations has failed. 263 END 264 265Get Root Certificate And Send Multiple CSR Requests Concurrently And Verify 266 [Documentation] Get root certificate and send multiple csr requests concurrently and 267 ... verify gets root certificate and signed certificates. 268 [Tags] Get_Root_Certificate_And_Send_Multiple_CSR_Requests_Concurrently_And_Verify 269 270 FOR ${i} IN RANGE ${5} 271 ${dict}= Execute Process Multi Keyword ${5} 272 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 273 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 274 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 275 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 276 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 277 Dictionary Should Not Contain Value ${dict} False 278 ... msg=One or more operations has failed. 279 END 280 281Get Root Certificate And Send Multiple Corrupted CSR Requests Concurrently And Verify 282 [Documentation] Get root certificate and send multiple corrupted csr requests concurrently and 283 ... verify gets root certificate and error for corrupted csr requests. 284 [Tags] Get_Root_Certificate_And_Send_Multiple_Corrupted_CSR_Requests_Concurrently_And_Verify 285 286 FOR ${i} IN RANGE ${5} 287 ${dict}= Execute Process Multi Keyword ${5} 288 ... Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK} 289 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR} 290 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR} 291 ... Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR} 292 Dictionary Should Not Contain Value ${dict} False 293 ... msg=One or more operations has failed. 294 END 295 296*** Keywords *** 297 298Generate CSR String 299 [Documentation] Generate a csr string. 300 301 # Note: Generates and returns csr string. 302 ${csr_gen_time} = Get Current Date Time 303 ${CSR_FILE}= Catenate SEPARATOR=_ ${csr_gen_time} csr_server.csr 304 ${CSR_KEY}= Catenate SEPARATOR=_ ${csr_gen_time} csr_server.key 305 Set Test Variable ${CSR_FILE} 306 Set Test Variable ${CSR_KEY} 307 ${ssl_cmd}= Set Variable openssl req -new -newkey rsa:2048 -nodes -keyout ${CSR_KEY} -out ${CSR_FILE} 308 ${ssl_sub}= Set Variable 309 ... -subj "/C=XY/ST=Abcd/L=Efgh/O=ABC/OU=Systems/CN=abc.com/emailAddress=xyz@xx.ABC.com" 310 311 # Run openssl command to create a new private key and use that to generate a CSR string 312 # in server.csr file. 313 ${output}= Run ${ssl_cmd} ${ssl_sub} 314 ${csr}= OperatingSystem.Get File ${CSR_FILE} 315 316 [Return] ${csr} 317 318 319Send CSR To VMI And Get Signed 320 [Documentation] Upload CSR to VMI and get signed. 321 [Arguments] ${csr} ${force_create} ${username} ${password} 322 323 # Description of argument(s): 324 # csr Certificate request from client to VMI. 325 # force_create Create a new REST session if True. 326 # username Username to create a REST session. 327 # password Password to create a REST session. 328 329 Run Keyword If "${XAUTH_TOKEN}" != "${EMPTY}" or ${force_create} == ${True} 330 ... Initialize OpenBMC rest_username=${username} rest_password=${password} 331 332 ${data}= Create Dictionary 333 ${headers}= Create Dictionary X-Auth-Token=${XAUTH_TOKEN} 334 ... Content-Type=application/json 335 336 ${cert_uri}= Set Variable ${VMI_BASE_URI}Host/Actions/SignCSR 337 338 # For SignCSR request, we need to pass CSR string generated by openssl command. 339 ${csr_data}= Create Dictionary CsrString ${csr} 340 Set To Dictionary ${data} data ${csr_data} 341 342 ${resp}= Post Request openbmc ${cert_uri} &{data} headers=${headers} 343 Log to console ${resp.content} 344 345 [Return] ${resp} 346 347 348Get Root Certificate 349 [Documentation] Get root certificate from VMI. 350 [Arguments] ${username}=${OPENBMC_USERNAME} ${password}=${OPENBMC_PASSWORD} 351 ... ${force_create}=${False} ${valid_csr}=${True} ${valid_status_code}=${HTTP_OK} 352 353 # Description of argument(s): 354 # cert_type Type of the certificate requesting. eg. root or SignCSR. 355 # username Username to create a REST session. 356 # password Password to create a REST session. 357 # force_create Create a new REST session if True. 358 # valid_csr Uses valid CSR string in the REST request if True. 359 # This is not applicable for root certificate. 360 # valid_status_code Expected status code from REST request. 361 362 Run Keyword If "${XAUTH_TOKEN}" != "${EMPTY}" or ${force_create} == ${True} 363 ... Initialize OpenBMC rest_username=${username} rest_password=${password} 364 365 ${data}= Create Dictionary 366 ${headers}= Create Dictionary X-Auth-Token=${XAUTH_TOKEN} 367 ... Content-Type=application/json 368 369 ${cert_uri}= Set Variable ${VMI_BASE_URI}Host/Certificate/root 370 371 ${resp}= Get Request openbmc ${cert_uri} &{data} headers=${headers} 372 373 Should Be Equal As Strings ${resp.status_code} ${valid_status_code} 374 Return From Keyword If ${resp.status_code} != ${HTTP_OK} 375 376 ${cert}= Evaluate json.loads('''${resp.text}''', strict=False) json 377 Should Contain ${cert["Certificate"]} BEGIN CERTIFICATE 378 Should Contain ${cert["Certificate"]} END CERTIFICATE 379 380 381Get Subject 382 [Documentation] Generate a csr string. 383 [Arguments] ${file_name} ${is_csr_file} 384 385 # Description of argument(s): 386 # file_name Name of CSR or signed CERT file. 387 # is_csr_file A True value means a CSR while a False is for signed CERT file. 388 389 ${subject}= Run Keyword If ${is_csr_file} Run openssl req -in ${file_name} -text -noout | grep Subject: 390 ... ELSE Run openssl x509 -in ${file_name} -text -noout | grep Subject: 391 392 [Return] ${subject} 393 394 395Get Public Key 396 [Documentation] Generate a csr string. 397 [Arguments] ${file_name} ${is_csr_file} 398 399 # Description of argument(s): 400 # file_name Name of CSR or CERT file. 401 # is_csr_file A True value means a CSR while a False is for signed CERT file. 402 403 ${PublicKey}= Run Keyword If ${is_csr_file} Run openssl req -in ${file_name} -noout -pubkey 404 ... ELSE Run openssl x509 -in ${file_name} -noout -pubkey 405 406 [Return] ${PublicKey} 407 408 409Get Certificate Signed By VMI 410 [Documentation] Get signed certificate from VMI. 411 [Arguments] ${username}=${OPENBMC_USERNAME} ${password}=${OPENBMC_PASSWORD} 412 ... ${force_create}=${False} ${valid_csr}=${True} ${valid_status_code}=${HTTP_OK} 413 414 # Description of argument(s): 415 # cert_type Type of the certificate requesting. eg. root or SignCSR. 416 # username Username to create a REST session. 417 # password Password to create a REST session. 418 # force_create Create a new REST session if True. 419 # valid_csr Uses valid CSR string in the REST request if True. 420 # This is not applicable for root certificate. 421 # valid_status_code Expected status code from REST request. 422 423 Set Test Variable ${CSR} CSR 424 Set Test Variable ${CORRUPTED_CSR} CORRUPTED_CSR 425 426 ${CSR}= Generate CSR String 427 ${csr_left} ${csr_right}= Split String From Right ${CSR} == 1 428 ${CORRUPTED_CSR}= Catenate SEPARATOR= ${csr_left} \N ${csr_right} 429 430 # For SignCSR request, we need to pass CSR string generated by openssl command 431 ${csr_str}= Set Variable If ${valid_csr} == ${True} ${CSR} ${CORRUPTED_CSR} 432 433 ${resp}= Send CSR To VMI And Get Signed ${csr_str} ${force_create} ${username} ${password} 434 435 Should Be Equal As Strings ${resp.status_code} ${valid_status_code} 436 Return From Keyword If ${resp.status_code} != ${HTTP_OK} 437 438 ${cert}= Evaluate json.loads('''${resp.text}''', strict=False) json 439 Should Contain ${cert["Certificate"]} BEGIN CERTIFICATE 440 Should Contain ${cert["Certificate"]} END CERTIFICATE 441 442 # Now do subject and public key verification 443 ${subject_csr}= Get Subject ${CSR_FILE} True 444 ${pubKey_csr}= Get Public Key ${CSR_FILE} True 445 446 # create a crt file with certificate string 447 ${signed_cert}= Set Variable ${cert["Certificate"]} 448 ${testcert_gen_time} = Get Current Date Time 449 ${test_cert_file}= Catenate SEPARATOR=_ ${testcert_gen_time} test_certificate.cert 450 451 Create File ${test_cert_file} ${signed_cert} 452 ${subject_signed_csr}= Get Subject ${test_cert_file} False 453 ${pubKey_signed_csr}= Get Public Key ${test_cert_file} False 454 455 Should be equal as strings ${subject_signed_csr} ${subject_csr} 456 Should be equal as strings ${pubKey_signed_csr} ${pubKey_csr} 457 458 459Suite Setup Execution 460 [Documentation] Suite setup execution. 461 462 Remove Files *.csr *.key *.cert 463 # Create different user accounts. 464 Redfish.Login 465 Redfish Power On 466 Create Users With Different Roles users=${USERS} force=${True} 467 468 469Suite Teardown Execution 470 [Documentation] Suite teardown execution. 471 472 Remove Files *.csr *.key *.cert 473 Delete BMC Users Via Redfish users=${USERS} 474 Delete All Sessions 475 Redfish.Logout 476