Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter

- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
This commit is contained in:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

View File

@@ -0,0 +1,54 @@
// SPDX-License-Identifier: Apache-2.0
// Copyright 2020 - 2025 Pionix GmbH and Contributors to EVerest
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <slac/slac.hpp>
#include <stdexcept>
namespace libslac {
class LibSLACUnitTest : public ::testing::Test {
protected:
void SetUp() override {
}
void TearDown() override {
}
};
TEST_F(LibSLACUnitTest, test_generate_nmk_hs) {
uint8_t nmk_hs[slac::defs::NMK_LEN] = {0};
std::string plain_password = "EVerest";
slac::utils::generate_nmk_hs(nmk_hs, plain_password.c_str(), plain_password.length());
ASSERT_THAT(nmk_hs, testing::ElementsAre(0xf7, 0x0f, 0x4e, 0x02, 0x2b, 0xb1, 0x08, 0x1b, 0xcb, 0xa1, 0xa0, 0x9d,
0xf6, 0xe0, 0x8f, 0x6b));
}
TEST_F(LibSLACUnitTest, test_generate_nid_from_nmk) {
uint8_t nid[slac::defs::NID_LEN] = {0};
const uint8_t sample_nmk[] = {0x34, 0x52, 0x23, 0x54, 0x45, 0xae, 0xf2, 0xd4,
0x55, 0xfe, 0xff, 0x31, 0xa3, 0xb3, 0x03, 0xad};
slac::utils::generate_nid_from_nmk(nid, sample_nmk);
ASSERT_THAT(nid, testing::ElementsAre(0xb1, 0xc9, 0x13, 0xb5, 0xaa, 0x07, 0x02));
}
TEST_F(LibSLACUnitTest, test_generate_nid_from_nmk_check_security_bits) {
uint8_t nid[slac::defs::NID_LEN] = {0};
const uint8_t sample_nmk[] = {0x34, 0x52, 0x23, 0x54, 0x45, 0xae, 0xf2, 0xd4,
0x55, 0xfe, 0xff, 0x31, 0xa3, 0xb3, 0x03, 0xad};
slac::utils::generate_nid_from_nmk(nid, sample_nmk);
ASSERT_TRUE((nid[6] >> 4) == 0x00);
}
TEST_F(LibSLACUnitTest, test_setup_payload) {
slac::messages::cm_set_key_cnf set_key_cnf;
slac::messages::HomeplugMessage message;
ASSERT_THROW(message.setup_payload(&set_key_cnf, 2000, // this is way too large
(slac::defs::MMTYPE_CM_SET_KEY | slac::defs::MMTYPE_MODE_CNF),
slac::defs::MMV::AV_1_1),
std::runtime_error);
}
} // namespace libslac