Index: lib/src/web_socket/channel.dart |
diff --git a/lib/src/web_socket/channel.dart b/lib/src/web_socket/channel.dart |
index fd1e3c5aae1dce0405683d6cdbc5503dfccaeb30..d2a6674e1d79af2d12a68716851613139c9ffbc5 100644 |
--- a/lib/src/web_socket/channel.dart |
+++ b/lib/src/web_socket/channel.dart |
@@ -3,6 +3,7 @@ |
// BSD-style license that can be found in the LICENSE file. |
import 'dart:async'; |
+import 'dart:convert'; |
import 'package:async/async.dart'; |
import 'package:crypto/crypto.dart'; |
@@ -68,11 +69,9 @@ class WebSocketChannel extends StreamChannelMixin { |
/// |
/// [initial handshake]: https://tools.ietf.org/html/rfc6455#section-4.2.2 |
static String signKey(String key) { |
- var hash = new SHA1(); |
// We use [codeUnits] here rather than UTF-8-decoding the string because |
// [key] is expected to be base64 encoded, and so will be pure ASCII. |
- hash.add((key + webSocketGUID).codeUnits); |
- return CryptoUtils.bytesToBase64(hash.close()); |
+ return BASE64.encode(sha1.convert((key + webSocketGUID).codeUnits).bytes); |
} |
/// Creates a new WebSocket handling messaging across an existing socket. |