anchor.diff:    (octets-to-integer octets :big-endian nil))
   
   (defun ed25519-encode-point (p)
  -  "Encode a point on curve25519 as a byte array."
  +  "Encode a point on ed25519 curve as a byte array."
     (let ((x (car p))
           (y (cdr p)))
       (setf (ldb (byte 1 (- +ed25519-bits+ 1)) y) (ldb (byte 1 0) x))
       (ed25519-encode-int y)))
   
   (defun ed25519-decode-point (octets)
  -  "Decode a byte array to a point on curve25519."
  +  "Decode a byte array to a point on ed25519 curve."
     (let* ((y (ed25519-decode-int octets))
            (b (ldb (byte 1 (- +ed25519-bits+ 1)) y)))
       (setf (ldb (byte 1 (- +ed25519-bits+ 1)) y) 0)
  
positive.code:   (modular-inverse (mod x +ed25519-q+) +ed25519-q+))
  
  (defun ed25519-recover-x (y)
    "Recover the X coordinate of a point on curve25519 from the Y coordinate."
    (declare (optimize (speed 3) (safety 0) (space 0) (debug 0)))
    (let* ((yy (mod (* y y) +ed25519-q+))
           (xx (mod (* (- yy 1) (ed25519-inv (+ (* +ed25519-d+ yy) 1))) +ed25519-q+))
  
negative.code:     (cons (mod x3 +ed25519-q+) (mod y3 +ed25519-q+))))
  
  (defun ed25519-scalar-mult (point e)
    "Point multiplication on ed25519 curve using the windowed method."
    (declare (optimize (speed 3) (safety 0) (space 0) (debug 0)))
    (let* ((result (cons 0 1))
           (k 5)
  