Updated Stamps (markdown)

Frank Denis 2018-01-31 17:47:58 +01:00
parent c093a4e784
commit 6f495c8be9

@ -6,8 +6,7 @@ Think about stamps as QR code, but for DNS.
Format:
```
"sdns://" || base64url(0x01 || props || len(addr) || addr ||
len(pk) || pk ||
len(providerName) || providerName)
len(pk) || pk || len(providerName) || providerName)
```
`||` is the concatenation operator.
@ -38,7 +37,20 @@ Format:
```
"sdns://" || base64url(0x02 || props || len(addr) || addr ||
len(hash) || hash ||
len(providerName) || providerName ||
vlen(hash0) || hash0 || len(hostname) || hostname ||
len(path) || path)
```
```
`addr` is the IP address of the server. It can be an empty string, or just a port number.
In that case, the host name will be resolved to an IP address using another resolver.
`vlen(x)` is equal to `len(x)` if `x` is the last element of a set, and `0x80 | len(x)` there are more elements in the set.
`hash0` is the SHA256 digest of one of the TBS certificate found in the validation chain,
typically the certificate used to sign the resolver's certificate.
Multiple hashes will be encoded as `vlen(hash0) || hash0 || ... || vlen(hashN) || hashN`, which is equivalent to `(0x80 | len(hash0)) || hash0 || ... || len(hashN) || hashN`.
`hostname` is the server host name.
`path` is the absolute URI path, such as `/.well-known/dns-query`.