]> git.eshelyaron.com Git - emacs.git/commitdiff
Make auth-source work with non-ASCII passwords again
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 15 Oct 2019 06:42:28 +0000 (08:42 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 15 Oct 2019 06:42:28 +0000 (08:42 +0200)
* lisp/auth-source.el (auth-source--obfuscate): Convert the string
to bytes before obfuscating.
(auth-source--deobfuscate): Convert back into a string (bug#37758).

lisp/auth-source.el

index 9061d41556faaed68063892b0272d4df8aa42fa5..1d3d8dba405c16b7a404567f8c5c0074ceeb1e6b 100644 (file)
@@ -1184,7 +1184,8 @@ FILE is the file from which we obtained this token."
           (auth-source--pad auth-source--session-nonce
                             (plist-get cdata :cipher-keysize))
           (list 'iv-auto (plist-get cdata :cipher-ivsize))
-          (auth-source--pad string (plist-get cdata :cipher-blocksize)))
+          (auth-source--pad (encode-coding-string string 'utf-8)
+                            (plist-get cdata :cipher-blocksize)))
          "-"))
     (mapcar #'1- string)))
 
@@ -1203,14 +1204,16 @@ FILE is the file from which we obtained this token."
            (gnutls-available-p))
       (let ((cdata (car (last (gnutls-ciphers))))
             (bits (split-string data "-")))
-        (auth-source--unpad
-         (car
-          (gnutls-symmetric-decrypt
-           (pop cdata)
-           (auth-source--pad auth-source--session-nonce
-                             (plist-get cdata :cipher-keysize))
-           (base64-decode-string (cadr bits))
-           (base64-decode-string (car bits))))))
+        (decode-coding-string
+         (auth-source--unpad
+          (car
+           (gnutls-symmetric-decrypt
+            (pop cdata)
+            (auth-source--pad auth-source--session-nonce
+                              (plist-get cdata :cipher-keysize))
+            (base64-decode-string (cadr bits))
+            (base64-decode-string (car bits)))))
+         'utf-8))
     (apply #'string (mapcar #'1+ data))))
 
 (cl-defun auth-source-netrc-search (&rest spec