anchor.diff:  
   (defun call-with-password-protection (function paste &optional (password (post/get "password")))
     (cond ((or (not (eql 3 (dm:field paste "visibility")))
  -             (string= (dm:field paste "password") (cryptos:pbkdf2-hash password *password-salt*)))
  +             (string= (dm:field paste "password") (cryptos:pbkdf2-hash password (config :password-salt))))
            (funcall function))
           ((or* password)
            (error 'request-denied :message "The supplied password is incorrect."))
  
positive.code:         (parent (paste-parent paste)))
      (when parent (setf paste parent))
      (when (and (= 3 (dm:field paste "visibility"))
                 (string/= (cryptos:pbkdf2-hash password *password-salt*)
                           (dm:field (ensure-paste paste) "password")))
        (api-error "Invalid password for paste ~a" (dm:id paste)))))
  
  
negative.code:       (api-error "A password is required for private visibility."))
      (when (and (/= visibility 3) password)
        (api-error "Cannot set a password on public or unlisted visibility.")))
    (when password (cryptos:pbkdf2-hash password (config :password-salt))))
  
  (defun ensure-paste-type (type)
    (let ((type (string-downcase (or type "text"))))
  