From f37dc35d3c26c64155e173f3fddd23e1c526b056 Mon Sep 17 00:00:00 2001 From: Wes Date: Thu, 4 Jan 2024 17:10:33 -0700 Subject: [PATCH] fix: use web5_flutter package --- frontend/ios/Podfile.lock | 6 ++ .../features/account/account_providers.dart | 2 +- frontend/lib/features/home/home_page.dart | 2 +- frontend/lib/main.dart | 5 +- .../services/secure_storage_key_manager.dart | 42 -------------- frontend/pubspec.lock | 57 +++++++++++-------- frontend/pubspec.yaml | 5 +- 7 files changed, 46 insertions(+), 73 deletions(-) delete mode 100644 frontend/lib/services/secure_storage_key_manager.dart diff --git a/frontend/ios/Podfile.lock b/frontend/ios/Podfile.lock index 7d0d790f..29f761cf 100644 --- a/frontend/ios/Podfile.lock +++ b/frontend/ios/Podfile.lock @@ -5,6 +5,8 @@ PODS: - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS + - tbdex_flutter (0.0.1): + - Flutter - webview_flutter_wkwebview (0.0.1): - Flutter @@ -12,6 +14,7 @@ DEPENDENCIES: - Flutter (from `Flutter`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - tbdex_flutter (from `.symlinks/plugins/tbdex_flutter/ios`) - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) EXTERNAL SOURCES: @@ -21,6 +24,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_secure_storage/ios" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" + tbdex_flutter: + :path: ".symlinks/plugins/tbdex_flutter/ios" webview_flutter_wkwebview: :path: ".symlinks/plugins/webview_flutter_wkwebview/ios" @@ -28,6 +33,7 @@ SPEC CHECKSUMS: Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 + tbdex_flutter: 43399e1c15c052fc0ae9a6a11d7a4230c57020b4 webview_flutter_wkwebview: 2e2d318f21a5e036e2c3f26171342e95908bd60a PODFILE CHECKSUM: 70d9d25280d0dd177a5f637cdb0f0b0b12c6a189 diff --git a/frontend/lib/features/account/account_providers.dart b/frontend/lib/features/account/account_providers.dart index e1be6122..17673f5f 100644 --- a/frontend/lib/features/account/account_providers.dart +++ b/frontend/lib/features/account/account_providers.dart @@ -1,4 +1,4 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:tbdex/tbdex.dart'; +import 'package:web5_flutter/web5_flutter.dart'; final didProvider = Provider((ref) => throw UnimplementedError()); diff --git a/frontend/lib/features/home/home_page.dart b/frontend/lib/features/home/home_page.dart index 8a917a20..94dc75d0 100644 --- a/frontend/lib/features/home/home_page.dart +++ b/frontend/lib/features/home/home_page.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_starter/features/pfis/pfi_providers.dart'; import 'package:flutter_starter/features/pfis/pfi_verification_page.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:tbdex/tbdex.dart'; +import 'package:web5_flutter/web5_flutter.dart'; class HomePage extends HookConsumerWidget { const HomePage({super.key}); diff --git a/frontend/lib/main.dart b/frontend/lib/main.dart index 839d72ad..60e1c754 100644 --- a/frontend/lib/main.dart +++ b/frontend/lib/main.dart @@ -2,10 +2,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_starter/features/account/account_providers.dart'; import 'package:flutter_starter/features/app/app.dart'; -import 'package:flutter_starter/services/secure_storage_key_manager.dart'; import 'package:flutter_starter/services/service_providers.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:tbdex/tbdex.dart'; +import 'package:web5_flutter/web5_flutter.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -15,7 +14,7 @@ void main() async { aOptions: AndroidOptions(encryptedSharedPreferences: true), ); - final keyManager = SecureStorageKeyManager(storage); + final keyManager = SecureStorageKeyManager(storage: storage); final did = await getOrCreateDid(keyManager, storage); runApp(ProviderScope( overrides: [ diff --git a/frontend/lib/services/secure_storage_key_manager.dart b/frontend/lib/services/secure_storage_key_manager.dart deleted file mode 100644 index 5be4e0c8..00000000 --- a/frontend/lib/services/secure_storage_key_manager.dart +++ /dev/null @@ -1,42 +0,0 @@ -import 'dart:convert'; -import 'dart:typed_data'; - -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:tbdex/tbdex.dart'; - -class SecureStorageKeyManager implements KeyManager { - final FlutterSecureStorage _storage; - SecureStorageKeyManager(this._storage); - - @override - Future generatePrivateKey(DsaName alg) async { - final privateKeyJwk = await DsaAlgorithms.generatePrivateKey(alg); - final thumbprint = privateKeyJwk.computeThumbprint(); - await _storage.write(key: thumbprint, value: privateKeyJwk.toString()); - return thumbprint; - } - - @override - Future getPublicKey(String keyAlias) async { - final privateKeyJwkStr = await _storage.read(key: keyAlias); - - if (privateKeyJwkStr == null) { - throw Exception('No key found with alias $keyAlias'); - } - - final privateKeyJwk = Jwk.fromJson(json.decode(privateKeyJwkStr)); - return DsaAlgorithms.computePublicKey(privateKeyJwk); - } - - @override - Future sign(String keyAlias, Uint8List payload) async { - final privateKeyJwkStr = await _storage.read(key: keyAlias); - - if (privateKeyJwkStr == null) { - throw Exception('No key found with alias $keyAlias'); - } - - final privateKeyJwk = Jwk.fromJson(json.decode(privateKeyJwkStr)); - return DsaAlgorithms.sign(privateKeyJwk, payload); - } -} diff --git a/frontend/pubspec.lock b/frontend/pubspec.lock index 913cae68..cf3aa9dd 100644 --- a/frontend/pubspec.lock +++ b/frontend/pubspec.lock @@ -305,18 +305,18 @@ packages: dependency: transitive description: name: platform - sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8 + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.1.8" pointycastle: dependency: transitive description: @@ -378,15 +378,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" - tbdex: - dependency: "direct main" - description: - path: "." - ref: main - resolved-ref: "16e4c095efa420e770a0ee32663f1f52dcfce095" - url: "https://github.com/TBD54566975/tbdex-dart.git" - source: git - version: "0.1.0" term_glyph: dependency: transitive description: @@ -427,22 +418,40 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.0" + web5: + dependency: transitive + description: + path: "packages/web5" + ref: main + resolved-ref: d42e7f746111f2aa98350f59508793531664ddff + url: "https://github.com/TBD54566975/web5-dart.git" + source: git + version: "0.1.0" + web5_flutter: + dependency: "direct main" + description: + path: "packages/web5_flutter" + ref: main + resolved-ref: d42e7f746111f2aa98350f59508793531664ddff + url: "https://github.com/TBD54566975/web5-dart.git" + source: git + version: "0.1.0" webview_flutter: dependency: "direct main" description: name: webview_flutter - sha256: "42393b4492e629aa3a88618530a4a00de8bb46e50e7b3993fedbfdc5352f0dbf" + sha256: "60e23976834e995c404c0b21d3b9db37ecd77d3303ef74f8b8d7a7b19947fc04" url: "https://pub.dev" source: hosted - version: "4.4.2" + version: "4.4.3" webview_flutter_android: dependency: transitive description: name: webview_flutter_android - sha256: b54c89fe14a6d26a2a46e24880da0441cdd2bf1f6d01a5b3e1d39558feb1de0b + sha256: "161af93c2abaf94ef2192bffb53a3658b2d721a3bf99b69aa1e47814ee18cc96" url: "https://pub.dev" source: hosted - version: "3.13.1" + version: "3.13.2" webview_flutter_platform_interface: dependency: transitive description: @@ -455,26 +464,26 @@ packages: dependency: transitive description: name: webview_flutter_wkwebview - sha256: eebfabfa8a115b535b52031b8b26f7a4b58ceceab378bc9db8762b0fb46f7b5d + sha256: "02d8f3ebbc842704b2b662377b3ee11c0f8f1bbaa8eab6398262f40049819160" url: "https://pub.dev" source: hosted - version: "3.10.0" + version: "3.10.1" win32: dependency: transitive description: name: win32 - sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574 + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "5.2.0" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" sdks: - dart: ">=3.2.0-194.0.dev <4.0.0" + dart: ">=3.2.3 <4.0.0" flutter: ">=3.10.0" diff --git a/frontend/pubspec.yaml b/frontend/pubspec.yaml index f8fb6107..9ce2f88a 100644 --- a/frontend/pubspec.yaml +++ b/frontend/pubspec.yaml @@ -12,9 +12,10 @@ dependencies: flutter_localizations: sdk: flutter - tbdex: + web5_flutter: git: - url: https://github.com/TBD54566975/tbdex-dart.git + url: https://github.com/TBD54566975/web5-dart.git + path: packages/web5_flutter ref: main flutter_hooks: ^0.20.3