diff options
| author | Robin Krahl <robin.krahl@ireas.org> | 2020-09-19 23:05:35 +0200 | 
|---|---|---|
| committer | Robin Krahl <robin.krahl@ireas.org> | 2020-09-20 11:59:36 +0200 | 
| commit | 56eb89dcf5f7d2c3b4ea92490a3b4df6f85713c0 (patch) | |
| tree | d07b62514704b71b89bd176ea438c84641bff9b1 /libnitrokey-v3.5/libnitrokey/misc.h | |
| parent | 655b823d13acbb71bb1496df29a9008e1b0ee9a2 (diff) | |
| download | nitrokey-sys-rs-56eb89dcf5f7d2c3b4ea92490a3b4df6f85713c0.tar.gz nitrokey-sys-rs-56eb89dcf5f7d2c3b4ea92490a3b4df6f85713c0.tar.bz2 | |
Update to libnitrokey v3.6
This patch updates libnitrokey from version 3.5 to version 3.6, causing
these changes:
- New constants:
  - `NK_device_model_NK_LIBREM` (`NK_device_model` enum)
- New structures:
  - `NK_config`
- New functions:
  - `NK_device_serial_number_as_u32`
  - `NK_write_config_struct`
  - `NK_free_config`
  - `NK_read_config_struct`
  - `NK_free_password_safe_slot_status`
- Deprecated functions:
  - `NK_set_unencrypted_read_only`
  - `NK_set_unencrypted_read_write`
Diffstat (limited to 'libnitrokey-v3.5/libnitrokey/misc.h')
| -rw-r--r-- | libnitrokey-v3.5/libnitrokey/misc.h | 121 | 
1 files changed, 0 insertions, 121 deletions
| diff --git a/libnitrokey-v3.5/libnitrokey/misc.h b/libnitrokey-v3.5/libnitrokey/misc.h deleted file mode 100644 index a9c4672..0000000 --- a/libnitrokey-v3.5/libnitrokey/misc.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (c) 2015-2018 Nitrokey UG - * - * This file is part of libnitrokey. - * - * libnitrokey is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * libnitrokey is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with libnitrokey. If not, see <http://www.gnu.org/licenses/>. - * - * SPDX-License-Identifier: LGPL-3.0 - */ - - -#ifndef MISC_H -#define MISC_H -#include <stdio.h> -#include <string> -#include <vector> -#include <string.h> -#include "log.h" -#include "LibraryException.h" -#include <sstream> -#include <stdexcept> -#include <iomanip> - - -namespace nitrokey { -namespace misc { - -/** - * Simple replacement for std::optional (C++17). - */ -template<typename T> -class Option { -public: -    Option() : m_hasValue(false), m_value() {} -    Option(T value) : m_hasValue(true), m_value(value) {} - -    bool has_value() const { -        return m_hasValue; -    } -    T value() const { -        if (!m_hasValue) { -            throw std::logic_error("Called Option::value without value"); -        } -        return m_value; -    } - -private: -    bool m_hasValue; -    T m_value; -}; - -    template<typename T> -    std::string toHex(T value){ -      using namespace std; -      std::ostringstream oss; -      oss << std::hex << std::setw(sizeof(value)*2) << std::setfill('0') << value; -      return oss.str(); -    } -     -#define FIELD_WIDTH_MAX   (100) -  /** -   * Copies string from pointer to fixed size C-style array. Src needs to be a valid C-string - eg. ended with '\0'. -   * Throws when source is bigger than destination. -   * @tparam T type of destination array -   * @param dest fixed size destination array -   * @param src pointer to source c-style valid string -   */ -    template <typename T> -    void strcpyT(T& dest, const char* src){ - -        if (src == nullptr) -//            throw EmptySourceStringException(slot_number); -            return; -        const size_t s_dest = sizeof dest; -    const size_t src_strlen = strnlen(src, FIELD_WIDTH_MAX); -    LOG(std::string("strcpyT sizes dest src ") -        + std::to_string(s_dest) + " " -        + std::to_string(src_strlen) + " " -            , nitrokey::log::Loglevel::DEBUG_L2); -        if (src_strlen > s_dest){ -            throw TooLongStringException(src_strlen, s_dest, src); -        } -        strncpy((char*) &dest, src, s_dest); -    } - -#define bzero(b,len) (memset((b), '\0', (len)), (void) 0)   -    template <typename T> -typename T::CommandPayload get_payload(){ -    //Create, initialize and return by value command payload -    typename T::CommandPayload st; -    bzero(&st, sizeof(st)); -    return st; -} - -    template<typename CMDTYPE, typename Tdev> -    void execute_password_command(Tdev &stick, const char *password) { -        auto p = get_payload<CMDTYPE>(); -        p.set_defaults(); -        strcpyT(p.password, password); -        CMDTYPE::CommandTransaction::run(stick, p); -    } - -    std::string hexdump(const uint8_t *p, size_t size, bool print_header=true, bool print_ascii=true, -        bool print_empty=true); -    uint32_t stm_crc32(const uint8_t *data, size_t size); -    std::vector<uint8_t> hex_string_to_byte(const char* hexString); -} -} - -#endif | 
