enquo-core 0.1.0 → 0.1.0.4.gdb566eb

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0273f628f54a893b6160c95e9901b29ee6a87df4a237b41f19e1f96edfa1659d
4
- data.tar.gz: 724f2c90f4baa1af1610f1245f23b31813cdc957204cdd55289e46ed70c1f1fd
3
+ metadata.gz: 07b77707b3e001e2a8c1fac99b08351c08c98d01fa0633e1fefb7686ba221b75
4
+ data.tar.gz: fd733f530d3e1df259b4001e07bf6f83ed7b1aafdb309f4fa9dbfc63eee67304
5
5
  SHA512:
6
- metadata.gz: c9afccdbdf1eb2c08a7f3668914e8bd2aa43ff45bf3614d9aa2acc0d8b47820556fc1be175e15d0da0546a93051fbbeec16416e7d1083407f95ad9180951bfed
7
- data.tar.gz: 6902be0a035f28a4af73bf94fe8b1c131ea727be55b4597040d588e9e31525836421b6f0c85247e1ecf92701e2696851c99c23f3e665d0c5c1007419fc554c99
6
+ metadata.gz: 16e763c58c721d371137bc4457e2de0aaefde7923384a70e85c20fbd1f89c795ea63cf0319d1d2b5146416c5222467032e6831d56fa8cfda01a967230c3522fd
7
+ data.tar.gz: 5dbde0e083acce2f9c9bf6067120192c1eddd2fb868a739730ab7eb1963290fd85152626a94a37f92831adef8e7b38bc45d04fc9f19ae9e3781a28dbb113e0a1
data/ext/enquo/Cargo.lock CHANGED
@@ -211,9 +211,9 @@ dependencies = [
211
211
 
212
212
  [[package]]
213
213
  name = "cretrit"
214
- version = "0.1.0"
214
+ version = "0.2.0"
215
215
  source = "registry+https://github.com/rust-lang/crates.io-index"
216
- checksum = "ff2fbde7be9f8313f07f6153529dd9182e7bb51976948e857c4329d407361424"
216
+ checksum = "4df4760922c5f3dd56f84699b523b2aa6ce0b4b82845eff8eb4efc3e642dadf0"
217
217
  dependencies = [
218
218
  "aes",
219
219
  "cmac",
@@ -293,6 +293,7 @@ dependencies = [
293
293
  "hmac",
294
294
  "rand_chacha",
295
295
  "serde",
296
+ "serde_bytes",
296
297
  "sha2",
297
298
  "thiserror",
298
299
  ]
@@ -666,6 +667,15 @@ dependencies = [
666
667
  "serde_derive",
667
668
  ]
668
669
 
670
+ [[package]]
671
+ name = "serde_bytes"
672
+ version = "0.11.7"
673
+ source = "registry+https://github.com/rust-lang/crates.io-index"
674
+ checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b"
675
+ dependencies = [
676
+ "serde",
677
+ ]
678
+
669
679
  [[package]]
670
680
  name = "serde_derive"
671
681
  version = "1.0.144"
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::{Class, Integer, Module, Object, RString, VerifiedObject, VM};
5
+ use rutie::{Boolean, Class, Integer, Module, Object, RString, VerifiedObject, VM};
6
6
 
7
7
  class!(EnquoRoot);
8
8
  class!(EnquoRootKeyStatic);
@@ -81,12 +81,16 @@ impl VerifiedObject for EnquoRootKeyStatic {
81
81
  methods!(
82
82
  EnquoField,
83
83
  rbself,
84
- fn enquo_field_encrypt_i64(value: Integer, context: RString) -> RString {
84
+ fn enquo_field_encrypt_i64(value: Integer, context: RString, unsafe_parts: Boolean) -> RString {
85
85
  let i = value.unwrap().to_i64();
86
86
  let field = rbself.get_data(&*FIELD_WRAPPER);
87
87
 
88
88
  let res = maybe_raise(
89
- field.i64(i, &context.unwrap().to_vec_u8_unchecked()),
89
+ if unsafe_parts.unwrap().to_bool() {
90
+ I64::new_with_unsafe_parts(i, &context.unwrap().to_vec_u8_unchecked(), field)
91
+ } else {
92
+ I64::new(i, &context.unwrap().to_vec_u8_unchecked(), field)
93
+ },
90
94
  "Failed to create encrypted i64",
91
95
  );
92
96
  RString::new_utf8(&serde_json::to_string(&res).unwrap())
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)
7
+ def encrypt_i64(i, ctx, safety: nil)
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)
20
+ _encrypt_i64(i, ctx, safety == :unsafe)
21
21
  end
22
22
 
23
23
  def decrypt_i64(data, ctx)
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.1.0
4
+ version: 0.1.0.4.gdb566eb
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Palmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-01 00:00:00.000000000 Z
11
+ date: 2022-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -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: