Changeset 98
- Timestamp:
- 01/25/08 10:44:49 (7 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
incubator/encrypted_cookie_store/init.rb
r90 r98 1 1 require 'encrypted_cookie_store' 2 raise "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 1 class 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 2 9 3 10 def marshal(session) … … 18 25 19 26 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) 27 28 end 28 29 29 30 def decrypt(cookie) 31 crypt(:decrypt, cookie) 32 end 33 34 def crypt(direction, data) 30 35 cipher = OpenSSL::Cipher::Cipher.new("des-ecb") 31 cipher.decrypt32 cipher.key = "b629c8bfdb173fb9dbdd64c4be8ca5fa1e06e2273f50a588be5e8172e7d0b02039f0b3e177eed6396591c3c35892f558a4c4272ec030b3906b9dd65880dd74db"33 cipher.iv = "3f89h2f8h98dsfhidushf78ef9hdhf"34 decrypted_cookie = cipher.update(cookie)35 decrypted_cookie << cipher.final36 return decrypted_cookie36 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 37 42 end 43 38 44 end 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 1 require 'rake' 2 require 'digest' 3 4 desc "EncryptedCookieStore generate secret keys" 5 task :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" 11 end
