Iga päringuga saadetakse päringu signatuur, et kõrvalisel isikul poleks võimalust teha API päringut isegi kui kontovõti on teada saadud. Signatuur saadetakse sig parameetriga.
Koostada saadetud päringu parameetritest päringustring:
Kodeerida
URL kujul parameetrite nimed ja väärtused järgmiste reeglite järgi:
Mitte kodeerida järgmiseid märke (vastavalt RFC 3986): A-Z, a-z, 0-9, -, _, punkt, ja tilde (~) .
Kodeerida ülejäänud tähemärke kujul %XY, kus X ja Y on hex märgid 0-9 ja A-F.
Kodeerida UTF-8 laiendatud märke kujul %XY%ZA…
Kodeerida tühikut kujul %20.
Eraldada parameetrite nimed nende väärtustest võrdusmärgiga (=), isegi kui parameetri väärtus on tühi.
Järjestada moodustatud nimi-väärtus paarid leksikograafiliselt.
Eralda nimi-väärtus paare ampersandiga (&) (
ASCII kood 38).
Luua string allkirjastamiseks järgneva pseudokoodi alusel. HTTPRequestURI on
HTTP URI osa, ilma küsimärgita:
StringToSign = HTTPVerb + "\n" +
HTTPRequestURI + "\n" +
päringustring <eelmisest etapist>
Arvutada RFC 2104-ühilduv HMAC-SHA1 räsikood stringist, mis oli eelnevalt koostatud, kasutades teie turvavõtit kui security keyd.
Räsikood konverteerida BASE64 väärtuseks.
Juhul, kui on vaja arvutada signatuuri selleks päringuks:
https://api.arhivaar.ee/api/v0_1/document/upload.html
millel on järgmised päringuparameetrid
metadataSubject: Subject
acc_key: 45324522524653
filename: my%20family.jpg
folderId: 6834
siis punkti 2 alusel tuleb selline string
POST\n
/api/v0_1/document/upload.html\n
acc_key=45324522524653&filename=my%20family.jpg&folderId=6834&metadataSubject=Subject