enquo-core 0.2.0 → 0.2.0.1.g790fccd

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f62808ec8c685d873d37a00b3c422ab7bf7d824bc107f67c1062da909ad1cba9
4
- data.tar.gz: 876d6ab8874c993a1a8b3df8a2ea328fa0f278435554514f861a40530ba1bfd3
3
+ metadata.gz: f94bb637e8f6a63b6091e5801e6f5aa2e3f2e6b8c2dafb530e6baaa228abed6c
4
+ data.tar.gz: b7bc5d5e9d7b1546533e7926454a7db743927321beddae88855a308596b3cb9c
5
5
  SHA512:
6
- metadata.gz: 3cbbaa974aeb7944c719ab12af59ca7bf9830aee31feeb865fe617f5ceebbbe9f5785286f2f878914353e759bd0d40e5cb5e32265f9be1df018d0b199b9ddda7
7
- data.tar.gz: 04f5c68a2ea0be59a8b34999ca84a7cb2ee895ab546375a5a7a08a098aae78f70c2663598b85889784c4844f7dfb4637f9a22c81601903fc2d4a13c2dd68811a
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::{Boolean, Class, Integer, Module, Object, RString, VerifiedObject, VM};
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, unsafe_parts: Boolean) -> 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 unsafe_parts.unwrap().to_bool() {
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: nil)
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: '0'
192
+ version: 1.3.1
193
193
  requirements: []
194
194
  rubygems_version: 3.1.6
195
195
  signing_key: