| *** Settings *** |
| Documentation Module to test IPMI chipher functionality. |
| Resource ../lib/ipmi_client.robot |
| Resource ../lib/openbmc_ffdc.robot |
| Library ../lib/ipmi_utils.py |
| Library ../lib/var_funcs.py |
| Variables ../data/ipmi_raw_cmd_table.py |
| Library String |
| |
| Test Setup Printn |
| Test Teardown FFDC On Test Case Fail |
| |
| *** Test Cases *** |
| |
| Verify Supported Ciphers |
| [Documentation] Execute all supported ciphers and verify. |
| [Tags] Verify_Supported_Ciphers |
| FOR ${cipher} IN @{valid_ciphers} |
| Run External IPMI Standard Command power status C=${cipher} |
| END |
| |
| |
| Verify Unsupported Ciphers |
| [Documentation] Execute all unsupported ciphers and verify error. |
| [Tags] Verify_Unsupported_Ciphers |
| FOR ${cipher} IN @{unsupported_ciphers} |
| Run Keyword And Expect Error *invalid * algorithm* |
| ... Run External IPMI Standard Command power status C=${cipher} |
| END |
| |
| |
| Verify Supported Ciphers Via Lan Print |
| [Documentation] Verify supported ciphers via IPMI lan print command. |
| [Tags] Verify_Supported_Ciphers_Via_Lan_Print |
| |
| ${lan_print}= Get Lan Print Dict |
| # Example 'RMCP+ Cipher Suites' entry: 3,17 |
| ${ciphers}= Split String ${lan_print['RMCP+ Cipher Suites']} , |
| Rprint Vars ciphers |
| Valid List ciphers valid_values=${valid_ciphers} |
| |
| |
| Verify Supported Cipher Via Getciphers |
| [Documentation] Verify supported ciphers via IPMI getciphers command. |
| [Tags] Verify_Supported_Cipher_Via_Getciphers |
| |
| # Example output from 'Channel Getciphers IPMI': |
| # ipmi_channel_ciphers: |
| # [0]: |
| # [id]: 3 |
| # [iana]: N/A |
| # [auth_alg]: hmac_sha1 |
| # [integrity_alg]: hmac_sha1_96 |
| # [confidentiality_alg]: aes_cbc_128 |
| # [1]: |
| # [id]: 17 |
| # [iana]: N/A |
| # [auth_alg]: hmac_sha256 |
| # [integrity_alg]: sha256_128 |
| # [confidentiality_alg]: aes_cbc_128 |
| |
| ${ipmi_channel_ciphers}= Channel Getciphers IPMI |
| # Example cipher entry: 3 17 |
| Rprint Vars ipmi_channel_ciphers |
| ${ipmi_channel_cipher_ids}= Nested Get id ${ipmi_channel_ciphers} |
| Rpvars ipmi_channel_cipher_ids |
| Valid List ipmi_channel_cipher_ids valid_values=${valid_ciphers} |