Skip to content

Commit 6ff8189

Browse files
author
Bennett Hardwick
authored
Merge pull request #24 from cipherstash/feat/add-round-trip-test
Update deps, add round trip
2 parents e038423 + 84e3868 commit 6ff8189

File tree

9 files changed

+255
-3150
lines changed

9 files changed

+255
-3150
lines changed

Cargo.lock

Lines changed: 132 additions & 115 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/pk_tests.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use cryptonamo::{Encryptable, EncryptedTable};
2-
use cryptonamo_derive::{Decryptable, Searchable};
1+
use cryptonamo::{Encryptable, Decryptable, Searchable, EncryptedTable};
32
use itertools::Itertools;
43
use serial_test::serial;
54
use std::future::Future;

tests/plaintext_tests.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use cryptonamo::{Encryptable, EncryptedTable};
2-
use cryptonamo_derive::{Decryptable, Searchable};
1+
use cryptonamo::{Encryptable, Decryptable, Searchable, EncryptedTable};
32
use itertools::Itertools;
43
use serial_test::serial;
54
use std::future::Future;

tests/query_tests.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use cryptonamo::{Encryptable, EncryptedTable};
2-
use cryptonamo_derive::{Decryptable, Searchable};
1+
use cryptonamo::{Encryptable, Decryptable, Searchable, EncryptedTable};
32
use itertools::Itertools;
43
use serial_test::serial;
54
use std::future::Future;

