enquo-core 0.6.0-x86_64-linux → 0.6.0.4.gd752e84-x86_64-linux
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 +55 -0
- data/lib/2.7/enquo.so +0 -0
- data/lib/3.0/enquo.so +0 -0
- data/lib/3.1/enquo.so +0 -0
- data/lib/enquo/root_key/static.rb +14 -14
- data/lib/enquo-core.rb +1 -0
- data/lib/enquo_core.rb +1 -0
- metadata +12 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac9808f3a9ac66099fddddcfb32d6eb646f090949ab483e069ab952dba3acfdf
|
4
|
+
data.tar.gz: 7cfa81505136f48cc8280d6ebe8684f343a88d460b8e663af6d1998c7275692e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15c875c9d620cb55cdac1a0f1de343d2963903c6ab460f5818e4f5566b6c305e6b71c2e4ba5685e5901157ac4bb127caff049c5d8fe31346c5ce9ef4ad3d3dec
|
7
|
+
data.tar.gz: 4343164bc0dc08228607892fda63482daa6da7a51736c8f6833156e49036fd0bc4554e802a712605afc3d74c9089221ecdcda879e74bed951beff4107bead3dc
|
data/README.md
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
This directory contains the Ruby bindings for the [Enquo](https://enquo.org) core cryptography library.
|
2
|
+
|
3
|
+
## Note Well
|
4
|
+
|
5
|
+
When reading these docs, bear in mind that this is a *low level* cryptographic library.
|
6
|
+
It is not intended that most users will use `enquo-core` directly.
|
7
|
+
Instead, typically you will use Enquo via your preferred ORM or other higher-level integration.
|
8
|
+
This library is intended to be used to build *those* integrations, not to be used in applications directly.
|
9
|
+
|
10
|
+
|
11
|
+
# Installation
|
12
|
+
|
13
|
+
Typically you'll want to install [the rubygem]:
|
14
|
+
|
15
|
+
```bash
|
16
|
+
gem install enquo-core
|
17
|
+
```
|
18
|
+
|
19
|
+
If you use a platform for which pre-built binary packages are available, this will Just Work.
|
20
|
+
Otherwise, you'll need a [Rust toolchain](https://www.rust-lang.org/learn/get-started) to build.
|
21
|
+
|
22
|
+
|
23
|
+
# Usage
|
24
|
+
|
25
|
+
The Enquo core is all about encrypting and decrypting *field data*, using keys derived from a *root*.
|
26
|
+
|
27
|
+
Load the library:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
require "enquo-core"
|
31
|
+
```
|
32
|
+
|
33
|
+
Create the root key, from which all other cryptographic keys are derived:
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
root_key = Enquo::RootKey::Static.new(SecureRandom.bytes(32))
|
37
|
+
```
|
38
|
+
|
39
|
+
(In real-world use, you'll want to take that key from somewhere it can be securely stored)
|
40
|
+
|
41
|
+
Now, you can create the root itself:
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
root = Enquo::Root.new(root_key)
|
45
|
+
```
|
46
|
+
|
47
|
+
Finally, you can now create a "field" object, which is what is used to do encryption and decryption:
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
f = root.field("some_relation", "some_field_name")
|
51
|
+
ciphertext = f.encrypt_text("this is some text", "test")
|
52
|
+
puts f.decrypt_text(ciphertext, "test").inspect # Should print "this is some text"
|
53
|
+
```
|
54
|
+
|
55
|
+
For more details on the full API, consult [the fine manual](https://www.rubydoc.info/gems/enquo-core).
|
data/lib/2.7/enquo.so
CHANGED
Binary file
|
data/lib/3.0/enquo.so
CHANGED
Binary file
|
data/lib/3.1/enquo.so
CHANGED
Binary file
|
@@ -2,23 +2,23 @@ module Enquo
|
|
2
2
|
module RootKey
|
3
3
|
class Static
|
4
4
|
def self.new(k)
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
unless k.is_a?(String)
|
6
|
+
raise ArgumentError, "An Enquo static root key must be passed a string"
|
7
|
+
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
key = if k.encoding == Encoding::BINARY
|
10
|
+
unless k.bytesize == 32
|
11
|
+
raise ArgumentError, "An Enquo static root key must be a 32 byte binary string"
|
12
|
+
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
k
|
15
|
+
else
|
16
|
+
unless k =~ /\A\h{64}\z/
|
17
|
+
raise ArgumentError, "An Enquo static root key must be a 64 byte hex string"
|
18
|
+
end
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
[k].pack("H*")
|
21
|
+
end
|
22
22
|
|
23
23
|
_new(key)
|
24
24
|
end
|
data/lib/enquo-core.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require_relative "./enquo.rb"
|
data/lib/enquo_core.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require_relative "./enquo.rb"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enquo-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.0
|
4
|
+
version: 0.6.0.4.gd752e84
|
5
5
|
platform: x86_64-linux
|
6
6
|
authors:
|
7
7
|
- Matt Palmer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,7 +150,7 @@ dependencies:
|
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
-
description:
|
153
|
+
description:
|
154
154
|
email:
|
155
155
|
- matt@enquo.org
|
156
156
|
executables: []
|
@@ -158,6 +158,7 @@ extensions: []
|
|
158
158
|
extra_rdoc_files: []
|
159
159
|
files:
|
160
160
|
- ".gitignore"
|
161
|
+
- README.md
|
161
162
|
- enquo-core.gemspec
|
162
163
|
- ext/enquo/.gitignore
|
163
164
|
- ext/enquo/Cargo.lock
|
@@ -167,11 +168,13 @@ files:
|
|
167
168
|
- lib/2.7/enquo.so
|
168
169
|
- lib/3.0/enquo.so
|
169
170
|
- lib/3.1/enquo.so
|
171
|
+
- lib/enquo-core.rb
|
170
172
|
- lib/enquo.rb
|
171
173
|
- lib/enquo/field.rb
|
172
174
|
- lib/enquo/root.rb
|
173
175
|
- lib/enquo/root_key.rb
|
174
176
|
- lib/enquo/root_key/static.rb
|
177
|
+
- lib/enquo_core.rb
|
175
178
|
homepage: https://enquo.org/active_enquo
|
176
179
|
licenses: []
|
177
180
|
metadata:
|
@@ -179,7 +182,7 @@ metadata:
|
|
179
182
|
source_code_uri: https://github.com/enquo/enquo-core
|
180
183
|
changelog_uri: https://github.com/enquo/enquo-core/releases
|
181
184
|
bug_tracker_uri: https://github.com/enquo/enquo-core/issues
|
182
|
-
post_install_message:
|
185
|
+
post_install_message:
|
183
186
|
rdoc_options: []
|
184
187
|
require_paths:
|
185
188
|
- lib
|
@@ -193,12 +196,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
193
196
|
version: 3.2.dev
|
194
197
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
195
198
|
requirements:
|
196
|
-
- - "
|
199
|
+
- - ">"
|
197
200
|
- !ruby/object:Gem::Version
|
198
|
-
version:
|
201
|
+
version: 1.3.1
|
199
202
|
requirements: []
|
200
|
-
rubygems_version: 3.3
|
201
|
-
signing_key:
|
203
|
+
rubygems_version: 3.4.3
|
204
|
+
signing_key:
|
202
205
|
specification_version: 4
|
203
206
|
summary: Core library for encrypted querying operations
|
204
207
|
test_files: []
|