encryption 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ M2FiOTRlYTljMTJhM2I2OTZjOWU2YTc0ZDk3ODU5OGU1OTIzOWRlZQ==
5
+ data.tar.gz: !binary |-
6
+ ZmZjNTdkZDlhNDBiMDE0ZDI0NzZhYWE3OGY1OTI0MTAwNzJkNzBiZQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ZDA5MTM4MjZmYmE3YTFiOGZiZTk4MDZjNWRkMWI1NjZkMTJkNGU1N2MzYTY0
10
+ YzYxNGYyM2QxNTA2Y2YxMDE1N2Q3YjlmOTE4MDYyNmQxMDYwOWE3OGQ3NGY5
11
+ ZmJkM2NhZWVhNzc0ZGM2YTA5NTA2MzU4NzQyYmJkNzg5YTIzYTk=
12
+ data.tar.gz: !binary |-
13
+ YzBjYTBmMGFiYzE2MWE0MjYyMTQzMTc4YTFjMGNiZmFjYmVhZWI2YWY0NGJm
14
+ YzU1MTYxNTBmNjY3ZTg2NjNlZGZlNWEzM2Q5ZTI3MDJmNTUwZDIzMmRlODJh
15
+ N2IyZGQzYmYzNzc3ODE4NjEyYWY4OTk5NmM3Mjc4MGIwYmNmYTI=
data/README.md CHANGED
@@ -112,7 +112,11 @@ Helpers
112
112
  "h3LL0".decrypt!
113
113
 
114
114
  # With custom settings (and custom encryptor instance)
115
- "Contact".encrypt({ key: 'encryption key', iv: 'initialization vector', cipher: 'encryption algorithm' })
115
+ "Contact".encrypt(key: 'encryption key', iv: 'initialization vector', cipher: 'encryption algorithm', encode: true)
116
+
117
+ # Note the encode option which will result in a base64 encoded string
118
+
119
+ "3NcPyptED".decrypt!(encoded: true) # Will decrypt an encoded string
116
120
 
117
121
  # Or with a custom encryptor
118
122
  encryptor = Encryption::Symmetric.new
@@ -2,7 +2,7 @@ require 'date'
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'encryption'
5
- s.version = '1.1.3'
5
+ s.version = '1.1.4'
6
6
  s.date = Date.today.to_s
7
7
  s.summary = 'A simple wrapper for the OpenSSL Cipher library'
8
8
  s.description = 'Encryption provides a simple interface for symmetric / asymmetric encryption with the OpenSSL Cipher library'
@@ -1,12 +1,18 @@
1
+ require 'base64'
2
+
1
3
  module Encryption
2
4
  module String
3
5
 
4
6
  def encrypt(options = {})
5
- encryptor(options).encrypt self
7
+ string = encryptor(options).encrypt self
8
+ string = Base64.encode64(string) if options[:encode]
9
+ string
6
10
  end
7
11
 
8
12
  def decrypt(options = {})
9
- encryptor(options).decrypt self
13
+ string = self
14
+ string = Base64.decode64(self) if options[:encode] or options[:encoded]
15
+ encryptor(options).decrypt string
10
16
  end
11
17
 
12
18
  def encrypt!(options = {})
@@ -26,7 +32,7 @@ module Encryption
26
32
  encrypt = Encryption::Symmetric.new
27
33
 
28
34
  options.each do |key, value|
29
- encrypt.send(key.to_s + '=', value)
35
+ encrypt.send(key.to_s + '=', value) if encrypt.respond_to? key.to_s + '='
30
36
  end
31
37
 
32
38
  encrypt
@@ -60,4 +60,27 @@ describe String do
60
60
  end
61
61
  end
62
62
 
63
+ describe 'with encode option' do
64
+ before(:each) do
65
+ @string = String.random
66
+ @options = {
67
+ :key => String.random,
68
+ :iv => String.random,
69
+ :encode => true
70
+ }
71
+ end
72
+
73
+ it 'should generate encryption different then the original string' do
74
+ @string.encrypt(@options).should_not == @string
75
+ end
76
+
77
+ it 'should generate a valid base64' do
78
+ (@string.encrypt(@options)=~/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/).should == 0
79
+ end
80
+
81
+ it 'should decrypt, encrypted values and match the original string' do
82
+ @string.encrypt(@options).decrypt(@options).should == @string
83
+ end
84
+ end
85
+
63
86
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: encryption
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
5
- prerelease:
4
+ version: 1.1.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Itay Grudev
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-31 00:00:00.000000000 Z
11
+ date: 2013-04-04 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: Encryption provides a simple interface for symmetric / asymmetric encryption
15
14
  with the OpenSSL Cipher library
@@ -54,26 +53,25 @@ files:
54
53
  homepage: https://github.com/Itehnological/encryption
55
54
  licenses:
56
55
  - MIT
56
+ metadata: {}
57
57
  post_install_message:
58
58
  rdoc_options: []
59
59
  require_paths:
60
60
  - lib
61
61
  required_ruby_version: !ruby/object:Gem::Requirement
62
- none: false
63
62
  requirements:
64
63
  - - ! '>='
65
64
  - !ruby/object:Gem::Version
66
65
  version: '0'
67
66
  required_rubygems_version: !ruby/object:Gem::Requirement
68
- none: false
69
67
  requirements:
70
68
  - - ! '>='
71
69
  - !ruby/object:Gem::Version
72
70
  version: '0'
73
71
  requirements: []
74
72
  rubyforge_project:
75
- rubygems_version: 1.8.25
73
+ rubygems_version: 2.0.3
76
74
  signing_key:
77
- specification_version: 3
75
+ specification_version: 4
78
76
  summary: A simple wrapper for the OpenSSL Cipher library
79
77
  test_files: []