This PR uses the base64url algorithm instead of base64:
This function implements the base64url algorithm, which is like regular base64 but it produces legal URL/filenames: it uses - instead of +, _ instead of /, and it does not pad (with = originally).
PlutoSliderServer uses a lot of base64, for example, in a staterequest:
We currently use the following as the Pluto hash:
Hello world
=>Hello%20world
)And for the bonds data, the same, but without hashing.
The hope was that by URI escaping, we would get legal URLs for base64 data, and additionally, in #29 , legal file names for precomputed states.
But! It turns out that some proxies and some file servers perform URI unescaping before it reaches this package. List of problems:
Solution
This PR uses the
base64url
algorithm instead ofbase64
:TODO
TODO: