enquo-core 0.2.0 → 0.2.0.1.g790fccd
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/enquo/src/lib.rs +10 -4
- data/lib/enquo/field.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f94bb637e8f6a63b6091e5801e6f5aa2e3f2e6b8c2dafb530e6baaa228abed6c
|
4
|
+
data.tar.gz: b7bc5d5e9d7b1546533e7926454a7db743927321beddae88855a308596b3cb9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bc43e0ce7018896e7089371b3068d3b17d7ccd9a47cc784a76bb6f7fd367de70b287028fcc14a8ab0c4f9426d9ec9760522dc19e9ddd5204d0157f1ede6b3d3
|
7
|
+
data.tar.gz: e798b96decc361ec8695a4eb39768a5bcc2bfbc5711ec01969fd6d48ece567199ee0df6165ae2bd1ee3b27174144bee6888a1088ba763152bcc5825e0af09acb
|
data/ext/enquo/src/lib.rs
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
extern crate rutie;
|
3
3
|
|
4
4
|
use enquo_core::{Field, Root, I64};
|
5
|
-
use rutie::{
|
5
|
+
use rutie::{Class, Integer, Module, Object, RString, Symbol, VerifiedObject, VM};
|
6
6
|
|
7
7
|
class!(EnquoRoot);
|
8
8
|
class!(EnquoRootKeyStatic);
|
@@ -81,18 +81,24 @@ impl VerifiedObject for EnquoRootKeyStatic {
|
|
81
81
|
methods!(
|
82
82
|
EnquoField,
|
83
83
|
rbself,
|
84
|
-
fn enquo_field_encrypt_i64(value: Integer, context: RString,
|
84
|
+
fn enquo_field_encrypt_i64(value: Integer, context: RString, mode: Symbol) -> RString {
|
85
85
|
let i = value.unwrap().to_i64();
|
86
86
|
let field = rbself.get_data(&*FIELD_WRAPPER);
|
87
|
+
let r_mode = mode.unwrap();
|
88
|
+
let s_mode = r_mode.to_str();
|
87
89
|
|
88
|
-
let res = maybe_raise(
|
89
|
-
if
|
90
|
+
let mut res = maybe_raise(
|
91
|
+
if s_mode == "unsafe" {
|
90
92
|
I64::new_with_unsafe_parts(i, &context.unwrap().to_vec_u8_unchecked(), field)
|
91
93
|
} else {
|
92
94
|
I64::new(i, &context.unwrap().to_vec_u8_unchecked(), field)
|
93
95
|
},
|
94
96
|
"Failed to create encrypted i64",
|
95
97
|
);
|
98
|
+
if s_mode == "no_query" {
|
99
|
+
res.drop_ore_ciphertext();
|
100
|
+
}
|
101
|
+
|
96
102
|
RString::new_utf8(&serde_json::to_string(&res).unwrap())
|
97
103
|
},
|
98
104
|
fn enquo_field_decrypt_i64(ciphertext: RString, context: RString) -> Integer {
|
data/lib/enquo/field.rb
CHANGED
@@ -4,7 +4,7 @@ module Enquo
|
|
4
4
|
raise RuntimeError, "Enquo::Field cannot be instantiated directly; use Enquo::Crypto#field instead"
|
5
5
|
end
|
6
6
|
|
7
|
-
def encrypt_i64(i, ctx, safety:
|
7
|
+
def encrypt_i64(i, ctx, safety: true, no_query: false)
|
8
8
|
unless i.is_a?(Integer)
|
9
9
|
raise ArgumentError, "Enquo::Field#encrypt_i64 can only encrypt integers"
|
10
10
|
end
|
@@ -17,7 +17,7 @@ module Enquo
|
|
17
17
|
raise ArgumentError, "Encryption context must be a string (got a #{ctx.class})"
|
18
18
|
end
|
19
19
|
|
20
|
-
_encrypt_i64(i, ctx, safety == :unsafe)
|
20
|
+
_encrypt_i64(i, ctx, no_query ? :no_query : safety == :unsafe ? :unsafe : :default)
|
21
21
|
end
|
22
22
|
|
23
23
|
def decrypt_i64(data, ctx)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enquo-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0
|
4
|
+
version: 0.2.0.1.g790fccd
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Palmer
|
@@ -187,9 +187,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
187
187
|
version: 2.7.0
|
188
188
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
189
|
requirements:
|
190
|
-
- - "
|
190
|
+
- - ">"
|
191
191
|
- !ruby/object:Gem::Version
|
192
|
-
version:
|
192
|
+
version: 1.3.1
|
193
193
|
requirements: []
|
194
194
|
rubygems_version: 3.1.6
|
195
195
|
signing_key:
|