CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
Bytes.h
Go to the documentation of this file.
1
5
6#pragma once
7#include <cstdint>
8
9namespace cdc {
10namespace core {
11
17inline void writeBe32(uint8_t* out, uint32_t v) {
18 out[0] = static_cast<uint8_t>((v >> 24) & 0xFF);
19 out[1] = static_cast<uint8_t>((v >> 16) & 0xFF);
20 out[2] = static_cast<uint8_t>((v >> 8) & 0xFF);
21 out[3] = static_cast<uint8_t>(v & 0xFF);
22}
23
29inline uint32_t readBe32(const uint8_t* in) {
30 return (static_cast<uint32_t>(in[0]) << 24) |
31 (static_cast<uint32_t>(in[1]) << 16) |
32 (static_cast<uint32_t>(in[2]) << 8) |
33 static_cast<uint32_t>(in[3]);
34}
35
41inline void writeBe16(uint8_t* out, uint16_t v) {
42 out[0] = static_cast<uint8_t>((v >> 8) & 0xFF);
43 out[1] = static_cast<uint8_t>(v & 0xFF);
44}
45
51inline uint16_t readBe16(const uint8_t* in) {
52 return static_cast<uint16_t>((static_cast<uint16_t>(in[0]) << 8) |
53 static_cast<uint16_t>(in[1]));
54}
55
56} // namespace core
57} // namespace cdc
58
uint32_t readBe32(const uint8_t *in)
Reads a 32-bit value from a buffer in big-endian order.
Definition Bytes.h:29
void writeBe32(uint8_t *out, uint32_t v)
Writes a 32-bit value to a buffer in big-endian order.
Definition Bytes.h:17
uint16_t readBe16(const uint8_t *in)
Reads a 16-bit value from a buffer in big-endian order.
Definition Bytes.h:51
void writeBe16(uint8_t *out, uint16_t v)
Writes a 16-bit value to a buffer in big-endian order.
Definition Bytes.h:41