|
CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
|
BLE Badge-to-Badge cross-sign endpoint. More...
#include "mod_gpg/ble_gpg_xsig.h"#include "mod_gpg/GpgRecvStore.h"#include "mod_gpg/GpgStorage.h"#include "mod_gpg/gpg.h"#include "openpgp/fingerprint.h"#include "cdc_hal/IBluetoothController.h"#include "cdc_hal/ISecureElement.h"#include "cdc_log.h"#include "esp_attr.h"#include <algorithm>#include <cstring>#include <ctime>Go to the source code of this file.
Namespaces | |
| namespace | cdc |
| namespace | cdc::mod_gpg |
Functions | |
| bool | cdc::mod_gpg::ble_gpg_xsig_init () |
| Initialise the GPG cross-sign BLE endpoint. | |
| void | cdc::mod_gpg::ble_gpg_xsig_set_received_callback (XsigReceivedCallback cb) |
| Install / remove the "key received" notification. | |
| bool | cdc::mod_gpg::ble_gpg_xsig_send (const uint8_t addr[6], uint8_t addr_type) |
| Push the badge's own public key to a peer. | |
BLE Badge-to-Badge cross-sign endpoint.
Registers a dedicated GATT service (UUID 8E2F1F30-...) with two characteristics:
1F31 RX - Write - peer pushes its public key here 1F32 STATUS - Read+Notify - server reports completion to peer
Protocol mirrors the vCard exchange: Client -> Server 0x11 START + 2-byte total length + first chunk 0x12 CONT + chunk 0x13 END + final chunk Server -> Client 0x91 / 0x92 / 0x93 (mirror, with 1-byte status code at END)
Payload layout (Spec docs/CROSS_SIGNING.md): 1B curve, 1B pubkey_len, 32 or 64 pubkey bytes, 20B fingerprint_v4, 1B user_id_len, max 63B user_id.
Definition in file ble_gpg_xsig.cpp.