From 0177bf2a11e60231da5112fce374cac5544350ad Mon Sep 17 00:00:00 2001 From: otsmr Date: Sat, 12 Jul 2025 01:08:15 +0200 Subject: [PATCH] use native crypto for better speed --- ios/Podfile.lock | 182 ++++++++++-------- lib/src/services/api/media_download.dart | 5 +- lib/src/services/api/media_upload.dart | 9 +- .../background.notifications.dart | 3 +- .../notifications/pushkeys.notifications.dart | 3 +- .../create_backup.twonly_safe.dart | 7 +- .../twonly_safe/restore.twonly_safe.dart | 3 +- .../settings/profile/modify_avatar.view.dart | 9 +- pubspec.lock | 160 +++++++-------- pubspec.yaml | 3 +- 10 files changed, 206 insertions(+), 178 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index c4d6f7d..e41a347 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -5,62 +5,64 @@ PODS: - Flutter - connectivity_plus (0.0.1): - Flutter + - cryptography_flutter_plus (0.2.0): + - Flutter - device_info_plus (0.0.1): - Flutter - - Firebase (11.10.0): - - Firebase/Core (= 11.10.0) - - Firebase/Core (11.10.0): + - Firebase (11.15.0): + - Firebase/Core (= 11.15.0) + - Firebase/Core (11.15.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 11.10.0) - - Firebase/CoreOnly (11.10.0): - - FirebaseCore (~> 11.10.0) - - Firebase/Messaging (11.10.0): + - FirebaseAnalytics (~> 11.15.0) + - Firebase/CoreOnly (11.15.0): + - FirebaseCore (~> 11.15.0) + - Firebase/Messaging (11.15.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.10.0) - - firebase_core (3.13.1): - - Firebase/CoreOnly (= 11.10.0) + - FirebaseMessaging (~> 11.15.0) + - firebase_core (3.15.1): + - Firebase/CoreOnly (= 11.15.0) - Flutter - - firebase_messaging (15.2.6): - - Firebase/Messaging (= 11.10.0) + - firebase_messaging (15.2.9): + - Firebase/Messaging (= 11.15.0) - firebase_core - Flutter - - FirebaseAnalytics (11.10.0): - - FirebaseAnalytics/AdIdSupport (= 11.10.0) - - FirebaseCore (~> 11.10.0) + - FirebaseAnalytics (11.15.0): + - FirebaseAnalytics/Default (= 11.15.0) + - FirebaseCore (~> 11.15.0) - FirebaseInstallations (~> 11.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/AdIdSupport (11.10.0): - - FirebaseCore (~> 11.10.0) + - FirebaseAnalytics/Default (11.15.0): + - FirebaseCore (~> 11.15.0) - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement (= 11.10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - GoogleAppMeasurement/Default (= 11.15.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - FirebaseCore (11.10.0): - - FirebaseCoreInternal (~> 11.10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreInternal (11.10.0): - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseInstallations (11.10.0): - - FirebaseCore (~> 11.10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - FirebaseCore (11.15.0): + - FirebaseCoreInternal (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Logger (~> 8.1) + - FirebaseCoreInternal (11.15.0): + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FirebaseInstallations (11.15.0): + - FirebaseCore (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.10.0): - - FirebaseCore (~> 11.10.0) + - FirebaseMessaging (11.15.0): + - FirebaseCore (~> 11.15.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Reachability (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Reachability (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - nanopb (~> 3.30910.0) - Flutter (1.0.0) - flutter_image_compress_common (1.0.0): @@ -80,25 +82,31 @@ PODS: - gal (1.0.0): - Flutter - FlutterMacOS - - GoogleAppMeasurement (11.10.0): - - GoogleAppMeasurement/AdIdSupport (= 11.10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - GoogleAdsOnDeviceConversion (2.1.0): + - GoogleUtilities/Logger (~> 8.1) + - GoogleUtilities/Network (~> 8.1) - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/AdIdSupport (11.10.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - GoogleAppMeasurement/Core (11.15.0): + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/WithoutAdIdSupport (11.10.0): - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - GoogleAppMeasurement/Default (11.15.0): + - GoogleAdsOnDeviceConversion (= 2.1.0) + - GoogleAppMeasurement/Core (= 11.15.0) + - GoogleAppMeasurement/IdentitySupport (= 11.15.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - nanopb (~> 3.30910.0) + - GoogleAppMeasurement/IdentitySupport (11.15.0): + - GoogleAppMeasurement/Core (= 11.15.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - GoogleDataTransport (10.1.0): - nanopb (~> 3.30910.0) @@ -182,9 +190,9 @@ PODS: - restart_app (0.0.1): - Flutter - ScreenProtectorKit (1.3.1) - - SDWebImage (5.21.0): - - SDWebImage/Core (= 5.21.0) - - SDWebImage/Core (5.21.0) + - SDWebImage (5.21.1): + - SDWebImage/Core (= 5.21.1) + - SDWebImage/Core (5.21.1) - SDWebImageWebPCoder (0.14.6): - libwebp (~> 1.0) - SDWebImage/Core (~> 5.17) @@ -196,23 +204,23 @@ PODS: - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - - sqlite3 (3.49.2): - - sqlite3/common (= 3.49.2) - - sqlite3/common (3.49.2) - - sqlite3/dbstatvtab (3.49.2): + - sqlite3 (3.50.2): + - sqlite3/common (= 3.50.2) + - sqlite3/common (3.50.2) + - sqlite3/dbstatvtab (3.50.2): - sqlite3/common - - sqlite3/fts5 (3.49.2): + - sqlite3/fts5 (3.50.2): - sqlite3/common - - sqlite3/math (3.49.2): + - sqlite3/math (3.50.2): - sqlite3/common - - sqlite3/perf-threadsafe (3.49.2): + - sqlite3/perf-threadsafe (3.50.2): - sqlite3/common - - sqlite3/rtree (3.49.2): + - sqlite3/rtree (3.50.2): - sqlite3/common - sqlite3_flutter_libs (0.0.1): - Flutter - FlutterMacOS - - sqlite3 (~> 3.49.2) + - sqlite3 (~> 3.50.1) - sqlite3/dbstatvtab - sqlite3/fts5 - sqlite3/math @@ -234,6 +242,7 @@ DEPENDENCIES: - background_downloader (from `.symlinks/plugins/background_downloader/ios`) - camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`) - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) + - cryptography_flutter_plus (from `.symlinks/plugins/cryptography_flutter_plus/ios`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - Firebase - firebase_core (from `.symlinks/plugins/firebase_core/ios`) @@ -274,6 +283,7 @@ SPEC REPOS: - FirebaseCoreInternal - FirebaseInstallations - FirebaseMessaging + - GoogleAdsOnDeviceConversion - GoogleAppMeasurement - GoogleDataTransport - GoogleUtilities @@ -294,6 +304,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/camera_avfoundation/ios" connectivity_plus: :path: ".symlinks/plugins/connectivity_plus/ios" + cryptography_flutter_plus: + :path: ".symlinks/plugins/cryptography_flutter_plus/ios" device_info_plus: :path: ".symlinks/plugins/device_info_plus/ios" firebase_core: @@ -349,15 +361,16 @@ SPEC CHECKSUMS: background_downloader: 50e91d979067b82081aba359d7d916b3ba5fadad camera_avfoundation: be3be85408cd4126f250386828e9b1dfa40ab436 connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd + cryptography_flutter_plus: 44f4e9e4079395fcbb3e7809c0ac2c6ae2d9576f device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe - Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2 - firebase_core: ba71b44041571da878cb624ce0d80250bcbe58ad - firebase_messaging: 13129fe2ca166d1ed2d095062d76cee88943d067 - FirebaseAnalytics: 4e42333f02cf78ed93703a5c36f36dd518aebdef - FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7 - FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679 - FirebaseInstallations: 9980995bdd06ec8081dfb6ab364162bdd64245c3 - FirebaseMessaging: 2b9f56aa4ed286e1f0ce2ee1d413aabb8f9f5cb9 + Firebase: d99ac19b909cd2c548339c2241ecd0d1599ab02e + firebase_core: ece862f94b2bc72ee0edbeec7ab5c7cb09fe1ab5 + firebase_messaging: e1a5fae495603115be1d0183bc849da748734e2b + FirebaseAnalytics: 6433dfd311ba78084fc93bdfc145e8cb75740eae + FirebaseCore: efb3893e5b94f32b86e331e3bd6dadf18b66568e + FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 + FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 + FirebaseMessaging: 3b26e2cee503815e01c3701236b020aa9b576f09 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1 flutter_keyboard_visibility: 4625131e43015dbbe759d9b20daaf77e0e3f6619 @@ -365,12 +378,13 @@ SPEC CHECKSUMS: flutter_secure_storage_darwin: ce237a8775b39723566dc72571190a3769d70468 flutter_zxing: e8bcc43bd3056c70c271b732ed94e7a16fd62f93 gal: baecd024ebfd13c441269ca7404792a7152fde89 - GoogleAppMeasurement: 36684bfb3ee034e2b42b4321eb19da3a1b81e65d + GoogleAdsOnDeviceConversion: 2be6297a4f048459e0ae17fad9bfd2844e10cf64 + GoogleAppMeasurement: 700dce7541804bec33db590a5c496b663fbe2539 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 - local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 + local_auth_darwin: d2e8c53ef0c4f43c646462e3415432c4dab3ae19 Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 no_screenshot: 6d183496405a3ab709a67a54e5cd0f639e94729e @@ -380,13 +394,13 @@ SPEC CHECKSUMS: PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 restart_app: 9cda5378aacc5000e3f66ee76a9201534e7d3ecf ScreenProtectorKit: 83a6281b02c7a5902ee6eac4f5045f674e902ae4 - SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868 + SDWebImage: f29024626962457f3470184232766516dee8dfea SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 - sqlite3: 3c950dc86011117c307eb0b28c4a7bb449dce9f1 - sqlite3_flutter_libs: 74334e3ef2dbdb7d37e50859bb45da43935779c4 + sqlite3: 3e82a2daae39ba3b41ae6ee84a130494585460fc + sqlite3_flutter_libs: e7fc8c9ea2200ff3271f08f127842131746b70e2 SwiftProtobuf: 3697407f0d5b23bedeba9c2eaaf3ec6fdff69349 url_launcher_ios: 694010445543906933d732453a59da0a173ae33d video_compress: f2133a07762889d67f0711ac831faa26f956980e diff --git a/lib/src/services/api/media_download.dart b/lib/src/services/api/media_download.dart index a4066ca..f27ed1e 100644 --- a/lib/src/services/api/media_download.dart +++ b/lib/src/services/api/media_download.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:background_downloader/background_downloader.dart'; import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:cryptography_flutter_plus/cryptography_flutter_plus.dart'; import 'package:drift/drift.dart'; import 'package:http/http.dart' as http; import 'package:path/path.dart'; @@ -247,7 +248,7 @@ Future handleEncryptedFile(int messageId) async { MediaMessageContent content = MediaMessageContent.fromJson(jsonDecode(msg.contentJson!)); - final xchacha20 = Xchacha20.poly1305Aead(); + final chacha20 = FlutterChacha20.poly1305Aead(); SecretKeyData secretKeyData = SecretKeyData(content.encryptionKey!); SecretBox secretBox = SecretBox( @@ -258,7 +259,7 @@ Future handleEncryptedFile(int messageId) async { try { final plaintextBytes = - await xchacha20.decrypt(secretBox, secretKey: secretKeyData); + await chacha20.decrypt(secretBox, secretKey: secretKeyData); var imageBytes = Uint8List.fromList(plaintextBytes); if (content.isVideo) { diff --git a/lib/src/services/api/media_upload.dart b/lib/src/services/api/media_upload.dart index d7a740f..a5ce4de 100644 --- a/lib/src/services/api/media_upload.dart +++ b/lib/src/services/api/media_upload.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:math'; import 'package:background_downloader/background_downloader.dart'; +import 'package:cryptography_flutter_plus/cryptography_flutter_plus.dart'; import 'package:fixnum/fixnum.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -295,13 +296,13 @@ Future encryptMediaFiles( var state = MediaEncryptionData(); - final xchacha20 = Xchacha20.poly1305Aead(); - SecretKeyData secretKey = await (await xchacha20.newSecretKey()).extract(); + final chacha20 = FlutterChacha20.poly1305Aead(); + SecretKeyData secretKey = await (await chacha20.newSecretKey()).extract(); state.encryptionKey = secretKey.bytes; - state.encryptionNonce = xchacha20.newNonce(); + state.encryptionNonce = chacha20.newNonce(); - final secretBox = await xchacha20.encrypt( + final secretBox = await chacha20.encrypt( dataToEncrypt, secretKey: secretKey, nonce: state.encryptionNonce, diff --git a/lib/src/services/notifications/background.notifications.dart b/lib/src/services/notifications/background.notifications.dart index b19c429..074946b 100644 --- a/lib/src/services/notifications/background.notifications.dart +++ b/lib/src/services/notifications/background.notifications.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'dart:math'; +import 'package:cryptography_flutter_plus/cryptography_flutter_plus.dart'; import 'package:cryptography_plus/cryptography_plus.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:path_provider/path_provider.dart'; @@ -99,7 +100,7 @@ Future handlePushData(String pushDataB64) async { Future tryDecryptMessage( List key, EncryptedPushNotification push) async { try { - final chacha20 = Chacha20.poly1305Aead(); + final chacha20 = FlutterChacha20.poly1305Aead(); SecretKeyData secretKeyData = SecretKeyData(key); SecretBox secretBox = SecretBox( diff --git a/lib/src/services/notifications/pushkeys.notifications.dart b/lib/src/services/notifications/pushkeys.notifications.dart index 7795e45..c2a1a1d 100644 --- a/lib/src/services/notifications/pushkeys.notifications.dart +++ b/lib/src/services/notifications/pushkeys.notifications.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:math'; import 'package:collection/collection.dart'; +import 'package:cryptography_flutter_plus/cryptography_flutter_plus.dart'; import 'package:cryptography_plus/cryptography_plus.dart'; import 'package:fixnum/fixnum.dart'; import 'package:flutter/services.dart'; @@ -230,7 +231,7 @@ Future getPushData(int toUserId, PushNotification content) async { } } - final chacha20 = Chacha20.poly1305Aead(); + final chacha20 = FlutterChacha20.poly1305Aead(); final nonce = chacha20.newNonce(); final secretBox = await chacha20.encrypt( content.writeToBuffer(), diff --git a/lib/src/services/twonly_safe/create_backup.twonly_safe.dart b/lib/src/services/twonly_safe/create_backup.twonly_safe.dart index 11102ef..4d77a0a 100644 --- a/lib/src/services/twonly_safe/create_backup.twonly_safe.dart +++ b/lib/src/services/twonly_safe/create_backup.twonly_safe.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:background_downloader/background_downloader.dart'; +import 'package:cryptography_flutter_plus/cryptography_flutter_plus.dart'; import 'package:cryptography_plus/cryptography_plus.dart'; import 'package:drift/drift.dart'; import 'package:drift_flutter/drift_flutter.dart'; @@ -134,10 +135,10 @@ Future performTwonlySafeBackup({bool force = false}) async { // Encrypt backup data - final xchacha20 = Xchacha20.poly1305Aead(); - final nonce = xchacha20.newNonce(); + final chacha20 = FlutterChacha20.poly1305Aead(); + final nonce = chacha20.newNonce(); - final secretBox = await xchacha20.encrypt( + final secretBox = await chacha20.encrypt( backupBytes, secretKey: SecretKey(user.twonlySafeBackup!.encryptionKey), nonce: nonce, diff --git a/lib/src/services/twonly_safe/restore.twonly_safe.dart b/lib/src/services/twonly_safe/restore.twonly_safe.dart index 15c3997..64fbf30 100644 --- a/lib/src/services/twonly_safe/restore.twonly_safe.dart +++ b/lib/src/services/twonly_safe/restore.twonly_safe.dart @@ -1,5 +1,6 @@ import 'dart:convert'; import 'dart:io'; +import 'package:cryptography_flutter_plus/cryptography_flutter_plus.dart'; import 'package:cryptography_plus/cryptography_plus.dart'; import 'package:drift/drift.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -72,7 +73,7 @@ Future handleBackupData( mac: Mac(encryptedBackup.mac), ); - final compressedBytes = await Xchacha20.poly1305Aead().decrypt( + final compressedBytes = await FlutterChacha20.poly1305Aead().decrypt( secretBox, secretKey: SecretKeyData(encryptionKey), ); diff --git a/lib/src/views/settings/profile/modify_avatar.view.dart b/lib/src/views/settings/profile/modify_avatar.view.dart index ca56b86..02112c7 100644 --- a/lib/src/views/settings/profile/modify_avatar.view.dart +++ b/lib/src/views/settings/profile/modify_avatar.view.dart @@ -89,12 +89,11 @@ class ModifyAvatar extends StatelessWidget { IconButton( icon: FaIcon(FontAwesomeIcons.floppyDisk), onPressed: () async { - final avatarmakerController = + final avatarMakerController = Get.find(); - await avatarmakerController.saveAvatarSVG(); - final json = - await AvatarMakerController.getJsonOptions(); - final svg = await AvatarMakerController.getAvatarSVG(); + await avatarMakerController.saveAvatarSVG(); + final json = avatarMakerController.getJsonOptionsSync(); + final svg = avatarMakerController.getAvatarSVGSync(); await updateUserAvatar(json, svg); if (context.mounted) { Navigator.pop(context); diff --git a/pubspec.lock b/pubspec.lock index bd32bbf..f7ea4d8 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f + sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f url: "https://pub.dev" source: hosted - version: "82.0.0" + version: "85.0.0" _flutterfire_internals: dependency: transitive description: name: _flutterfire_internals - sha256: "214e6f07e2a44f45972e0365c7b537eaeaddb4598db0778dd4ac64b4acd3f5b1" + sha256: a5788040810bd84400bc209913fbc40f388cded7cdf95ee2f5d2bff7e38d5241 url: "https://pub.dev" source: hosted - version: "1.3.55" + version: "1.3.58" adaptive_number: dependency: transitive description: @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: analyzer - sha256: "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0" + sha256: de617bfdc64f3d8b00835ec2957441ceca0a29cdf7881f7ab231bc14f71159c0 url: "https://pub.dev" source: hosted - version: "7.4.5" + version: "7.5.6" archive: dependency: transitive description: @@ -61,10 +61,10 @@ packages: dependency: "direct main" description: name: avatar_maker - sha256: "9b147ae54d81d6ddea240bf7ac9920f0dbacdb138dabf119bb769f109ba05f8f" + sha256: ca182e33343846427da68fc226325f630063da2de2f0bdb49e683f0c843b80c2 url: "https://pub.dev" source: hosted - version: "0.2.1" + version: "0.4.0" background_downloader: dependency: "direct main" description: @@ -85,10 +85,10 @@ packages: dependency: transitive description: name: build - sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 + sha256: "51dc711996cbf609b90cbe5b335bbce83143875a9d58e4b5c6d3c4f684d3dda7" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.4" build_config: dependency: transitive description: @@ -109,26 +109,26 @@ packages: dependency: transitive description: name: build_resolvers - sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 + sha256: ee4257b3f20c0c90e72ed2b57ad637f694ccba48839a821e87db762548c22a62 url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.5.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" + sha256: "382a4d649addbfb7ba71a3631df0ec6a45d5ab9b098638144faf27f02778eb53" url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.5.4" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" + sha256: "85fbbb1036d576d966332a3f5ce83f2ce66a40bea1a94ad2d5fc29a19a0d3792" url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "9.1.2" built_collection: dependency: transitive description: @@ -173,26 +173,26 @@ packages: dependency: "direct main" description: name: camera - sha256: "413d2b34fe28496c35c69ede5b232fb9dd5ca2c3a4cb606b14efc1c7546cc8cb" + sha256: d6ec2cbdbe2fa8f5e0d07d8c06368fe4effa985a4a5ddade9cc58a8cd849557d url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.11.2" camera_android_camerax: dependency: transitive description: name: camera_android_camerax - sha256: "68d7ec97439108ac22cfba34bb74d0ab53adbc017175116d2cbc5a3d8fc8ea5e" + sha256: "4b6c1bef4270c39df96402c4d62f2348c3bb2bbaefd0883b9dbd58f426306ad0" url: "https://pub.dev" source: hosted - version: "0.6.18+2" + version: "0.6.19" camera_avfoundation: dependency: transitive description: name: camera_avfoundation - sha256: ca244564876d5a76f2126bca501aec25243cad23ba1784819242aea2fd25cf70 + sha256: "14d7698b26e95a7db371bee1b07358245e5100640ab5e07c036be23f51383d43" url: "https://pub.dev" source: hosted - version: "0.9.19+2" + version: "0.9.20+2" camera_platform_interface: dependency: transitive description: @@ -305,6 +305,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.6" + cryptography_flutter_plus: + dependency: "direct main" + description: + name: cryptography_flutter_plus + sha256: "35a8c270aae0abaac7125a6b6b33c2b3daa0ea90d85320aa7d588b6dd6c2edc9" + url: "https://pub.dev" + source: hosted + version: "2.3.4" cryptography_plus: dependency: "direct main" description: @@ -365,18 +373,18 @@ packages: dependency: "direct main" description: name: drift - sha256: b584ddeb2b74436735dd2cf746d2d021e19a9a6770f409212fd5cbc2814ada85 + sha256: e60c715f045dd33624fc533efb0075e057debec9f39e83843e518f488a0e21fb url: "https://pub.dev" source: hosted - version: "2.26.1" + version: "2.27.0" drift_dev: dependency: "direct dev" description: name: drift_dev - sha256: "54dc207c6e4662741f60e5752678df183957ab907754ffab0372a7082f6d2816" + sha256: "7ad88b8982e753eadcdbc0ea7c7d30500598af733601428b5c9d264baf5106d6" url: "https://pub.dev" source: hosted - version: "2.26.1" + version: "2.27.0" drift_flutter: dependency: "direct main" description: @@ -453,50 +461,50 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: "8cfe3c900512399ce8d50fcc817e5758ff8615eeb6fa5c846a4cc47bbf6353b6" + sha256: c6e8a6bf883d8ddd0dec39be90872daca65beaa6f4cff0051ed3b16c56b82e9f url: "https://pub.dev" source: hosted - version: "3.13.1" + version: "3.15.1" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf + sha256: "5dbc900677dcbe5873d22ad7fbd64b047750124f1f9b7ebe2a33b9ddccc838eb" url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: ddd72baa6f727e5b23f32d9af23d7d453d67946f380bd9c21daf474ee0f7326e + sha256: "0ed0dc292e8f9ac50992e2394e9d336a0275b6ae400d64163fdf0a8a8b556c37" url: "https://pub.dev" source: hosted - version: "2.23.0" + version: "2.24.1" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "38111089e511f03daa2c66b4c3614c16421b7d78c84ee04331a0a65b47df4542" + sha256: "0f3363f97672eb9f65609fa00ed2f62cc8ec93e7e2d4def99726f9165d3d8a73" url: "https://pub.dev" source: hosted - version: "15.2.6" + version: "15.2.9" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: ba254769982e5f439e534eed68856181c74e2b3f417c8188afad2bb440807cc7 + sha256: "7a05ef119a14c5f6a9440d1e0223bcba20c8daf555450e119c4c477bf2c3baa9" url: "https://pub.dev" source: hosted - version: "4.6.6" + version: "4.6.9" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: dba89137272aac39e95f71408ba25c33fb8ed903cd5fa8d1e49b5cd0d96069e0 + sha256: a4547f76da2a905190f899eb4d0150e1d0fd52206fce469d9f05ae15bb68b2c5 url: "https://pub.dev" source: hosted - version: "3.10.6" + version: "3.10.9" fixnum: dependency: "direct main" description: @@ -618,10 +626,10 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c + sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" url: "https://pub.dev" source: hosted - version: "0.14.3" + version: "0.14.4" flutter_lints: dependency: "direct dev" description: @@ -634,10 +642,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: b94a50aabbe56ef254f95f3be75640f99120429f0a153b2dc30143cffc9bfdf3 + sha256: edae0c34573233ab03f5ba1f07465e55c384743893042cb19e010b4ee8541c12 url: "https://pub.dev" source: hosted - version: "19.2.1" + version: "19.3.0" flutter_local_notifications_linux: dependency: transitive description: @@ -650,18 +658,18 @@ packages: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "2569b973fc9d1f63a37410a9f7c1c552081226c597190cb359ef5d5762d1631c" + sha256: "277d25d960c15674ce78ca97f57d0bae2ee401c844b6ac80fcd972a9c99d09fe" url: "https://pub.dev" source: hosted - version: "9.0.0" + version: "9.1.0" flutter_local_notifications_windows: dependency: transitive description: name: flutter_local_notifications_windows - sha256: f8fc0652a601f83419d623c85723a3e82ad81f92b33eaa9bcc21ea1b94773e6e + sha256: "593625e6833c0def4853b361c5276464b314983c6c819178bf0fa5aba2540d86" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" flutter_localizations: dependency: "direct main" description: flutter @@ -726,10 +734,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 + sha256: cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.0" flutter_test: dependency: "direct dev" description: flutter @@ -799,10 +807,10 @@ packages: dependency: "direct main" description: name: hand_signature - sha256: e007153776b9558234761150b6b3ae98a6b3008e9b824da9911475794a982994 + sha256: "05b40d3b2d1885a5dda126f26db386660aa46e497b63c96feb91d3198a667eea" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.1.0+2" hashlib: dependency: "direct main" description: @@ -1031,10 +1039,10 @@ packages: dependency: transitive description: name: local_auth_darwin - sha256: "630996cd7b7f28f5ab92432c4b35d055dd03a747bc319e5ffbb3c4806a3e50d2" + sha256: "25163ce60a5a6c468cf7a0e3dc8a165f824cabc2aa9e39a5e9fc5c2311b7686f" url: "https://pub.dev" source: hosted - version: "1.4.3" + version: "1.5.0" local_auth_platform_interface: dependency: transitive description: @@ -1239,10 +1247,10 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: "2d070d8684b68efb580a5997eb62f675e8a885ef0be6e754fb9ef489c177470f" + sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1 url: "https://pub.dev" source: hosted - version: "12.0.0+1" + version: "12.0.1" permission_handler_android: dependency: transitive description: @@ -1342,10 +1350,10 @@ packages: dependency: transitive description: name: posix - sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62 + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.0.3" protobuf: dependency: "direct main" description: @@ -1515,10 +1523,10 @@ packages: dependency: transitive description: name: source_helper - sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" + sha256: "4f81479fe5194a622cdd1713fe1ecb683a6e6c85cd8cec8e2e35ee5ab3fdf2a1" url: "https://pub.dev" source: hosted - version: "1.3.5" + version: "1.3.6" source_span: dependency: transitive description: @@ -1587,10 +1595,10 @@ packages: dependency: transitive description: name: sqlite3_flutter_libs - sha256: "7986c26234c0a5cf4fd83ff4ee39d4195b1f47cdb50a949ec7987ede4dcbdc2a" + sha256: e07232b998755fe795655c56d1f5426e0190c9c435e1752d39e7b1cd33699c71 url: "https://pub.dev" source: hosted - version: "0.5.33" + version: "0.5.34" sqlparser: dependency: transitive description: @@ -1635,10 +1643,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" + sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.4.0" term_glyph: dependency: transitive description: @@ -1691,10 +1699,10 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_android: dependency: transitive description: @@ -1763,10 +1771,10 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 url: "https://pub.dev" source: hosted - version: "1.1.18" + version: "1.1.19" vector_graphics_codec: dependency: transitive description: @@ -1819,26 +1827,26 @@ packages: dependency: transitive description: name: video_player_avfoundation - sha256: "9ee764e5cd2fc1e10911ae8ad588e1a19db3b6aa9a6eb53c127c42d3a3c3f22f" + sha256: "9fedd55023249f3a02738c195c906b4e530956191febf0838e37d0dac912f953" url: "https://pub.dev" source: hosted - version: "2.7.1" + version: "2.8.0" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface - sha256: df534476c341ab2c6a835078066fc681b8265048addd853a1e3c78740316a844 + sha256: cf2a1d29a284db648fd66cbd18aacc157f9862d77d2cc790f6f9678a46c1db5a url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.4.0" video_player_web: dependency: transitive description: name: video_player_web - sha256: e8bba2e5d1e159d5048c9a491bb2a7b29c535c612bb7d10c1e21107f5bd365ba + sha256: "9f3c00be2ef9b76a95d94ac5119fb843dca6f2c69e6c9968f6f2b6c9e7afbdeb" url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.4.0" video_thumbnail: dependency: "direct main" description: @@ -1859,10 +1867,10 @@ packages: dependency: transitive description: name: watcher - sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" + sha256: "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" web: dependency: transitive description: @@ -1891,10 +1899,10 @@ packages: dependency: transitive description: name: win32 - sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" + sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03" url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "5.14.0" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index db24174..78f7435 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -54,7 +54,7 @@ dependencies: url_launcher: ^6.3.1 web_socket_channel: ^3.0.1 camera: ^0.11.1 - avatar_maker: ^0.2.1 + avatar_maker: ^0.4.0 flutter_svg: ^2.0.17 fixnum: ^1.1.1 mutex: ^3.1.0 @@ -71,6 +71,7 @@ dependencies: hashlib: ^2.0.0 video_thumbnail: ^0.5.6 device_info_plus: ^11.5.0 + cryptography_flutter_plus: ^2.3.4 dev_dependencies: flutter_test: