From 5e6793c09dd1e852a28d2b592ad1139f2c9305ed Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Sat, 20 Feb 2016 21:10:48 +0100 Subject: added const2string temporary conversion code --- include/dissect.h | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'include/dissect.h') diff --git a/include/dissect.h b/include/dissect.h index 32df78d..3b347de 100644 --- a/include/dissect.h +++ b/include/dissect.h @@ -32,19 +32,40 @@ public: } }; + template class ResponseDissector : semantics::non_constructible { public: static std::string dissect(const HIDPacket &pod) { std::stringstream out; + + std::string status[4]; + status[0] = " STATUS_READY"; + status[1]= " STATUS_BUSY"; + status[2]= " STATUS_ERROR"; + status[3]= " STATUS_RECEIVED_REPORT"; + std::string cmd[11]; + cmd[0]= " CMD_STATUS_OK"; + cmd[1]= " CMD_STATUS_WRONG_CRC"; + cmd[2]= " CMD_STATUS_WRONG_SLOT"; + cmd[3]= " CMD_STATUS_SLOT_NOT_PROGRAMMED"; + cmd[4]= " CMD_STATUS_WRONG_PASSWORD"; + cmd[5]= " CMD_STATUS_NOT_AUTHORIZED"; + cmd[6]= " CMD_STATUS_TIMESTAMP_WARNING"; + cmd[7]= " CMD_STATUS_NO_NAME_ERROR"; + cmd[8]= " CMD_STATUS_NOT_SUPPORTED"; + cmd[9]= " CMD_STATUS_UNKNOWN_COMMAND"; + cmd[10]= " CMD_STATUS_AES_DEC_FAILED"; + + out << "Raw HID packet:" << std::endl; out << ::nitrokey::misc::hexdump((const char *)(&pod), sizeof pod); - out << "Device status:\t" << pod.device_status + 0 << std::endl; + out << "Device status:\t" << pod.device_status + 0<<" "<< cmd[ pod.device_status ] << std::endl; out << "Command ID:\t" << commandid_to_string((CommandID)(pod.command_id)) << std::endl; out << "Last command CRC:\t" << pod.last_command_crc << std::endl; - out << "Last command status:\t" << pod.last_command_status + 0 << std::endl; + out << "Last command status:\t" << pod.last_command_status + 0<<" "<