Pages :
(reprise du message précédent)

JENCAL a écrit :
Bon ben sodium a de gros problème avec php 5.3, en tout cas de ce que dit mon collègue (j'avoue ne pas avoir regardé du tout!).

Il a testé avec la librairie indiquée et le code que j'ai renseigné?
Quels problèmes exactement?

Peut-être qu'il y a moyen de le débloquer, si le problème ne vient pas de Sodium.
Raphi a écrit :


La notice est très simple Smiley lol :
composer require paragonie/sodium_compat

Puis tu appelles les fonctions en provenance de cette librairie.

Et si tu n'utilises pas composer, télécharge la librairie et tu met ça dans ton code PHP:
require_once "/path/to/sodium_compat/autoload.php";

Tout est indiqué dans la documentation.


Merci, c'est sympa Smiley ola
Alors oui, je lui est envoyé ce que tu m'a envoyé.
Nous sommes à distance et je n'ai pas le temps de m'occuper de son projet, du coup j'ai préférer bricoler que m'engager dans la résolutions de problèmes ^^ Donc pour le détails j'en sais trop rien...
Raphi, j'ai télécharger le fichier sur GitHub.

J'ai comme code :


<?php
require_once "/Sodium/autoload.php";
echo 'Argon2 hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
?>


Répertoire Sodium sur mon serveur. Et ça ne fonctionne pas erreur 500 Smiley decu
Modifié par Tintin75 (17 Oct 2018 - 17:06)
Merci pour ton aide et ton conseil, Sodium à la racine sur mon serveur chez OVH !!!

<?php
require_once(__DIR__. '/Sodium/autoload.php');
echo 'Argon2 hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
?>


J'ai à l'écran :
Argon2 hash:

Par contre, je n'ai pas mon hash en Argon2 qui provient de Sodium. Smiley bawling

Je dit va lire le fichier autoload.php qui se trouver dans le répertoire Sodium.
Modifié par Tintin75 (17 Oct 2018 - 18:09)
Pour ton problème de chemin, dans quel répertoire as-tu téléchargé ton dossier Sodium exactement?
Tu l'as téléchargé en ligne de commande ou copié via un client FTP?
Si c'est via un client FTP, tu n'as pas le droit de te connecter en root (si t'es sur un serveur récent, et que t'as pas modifié la conf de base), donc impossible que t'ai réussi à le mettre à la racine.

En plus si tu met ton code à la racine (mais je doute qu'il y soit), tu aura normalement l'impossibilité d’exécuter le code, à cause des droits de lecture.
Raphi, j'ai téléchargé Sodium et installé le répertoire à la racine de mon site en FTP. J'ai un VPS.
Modifié par Tintin75 (18 Oct 2018 - 09:24)
Oui mais ça veut probablement dire que t'es dans un répertoire lié à ton utilisateur, mais tu n'es pas à la racine de ton serveur. Chaque utilisateur est configuré avec un espace dédié il me semble quand on utilise Plesk.

Place un fichier au même endroit, et balance ce code, et ouvre le dans le navigateur stp:
var_dump(__FILE__);
Voila ton chemin exact. Smiley smile
Donc si je reprends ton code ça donne ça:
<?php
require_once('/var/www/vhosts/X/httpdocs/Sodium/autoload.php');
echo 'Argon2 hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
?>
Merci Raphi, j'ai pigé la manip.

J'ai en retour écran :
Argon2 hash:

Pas moyen de hasher !!! Smiley fache

Le code provient de php.net.
Modifié par Tintin75 (18 Oct 2018 - 09:45)
Le problème vient maintenant de ton code, je pense.
Essayes ceci:
var_dump(get_class_methods(\ParagonIE_Sodium_Compat));


Edit: le code n'est pas bon, le teste pas ça ne fonctionnera pas (je parle du mien Smiley lol ).
Modifié par Raphi (18 Oct 2018 - 09:49)

<?php
require_once('/var/www/vhosts/X/httpdocs/Sodium/autoload.php');
echo 'Argon2 hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
var_dump(get_class_methods(\ParagonIE_Sodium_Compat));
?>


Ca change rien à l'écran

Le répertoire sur mon serveur est nommé : Sodium
Modifié par Tintin75 (18 Oct 2018 - 09:49)
Voila le bon code:

<?php
require_once('/var/www/vhosts/X/httpdocs/Sodium/autoload.php');
//echo 'Argon2 hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
var_dump(get_class_methods('\ParagonIE_Sodium_Compat'));
?>

J'ai mis le tiens en commentaire parce qu'il plante et c'est normal. Il ne pourra pas marcher, parce que sur PHP.net ils partent du principe que t'appelles les fonctions ou constantes à partir d'un Sodium natif et non une librairie.
Retour écran :
array(75) { [0]=> string(7) "bin2hex" [1]=> string(7) "compare" [2]=> string(34) "crypto_aead_aes256gcm_is_available" [3]=> string(29) "crypto_aead_aes256gcm_decrypt" [4]=> string(29) "crypto_aead_aes256gcm_encrypt" [5]=> string(28) "crypto_aead_aes256gcm_keygen" [6]=> string(36) "crypto_aead_chacha20poly1305_decrypt" [7]=> string(36) "crypto_aead_chacha20poly1305_encrypt" [8]=> string(41) "crypto_aead_chacha20poly1305_ietf_decrypt" [9]=> string(35) "crypto_aead_chacha20poly1305_keygen" [10]=> string(41) "crypto_aead_chacha20poly1305_ietf_encrypt" [11]=> string(40) "crypto_aead_chacha20poly1305_ietf_keygen" [12]=> string(42) "crypto_aead_xchacha20poly1305_ietf_decrypt" [13]=> string(42) "crypto_aead_xchacha20poly1305_ietf_encrypt" [14]=> string(41) "crypto_aead_xchacha20poly1305_ietf_keygen" [15]=> string(11) "crypto_auth" [16]=> string(18) "crypto_auth_keygen" [17]=> string(18) "crypto_auth_verify" [18]=> string(10) "crypto_box" [19]=> string(15) "crypto_box_seal" [20]=> string(20) "crypto_box_seal_open" [21]=> string(18) "crypto_box_keypair" [22]=> string(47) "crypto_box_keypair_from_secretkey_and_publickey" [23]=> string(15) "crypto_box_open" [24]=> string(20) "crypto_box_publickey" [25]=> string(35) "crypto_box_publickey_from_secretkey" [26]=> string(20) "crypto_box_secretkey" [27]=> string(23) "crypto_box_seed_keypair" [28]=> string(18) "crypto_generichash" [29]=> string(24) "crypto_generichash_final" [30]=> string(23) "crypto_generichash_init" [31]=> string(25) "crypto_generichash_update" [32]=> string(25) "crypto_generichash_keygen" [33]=> string(9) "crypto_kx" [34]=> string(13) "crypto_pwhash" [35]=> string(26) "crypto_pwhash_is_available" [36]=> string(17) "crypto_pwhash_str" [37]=> string(24) "crypto_pwhash_str_verify" [38]=> string(34) "crypto_pwhash_scryptsalsa208sha256" [39]=> string(47) "crypto_pwhash_scryptsalsa208sha256_is_available" [40]=> string(38) "crypto_pwhash_scryptsalsa208sha256_str" [41]=> string(45) "crypto_pwhash_scryptsalsa208sha256_str_verify" [42]=> string(17) "crypto_scalarmult" [43]=> string(22) "crypto_scalarmult_base" [44]=> string(16) "crypto_secretbox" [45]=> string(21) "crypto_secretbox_open" [46]=> string(23) "crypto_secretbox_keygen" [47]=> string(34) "crypto_secretbox_xchacha20poly1305" [48]=> string(39) "crypto_secretbox_xchacha20poly1305_open" [49]=> string(16) "crypto_shorthash" [50]=> string(23) "crypto_shorthash_keygen" [51]=> string(11) "crypto_sign" [52]=> string(16) "crypto_sign_open" [53]=> string(19) "crypto_sign_keypair" [54]=> string(24) "crypto_sign_seed_keypair" [55]=> string(21) "crypto_sign_publickey" [56]=> string(36) "crypto_sign_publickey_from_secretkey" [57]=> string(21) "crypto_sign_secretkey" [58]=> string(20) "crypto_sign_detached" [59]=> string(27) "crypto_sign_verify_detached" [60]=> string(36) "crypto_sign_ed25519_pk_to_curve25519" [61]=> string(36) "crypto_sign_ed25519_sk_to_curve25519" [62]=> string(13) "crypto_stream" [63]=> string(17) "crypto_stream_xor" [64]=> string(20) "crypto_stream_keygen" [65]=> string(7) "hex2bin" [66]=> string(9) "increment" [67]=> string(21) "library_version_major" [68]=> string(21) "library_version_minor" [69]=> string(6) "memcmp" [70]=> string(7) "memzero" [71]=> string(15) "randombytes_buf" [72]=> string(19) "randombytes_uniform" [73]=> string(20) "randombytes_random16" [74]=> string(14) "version_string" }

Merci pour l'explication du code Smiley cligne
Modifié par Tintin75 (18 Oct 2018 - 09:57)
Super, ta librairie est correctement installée. Smiley biggrin
T'as plus qu'à utiliser les fonctions disponibles depuis cette librairie.
Fait attention parce que les codes sur php.net sont pas forcement à jour. Les noms de fonctions ont changés plein de fois avec la librairie Sodium.
ok, c'est ce qui me semblait. Il faut que j'arrive à trouver le code pour faire tourner Argon2 maintenant ?
C'est ça.
Et c'est la partie la plus pénible, parce qu'aucune documentation ne dit la même chose. Smiley biggol
Modifié par Raphi (18 Oct 2018 - 10:03)
Pages :