enquo-core 0.1.0 → 0.1.0.4.gdb566eb
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/ext/enquo/Cargo.lock +12 -2
- data/ext/enquo/src/lib.rs +7 -3
- data/lib/enquo/field.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07b77707b3e001e2a8c1fac99b08351c08c98d01fa0633e1fefb7686ba221b75
|
4
|
+
data.tar.gz: fd733f530d3e1df259b4001e07bf6f83ed7b1aafdb309f4fa9dbfc63eee67304
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
214
|
+
version = "0.2.0"
|
215
215
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
216
|
-
checksum = "
|
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
|
-
|
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-
|
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:
|
192
|
+
version: 1.3.1
|
193
193
|
requirements: []
|
194
194
|
rubygems_version: 3.1.6
|
195
195
|
signing_key:
|