Changeset 98

Show
Ignore:
Timestamp:
01/25/08 10:44:49 (7 months ago)
Author:
abedra
Message:

added a rake task to generate secrets, DRYed up crypt actions, secrets are required. Help from Larry Karnowski

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • incubator/encrypted_cookie_store/init.rb

    r90 r98  
    11require 'encrypted_cookie_store' 
     2raise "Please run rake secret to generate the secret keys" unless File.exist?("./vendor/plugins/encrypted_cookie_store/config/secrets") 
  • incubator/encrypted_cookie_store/lib/encrypted_cookie_store.rb

    r91 r98  
    1 class CGI::Session::CookieStore 
     1class CGI::Session::CookieStore  
     2   
     3  def self.read_secrets 
     4    configs = File.readlines("./vendor/plugins/encrypted_cookie_store/config/secrets") 
     5    return configs[0].chomp, configs[1].chomp 
     6  end 
     7   
     8  @@key, @@iv = read_secrets 
    29   
    310  def marshal(session) 
     
    1825   
    1926  def encrypt(cookie) 
    20     cipher = OpenSSL::Cipher::Cipher.new("des-ecb") 
    21     cipher.encrypt 
    22     cipher.key = "b629c8bfdb173fb9dbdd64c4be8ca5fa1e06e2273f50a588be5e8172e7d0b02039f0b3e177eed6396591c3c35892f558a4c4272ec030b3906b9dd65880dd74db" 
    23     cipher.iv = "3f89h2f8h98dsfhidushf78ef9hdhf" 
    24     encrypted_cookie = cipher.update(cookie) 
    25     encrypted_cookie << cipher.final 
    26     return encrypted_cookie 
     27    crypt(:encrypt, cookie) 
    2728  end 
    2829   
    2930  def decrypt(cookie) 
     31    crypt(:decrypt, cookie) 
     32  end 
     33   
     34  def crypt(direction, data) 
    3035    cipher = OpenSSL::Cipher::Cipher.new("des-ecb") 
    31     cipher.decrypt 
    32     cipher.key = "b629c8bfdb173fb9dbdd64c4be8ca5fa1e06e2273f50a588be5e8172e7d0b02039f0b3e177eed6396591c3c35892f558a4c4272ec030b3906b9dd65880dd74db" 
    33     cipher.iv = "3f89h2f8h98dsfhidushf78ef9hdhf" 
    34     decrypted_cookie = cipher.update(cookie
    35     decrypted_cookie << cipher.final 
    36     return decrypted_cookie 
     36    direction == :encrypt ? cipher.encrypt : cipher.decrypt 
     37    cipher.key = @@key  
     38    cipher.iv = @@iv 
     39    cookie = cipher.update(data
     40    cookie << cipher.final 
     41    return cookie 
    3742  end 
     43   
    3844end 
  • incubator/encrypted_cookie_store/tasks/encrypted_cookie_store_tasks.rake

    r90 r98  
    1 # desc "Explaining what the task does" 
    2 # task :encrypted_cookie_store do 
    3 #   # Task goes here 
    4 # end 
     1require 'rake' 
     2require 'digest' 
     3 
     4desc "EncryptedCookieStore generate secret keys" 
     5task :secret do 
     6  File.open("./vendor/plugins/encrypted_cookie_store/config/secrets","w") do |file| 
     7    file.puts("#{Digest::SHA1.hexdigest("--#{rand.to_s}--")}") 
     8    file.puts("#{Digest::SHA1.hexdigest("--#{rand.to_s}--")}") 
     9  end 
     10  $stderr.puts "Wrote secret file" 
     11end