Skip to content

skeeto/emacs-rsa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

RSA Cryptography in Emacs Lisp

This is an Emacs Lisp implementation of the RSA public-key cryptosystem. Emacs' calc is used for big integer operations. Keys are generated from /dev/urandom.

This package doesn't deal with protocols or key storage (e.g. the hard parts). It's only math functions.

Read more: RSA Signatures in Emacs Lisp

Quick Demo

Here's an example using a (very short) 128-bit key.

(setf message "hello, world!")

(setf keypair (rsa-generate-keypair 128))
;; => (:public  (:n "74924929503799951536367992905751084593"
;;               :e "65537")
;;     :private (:n "74924929503799951536367992905751084593"
;;               :d "36491277062297490768595348639394259869"))

(setf sig (rsa-sign (plist-get keypair :private) message))
;; => "1FA3ENRWZS66U8CKL6TT3VU0U"

(rsa-verify (plist-get keypair :public) message sig)
;; => t

Larger keys can take many minutes to generate and compute signatures.

About

RSA cryptography in Emacs Lisp

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published