Add HTTPS identity rotation support

This commit is contained in:
2026-09-13 18:21:37 +02:00
parent 36e80811e8
commit aa4bbc2c8c
24 changed files with 826 additions and 170 deletions
+17
View File
@@ -70,6 +70,23 @@ esp_err_t web_security_copy_tls_material(
esp_err_t web_security_get_certificate_metadata(
web_security_certificate_metadata_t *metadata);
typedef struct {
uint32_t generation;
uint8_t fingerprint[WEB_SECURITY_SHA256_LENGTH];
bool busy;
} web_security_identity_snapshot_t;
/* Zero-wait public metadata only; never returns DER or private material. */
esp_err_t web_security_get_identity_snapshot(web_security_identity_snapshot_t *snapshot);
/* Internal owner transaction shared with canonical mutations. Tokens never reuse.
* Reserve before crypto; retain through service restart. No lock stays held.
* Zero expected_generation selects canonical CLI semantics; reset permits recovery.
* Only the reserving owner may replace once and release its token. */
esp_err_t web_security_reserve_identity(uint32_t expected_generation, bool reset, uint32_t *token);
esp_err_t web_security_replace_reserved(uint32_t token);
void web_security_release_identity(uint32_t token);
/* Mutations become visible only after a complete blob has committed to NVS. */
esp_err_t web_security_rotate_certificate(void);