You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/cipherstash-proxy-integration/src/multitenant/set_keyset_id.rs
+47-1Lines changed: 47 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -84,7 +84,7 @@ mod tests {
84
84
asyncfnset_keyset_id_with_simple_query(){
85
85
trace();
86
86
87
-
// clear().await;
87
+
clear().await;
88
88
89
89
let tenant_keyset_id_1 = std::env::var("CS_TENANT_KEYSET_ID_1")
90
90
.map(|s| Uuid::parse_str(&s).unwrap())
@@ -246,6 +246,52 @@ mod tests {
246
246
assert!(result.is_err());
247
247
}
248
248
249
+
///
250
+
/// Tests error handling of unknown keyset id
251
+
///
252
+
#[tokio::test]
253
+
asyncfnset_keyset_id_unknown(){
254
+
trace();
255
+
256
+
clear().await;
257
+
258
+
let client = connect_with_tls(PROXY).await;
259
+
260
+
let tenant_keyset_id_1 = std::env::var("CS_TENANT_KEYSET_ID_1")
261
+
.map(|s| Uuid::parse_str(&s).unwrap())
262
+
.unwrap();
263
+
// Can set unknown name
264
+
let sql = "SET CIPHERSTASH.KEYSET_ID = '2cace9db-3a2a-4b46-a184-ba412b3e0730'";
265
+
let result = client.query(sql,&[]).await;
266
+
assert!(result.is_ok());
267
+
268
+
// Error on encrypt
269
+
let id = random_id();
270
+
let text = "TEST UNKNOWN";
271
+
272
+
let insert_sql = "INSERT INTO encrypted (id, encrypted_text) VALUES ($1, $2)";
273
+
let result = client.query(insert_sql,&[&id,&text]).await;
274
+
assert!(result.is_err());
275
+
276
+
ifletErr(err) = result {
277
+
let msg = err.to_string();
278
+
279
+
assert_eq!(msg,"db error: FATAL: Unknown keyset name or id '2cace9db-3a2a-4b46-a184-ba412b3e0730'. For help visit https://github.com/cipherstash/proxy/blob/main/docs/errors.md#encrypt-unknown-keyset");
280
+
}else{
281
+
unreachable!();
282
+
}
283
+
284
+
// --------
285
+
// Switch back to TENANT_1
286
+
let sql = format!("SET CIPHERSTASH.KEYSET_ID = '{tenant_keyset_id_1}'");
287
+
let result = client.query(&sql,&[]).await;
288
+
assert!(result.is_ok());
289
+
290
+
let insert_sql = "INSERT INTO encrypted (id, encrypted_text) VALUES ($1, $2)";
291
+
let result = client.query(insert_sql,&[&id,&text]).await;
292
+
assert!(result.is_ok());
293
+
}
294
+
249
295
///
250
296
/// Tests various string literal formats for keyset_id values
0 commit comments