extract UpdatedKeys access from KeychainProvider into KeyMetadataDao

This commit is contained in:
Vincent Breitmoser
2018-06-18 11:40:39 +02:00
parent d133b732e5
commit bae90f1b23
24 changed files with 245 additions and 414 deletions

View File

@@ -0,0 +1,28 @@
import java.lang.Boolean;
import java.util.Date;
CREATE TABLE IF NOT EXISTS key_metadata (
master_key_id INTEGER PRIMARY KEY,
last_updated INTEGER AS Date,
seen_on_keyservers INTEGER AS Boolean,
FOREIGN KEY(master_key_id) REFERENCES keyrings_public(master_key_id) ON DELETE CASCADE
);
selectByMasterKeyId:
SELECT *
FROM key_metadata
WHERE master_key_id = ?;
deleteAllLastUpdatedTimes:
UPDATE key_metadata
SET last_updated = null, seen_on_keyservers = null;
replaceKeyMetadata:
REPLACE INTO key_metadata
(master_key_id, last_updated, seen_on_keyservers) VALUES (?, ?, ?);
selectFingerprintsForKeysOlderThan:
SELECT fingerprint
FROM key_metadata
LEFT JOIN keys ON (key_metadata.master_key_id = keys.master_key_id AND keys.rank = 0)
WHERE last_updated < ?;

View File

@@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS keyrings_public (
master_key_id INTEGER PRIMARY KEY,
key_ring_data BLOB
);

View File

@@ -0,0 +1,21 @@
CREATE TABLE IF NOT EXISTS keys (
master_key_id INTEGER,
rank INTEGER,
key_id INTEGER,
key_size INTEGER,
key_curve_oid TEXT,
algorithm INTEGER,
fingerprint BLOB,
can_certify INTEGER,
can_sign INTEGER,
can_encrypt INTEGER,
can_authenticate INTEGER,
is_revoked INTEGER,
has_secret INTEGER,
is_secure INTEGER,
creation INTEGER,
expiry INTEGER,
PRIMARY KEY(master_key_id, rank),
FOREIGN KEY(master_key_id) REFERENCES
keyrings_public(master_key_id) ON DELETE CASCADE
);