1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // SPDX-License-Identifier: GPL-3.0-or-later
- // SPDX-FileCopyrightText: 2019-2023 Ivan Baidakou
- #include "test-utils.h"
- #include "model/device_id.h"
- #include "proto/luhn32.h"
- #include "utils/tls.h"
- using namespace syncspirit::test;
- using namespace syncspirit::utils;
- using namespace syncspirit::model;
- using namespace syncspirit::proto;
- namespace bfs = boost::filesystem;
- using l32 = luhn32;
- TEST_CASE("luhn32", "[model]") {
- REQUIRE(l32::calculate("WG2IWWALPC2HZ") == 'H');
- REQUIRE(l32::calculate("KHQNO2S5QSILR") == 'K');
- REQUIRE(l32::validate("KHQNO2S5QSILRK"));
- REQUIRE(!l32::validate("KHQNO2S5QSILR"));
- REQUIRE(l32::validate("WG2IWWALPC2HZH"));
- REQUIRE(!l32::validate("WG2IWWALPC2HZ"));
- REQUIRE(l32::validate("MFZWI3DBONSGYC"));
- REQUIRE(!l32::validate("MFZWI3DBONSGY"));
- }
- TEST_CASE("device_id", "[model]") {
- auto cert_path = locate_path("data/sample-cert.pem");
- auto key_path = locate_path("data/sample-key.pem");
- auto load_result = load_pair(cert_path.string().c_str(), key_path.string().c_str());
- REQUIRE(load_result);
- auto &pair = load_result.value();
- auto opt_device_id = device_id_t::from_cert(pair.cert_data);
- REQUIRE(opt_device_id);
- auto &device_id = opt_device_id.value();
- auto expected = std::string("KHQNO2S-5QSILRK-YX4JZZ4-7L77APM-QNVGZJT-EKU7IFI-PNEPBMY-4MXFMQD");
- REQUIRE(device_id.get_value().size() == expected.size());
- REQUIRE(device_id.get_value() == expected);
- CHECK(device_id.get_short() == "KHQNO2S");
- auto opt = device_id_t::from_string("KHQNO2S-5QSILRK-YX4JZZ4-7L77APM-QNVGZJT-EKU7IFI-PNEPBMY-4MXFMQD");
- REQUIRE((bool)opt);
- CHECK(opt.value() == device_id);
- opt = device_id_t::from_string("KHQNO2S-5QSILRE-YX4JZZ4-7L77APM-QNVGZJT-EKU7IFI-PNEPBMY-4MXFMQD");
- REQUIRE(!opt);
- opt = device_id_t::from_sha256(device_id.get_sha256());
- REQUIRE((bool)opt);
- CHECK(opt.value() == device_id);
- CHECK(opt.value() != local_device_id);
- }
|