help: add nonce parameter in querystring (#41241)
This commit is contained in:
parent
25e0957b6b
commit
d52fbc23b3
|
@ -45,12 +45,13 @@ de Sécurité (RGS)</link>.</p></note>
|
|||
<p>
|
||||
La signature est à calculer sur la query string encodée complète, en
|
||||
enlevant les paramètres terminaux <code>algo</code>, <code>timestamp</code>,
|
||||
<code>orig</code> et <code>signature</code>. La formule de calcul de la
|
||||
signature est la suivante :
|
||||
</p>
|
||||
<code>nonce</code>, <code>orig</code> et <code>signature</code> s'ils sont
|
||||
présents.</p>
|
||||
|
||||
<p>La formule de calcul de la signature est la suivante :</p>
|
||||
|
||||
<code>
|
||||
BASE64(HMAC-HASH(query_string+'algo=HASH&timestamp=' + timestamp + '&orig=" + orig, clé))
|
||||
BASE64(HMAC-HASH(query_string+'algo=HASH&timestamp=' + timestamp + '&nonce=' + nonce '&orig=" + orig, clé))
|
||||
</code>
|
||||
|
||||
<list>
|
||||
|
@ -59,12 +60,16 @@ BASE64(HMAC-HASH(query_string+'algo=HASH&timestamp=' + timestamp + '&ori
|
|||
en se limitant à la précision des secondes (ex : 2012-04-04T12:34:00Z),
|
||||
</p></item>
|
||||
|
||||
<item><p><code>nonce</code> est un aléa, typiquement la réprésentation hexa
|
||||
d'un nombre pseudo-aléatoire de 128 bits,</p></item>
|
||||
|
||||
<item><p><code>orig</code> est une chaîne précisant l'émetteur de la
|
||||
requête,</p></item>
|
||||
|
||||
<item><p>algo est une chaîne représentant l'algorithme de hachage utilisé, sont
|
||||
définis : sha1, sha256, sha512 pour les trois algorithmes correspondant.
|
||||
L'utilisation d'une valeur différente n'est pas définie.</p></item>
|
||||
L'utilisation d'une valeur différente n'est pas définie. L'algorithme sha256
|
||||
est préconisé.</p></item>
|
||||
|
||||
</list>
|
||||
|
||||
|
@ -73,7 +78,7 @@ La query string définitive est ainsi :
|
|||
</p>
|
||||
|
||||
<code>
|
||||
<var>qs_initial</var>&algo=<var>algo</var>&timestamp=<var>ts</var>&orig=<var>orig</var>&signature=<var>signature</var>
|
||||
<var>qs_initial</var>&algo=<var>algo</var>&timestamp=<var>timestamp</var>&nonce=<var>nonce</var>&orig=<var>orig</var>&signature=<var>signature</var>
|
||||
</code>
|
||||
|
||||
</section>
|
||||
|
@ -213,7 +218,8 @@ function rawurlencode() {
|
|||
}
|
||||
|
||||
now=$(date -u +%FT%TZ);
|
||||
qs="algo=sha256&timestamp=$now&orig=$orig"
|
||||
nonce=$(od -N16 -txL /dev/urandom | cut -c8- | tr -d " ")
|
||||
qs="algo=sha256&timestamp=$now&nonce=$nonce&orig=$orig"
|
||||
sig=$(rawurlencode $(echo -n "$qs" | openssl dgst -binary -sha256 -hmac "$key" | base64))
|
||||
signed="${url}?$qs&signature=$sig"
|
||||
echo "$signed"
|
||||
|
|
Loading…
Reference in New Issue