# Update compile commands in case it is outdated
./generate_compile_commands.sh
+HEADER_FILES_REGEX="$(find srcs tests | grep '\.h$' | grep -v '/tinycbor/' | tr '\n' '|' | sed 's%|$%%')"
+
find srcs tests |
grep -P '\.(h|c|cpp)$' |
grep -v /tinycbor/ |
- parallel "echo {}; ${CLANG_TIDY} -p . \"{}\""
+ parallel --bar "echo {}; ${CLANG_TIDY} -header-filter='${HEADER_FILES_REGEX}' -p . \"{}\""
EVP_CIPHER_CTX *ctx = nullptr;
int len = 0;
- size_t outputLen = 0;
+ [[maybe_unused]] size_t outputLen = 0;
CryptoBuffer output(ciphertext.size() - TAG_LEN);
ctx = EVP_CIPHER_CTX_new();
CryptoBuffer DecryptAndHash(const CryptoBuffer &ciphertext);
- CryptoBuffer GetHandshakeHash() const;
+ [[nodiscard]] CryptoBuffer GetHandshakeHash() const;
class CipherState {
public:
CryptoBuffer DecryptWithAd(const CryptoBuffer &ciphertext, const CryptoBuffer &ad);
- const CryptoBuffer &Key() const { return m_key; }
+ [[nodiscard]] const CryptoBuffer &Key() const { return m_key; }
private:
friend class SymmetricState;
CipherState second;
};
- SplitRes Split() const;
+ [[nodiscard]] SplitRes Split() const;
private:
CryptoBuffer m_chainingKey;
{
static_assert(sizeof(typename Bytes::value_type) == 1);
std::string res;
- for (uint8_t byte : bytes) {
+ for (const uint8_t byte : bytes) {
constexpr char digits[] = "0123456789abcdef";
res += digits[byte >> 4];
res += digits[byte & 15];
Buffer m_handshakeSignature;
};
- const std::optional<LinkData> &GetLinkData() const noexcept { return m_linkData; }
+ [[nodiscard]] const std::optional<LinkData> &GetLinkData() const noexcept { return m_linkData; }
private:
std::optional<LinkData> m_linkData;
THROW_UNKNOWN("Unexpected transport: " << transport);
}
+ // NOLINTNEXTLINE(bugprone-unchecked-optional-access)
auto &attestationData = forCallbacks.ctapResponse.m_authData.m_attestationData.value();
Assign(forCallbacks.response.subject_pubkey_info,
} // namespace
-Tunnel::Tunnel(std::shared_ptr<IWebsockets> ws)
-: m_ws(std::move(ws)),
- m_context(nullptr),
- m_connection(nullptr),
- m_writtenBytesNum(0),
- m_state(State::DISCONNECTED),
- m_cancelled(false)
-{
- m_ws->SetListener(this);
-}
+Tunnel::Tunnel(std::shared_ptr<IWebsockets> ws) : m_ws(std::move(ws)) { m_ws->SetListener(this); }
Tunnel::~Tunnel()
{
void DisconnectOnError();
std::shared_ptr<IWebsockets> m_ws;
- LwsContext *m_context;
- Lws *m_connection;
+ LwsContext *m_context = nullptr;
+ Lws *m_connection = nullptr;
std::optional<ExtraHttpHeader> m_extraHttpHeader;
std::vector<uint8_t> m_in;
std::vector<uint8_t> m_out;
std::deque<std::vector<uint8_t>> m_recvMsgs;
- size_t m_writtenBytesNum;
- State m_state;
- bool m_cancelled;
+ size_t m_writtenBytesNum = 0;
+ State m_state = State::DISCONNECTED;
+ bool m_cancelled = false;
/*
* Protects m_cancelled and m_context.
} // namespace
Websockets::Websockets() noexcept
-: m_protocols{
- {"fido.cable", FidoCallback, 0, RX_BUFFER_SIZE, 0, this, 0},
- LWS_PROTOCOL_LIST_TERM
-}
{
[[maybe_unused]] static const bool redirected = RedirectWebsocketsLogs();
}
void *in,
size_t len) noexcept;
- const struct lws_protocols m_protocols[2];
+ const struct lws_protocols m_protocols[2] = {
+ {"fido.cable", FidoCallback, 0, RX_BUFFER_SIZE, 0, this, 0},
+ LWS_PROTOCOL_LIST_TERM,
+ };
};
throw std::runtime_error{""};
}
- const std::vector<CryptoBuffer> &WrittenMessages() const noexcept { return m_writtenMessages; }
+ [[nodiscard]] const std::vector<CryptoBuffer> &WrittenMessages() const noexcept
+ {
+ return m_writtenMessages;
+ }
private:
std::vector<CryptoBuffer> m_messagesToRead;