From 0a1cc19a3cf51495fd12570940c877c85e4d6ac4 Mon Sep 17 00:00:00 2001 From: Rasmus Dahlberg Date: Tue, 23 Feb 2021 12:55:38 +0100 Subject: removed json, b64, and url-encode parser dependencies --- README.md | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 12d65e5..31964e0 100644 --- a/README.md +++ b/README.md @@ -239,12 +239,11 @@ that it is up to the submitters to define hash functions, data formats, and such. ## Public endpoints -Clients talk to the log using HTTP(S). Parameters for HTTP GET requests are -URL-encoded with `Content-Type: application/x-www-form-urlencoded`. In -contrast, HTTP POST requests post a single base64-encoded serialized `StItem` -with `Content-Type: text/plain`. The log returns HTTP Status `200 OK` to -signal success, and the response (if any) is serialized and then base64-encoded -with `Content-Type: text/plain`. +Clients talk to the log using HTTP(S). Successfully processed requests are +responded to with HTTP status code `200 OK`, and any returned data is +serialized. Endpoints without input parameters use HTTP GET requests. +Endpoints that have input parameters HTTP POST a TLS-serialized data structure. +The HTTP content type `application/octet-stream` is used when sending data. ### add-entry ``` @@ -303,36 +302,48 @@ recent cosigned STH. ### get-proof-by-hash ``` -GET https:///st/v1/get-proof-by-hash +POST https:///st/v1/get-proof-by-hash ``` Input: -- `hash`: a base-64 encoded leaf hash using the log's hash function. -- `tree_size`: the tree size that the proof should be based on in decimal. +``` +struct { + opaque hash[32]; // leaf hash + uint64 tree_size; // tree size that the proof should be based on +} GetProofByHashV1; +``` Output: - An `StItem` of type `inclusion_proof_v1`. ### get-consistency-proof ``` -GET https:///st/v1/get-consistency-proof +POST https:///st/v1/get-consistency-proof ``` Input: -- first: the `tree_size` of the older tree in decimal. -- second: the `tree_size` of the newer tree in decimal. +``` +struct { + uint64 first; // first tree size that the proof should be based on + uint64 second; // second tree size that the proof should be based on +} GetConsistencyProofV1; +``` Output: - An `StItem` of type `consistency_proof_v1`. ### get-entries ``` -GET https:///st/v1/get-entries +POST https:///st/v1/get-entries ``` Input: -- `start`: 0-based index of first entry to retrieve in decimal. -- `end`: 0-based index of last entry to retrieve in decimal. +``` +struct { + uint64 start; // 0-based index of first entry to retrieve + uint64 end; // 0-based index of last entry to retrieve in decimal. +} GetEntriesV1; +``` Output: - An `StItem` list where each entry is of type `signed_checksum_v1`. The first -- cgit v1.2.3