buildSecure static method
Implementation
static Future<SwampConnection> buildSecure(
Uri address,
Cipher cipher, {
String Function(Uint8List) roomCodeEncoder = encodeRoomCode,
Uint8List Function(String) roomCodeDecoder = decodeRoomCode,
String split = kDefaultSwampSplit,
RoomFlags flags = const RoomFlags(),
}) async {
var roomId = address.hasFragment ? address.fragment : null;
SecretKey key;
if (roomId != null) {
var splitted = roomId.split(split);
roomId = splitted[0];
key = await cipher.newSecretKeyFromBytes(roomCodeDecoder(splitted[1]));
} else {
key = await cipher.newSecretKey();
}
final e2ee = E2EENetworkerPipe(cipher: cipher, secretKey: key);
final connection = SwampConnection(
server: address.replace(fragment: ''),
roomId: roomId == null ? null : roomCodeDecoder(roomId),
roomCodeEncoder: roomCodeEncoder,
roomCodeDecoder: roomCodeDecoder,
e2eePipe: e2ee,
flags: flags,
split: split,
);
return connection;
}