Implement complete Android settings and recovery controls (#104)
Android ARM verification / rust (push) Failing after 46m46s
Android ARM verification / android (push) Failing after 7s
Dependency security audit / rustsec (push) Successful in 22s

This commit is contained in:
hugo committed 2026-10-10 12:07:28 +02:00
1 parent 06575363a2
commit 43f660ace3
34 files changed
+2720 -64

No files matched your search

+143
View File
@@ -1452,6 +1452,8 @@ public protocol MobileAuthenticationProtocol: AnyObject, Sendable {
func prepareWatchSnapshot(platformPairingIdentity: String) throws -> MobileWatchSnapshotTransfer
func rebuildTotpCache(operation: MobileTotpOperation) throws -> MobileTotpPage
func refreshEntryPresentation(path: String, revision: String, unixSeconds: UInt64) throws -> MobileEntryPresentation
func removeApplicationToken() throws
@@ -1478,8 +1480,12 @@ public protocol MobileAuthenticationProtocol: AnyObject, Sendable {
func setAuthenticationTimeout(seconds: UInt64) throws
func setAuthenticationTimeoutText(seconds: String) throws
func setBiometricUnlock(enabled: Bool) throws -> MobileAuthenticationState
func setDefaultKey(fingerprint: String) throws
func setGitIdentity(name: String, email: String) throws -> MobileGitIdentity
func setMobileAppearance(appearance: MobileAppearance) throws
@@ -1490,6 +1496,8 @@ public protocol MobileAuthenticationProtocol: AnyObject, Sendable {
func state() throws -> MobileAuthenticationState
func totpCacheStatus() throws -> MobileTotpCacheStatus
func totpDetail(path: String, unixSeconds: UInt64) throws -> MobileTotpDetail
func totpPage(operation: MobileTotpOperation) throws -> MobileTotpPage
@@ -1868,6 +1876,16 @@ open func prepareWatchSnapshot(platformPairingIdentity: String)throws -> Mobile
})
}
open func rebuildTotpCache(operation: MobileTotpOperation)throws -> MobileTotpPage {
return try FfiConverterTypeMobileTotpPage_lift(try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
uniffi_ironstorage_mobile_fn_method_mobileauthentication_rebuild_totp_cache(
self.uniffiCloneHandle(),
FfiConverterTypeMobileTotpOperation_lower(operation),uniffiCallStatus
)
})
}
open func refreshEntryPresentation(path: String, revision: String, unixSeconds: UInt64)throws -> MobileEntryPresentation {
return try FfiConverterTypeMobileEntryPresentation_lift(try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
@@ -2009,6 +2027,15 @@ open func setAuthenticationTimeout(seconds: UInt64)throws {try rustCallWithErr
}
}
open func setAuthenticationTimeoutText(seconds: String)throws {try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
uniffi_ironstorage_mobile_fn_method_mobileauthentication_set_authentication_timeout_text(
self.uniffiCloneHandle(),
FfiConverterString.lower(seconds),uniffiCallStatus
)
}
}
open func setBiometricUnlock(enabled: Bool)throws -> MobileAuthenticationState {
return try FfiConverterTypeMobileAuthenticationState_lift(try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
@@ -2019,6 +2046,15 @@ open func setBiometricUnlock(enabled: Bool)throws -> MobileAuthenticationState
})
}
open func setDefaultKey(fingerprint: String)throws {try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
uniffi_ironstorage_mobile_fn_method_mobileauthentication_set_default_key(
self.uniffiCloneHandle(),
FfiConverterString.lower(fingerprint),uniffiCallStatus
)
}
}
open func setGitIdentity(name: String, email: String)throws -> MobileGitIdentity {
return try FfiConverterTypeMobileGitIdentity_lift(try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
@@ -2071,6 +2107,15 @@ open func state()throws -> MobileAuthenticationState {
})
}
open func totpCacheStatus()throws -> MobileTotpCacheStatus {
return try FfiConverterTypeMobileTotpCacheStatus_lift(try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
uniffi_ironstorage_mobile_fn_method_mobileauthentication_totp_cache_status(
self.uniffiCloneHandle(),uniffiCallStatus
)
})
}
open func totpDetail(path: String, unixSeconds: UInt64)throws -> MobileTotpDetail {
return try FfiConverterTypeMobileTotpDetail_lift(try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
@@ -3083,6 +3128,8 @@ public protocol MobileKeyTransferImportProtocol: AnyObject, Sendable {
func addFrame(payload: String) throws -> MobileKeyTransferProgress
func addImage(image: Data) throws -> MobileKeyTransferProgress
func `import`(passphrase: String?, makeDefault: Bool, overwrite: Bool) throws -> MobileKeyTransferOutcome
}
@@ -3149,6 +3196,16 @@ open func addFrame(payload: String)throws -> MobileKeyTransferProgress {
})
}
open func addImage(image: Data)throws -> MobileKeyTransferProgress {
return try FfiConverterTypeMobileKeyTransferProgress_lift(try rustCallWithError(FfiConverterTypeMobileKeyTransferFfiError_lift) {
uniffiCallStatus in
uniffi_ironstorage_mobile_fn_method_mobilekeytransferimport_add_image(
self.uniffiCloneHandle(),
FfiConverterData.lower(image),uniffiCallStatus
)
})
}
open func `import`(passphrase: String?, makeDefault: Bool, overwrite: Bool)throws -> MobileKeyTransferOutcome {
return try FfiConverterTypeMobileKeyTransferOutcome_lift(try rustCallWithError(FfiConverterTypeMobileKeyTransferFfiError_lift) {
uniffiCallStatus in
@@ -3523,6 +3580,8 @@ public protocol MobilePrivateRuntimeProtocol: AnyObject, Sendable {
func clearDisposableCache() throws
func keyMaterialChanged() throws
func layout() -> MobilePrivateStorageLayout
func shell() -> MobileShell
@@ -3677,6 +3736,14 @@ open func clearDisposableCache()throws {try rustCallWithError(FfiConverterType
}
}
open func keyMaterialChanged()throws {try rustCallWithError(FfiConverterTypeMobileAuthenticationFfiError_lift) {
uniffiCallStatus in
uniffi_ironstorage_mobile_fn_method_mobileprivateruntime_key_material_changed(
self.uniffiCloneHandle(),uniffiCallStatus
)
}
}
open func layout() -> MobilePrivateStorageLayout {
return try! FfiConverterTypeMobilePrivateStorageLayout_lift(try! rustCall() {
uniffiCallStatus in
@@ -7514,6 +7581,60 @@ public func FfiConverterTypeMobileShell_lower(_ value: MobileShell) -> RustBuffe
}
public struct MobileTotpCacheStatus: Equatable, Hashable {
public var entries: UInt32
public var detail: String
// Default memberwise initializers are never public by default, so we
// declare one manually.
public init(entries: UInt32, detail: String) {
self.entries = entries
self.detail = detail
}
}
#if compiler(>=6)
extension MobileTotpCacheStatus: Sendable {}
#endif
#if swift(>=5.8)
@_documentation(visibility: private)
#endif
public struct FfiConverterTypeMobileTotpCacheStatus: FfiConverterRustBuffer {
public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MobileTotpCacheStatus {
return
try MobileTotpCacheStatus(
entries: FfiConverterUInt32.read(from: &buf),
detail: FfiConverterString.read(from: &buf)
)
}
public static func write(_ value: MobileTotpCacheStatus, into buf: inout [UInt8]) {
FfiConverterUInt32.write(value.entries, into: &buf)
FfiConverterString.write(value.detail, into: &buf)
}
}
#if swift(>=5.8)
@_documentation(visibility: private)
#endif
public func FfiConverterTypeMobileTotpCacheStatus_lift(_ buf: RustBuffer) throws -> MobileTotpCacheStatus {
return try FfiConverterTypeMobileTotpCacheStatus.lift(buf)
}
#if swift(>=5.8)
@_documentation(visibility: private)
#endif
public func FfiConverterTypeMobileTotpCacheStatus_lower(_ value: MobileTotpCacheStatus) -> RustBuffer {
return FfiConverterTypeMobileTotpCacheStatus.lower(value)
}
public struct MobileTotpDetail: Equatable, Hashable {
public var path: String
public var issuer: String?
@@ -12800,6 +12921,9 @@ private let initializationResult: InitializationResult = {
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_prepare_watch_snapshot() != 63315) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_rebuild_totp_cache() != 9132) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_refresh_entry_presentation() != 17168) {
return InitializationResult.apiChecksumMismatch
}
@@ -12839,9 +12963,15 @@ private let initializationResult: InitializationResult = {
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_set_authentication_timeout() != 28648) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_set_authentication_timeout_text() != 45986) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_set_biometric_unlock() != 30931) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_set_default_key() != 57050) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_set_git_identity() != 30660) {
return InitializationResult.apiChecksumMismatch
}
@@ -12857,6 +12987,9 @@ private let initializationResult: InitializationResult = {
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_state() != 55462) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_totp_cache_status() != 41435) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileauthentication_totp_detail() != 1912) {
return InitializationResult.apiChecksumMismatch
}
@@ -12929,6 +13062,9 @@ private let initializationResult: InitializationResult = {
if (uniffi_ironstorage_mobile_checksum_method_mobilekeytransferimport_add_frame() != 62030) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobilekeytransferimport_add_image() != 8151) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobilekeytransferimport_import() != 64195) {
return InitializationResult.apiChecksumMismatch
}
@@ -13076,6 +13212,9 @@ private let initializationResult: InitializationResult = {
if (uniffi_ironstorage_mobile_checksum_method_mobileprivateruntime_clear_disposable_cache() != 35831) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileprivateruntime_key_material_changed() != 45867) {
return InitializationResult.apiChecksumMismatch
}
if (uniffi_ironstorage_mobile_checksum_method_mobileprivateruntime_layout() != 33040) {
return InitializationResult.apiChecksumMismatch
}
@@ -13359,6 +13498,10 @@ extension MobileShell: CustomStringConvertible, CustomDebugStringConvertible {
public var description: String { "MobileShell([REDACTED])" }
public var debugDescription: String { description }
}
extension MobileTotpCacheStatus: CustomStringConvertible, CustomDebugStringConvertible {
public var description: String { "MobileTotpCacheStatus([REDACTED])" }
public var debugDescription: String { description }
}
extension MobileTotpDetail: CustomStringConvertible, CustomDebugStringConvertible {
public var description: String { "MobileTotpDetail([REDACTED])" }
public var debugDescription: String { description }