-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Some API cleanup, documentation and better validation (#21)
* do not submit public key when renewing * use better data model when parsing requests * remove vault * require valid CSR signature * require timestamp in requests, max 300 s in the past/future * add docs * speling * use same terminology
- Loading branch information
Showing
8 changed files
with
109 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,41 @@ | ||
# DNS TAPIR Node Manager | ||
|
||
This repository contains the DNS TAPIR Node Manager, a server component for managing nodes. | ||
|
||
|
||
## Enrollment | ||
|
||
### Request | ||
|
||
The enrollment request is a JWS sign with both the data key (algorithm depending on key algorithm) and the enrollment secret (algorithm `HS256`). JWS payload is a dictionary with the following properties: | ||
|
||
- `timestamp`, A timestamp with the current time (ISO8601) | ||
- `x509_csr`, A string with a PEM-encoded X.509 Certificate Signing Request with _Common Name_ and _Subject Alterantive Name_ set to the full node name. | ||
- `public_key`, A JWK dictionary containing the public data key. | ||
|
||
### Response | ||
|
||
The enrollment response is a dictionary containing at least the following properties: | ||
|
||
- `x509_certificate`, X.509 Client Certificate Bundle (PEM) | ||
- `x509_ca_certificate`, X.509 CA Certificate Bundle (PEM) | ||
- `mqtt_broker`, MQTT broker address (URI) | ||
- `mqtt_topics`, Dictionary of per application MQTT configuration topic | ||
- `trusted_keys`, List of JWKs used for signing data from core services | ||
|
||
|
||
## Renewal | ||
|
||
### Request | ||
|
||
The renewal request is a JWS sign with the data key (algorithm depending on key algorithm). JWS payload is a dictionary with the following properties: | ||
|
||
- `timestamp`, A timestamp with the current time (ISO8601) | ||
- `x509_csr`, A string with a PEM-encoded X.509 Certificate Signing Request with _Common Name_ and _Subject Alterantive Name_ set to the full node name. | ||
|
||
### Response | ||
|
||
The enrollment response is a dictionary containing at least the following properties: | ||
|
||
- `x509_certificate`, X.509 Client Certificate Bundle (PEM) | ||
- `x509_ca_certificate`, X.509 CA Certificate Bundle (PEM) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters