feat(android): implement private Rust storage runtime (#90)
Dependency security audit / rustsec (push) Failing after 23s
Dependency security audit / rustsec (push) Failing after 23s
This commit is contained in:
1 parent
180851087b
commit
874c8139a4
36 files changed
+2848
-39
No files matched your search
@@ -61,6 +61,33 @@ enum MobileContractProbe {
|
||||
}
|
||||
let request = try validateMobileCredentialRequest(request: MobileCredentialRequest(requestId: "opaque", package: "de.example.app", signingCertificateSha256: String(repeating: "A", count: 64), origins: ["https://EXAMPLE.test:443/"]))
|
||||
precondition(request.origins == ["https://example.test"])
|
||||
print("Swift native contract: fixtures/icons, callbacks, large payload, redaction, cancellation and concurrency passed")
|
||||
do { try privateStorageProbe() }
|
||||
catch MobilePrivateStorageFfiError.Failed(let kind) {
|
||||
print("Swift private storage failed: \(kind)")
|
||||
exit(1)
|
||||
}
|
||||
print("Swift native contract: fixtures/icons, callbacks, large payload, redaction, cancellation, concurrency and private storage passed")
|
||||
}
|
||||
static func privateStorageProbe() throws {
|
||||
let root = URL(fileURLWithPath: "/private/tmp").appendingPathComponent(UUID().uuidString)
|
||||
defer { try? FileManager.default.removeItem(at: root) }
|
||||
for name in ["files", "no-backup", "cache"] {
|
||||
try FileManager.default.createDirectory(at: root.appendingPathComponent(name), withIntermediateDirectories: true)
|
||||
}
|
||||
let directories = MobilePrivateDirectories(
|
||||
files: root.appendingPathComponent("files").path,
|
||||
noBackup: root.appendingPathComponent("no-backup").path,
|
||||
cache: root.appendingPathComponent("cache").path
|
||||
)
|
||||
precondition(!String(reflecting: directories).contains(root.path))
|
||||
let storage = try openMobilePrivateRuntime(directories: directories)
|
||||
precondition(storage.status().version == 1 && !storage.status().configured)
|
||||
precondition(storage.shell().pages.first?.state == .empty)
|
||||
precondition(!String(reflecting: storage.layout()).contains(root.path))
|
||||
try storage.clearDisposableCache()
|
||||
let recreated = try openMobilePrivateRuntime(directories: directories)
|
||||
precondition(recreated.status() == storage.status())
|
||||
precondition(recreated.layout() == storage.layout())
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user