From db60eaacaf58df1feb00f73f7945f93a073d5601 Mon Sep 17 00:00:00 2001 From: npub1tquskdu6yc4h8l7xxtceculxw600grekeq0xg2ukqfrwl7vrzg3quz3gmp <58390b379a262b73ffc632f19c73e6769ef40f36c81e642b960246eff9831222@buzz.block.builderlab.xyz> Date: Sun, 2 Aug 2026 19:57:14 -0700 Subject: [PATCH] test(mobile): reuse pointycastle for WebSocket handshake Co-authored-by: Tom Brow Signed-off-by: Tom Brow --- mobile/pubspec.lock | 2 +- mobile/pubspec.yaml | 1 - .../relay/relay_socket_liveness_test.dart | 17 +++++++++-------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 6287e4c86c..05ccc2ea0f 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -274,7 +274,7 @@ packages: source: hosted version: "0.3.5+2" crypto: - dependency: "direct dev" + dependency: transitive description: name: crypto sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 41d2a0aeb8..42b7935582 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -47,7 +47,6 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^6.0.0 - crypto: ^3.0.7 custom_lint: ^0.8.0 riverpod_lint: ^3.1.0 mocktail: ^1.0.4 diff --git a/mobile/test/shared/relay/relay_socket_liveness_test.dart b/mobile/test/shared/relay/relay_socket_liveness_test.dart index 835ebc2b61..cb930b3f4c 100644 --- a/mobile/test/shared/relay/relay_socket_liveness_test.dart +++ b/mobile/test/shared/relay/relay_socket_liveness_test.dart @@ -1,10 +1,11 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; +import 'dart:typed_data'; import 'package:buzz/shared/relay/relay_socket.dart'; -import 'package:crypto/crypto.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:pointycastle/digests/sha1.dart'; /// A server that completes the WS handshake then never speaks again: no pongs, /// no close frame. Only a client-side ping timeout can notice. @@ -19,13 +20,13 @@ Future _silentAfterHandshakeServer() async { ).firstMatch(String.fromCharCodes(data)); if (match == null) return; final accept = base64.encode( - sha1 - .convert( - utf8.encode( - '${match.group(1)!.trim()}258EAFA5-E914-47DA-95CA-C5AB0DC85B11', - ), - ) - .bytes, + SHA1Digest().process( + Uint8List.fromList( + utf8.encode( + '${match.group(1)!.trim()}258EAFA5-E914-47DA-95CA-C5AB0DC85B11', + ), + ), + ), ); client.write( 'HTTP/1.1 101 Switching Protocols\r\n'