chirp.io is a site/app for sharing e.g a photo identified by a short FSK audio chirp. The chirp is 10 symbols of data, then 8 symbols of error correction. These symbols are 32-valued (5 bits/symbol) and the error correcting code is a Reed-Solomon code. Thus, a chirp is the output of an $ RS[n,k,t]$ $= RS[18, 10, 4]$ encoder over the field $GF(32)$ or $\mathbb F_{2^5}$. These details are from a partial description of the chirp.io protocol
An example chirp is gfhd9532dm
(base 32) for which the error
parity symbols are 4fbeu0mo
. Given this information is it possible to determine the other parameters (e.g. the generator polynomial of the Galois/finite field) of the coder, in order to check/correct a received chirp?
So far I've systematically tried candidate parameters (i.e brute force search) with trials.py but without success.
ETA: api.chirp.io
returns a chirp (and parity symbols) in response to a JSON POST. e.g.
$ curl -X 'POST' -H 'Content-Type: application/json' \
-d '{"body":"abc","mimetype":"text/plain","title":"abc"}' \
'https://api.chirp.io/0/chirp'
{"longcode": "ovkp99793iao89q5ku", "shortcode": "ovkp99793i", "is_new": 1}
I'm guessing that making more than a few such requests would trigger blocking or rate limiting, and doing so without express permission isn't something I'm willing to do.
ETA 2017-02-05: The original Chirp app has been discontinued, the above request now returns HTTP 404.
srg00lgbif 4c6u07sq
and0b07407074 9lir5uo0
. Do you have a means of generating those? I didn't see any examples in the documentation. $\endgroup$