Moved IPMI cipher test in new IPMI bucket
Change-Id: Ia8e4bba891a3e8212397828b819b2c20a8474407
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/ipmi/test_ipmi_cipher.robot b/ipmi/test_ipmi_cipher.robot
new file mode 100644
index 0000000..0a8fdff
--- /dev/null
+++ b/ipmi/test_ipmi_cipher.robot
@@ -0,0 +1,60 @@
+*** Settings ***
+Documentation Module to test IPMI chipher functionality.
+Resource ../lib/ipmi_client.robot
+Resource ../lib/openbmc_ffdc.robot
+Library ../lib/ipmi_utils.py
+Variables ../data/ipmi_raw_cmd_table.py
+
+Test Teardown FFDC On Test Case Fail
+
+*** Variables ***
+
+
+*** Test Cases ***
+
+Verify Supported Cipher List
+ [Documentation] Execute all supported cipher levels and verify.
+ [Tags] Verify_Supported_Cipher_List
+ :FOR ${cipher_level} IN @{valid_cipher_list}
+ \ ${status} ${output}= Run Keyword And Ignore Error
+ ... Run External IPMI Standard Command power status C=${cipher_level}
+ \ Should Be Equal ${status} PASS msg=${output} values=False
+
+
+Verify Unsupported Cipher List
+ [Documentation] Execute all unsupported cipher levels and verify error.
+ [Tags] Verify_Unsupported_Cipher_List
+ :FOR ${cipher_level} IN @{unsupported_cipher_list}
+ \ ${status} ${output}= Run Keyword And Ignore Error
+ ... Run External IPMI Standard Command power status C=${cipher_level}
+ \ Should Be Equal ${status} FAIL values=False
+ ... msg=ipmitool execution with cipher suite value of ${cipher_level} should have failed.
+
+
+Verify Supported Cipher List Via Lan Print
+ [Documentation] Verify supported cipher list via IPMI lan print command.
+ [Tags] Verify_Supported_Cipher_List_Via_Lan_Print
+ ${network_info_dict}= Get Lan Print Dict
+ # Example 'RMCP+ Cipher Suites' entry: 3,17
+ ${cipher_list}= Evaluate
+ ... list(map(int, $network_info_dict['RMCP+ Cipher Suites'].split(',')))
+ Lists Should Be Equal ${cipher_list} ${valid_cipher_list}
+
+
+Verify Supported Cipher Via Getciphers
+ [Documentation] Verify supported chiper list via IPMI getciphers command.
+ [Tags] Verify_Supported_Cipher_Via_Getciphers
+ ${output}= Run IPMI Standard Command channel getciphers ipmi
+ # Example of getciphers command output:
+ # ID IANA Auth Alg Integrity Alg Confidentiality Alg
+ # 3 N/A hmac_sha1 hmac_sha1_96 aes_cbc_128
+ # 17 N/A hmac_sha256 sha256_128 aes_cbc_128
+
+ ${report}= Outbuf To Report ${output}
+ # Make list from the 'id' column in the report.
+ ${cipher_list}= Evaluate [int(x['id']) for x in $report]
+ Lists Should Be Equal ${cipher_list} ${valid_cipher_list}
+
+
+*** Keywords ***
+