summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2016-10-25 18:41:59 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2016-11-26 18:56:24 +0100
commitb0412c73b8ff129183f570a4eed72bdafd9f55d3 (patch)
tree6cee009f149f6532042e46b4e08738864f31ae3e /include
parent385d33bb4c8bb7fe604f5e0acc8aeca5f2146fae (diff)
downloadlibnitrokey-b0412c73b8ff129183f570a4eed72bdafd9f55d3.tar.gz
libnitrokey-b0412c73b8ff129183f570a4eed72bdafd9f55d3.tar.bz2
Handle FillSDCardWithRandomChars command and test it
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Diffstat (limited to 'include')
-rw-r--r--include/stick20_commands.h38
1 files changed, 37 insertions, 1 deletions
diff --git a/include/stick20_commands.h b/include/stick20_commands.h
index 5679681..a335809 100644
--- a/include/stick20_commands.h
+++ b/include/stick20_commands.h
@@ -139,7 +139,43 @@ namespace nitrokey {
CommandTransaction;
};
- class FillSDCardWithRandomChars : public PasswordCommand<CommandID::FILL_SD_CARD_WITH_RANDOM_CHARS> {};
+// class FillSDCardWithRandomChars : public PasswordCommand<CommandID::FILL_SD_CARD_WITH_RANDOM_CHARS> {};
+
+
+ class FillSDCardWithRandomChars : Command<CommandID::FILL_SD_CARD_WITH_RANDOM_CHARS> {
+ public:
+ enum class ChosenVolumes : uint8_t {
+ all_volumes = 0,
+ encrypted_volume = 1
+ };
+
+ struct CommandPayload {
+ uint8_t volume_flag;
+ uint8_t kind;
+ uint8_t password[20];
+
+ std::string dissect() const {
+ std::stringstream ss;
+ print_to_ss( (int) volume_flag );
+ print_to_ss( kind );
+ print_to_ss(password);
+ return ss.str();
+ }
+ void set_kind_user() {
+ kind = (uint8_t) 'P';
+ }
+ void set_defaults(){
+ set_kind_user();
+ volume_flag = static_cast<uint8_t>(ChosenVolumes::encrypted_volume);
+ }
+
+ } __packed;
+
+ typedef Transaction<Command<CommandID::FILL_SD_CARD_WITH_RANDOM_CHARS>::command_id(),
+ struct CommandPayload, struct EmptyPayload>
+ CommandTransaction;
+ };
+
class SetupHiddenVolume : Command<CommandID::SEND_HIDDEN_VOLUME_SETUP> {
public: