initiateSecureSession static method
Future<SecureSession>
initiateSecureSession({
- required String localPeerId,
- required Future<
Map< sendToRemote(),String, dynamic> > - List<
CryptoAlgorithm> ? supportedAsymmetric, - List<
CryptoAlgorithm> ? supportedSymmetric, - CryptoAlgorithm? preferredAsymmetric,
- CryptoAlgorithm? preferredSymmetric,
Full workflow for session initiator
Implementation
static Future<SecureSession> initiateSecureSession({
required String localPeerId,
required Future<Map<String, dynamic>> Function(Map<String, dynamic>) sendToRemote,
List<CryptoAlgorithm>? supportedAsymmetric,
List<CryptoAlgorithm>? supportedSymmetric,
CryptoAlgorithm? preferredAsymmetric,
CryptoAlgorithm? preferredSymmetric,
}) async {
final sessionManager = createSessionManager();
final localCapabilities = createDefaultCapabilities(
peerId: localPeerId,
supportedAsymmetric: supportedAsymmetric,
supportedSymmetric: supportedSymmetric,
preferredAsymmetric: preferredAsymmetric,
preferredSymmetric: preferredSymmetric,
);
// Step 1: Send initiation message
final initiationMessage = await sessionManager.initiateSession(localCapabilities);
// Step 2: Receive response from remote peer
final responseMessage = await sendToRemote(initiationMessage);
// Step 3: Finalize session
final session = await sessionManager.finalizeSession(responseMessage);
return session;
}