1*** Settings *** 2Documentation Module to test IPMI chipher functionality. 3Resource ../lib/ipmi_client.robot 4Resource ../lib/openbmc_ffdc.robot 5Library ../lib/ipmi_utils.py 6Library ../lib/var_funcs.py 7Variables ../data/ipmi_raw_cmd_table.py 8Library String 9 10Test Setup Printn 11Test Teardown FFDC On Test Case Fail 12 13*** Test Cases *** 14 15Verify Supported Ciphers 16 [Documentation] Execute all supported ciphers and verify. 17 [Tags] Verify_Supported_Ciphers 18 FOR ${cipher} IN @{valid_ciphers} 19 Run External IPMI Standard Command power status C=${cipher} 20 END 21 22 23Verify Unsupported Ciphers 24 [Documentation] Execute all unsupported ciphers and verify error. 25 [Tags] Verify_Unsupported_Ciphers 26 FOR ${cipher} IN @{unsupported_ciphers} 27 Run Keyword And Expect Error *invalid * algorithm* 28 ... Run External IPMI Standard Command power status C=${cipher} 29 END 30 31 32Verify Supported Ciphers Via Lan Print 33 [Documentation] Verify supported ciphers via IPMI lan print command. 34 [Tags] Verify_Supported_Ciphers_Via_Lan_Print 35 36 ${lan_print}= Get Lan Print Dict 37 # Example 'RMCP+ Cipher Suites' entry: 3,17 38 ${ciphers}= Split String ${lan_print['RMCP+ Cipher Suites']} , 39 Rprint Vars ciphers 40 Valid List ciphers valid_values=${valid_ciphers} 41 42 43Verify Supported Cipher Via Getciphers 44 [Documentation] Verify supported ciphers via IPMI getciphers command. 45 [Tags] Verify_Supported_Cipher_Via_Getciphers 46 47 # Example output from 'Channel Getciphers IPMI': 48 # ipmi_channel_ciphers: 49 # [0]: 50 # [id]: 3 51 # [iana]: N/A 52 # [auth_alg]: hmac_sha1 53 # [integrity_alg]: hmac_sha1_96 54 # [confidentiality_alg]: aes_cbc_128 55 # [1]: 56 # [id]: 17 57 # [iana]: N/A 58 # [auth_alg]: hmac_sha256 59 # [integrity_alg]: sha256_128 60 # [confidentiality_alg]: aes_cbc_128 61 62 ${ipmi_channel_ciphers}= Channel Getciphers IPMI 63 # Example cipher entry: 3 17 64 Rprint Vars ipmi_channel_ciphers 65 ${ipmi_channel_cipher_ids}= Nested Get id ${ipmi_channel_ciphers} 66 Rpvars ipmi_channel_cipher_ids 67 Valid List ipmi_channel_cipher_ids valid_values=${valid_ciphers} 68