Implement key_parameter conversion from/to rusqlite storage.
This implements conversion methods on top of basic
keyparameter implementation in aosp/1350725
Bug: 159722691, 159723797, 161798431
Test: atest --host keystore2_tests.
Change-Id: I1457ae4cf4336ebc5bff2645bca55ad285a4449c
diff --git a/keystore2/src/database.rs b/keystore2/src/database.rs
index 394b7be..d64a26e 100644
--- a/keystore2/src/database.rs
+++ b/keystore2/src/database.rs
@@ -69,6 +69,16 @@
NO_PARAMS,
)
.context("Failed to initialize \"keyentry\" table.")?;
+ self.conn
+ .execute(
+ "CREATE TABLE IF NOT EXISTS persistent.keyparameter (
+ keyentryid INTEGER,
+ tag INTEGER,
+ data ANY,
+ security_level INTEGER);",
+ NO_PARAMS,
+ )
+ .context("Failed to initialize \"keyparameter\" table.")?;
Ok(())
}
@@ -185,8 +195,9 @@
.prepare("SELECT name from persistent.sqlite_master WHERE type='table' ORDER BY name;")?
.query_map(params![], |row| row.get(0))?
.collect::<rusqlite::Result<Vec<String>>>()?;
- assert_eq!(tables.len(), 1);
+ assert_eq!(tables.len(), 2);
assert_eq!(tables[0], "keyentry");
+ assert_eq!(tables[1], "keyparameter");
Ok(())
}