From b0e14aeb25e8d5d799b685bdc844b87617d97c80 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Sat, 22 Oct 2016 18:59:12 +0200 Subject: Add strcpyT to misc.h Signed-off-by: Szczepan Zalega --- include/misc.h | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'include/misc.h') diff --git a/include/misc.h b/include/misc.h index 5fcd16d..48d6a83 100644 --- a/include/misc.h +++ b/include/misc.h @@ -3,11 +3,32 @@ #include #include #include +#include +#include "log.h" +#include "LibraryException.h" namespace nitrokey { namespace misc { -template + template + void strcpyT(T& dest, const char* src){ + + if (src == nullptr) +// throw EmptySourceStringException(slot_number); + return; + const size_t s_dest = sizeof dest; + nitrokey::log::Log::instance()(std::string("strcpyT sizes dest src ") + +std::to_string(s_dest)+ " " + +std::to_string(strlen(src))+ " " + ,nitrokey::log::Loglevel::DEBUG); + if (strlen(src) > s_dest){ + throw TooLongStringException(strlen(src), s_dest, src); + } + strncpy((char*) &dest, src, s_dest); + } + + + template typename T::CommandPayload get_payload(){ //Create, initialize and return by value command payload typename T::CommandPayload st; -- cgit v1.2.3 From e4cb016284e27c92090868119277091d122114f5 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Wed, 2 Nov 2016 21:51:21 +0100 Subject: Helper for running simple, password only commands for Storage Signed-off-by: Szczepan Zalega --- include/misc.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include/misc.h') diff --git a/include/misc.h b/include/misc.h index 48d6a83..5158de0 100644 --- a/include/misc.h +++ b/include/misc.h @@ -36,6 +36,13 @@ typename T::CommandPayload get_payload(){ return st; } + template + void execute_password_command(Tdev &stick, const char *password) { + auto p = get_payload(); + p.set_defaults(); + strcpyT(p.password, password); + CMDTYPE::CommandTransaction::run(stick, p); + } std::string hexdump(const char *p, size_t size, bool print_header=true); uint32_t stm_crc32(const uint8_t *data, size_t size); -- cgit v1.2.3