Juste la mise à jour 451 semble faire une modification dans la base données liées au chiffrement.
mais après vérif c'est la base «globale» des contacts.
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. -
Professional support
-
Plugins, theme and development
. I don't answer to private message.
Je suis revenue en 5.0.7 avec la même architecture de base de données qu'en 5.1.14.
LE problème doit peut-être venir à paretir de la 5.1.x.
Cela fonctionne )
Je l'ai mis en commentaire sur le bug tracker.
Jérémie
Pour résumé.
La mise à jour de la version 4 vers la version 5.1.x il me semble génère deux nouveaux champs pour Encryption.
Il faut impérativement avoir les 3 anciens champs "encryption" du fichier security.php pour une génération de ces 2 nouveaux champs.
A partir de la cela fonctionne.
Jérémie
Un vrai cauchemard cette histoire de clé de chiffrement!
Il faut que tu réouvre le rapport de bogue …
Je n'ai jamais participé à cette partie du développement sauf pour remonter des bogues …
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. -
Professional support
-
Plugins, theme and development
. I don't answer to private message.
Voilà le début,
mais ca confirme juste que la clé n'est pas bonne... Pourtant c'est la même...
Code:
/var/www/html/limesurvey/application/core/LSSodium.php(141)129 * Decrypt encrypted string.
130 * @param string $sEncryptedString Encrypted string to decrypt
131 * @param bool $bReturnFalseIfError false by default. If TRUE, return false in case of error (bad decryption). Else, return given $encryptedInput value
132 * @return string Return decrypted value (string or unsezialized object) if suceeded. Return FALSE if an error occurs (bad password/salt given) or inpyt encryptedString
133 * @throws SodiumException
134 */
135 public function decrypt($sEncryptedString, $bReturnFalseIfError = false): string
136 {
137 if ($this->bLibraryExists === true) {
138 if (!empty($sEncryptedString) && $sEncryptedString !== 'null') {
139 $plaintext = ParagonIE_Sodium_Compat::crypto_secretbox_open(base64_decode($sEncryptedString), $this->sEncryptionNonce, $this->sEncryptionSecretBoxKey);
140 if ($plaintext === false) {
141 throw new SodiumException(sprintf(gT("Wrong decryption key! Decryption key has changed since this data were last saved, so data can't be decrypted. Please consult our manual at %s.", 'unescaped'), 'https://www.limesurvey.org/manual/Data_encryption#Errors'));
142 } else {
143 return $plaintext;
144 }
145 }
146 return '';
147 }
148 return $sEncryptedString;
149 }
150
151 /**
152 *
153 * Write encryption key to version.php config file
Code:
/var/www/html/limesurvey/application/models/LSActiveRecord.php(355): [b]LSSodium[/b]->[b]decrypt[/b]()350 {
351 // if $value is provided, it would decrypt
352 if (!empty($value)) {
353 // load sodium library
354 $sodium = Yii::app()->sodium;
355 return $sodium->decrypt($value);
356 }
357 return '';
358 }
359
360 /**
Code:
/var/www/html/limesurvey/application/core/LimeMailer.php(230): [b]LimeMailer[/b]->[b]__construct[/b]()225 * return \LimeMailer
226 */
227 public static function getInstance($reset = self::ResetBase)
228 {
229 if ((null === self::$instance) || ($reset == self::ResetComplete)) {
230 self::$instance = new self();
231 /* no need to reset if new */
232 return self::$instance;
233 }
234 /* Some part must be always resetted */
235 if ($reset) {
J'ai vu passer le code, mais je n'ai jamais voulu tremper dans ce truc …
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. -
Professional support
-
Plugins, theme and development
. I don't answer to private message.