@@ -5,8 +5,8 @@ mod tests {
55 use cipherstash_client:: credentials:: auto_refresh:: AutoRefresh ;
66 use cipherstash_client:: ejsonpath:: Selector ;
77 use cipherstash_client:: encryption:: {
8- Encrypted , EncryptedEntry , EncryptedSteVecTerm , JsonIndexer , Plaintext , PlaintextTarget ,
9- QueryBuilder , ReferencedPendingPipeline ,
8+ Encrypted , EncryptedEntry , EncryptedSteVecTerm , JsonIndexer , JsonIndexerOptions , OreTerm ,
9+ Plaintext , PlaintextTarget , QueryBuilder , ReferencedPendingPipeline ,
1010 } ;
1111 use cipherstash_client:: {
1212 encryption:: { ScopedCipher , SteVec } ,
@@ -69,20 +69,35 @@ mod tests {
6969 #[ serde( rename = "s" ) ]
7070 selector : Option < String > ,
7171
72- #[ serde( rename = "mac " ) ]
73- mac_index : Option < String > ,
72+ #[ serde( rename = "b " ) ]
73+ blake3_index : Option < String > ,
7474
7575 #[ serde( rename = "ocf" ) ]
7676 ore_cclw_fixed_index : Option < String > ,
7777 #[ serde( rename = "ocv" ) ]
7878 ore_cclw_var_index : Option < String > ,
7979
8080 #[ serde( rename = "sv" ) ]
81- ste_vec_index : Option < Vec < EqlEncrypted > > ,
81+ ste_vec_index : Option < Vec < EqlSteVecEncrypted > > ,
82+ }
83+
84+ #[ derive( Debug , Deserialize , Serialize ) ]
85+ pub struct EqlSteVecEncrypted {
86+ #[ serde( rename = "c" , with = "option_mp_base85" ) ]
87+ ciphertext : Option < EncryptedRecord > ,
88+
89+ #[ serde( rename = "s" ) ]
90+ selector : Option < String > ,
91+ #[ serde( rename = "b" ) ]
92+ blake3_index : Option < String > ,
93+ #[ serde( rename = "ocf" ) ]
94+ ore_cclw_fixed_index : Option < String > ,
95+ #[ serde( rename = "ocv" ) ]
96+ ore_cclw_var_index : Option < String > ,
8297 }
8398
8499 impl EqlEncrypted {
85- pub fn ste_vec ( ste_vec_index : Vec < EqlEncrypted > ) -> Self {
100+ pub fn ste_vec ( ste_vec_index : Vec < EqlSteVecEncrypted > ) -> Self {
86101 Self {
87102 ste_vec_index : Some ( ste_vec_index) ,
88103 ciphertext : None ,
@@ -97,26 +112,18 @@ mod tests {
97112 selector : None ,
98113 ore_cclw_fixed_index : None ,
99114 ore_cclw_var_index : None ,
100- mac_index : None ,
115+ blake3_index : None ,
101116 }
102117 }
103-
118+ }
119+ impl EqlSteVecEncrypted {
104120 pub fn ste_vec_element ( selector : String , record : EncryptedRecord ) -> Self {
105121 Self {
106122 ciphertext : Some ( record) ,
107- identifier : Identifier {
108- table : "blah" . to_string ( ) ,
109- column : "vtha" . to_string ( ) ,
110- } ,
111- version : 1 ,
112- ore_index : None ,
113- match_index : None ,
114- unique_index : None ,
115123 selector : Some ( selector) ,
116124 ore_cclw_fixed_index : None ,
117125 ore_cclw_var_index : None ,
118- mac_index : None ,
119- ste_vec_index : None ,
126+ blake3_index : None ,
120127 }
121128 }
122129 }
@@ -151,10 +158,28 @@ mod tests {
151158
152159 let column_config = ColumnConfig :: build ( "column_name" . to_string ( ) )
153160 . casts_as ( ColumnType :: JsonB )
154- . add_index ( Index :: new ( IndexType :: SteVec { prefix } ) ) ;
161+ . add_index ( Index :: new ( IndexType :: SteVec {
162+ prefix : prefix. to_owned ( ) ,
163+ } ) ) ;
164+
165+ // let mut value =
166+ // serde_json::from_str::<serde_json::Value>("{\"hello\": \"one\", \"n\": 10}").unwrap();
167+
168+ // let mut value =
169+ // serde_json::from_str::<serde_json::Value>("{\"hello\": \"two\", \"n\": 20}").unwrap();
155170
156171 let mut value =
157- serde_json:: from_str :: < serde_json:: Value > ( "{\" hello\" : \" world\" , \" n\" : 42}" ) . unwrap ( ) ;
172+ serde_json:: from_str :: < serde_json:: Value > ( "{\" hello\" : \" two\" , \" n\" : 30}" ) . unwrap ( ) ;
173+
174+ // let mut value =
175+ // serde_json::from_str::<serde_json::Value>("{\"hello\": \"world\", \"n\": 42}").unwrap();
176+
177+ // let mut value =
178+ // serde_json::from_str::<serde_json::Value>("{\"hello\": \"world\", \"n\": 42}").unwrap();
179+
180+ // let mut value =
181+ // serde_json::from_str::<serde_json::Value>("{\"blah\": { \"vtha\": 42 }}").unwrap();
182+
158183 let plaintext = Plaintext :: JsonB ( Some ( value) ) ;
159184
160185 let idx = 0 ;
@@ -174,11 +199,11 @@ mod tests {
174199 let term = entry. 1 ;
175200 let record = entry. 2 ;
176201
177- let mut e = EqlEncrypted :: ste_vec_element ( selector, record) ;
202+ let mut e = EqlSteVecEncrypted :: ste_vec_element ( selector, record) ;
178203
179204 match term {
180205 EncryptedSteVecTerm :: Mac ( items) => {
181- e. mac_index = Some ( hex:: encode ( & items) ) ;
206+ e. blake3_index = Some ( hex:: encode ( & items) ) ;
182207 }
183208 EncryptedSteVecTerm :: OreFixed ( o) => {
184209 e. ore_cclw_fixed_index = Some ( hex:: encode ( o. bytes ) ) ;
@@ -190,25 +215,51 @@ mod tests {
190215
191216 encrypteds. push ( e) ;
192217 }
193-
194- // info!("{:?}" = ?sv);
218+ // info!("{:?}" = encrypteds);
195219 }
196220
197- let e = EqlEncrypted :: ste_vec ( encrypteds ) ;
221+ info ! ( "---------------------------------------------" ) ;
198222
223+ let e = EqlEncrypted :: ste_vec ( encrypteds) ;
199224 info ! ( "{:?}" = ?e) ;
200225
201226 let json = serde_json:: to_value ( e) . unwrap ( ) ;
202-
203227 info ! ( "{}" , json) ;
204228
205- let indexer = JsonIndexer :: new ( prefix) ;
229+ let indexer = JsonIndexer :: new ( JsonIndexerOptions { prefix } ) ;
230+
231+ info ! ( "---------------------------------------------" ) ;
232+
233+ // Path
234+ // let path: String = "$.blah.vtha".to_string();
235+ // let selector = Selector::parse(&path).unwrap();
236+ // let selector = indexer.generate_selector(selector, cipher.index_key());
237+ // let selector = hex::encode(selector.0);
238+ // info!("{}", selector);
206239
207- let path: String = "$.hello" . to_string ( ) ;
208- let selector = Selector :: parse ( & path) ?;
209- let selector = indexer. generate_selector ( selector, cipher. index_key ( ) ) ;
210- let selector = hex:: encode ( selector) ;
240+ // Comparison
241+ let n = 30 ;
242+ let term = OreTerm :: Number ( n) ;
243+
244+ let term = indexer. generate_term ( term, cipher. index_key ( ) ) . unwrap ( ) ;
245+
246+ match term {
247+ EncryptedSteVecTerm :: Mac ( items) => todo ! ( ) ,
248+ EncryptedSteVecTerm :: OreFixed ( ore_cllw8_v1) => {
249+ let term = hex:: encode ( ore_cllw8_v1. bytes ) ;
250+ info ! ( "{n}: {term}" ) ;
251+ }
252+ EncryptedSteVecTerm :: OreVariable ( ore_cllw8_variable_v1) => todo ! ( ) ,
253+ }
211254
212- info ! ( "{}" , selector) ;
255+ // if let Some(ste_vec_index) = e.ste_vec_index {
256+ // for e in ste_vec_index {
257+ // info!("{}", e);
258+ // if let Some(ct) = e.ciphertext {
259+ // let decrypted = cipher.decrypt(encrypted).await?;
260+ // info!("{}", decrypted);
261+ // }
262+ // }
263+ // }
213264 }
214265}
0 commit comments