Thanks Alex! That was a nice cue.

In my viprc I've ended up with the code below.

I can now define one or more named keys and use them to encrypt/decrypt
buffers in a given session without showing the key

Regards,
Lindsay

(setq *EncKeys '(("yek" . "key")))

(cmd "yek" (L Lst Cnt) # Set named encryption key
   (let (P1 NIL P2 NIL
         GetPwd '(() (pack (make
                  (use C
                     (until (sub? (setq C (getch)) "\r\n")
                        (link C)) ) ) ) )
         )
      (when L
         (prCmd (make (link (chop (pack "Setting encryption key for [" L
"]")))))
         (prCmd (make (link (chop "Enter Password:"))))
         (setq P1 (GetPwd))
         (prCmd (make (link (chop "Confirm Password:"))))
         (setq P2 (GetPwd))
         (ifn (= P1 P2)
            (prCmd (list (chop "Encryption key NOT set; Password
mismatch")))
            (if (assoc L *EncKeys)
               (con @ P1)
               (push '*EncKeys (cons L P1))

                           )
            (prCmd (list (chop "Encryption key set")))
         ) ) ) )

(cmd "enc" (L Lst Cnt) # Encrypt buffer using named key
   (when (sys "YEK" (cdr (assoc L *EncKeys)) )
     ...

(cmd "dec" (L Lst Cnt) # Encrypt buffer using named key
   (when (sys "YEK" (cdr (assoc L *EncKeys)) )
    ...

Reply via email to