respondToSecureSession static method

Future<({Map<String, dynamic> responseMessage, SecureSession session})> respondToSecureSession({
  1. required String localPeerId,
  2. required Map<String, dynamic> initiationMessage,
  3. List<CryptoAlgorithm>? supportedAsymmetric,
  4. List<CryptoAlgorithm>? supportedSymmetric,
  5. CryptoAlgorithm? preferredAsymmetric,
  6. CryptoAlgorithm? preferredSymmetric,
})

Full workflow for session responder

Implementation

static Future<({SecureSession session, Map<String, dynamic> responseMessage})> respondToSecureSession({
  required String localPeerId,
  required Map<String, dynamic> initiationMessage,
  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: Respond to initiation
  final responseMessage = await sessionManager.respondToSession(
    initiationMessage,
    localCapabilities,
  );

  // Step 2: Complete session
  final session = await sessionManager.completeSession();

  return (session: session, responseMessage: responseMessage);
}