32 "gpg_self_cert_t layout drift");
48class GpgSelfCertStore {
76 GpgSelfCertStore() =
default;
77 GpgSelfCertStore(
const GpgSelfCertStore&) =
delete;
78 GpgSelfCertStore& operator=(
const GpgSelfCertStore&) =
delete;
80 static void deriveKeyName(
const uint8_t issuer_fp_v4[20],
char out[16]);
83 bool resolveKeyName(uint8_t index,
char out[16]);
uint8_t count()
Number of stored certifications.
static GpgSelfCertStore & instance()
uint8_t listIndex(gpg_self_cert_index_entry_t *out, uint8_t max)
Build the sorted index (oldest first).
bool getCert(uint8_t index, gpg_self_cert_t *out)
Load one certification by sorted index (0..count()-1).
bool deleteCert(uint8_t index)
Remove one certification by sorted index. No-op if out of range.
static constexpr uint8_t kMaxCerts
Hard ceiling. Past this addCert rejects further inserts.
bool addCert(const gpg_self_cert_t &cert)
Persist a certification. Replaces an existing entry from the same issuer.
constexpr size_t kGpgSelfCertSigMax
Maximum length of a stored certification signature packet body (Tag 2).
Sort entry exposing a stable ordered index over the NVS blobs.
One third-party certification received over the badge's own key.
uint8_t sig_pkt[kGpgSelfCertSigMax]
char issuer_uid[64]
Issuer user-id (display only).
uint32_t received_at
Receive timestamp (RTC).
uint16_t sig_pkt_len
Length of sig_pkt.
uint8_t issuer_fp_v4[20]
Issuer (signer) v4 fingerprint.