ikhasi_crypto 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/crypto.rb +26 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3e6d038aed4dbbaea1d5b08dcc5cc63b415bfe54
4
+ data.tar.gz: c2c6d8b14115d34d2acb9e91eb2ace57dddec93f
5
+ SHA512:
6
+ metadata.gz: a831341b84b200d507f8b63692e34945ed9a719d81d53ff84710c3c3799524c840526a87405e96ce6a130715148de6d598804cb6c267ba0f4476d7723865c359
7
+ data.tar.gz: 53c1ae56fd6550dfc30802ed3e7ade324b8b69ceb73faaee5bff5ec163ddaf61e7b4541b6dcc34f724bf7246f9b56a814a6d790048be4b7d8aa140bae8beaa2b
data/lib/crypto.rb ADDED
@@ -0,0 +1,26 @@
1
+ require 'openssl'
2
+ require 'securerandom'
3
+ require 'base64'
4
+ require 'uri'
5
+ class Crypto
6
+ def self.encrypt(string)
7
+ des = OpenSSL::Cipher::Cipher.new("des-ede3-cbc")
8
+ des.encrypt
9
+ des.key = ENV['SECURE_KEY']
10
+ des.iv = iv = SecureRandom.hex(4)
11
+ data = des.update(string) + des.final
12
+ data = iv + data
13
+ data = Base64.encode64(data)
14
+ data = URI.escape(data, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
15
+ end
16
+
17
+ def self.decrypt(string)
18
+ des = OpenSSL::Cipher::Cipher.new("des-ede3-cbc")
19
+ des.decrypt
20
+ des.key = ENV['SECURE_KEY']
21
+ string = URI.unescape(string)
22
+ string = Base64.decode64(string)
23
+ des.iv = string.slice!(0,8)
24
+ des.update(string) + des.final
25
+ end
26
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ikhasi_crypto
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jeanre Swanepoel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2010-04-28 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: jeanre.swanepoel@ikhasi.co.za
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/crypto.rb
20
+ homepage: http://github.com/ikhasi/crypto
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.0.5
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Allows key based encryption of strings
44
+ test_files: []