dvDevClientTunnelProof function
The X-Dartvel-Proof header answering nonce: a raw ES256 signature,
base64url, by the key the device paired with.
The device refuses a connection without it before sending anything, so a machine that has the token but not the key -- anything that saw the link go over the network -- cannot have a device's VM service tunnelled to it.
Implementation
String dvDevClientTunnelProof(DVDevClientSigner signer, String nonce) =>
dvWebPushBase64Encode(signer.sign(dvDevClientTunnelChallenge(nonce)));