Skip to content

Commit 79603e6

Browse files
authored
Merge pull request #1651 from SatoshiPortal/ios-secure-storage-issue
6.4.1: Secure Storage on IOS Patch
2 parents fc5106c + fb591d6 commit 79603e6

13 files changed

Lines changed: 50 additions & 51 deletions

ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,9 @@ PODS:
107107
- Flutter
108108
- PromisesObjC (2.4.0)
109109
- ScreenProtectorKit (1.3.1)
110-
- SDWebImage (5.21.4):
111-
- SDWebImage/Core (= 5.21.4)
112-
- SDWebImage/Core (5.21.4)
110+
- SDWebImage (5.21.5):
111+
- SDWebImage/Core (= 5.21.5)
112+
- SDWebImage/Core (5.21.5)
113113
- share_plus (0.0.1):
114114
- Flutter
115115
- sqlite3 (3.51.1):
@@ -288,7 +288,7 @@ SPEC CHECKSUMS:
288288
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
289289
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
290290
ScreenProtectorKit: 83a6281b02c7a5902ee6eac4f5045f674e902ae4
291-
SDWebImage: d0184764be51240d49c761c37f53dd017e1ccaaf
291+
SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838
292292
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
293293
sqlite3: 8d708bc63e9f4ce48f0ad9d6269e478c5ced1d9b
294294
sqlite3_flutter_libs: d13b8b3003f18f596e542bcb9482d105577eff41
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>keychain-access-groups</key>
6+
<array/>
7+
</dict>
8+
</plist>

ios/Runner/Release.entitlements

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>keychain-access-groups</key>
6+
<array/>
7+
</dict>
8+
</plist>

lib/core/storage/migrations/004_legacy/migration01to02.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import 'package:lwk/lwk.dart' as lwk;
1919

2020
Future<void> doMigration0_1to0_2() async {
2121
try {
22-
final secureStorageDatasource = MigrationSecureStorageDatasource();
22+
final secureStorageDatasource = locator<MigrationSecureStorageDatasource>();
2323
final hiveDatasource = locator<OldHiveDatasource>();
2424
final oldSeedRepository = OldSeedRepository(secureStorageDatasource);
2525

lib/core/storage/migrations/004_legacy/migration02to03.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import 'package:bb_mobile/locator.dart';
1212
import 'package:boltz/boltz.dart';
1313

1414
Future<void> doMigration0_2to0_3() async {
15-
final secureStorageDatasource = MigrationSecureStorageDatasource();
15+
final secureStorageDatasource = locator<MigrationSecureStorageDatasource>();
1616
final hiveDatasource = locator<OldHiveDatasource>();
1717
final oldWalletRepository = OldWalletRepository(hiveDatasource);
1818

lib/core/storage/migrations/004_legacy/migration03to04.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/entities/old_storage_keys.dart';
22
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/secure_storage_datasource.dart';
3+
import 'package:bb_mobile/locator.dart';
34

45
Future<void> doMigration0_3to0_4() async {
5-
final secureStorageDatasource = MigrationSecureStorageDatasource();
6+
final secureStorageDatasource = locator<MigrationSecureStorageDatasource>();
67

78
await secureStorageDatasource.store(
89
key: OldStorageKeys.version.name,

lib/core/storage/migrations/005_hive_to_sqlite/old/old_hive_datasource.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'dart:convert';
22

33
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/entities/old_storage_keys.dart';
4-
import 'package:bb_mobile/core/storage/secure_storage.dart';
4+
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
55
import 'package:hive/hive.dart' show Box, Hive, HiveAesCipher;
66
import 'package:path_provider/path_provider.dart'
77
show getApplicationDocumentsDirectory;
@@ -11,10 +11,9 @@ class OldHiveDatasource {
1111

1212
OldHiveDatasource(this.box);
1313

14-
static Future<Box> getBox() async {
14+
static Future<Box> getBox(FlutterSecureStorage secureStorage) async {
1515
final dir = await getApplicationDocumentsDirectory();
1616
Hive.init(dir.path);
17-
final secureStorage = SecureStorage.init();
1817
final password = await secureStorage.read(
1918
key: OldStorageKeys.hiveEncryption.name,
2019
);

lib/core/storage/migrations/005_hive_to_sqlite/secure_storage_datasource.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import 'dart:convert';
22

33
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/entities/old_seed.dart';
4-
import 'package:bb_mobile/core/storage/secure_storage.dart';
54
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
65

76
class MigrationSecureStorageDatasource {
87
final FlutterSecureStorage _storage;
98

10-
MigrationSecureStorageDatasource() : _storage = SecureStorage.init();
9+
MigrationSecureStorageDatasource(this._storage);
1110

1211
Future<void> store({required String key, required String value}) async {
1312
await _storage.write(key: key, value: value);

lib/core/storage/secure_storage.dart

Lines changed: 0 additions & 9 deletions
This file was deleted.

lib/core/storage/storage_locator.dart

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,26 @@ import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/old_see
1010
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/old_wallet_repository.dart';
1111
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/secure_storage_datasource.dart';
1212
import 'package:bb_mobile/core/storage/requires_migration_usecase.dart';
13-
import 'package:bb_mobile/core/storage/secure_storage.dart';
1413
import 'package:bb_mobile/core/swaps/data/repository/boltz_swap_repository.dart';
1514
import 'package:bb_mobile/core/utils/constants.dart';
1615
import 'package:bb_mobile/core/wallet/data/repositories/wallet_repository.dart';
16+
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
1717
import 'package:get_it/get_it.dart';
1818

1919
class StorageLocator {
2020
static Future<void> registerDatasources(GetIt locator) async {
21+
const secureStorage = FlutterSecureStorage(
22+
aOptions: AndroidOptions(encryptedSharedPreferences: true),
23+
// iOptions: IOSOptions(accessibility: KeychainAccessibility.first_unlock),
24+
);
2125
locator.registerLazySingleton<KeyValueStorageDatasource<String>>(
22-
() => SecureStorageDatasourceImpl(SecureStorage.init()),
26+
() => SecureStorageDatasourceImpl(secureStorage),
2327
instanceName: LocatorInstanceNameConstants.secureStorageDatasource,
2428
);
2529
locator.registerLazySingleton<MigrationSecureStorageDatasource>(
26-
() => MigrationSecureStorageDatasource(),
30+
() => MigrationSecureStorageDatasource(secureStorage),
2731
);
28-
final oldHiveBox = await OldHiveDatasource.getBox();
32+
final oldHiveBox = await OldHiveDatasource.getBox(secureStorage);
2933
locator.registerLazySingleton<OldHiveDatasource>(
3034
() => OldHiveDatasource(oldHiveBox),
3135
);
@@ -64,7 +68,8 @@ class StorageLocator {
6468
() => GetAllSeedsUsecase(seedRepository: locator<SeedRepository>()),
6569
);
6670
locator.registerFactory<MigrateToV4LegacyUsecase>(
67-
() => MigrateToV4LegacyUsecase(MigrationSecureStorageDatasource()),
71+
() =>
72+
MigrateToV4LegacyUsecase(locator<MigrationSecureStorageDatasource>()),
6873
);
6974
locator.registerFactory<RequiresMigrationUsecase>(
7075
() => RequiresMigrationUsecase(

0 commit comments

Comments
 (0)