tests/round_trip_tests.rs

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
use cryptonamo::{Decryptable, Encryptable, EncryptedTable, Searchable};
2+
3+
mod common;
4+
5+
#[derive(Debug, Clone, PartialEq, Encryptable, Decryptable, Searchable)]
6+
struct Crazy {
7+
#[partition_key]
8+
email: String,
9+
10+
#[sort_key]
11+
name: String,
12+
13+
#[cryptonamo(query = "exact")]
14+
ct_a: i64,
15+
#[cryptonamo(query = "exact")]
16+
ct_b: i32,
17+
#[cryptonamo(query = "exact")]
18+
ct_c: i16,
19+
#[cryptonamo(query = "exact")]
20+
ct_d: f64,
21+
#[cryptonamo(query = "exact")]
22+
ct_e: bool,
23+
#[cryptonamo(query = "exact")]
24+
ct_h: u64,
25+
26+
#[cryptonamo(plaintext)]
27+
pt_a: i64,
28+
#[cryptonamo(plaintext)]
29+
pt_b: i32,
30+
#[cryptonamo(plaintext)]
31+
pt_c: i16,
32+
#[cryptonamo(plaintext)]
33+
pt_d: f64,
34+
#[cryptonamo(plaintext)]
35+
pt_e: bool,
36+
#[cryptonamo(plaintext)]
37+
pt_f: u64,
38+
#[cryptonamo(plaintext)]
39+
pt_g: u32,
40+
#[cryptonamo(plaintext)]
41+
pt_h: u16,
42+
#[cryptonamo(plaintext)]
43+
pt_i: Vec<u8>,
44+
#[cryptonamo(plaintext)]
45+
pt_j: Vec<String>,
46+
#[cryptonamo(plaintext)]
47+
pt_k: Vec<Vec<u8>>,
48+
}
49+
50+
#[tokio::test]
51+
async fn test_round_trip() {
52+
let config = aws_config::from_env()
53+
.endpoint_url("http://localhost:8000")
54+
.load()
55+
.await;
56+
57+
let client = aws_sdk_dynamodb::Client::new(&config);
58+
59+
let table_name = "crazy-record";
60+
61+
common::create_table(&client, table_name).await;
62+
63+
let table = EncryptedTable::init(client, table_name)
64+
.await
65+
.expect("Failed to init table");
66+
67+
let r = Crazy {
68+
email: "dan@coderdan.co".into(),
69+
name: "Dan".into(),
70+
71+
ct_a: 123,
72+
ct_b: 321,
73+
ct_c: 231,
74+
ct_d: 20.20,
75+
ct_e: true,
76+
ct_h: 1200,
77+
78+
pt_a: 1234,
79+
pt_b: 4321,
80+
pt_c: 3241,
81+
pt_d: 30.30,
82+
pt_e: false,
83+
pt_f: 2400,
84+
pt_g: 2300,
85+
pt_h: 2200,
86+
pt_i: vec![1, 2, 3, 4, 5],
87+
pt_j: vec!["Hey".into(), "There".into()],
88+
pt_k: vec![vec![1, 2, 3]],
89+
};
90+
91+
table.put(r.clone()).await.expect("Failed to insert record");
92+
93+
let s: Crazy = table
94+
.get(("dan@coderdan.co", "Dan"))
95+
.await
96+
.expect("Failed to get record")
97+
.unwrap();
98+
99+
assert_eq!(s, r);
100+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"files":{"Cargo.toml":"e8c1ad7a9f8b5254630f6c8582d3babd60abef770134704f32d9da34b4658c09","LICENSE":"b1da10b43ce976d6fdb4b15c1ef4a19b7a9975ba48a431b27612087ace3129e9","README.md":"1ebb934850b992b8ace91258cc40f881cd676952a60d5036468254a4fcaf0740","examples/encrypt-data.rs":"ba3b4ff7081126c166398fa994a552967c20995f401b67da15c5271368366483","src/config/console_config.rs":"4ff650a56679f3b8973d54d0fbe75d73e3f962cd3ffbc9b526fb499825f64013","src/config/defaults.rs":"9829c97e2b2d41051f337bed0b52ea38a29f01ab2a7b882a67fb0c01bf481cea","src/config/errors.rs":"8f1dfb3dc969c3403f15347c5de9f4b22b6ee7191979104dd905824331df748a","src/config/idp_config.rs":"af55791a018eea96aefe665c04890e22b4df60a086cf2ec373b4b8121705155c","src/config/mod.rs":"c3cb5b9b82e1f43c3361dc82152aabd6877e07358cc3f9a12505159d8ee158a6","src/config/paths.rs":"b1b5782eb0e0a5b98c5e2e1d8e264cbdf10f303792551b04df9c873a0eb6ac3a","src/config/vars.rs":"4f09689b0e4b0490189f11c399ffbb55bb066a47dbbe838f99e44b3b7c8dcc74","src/config/vitur_config.rs":"8de6ac59a66147e59ca230a0a9278092d0c3f3f551fcb916325702af97f594d6","src/config/workspace.rs":"2ef25fef911a562d384f4a80bcccbb21c39698432c178119eb1da2470321a9e4","src/console/mod.rs":"5cc6e50b3b8fd1f69dce6aa83bbe259fb70cec3f9ae7dabbc6d570d60ac415d8","src/credentials/auto_refresh.rs":"b10b2388dc0409d1c63a7c04be0032b3fb1280f80ae23b856ad6a64b0274efb1","src/credentials/console_credentials.rs":"00ffaad70ba324431dffb76e1af2f83cdb9a43a9ecb379c0d5a1ffc78587dbf2","src/credentials/mod.rs":"c2369f0140b5ce56b8112e41547b38969b72be7f4943e7e50a79054b38c6c9f8","src/credentials/token_store.rs":"7fb370367a2e76f3b8f841bfe8972ca24ff57a04acab936abc6815f7d541410a","src/credentials/vitur_credentials/mod.rs":"40569eb3963fad59da84ac759217af517bcbca26c2ed2008431fb448ca120d19","src/credentials/vitur_credentials/vitur_access_key_credentials.rs":"9e3de00f39afba34abc7a2a82a670abf41472d9b5d332b9b0d7704178e3d553a","src/credentials/vitur_credentials/vitur_console_auth_credentials.rs":"25e6e91d9de2aa10da8c82bac5378afac0b7e8258d7a8768f534809140ea7574","src/credentials/vitur_credentials/vitur_token.rs":"58f4d4d505ffd0806fa5b9fb1ad6b142e38cf9c80139fee66ef5d97a2a846d41","src/encryption/compound_indexer/accumulator.rs":"ae8404a8fb7170641a924222c708bc87866c75da1ea2b1bb58dff6617677b571","src/encryption/compound_indexer/cons.rs":"7249b8e3d34cb50d2e6488959926dda8df5fc00fe25d7145f9ceb02712112b26","src/encryption/compound_indexer/mod.rs":"8cb5423af471db534aa2ed2d59bf8762b701f2e41c1d9e8a9558dffa36987d82","src/encryption/compound_indexer/prefix_indexer.rs":"c7901f13ecf79c996cac63ab6e8c67b33e6caa972f5c58bd98364bfad5076b93","src/encryption/errors.rs":"07161a77493b76d4fa949674cffad820c3b4fe516936a7b44ab691473377996b","src/encryption/match_indexer/mod.rs":"a39f5533457327e879a20888978caa7b11251d12814d655b5d3b5f3368169b73","src/encryption/mod.rs":"6c45e996fe067240f23307983aacf0626748d3fd4eff8e00c4c14f5d56de8420","src/encryption/ore_indexer/conversion.rs":"373049d811fbe025c66097a3646c468c31bf44940af045277cc3cc3701a76ac0","src/encryption/ore_indexer/mod.rs":"30b262407aae0f1a95ee21d2dda9ac60cfd1e166eb2ad0128e28a51afc92e552","src/encryption/plaintext/from_conversion.rs":"0fc7c17c72efad7fe2732b29876ef67acef36dac91541e402394b7e900dbae4c","src/encryption/plaintext/mod.rs":"6f340d713e00e30a4c496577940c33ea151a66ab69127c560a04dd7cbcdd4670","src/encryption/plaintext/to_conversion.rs":"75f0ea89fae675e16b76ddd8b5b8fb0c39bca5fa74ea3d8df22c782f9b79d0d9","src/encryption/text.rs":"17b720ae8afe87342cb6c0ef8e32d131ae419b88ccbaaeff8c6de125fe2278ec","src/encryption/unique_indexer/mod.rs":"0247abc0456e4e669ae4f0e49d65693e9f47295fec6dc0116897c8a936425e64","src/idp_client.rs":"8a3fa119569aaba659f14fb1c015f7daf79b66bca03b6c0ad4fbdaaf65394948","src/lib.rs":"84782398a6055cc20aea0716e29170ddfaca477986dfe71612a052459180576c","src/reqwest_client.rs":"cadce726f0eca20558b61680b4d4a35c4098bb024246810d609d1e94cbeca709","src/schema.rs":"e5651df4c1cff4a3dc2184c2997012be3793dcf84fff6db70adefb33b9c59239","src/vitur/errors.rs":"62c2ca3b60bdde35c1b194561ce712f81a249b42bd7996df372906a58a334a83","src/vitur/local_log.rs":"e9c151842d4f55bdfab95aa7b2574acdc2692272ce5e2d4ee972666b5c76a228","src/vitur/mod.rs":"f9633e141dcb696682972f8242706d73569b63ff01c23d67deafc702217b7e26","string_comparison_test_cases.json":"b1b2b84147092ab9a20b3f1c864d66cf505f6a7929d91f3c238add3c35302c7a"},"package":null}
1+
{"files":{"Cargo.toml":"e8c1ad7a9f8b5254630f6c8582d3babd60abef770134704f32d9da34b4658c09","LICENSE":"b1da10b43ce976d6fdb4b15c1ef4a19b7a9975ba48a431b27612087ace3129e9","README.md":"1ebb934850b992b8ace91258cc40f881cd676952a60d5036468254a4fcaf0740","examples/encrypt-data.rs":"ba3b4ff7081126c166398fa994a552967c20995f401b67da15c5271368366483","src/config/console_config.rs":"4ff650a56679f3b8973d54d0fbe75d73e3f962cd3ffbc9b526fb499825f64013","src/config/defaults.rs":"9829c97e2b2d41051f337bed0b52ea38a29f01ab2a7b882a67fb0c01bf481cea","src/config/errors.rs":"8f1dfb3dc969c3403f15347c5de9f4b22b6ee7191979104dd905824331df748a","src/config/idp_config.rs":"af55791a018eea96aefe665c04890e22b4df60a086cf2ec373b4b8121705155c","src/config/mod.rs":"c3cb5b9b82e1f43c3361dc82152aabd6877e07358cc3f9a12505159d8ee158a6","src/config/paths.rs":"b1b5782eb0e0a5b98c5e2e1d8e264cbdf10f303792551b04df9c873a0eb6ac3a","src/config/vars.rs":"4f09689b0e4b0490189f11c399ffbb55bb066a47dbbe838f99e44b3b7c8dcc74","src/config/vitur_config.rs":"8de6ac59a66147e59ca230a0a9278092d0c3f3f551fcb916325702af97f594d6","src/config/workspace.rs":"2ef25fef911a562d384f4a80bcccbb21c39698432c178119eb1da2470321a9e4","src/console/mod.rs":"5cc6e50b3b8fd1f69dce6aa83bbe259fb70cec3f9ae7dabbc6d570d60ac415d8","src/credentials/auto_refresh.rs":"b10b2388dc0409d1c63a7c04be0032b3fb1280f80ae23b856ad6a64b0274efb1","src/credentials/console_credentials.rs":"00ffaad70ba324431dffb76e1af2f83cdb9a43a9ecb379c0d5a1ffc78587dbf2","src/credentials/mod.rs":"c2369f0140b5ce56b8112e41547b38969b72be7f4943e7e50a79054b38c6c9f8","src/credentials/token_store.rs":"7fb370367a2e76f3b8f841bfe8972ca24ff57a04acab936abc6815f7d541410a","src/credentials/vitur_credentials/mod.rs":"40569eb3963fad59da84ac759217af517bcbca26c2ed2008431fb448ca120d19","src/credentials/vitur_credentials/vitur_access_key_credentials.rs":"9e3de00f39afba34abc7a2a82a670abf41472d9b5d332b9b0d7704178e3d553a","src/credentials/vitur_credentials/vitur_console_auth_credentials.rs":"25e6e91d9de2aa10da8c82bac5378afac0b7e8258d7a8768f534809140ea7574","src/credentials/vitur_credentials/vitur_token.rs":"58f4d4d505ffd0806fa5b9fb1ad6b142e38cf9c80139fee66ef5d97a2a846d41","src/encryption/compound_indexer/accumulator.rs":"ae8404a8fb7170641a924222c708bc87866c75da1ea2b1bb58dff6617677b571","src/encryption/compound_indexer/cons.rs":"7249b8e3d34cb50d2e6488959926dda8df5fc00fe25d7145f9ceb02712112b26","src/encryption/compound_indexer/mod.rs":"8cb5423af471db534aa2ed2d59bf8762b701f2e41c1d9e8a9558dffa36987d82","src/encryption/compound_indexer/prefix_indexer.rs":"c7901f13ecf79c996cac63ab6e8c67b33e6caa972f5c58bd98364bfad5076b93","src/encryption/errors.rs":"07161a77493b76d4fa949674cffad820c3b4fe516936a7b44ab691473377996b","src/encryption/match_indexer/mod.rs":"a39f5533457327e879a20888978caa7b11251d12814d655b5d3b5f3368169b73","src/encryption/mod.rs":"6c45e996fe067240f23307983aacf0626748d3fd4eff8e00c4c14f5d56de8420","src/encryption/ore_indexer/conversion.rs":"373049d811fbe025c66097a3646c468c31bf44940af045277cc3cc3701a76ac0","src/encryption/ore_indexer/mod.rs":"30b262407aae0f1a95ee21d2dda9ac60cfd1e166eb2ad0128e28a51afc92e552","src/encryption/plaintext/from_conversion.rs":"0fc7c17c72efad7fe2732b29876ef67acef36dac91541e402394b7e900dbae4c","src/encryption/plaintext/mod.rs":"f4decad316c7bda8e13a3ad1bcd3163192c2fbbd5cb4df6d6062868f7e0f17fb","src/encryption/plaintext/to_conversion.rs":"75f0ea89fae675e16b76ddd8b5b8fb0c39bca5fa74ea3d8df22c782f9b79d0d9","src/encryption/text.rs":"17b720ae8afe87342cb6c0ef8e32d131ae419b88ccbaaeff8c6de125fe2278ec","src/encryption/unique_indexer/mod.rs":"0247abc0456e4e669ae4f0e49d65693e9f47295fec6dc0116897c8a936425e64","src/idp_client.rs":"8a3fa119569aaba659f14fb1c015f7daf79b66bca03b6c0ad4fbdaaf65394948","src/lib.rs":"84782398a6055cc20aea0716e29170ddfaca477986dfe71612a052459180576c","src/reqwest_client.rs":"cadce726f0eca20558b61680b4d4a35c4098bb024246810d609d1e94cbeca709","src/schema.rs":"e5651df4c1cff4a3dc2184c2997012be3793dcf84fff6db70adefb33b9c59239","src/vitur/errors.rs":"62c2ca3b60bdde35c1b194561ce712f81a249b42bd7996df372906a58a334a83","src/vitur/local_log.rs":"e9c151842d4f55bdfab95aa7b2574acdc2692272ce5e2d4ee972666b5c76a228","src/vitur/mod.rs":"f9633e141dcb696682972f8242706d73569b63ff01c23d67deafc702217b7e26","string_comparison_test_cases.json":"b1b2b84147092ab9a20b3f1c864d66cf505f6a7929d91f3c238add3c35302c7a"},"package":null}

0 commit comments

Comments
 (0)