[cl-openid-ticket] [cl-openid] #14: secure random number generation

cl-openid cl-openid-devel at common-lisp.net
Sun Jun 5 22:22:40 UTC 2011


#14: secure random number generation
---------------------------+------------------------------------------------
  Reporter:  mpasternacki  |       Owner:              
      Type:  defect        |      Status:  closed      
  Priority:  major         |   Milestone:              
 Component:  code          |     Version:  1.1 extended
Resolution:  fixed         |    Keywords:              
---------------------------+------------------------------------------------
Changes (by avodonosov):

  * status:  new => closed
  * resolution:  => fixed


Comment:

 The ticket is fixed.

 A library for secure random numbers is implemented:
 https://github.com/avodonosov/secure-random/.

 The current implementation is not pure-lisp, it reuses OpenSSL random
 number generator (via cl+ssl). Pure-lisp library would be better probably,
 but the OpenSSL way was the simpler. Implementing a pure lisp secure
 random number generator not only requires the RNG algorithm coding; the
 most expensive part will be gathering a truly unguessable initial state
 for the generator. OpenSSL does this from a platform specific service,
 like /dev/random, Windows Crypto API, Entropy Gathering Daemon, etc. The
 secure-random interface hides the implementation details, so when (and if)
 it will be reimplemented in lisp, the cl-openid code will not be affected.

 cl-openid already unconditionally depends on cl+ssl via drakma, therefore
 this solution does not add a redundant dependency.

 As of today, secure-random is not on quicklisp. Also it uses the very
 fresh cl+ssl with is also not in quicklisp.

 To trt it just download the secure random snapshot:
 http://github.com/avodonosov/secure-random/tarball/master.

 Then download the cl+ssl snapshot: https://gitorious.org/cl-plus-ssl/cl-
 plus-ssl/archive-tarball/master



 {{{
 (pushnew "<your cl-openid repository>" asdf:*central-registry* :test
 #'equal)
 (pushnew "<your cl+ssl snapshot dir>" asdf:*central-registry* :test
 #'equal)
 (pushnew "<your secure-random snapshot dir>" asdf:*central-registry* :test
 #'equal)

 (ql:quickload :cl-openid)
 }}}

-- 
Ticket URL: <http://trac.common-lisp.net/cl-openid/ticket/14#comment:1>
cl-openid <http://common-lisp.net/project/cl-openid>
cl-openid




More information about the cl-openid-ticket mailing list