ork-encryption 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/README.md +78 -0
- data/lib/ork/encryption.rb +4 -3
- data/ork-encryption.gemspec +6 -6
- data/test/encrypt_test.rb +1 -2
- metadata +26 -21
- data/lib/ork/errors.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ab8fcc5007a9baf05cc108139b3a76fa0abecbc
|
4
|
+
data.tar.gz: ed62c92b058f2d84cd5ded7aa4c97543e76dcb99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8c2f69a2d242160ec4e6e12a9af9b5772b1f272b57d111c00939153ea875ba0b62ece9d0b3a273de98267b8a7cb32e83d21effa4d6542c303ef2d0f76b0c8c8
|
7
|
+
data.tar.gz: 5878497343c05a583ae25c751a7cea9ac242e2f3f1d81c7b14c42b1fd8119a8912488ebd1f46c6f3b94a07fa926fb31bb52865eee91b5de445b93c65a09fc3f7
|
data/README.md
CHANGED
@@ -1,4 +1,82 @@
|
|
1
1
|
ork-encryption
|
2
2
|
==============
|
3
|
+
[](http://badge.fury.io/rb/rork-encryption)
|
4
|
+
[](https://travis-ci.org/emancu/ork-encryption)
|
5
|
+
[](https://codeclimate.com/github/emancu/ork-encryption)
|
6
|
+
[](https://coveralls.io/r/emancu/ork-encryption)
|
7
|
+
[](https://gemnasium.com/emancu/ork-encryption)
|
3
8
|
|
4
9
|
The ork-encryption gem provides encryption and decryption for Ork models.
|
10
|
+
|
11
|
+
## Dependencies
|
12
|
+
|
13
|
+
`ork-encryption` requires:
|
14
|
+
|
15
|
+
* Ruby 1.9 or later.
|
16
|
+
* `riak-client` to connect to **Riak**.
|
17
|
+
* `ork` 0.1.1 or later.
|
18
|
+
|
19
|
+
Install Dependencies using `dep` is easy as run:
|
20
|
+
|
21
|
+
$ dep insatll
|
22
|
+
|
23
|
+
## Installation
|
24
|
+
|
25
|
+
Install [Riak](http://basho.com/riak/) with your package manager:
|
26
|
+
|
27
|
+
$ brew install riak
|
28
|
+
|
29
|
+
Or download it from [Riak's download page](http://docs.basho.com/riak/latest/downloads/)
|
30
|
+
|
31
|
+
Once you have it installed, you can execute `riak start` and it will run on `localhost:8098` by default.
|
32
|
+
|
33
|
+
If you don't have `Ork-encryption`, try this:
|
34
|
+
|
35
|
+
$ gem install ork-encryption
|
36
|
+
|
37
|
+
## Overview
|
38
|
+
|
39
|
+
Any object that gets saved with content-type 'application/x-json-encrypted'
|
40
|
+
the `Ork::Encryption::Serializers::Json` will take care of load or unload the data from **Riak**.
|
41
|
+
|
42
|
+
`Serializers::Json` stores the encrypted data wrapped in JSON encapsulation so
|
43
|
+
that you can still introspect the **Riak** object and see which version of
|
44
|
+
this gem was used to encrypt it. As of version 0.0.1, this is now the only
|
45
|
+
supported serialization format for JSON data.
|
46
|
+
|
47
|
+
## Getting started
|
48
|
+
|
49
|
+
You must initialize the `Ork::Encryption` module before using it.
|
50
|
+
Initialization needs a _configuration hash_ with __key__ and __cipher__ to be used.
|
51
|
+
[See how to choose the configuration](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/Cipher.html#documentation)
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
config = {
|
55
|
+
cipher: 'AES-256-CBC',
|
56
|
+
key: 'fantasticobscurekeygoesherenowty',
|
57
|
+
}
|
58
|
+
|
59
|
+
Ork::Encryption.init config
|
60
|
+
```
|
61
|
+
|
62
|
+
Then include the Ork::Encryption module in your Ork::Document class:
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
class SomeDocument
|
66
|
+
include Ork::Document
|
67
|
+
include Ork::Encryption
|
68
|
+
|
69
|
+
attribute :message
|
70
|
+
end
|
71
|
+
```
|
72
|
+
|
73
|
+
These documents will now be stored encrypted and also the **IV** used.
|
74
|
+
|
75
|
+
## Running the Tests
|
76
|
+
|
77
|
+
Adjust the variable to point to a test riak database. Default is `http://localhost:8098`
|
78
|
+
|
79
|
+
```bash
|
80
|
+
$ ORK_RIAK_URL='http://localhost:8198' rake
|
81
|
+
```
|
82
|
+
|
data/lib/ork/encryption.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
require_relative 'cipher'
|
2
|
-
require_relative 'errors'
|
3
2
|
require_relative 'serializers/json'
|
4
3
|
|
5
4
|
module Ork
|
6
5
|
module Encryption
|
7
|
-
VERSION = '0.0.
|
6
|
+
VERSION = '0.0.2'
|
8
7
|
|
9
8
|
def self.included(klass)
|
10
|
-
raise
|
9
|
+
raise Ork::NotOrkObject unless klass.included_modules.include? Ork::Document
|
11
10
|
klass.content_type Serializers::Json.content_type
|
12
11
|
end
|
13
12
|
|
@@ -34,5 +33,7 @@ module Ork
|
|
34
33
|
Ork::Encryption::Cipher.validate_config @encryption_config = config
|
35
34
|
end
|
36
35
|
|
36
|
+
# Errors
|
37
|
+
class MissingConfig < StandardError; end
|
37
38
|
end
|
38
39
|
end
|
data/ork-encryption.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'ork-encryption'
|
3
|
-
s.version = '0.0.
|
3
|
+
s.version = '0.0.2'
|
4
4
|
s.date = Time.now.strftime('%Y-%m-%d')
|
5
5
|
s.summary = 'Ruby modeling layer for Riak.'
|
6
6
|
s.summary = 'A simple encryption library for Ork::Documents stored in riak.'
|
@@ -19,10 +19,10 @@ Gem::Specification.new do |s|
|
|
19
19
|
]
|
20
20
|
s.test_files = Dir['test/*.*']
|
21
21
|
|
22
|
-
s.
|
23
|
-
s.
|
24
|
-
s.add_development_dependency 'protest'
|
25
|
-
s.add_development_dependency 'mocha'
|
26
|
-
s.add_development_dependency 'coveralls'
|
22
|
+
s.add_runtime_dependency 'riak-client', '~> 1.4'
|
23
|
+
s.add_runtime_dependency 'ork', '~> 0.1', '>= 0.1.4'
|
24
|
+
s.add_development_dependency 'protest', '~> 0'
|
25
|
+
s.add_development_dependency 'mocha', '~> 0'
|
26
|
+
s.add_development_dependency 'coveralls', '~> 0'
|
27
27
|
end
|
28
28
|
|
data/test/encrypt_test.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require_relative 'helper'
|
2
2
|
require 'mocha/api'
|
3
|
-
# require 'json'
|
4
3
|
|
5
4
|
include(Mocha::API)
|
6
5
|
|
@@ -20,7 +19,7 @@ config_hash = {
|
|
20
19
|
Protest.describe 'Ork::Encryption' do
|
21
20
|
context 'include Ork::Encryption' do
|
22
21
|
test 'raise an error if it is not a Ork::Document' do
|
23
|
-
assert_raise Ork::
|
22
|
+
assert_raise Ork::NotOrkObject do
|
24
23
|
class NotADocument
|
25
24
|
include Ork::Encryption
|
26
25
|
end
|
metadata
CHANGED
@@ -1,83 +1,89 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ork-encryption
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emiliano Mancuso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: riak-client
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '1.4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '1.4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ork
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.1'
|
34
|
+
- - ">="
|
32
35
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.1.
|
36
|
+
version: 0.1.4
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
|
-
- - ~>
|
41
|
+
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.1
|
43
|
+
version: '0.1'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.1.4
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: protest
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- -
|
58
|
+
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
60
|
version: '0'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: mocha
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- -
|
65
|
+
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
67
|
version: '0'
|
62
68
|
type: :development
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
|
-
- -
|
72
|
+
- - "~>"
|
67
73
|
- !ruby/object:Gem::Version
|
68
74
|
version: '0'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: coveralls
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
|
-
- -
|
79
|
+
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
81
|
version: '0'
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
|
-
- -
|
86
|
+
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
88
|
version: '0'
|
83
89
|
description: Encrypt documents persisted on Riak DB. Inspired in ripple-encryption
|
@@ -88,12 +94,11 @@ extensions: []
|
|
88
94
|
extra_rdoc_files: []
|
89
95
|
files:
|
90
96
|
- README.md
|
91
|
-
- rakefile
|
92
97
|
- lib/ork/cipher.rb
|
93
98
|
- lib/ork/encryption.rb
|
94
|
-
- lib/ork/errors.rb
|
95
99
|
- lib/ork/serializers/json.rb
|
96
100
|
- ork-encryption.gemspec
|
101
|
+
- rakefile
|
97
102
|
- test/cipher_test.rb
|
98
103
|
- test/encrypt_test.rb
|
99
104
|
- test/helper.rb
|
@@ -107,17 +112,17 @@ require_paths:
|
|
107
112
|
- lib
|
108
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
109
114
|
requirements:
|
110
|
-
- -
|
115
|
+
- - ">="
|
111
116
|
- !ruby/object:Gem::Version
|
112
117
|
version: '0'
|
113
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
119
|
requirements:
|
115
|
-
- -
|
120
|
+
- - ">="
|
116
121
|
- !ruby/object:Gem::Version
|
117
122
|
version: '0'
|
118
123
|
requirements: []
|
119
124
|
rubyforge_project:
|
120
|
-
rubygems_version: 2.1
|
125
|
+
rubygems_version: 2.2.1
|
121
126
|
signing_key:
|
122
127
|
specification_version: 4
|
123
128
|
summary: A simple encryption library for Ork::Documents stored in riak.
|