blob: 6f1eb7dc49a59e3816e939a8971ac3e4d6770cd7 [file] [log] [blame]
*** 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}