🔐

DIDComm Dart Package Overview

Jul 17, 2025

Summary

  • The meeting covered the integration and use of the DIDComm Dart package for secure, decentralized messaging using DIDComm v2.
  • Key features, security considerations, installation steps, message workflows, and verification mechanisms were discussed.
  • The session provided detailed implementation guidance, security best practices, and troubleshooting avenues for DIDComm in Dart-based applications.

Action Items

  • No specific action items were identified in the provided transcript.

Overview and Core Concepts

  • The DIDComm Dart package enables secure messaging based on decentralized identifiers (DIDs) and the DIDComm v2 protocol.
  • Supports DID methods did:peer, did:key, and did:web, as well as key types like P256, ED25519, and SECP256K1 for encrypting and signing messages.
  • Integrates with Affinidi Dart SSI for key management and digital wallets.

Key Features and Security

  • Implements DIDComm v2 message envelopes: plaintext, signed, encrypted (authcrypt and anoncrypt), and combinations thereof.
  • Message types and envelope combinations provide varying levels of confidentiality, authenticity, non-repudiation, and sender anonymity.
  • Strict addressing consistency between message headers and cryptographic envelopes enforced by default, with the option to disable for debugging.

Installation and Requirements

  • Requires Dart SDK version ^3.6.0.
  • Install via dart pub add didcomm or add to pubspec.yaml and run dart pub get.

Usage Examples and Workflows

  • Detailed sample code for creating DIDs, composing plaintext messages, signing, and encrypting them using either authenticated or anonymous encryption.
  • High-level helpers are provided for packing messages into encrypted, signed, or combined envelopes.
  • Unpacking and verifying messages relies on specifying expected wrapping types and signers to prevent downgrade attacks and ensure message integrity.

Message Verification and Processing

  • Addressing consistency checks are automatic in unpacking to prevent spoofing or misrouting.
  • Developers are encouraged to specify expectedMessageWrappingTypes and expectedSigners when unpacking for security.
  • onUnpacked callback allows for custom application-level message validation and business logic at the point of message receipt.

Problem Reporting

  • DIDComm v2 defines a standard problem-report message type for communicating protocol errors or warnings.
  • Structure and sample code provided for constructing compliant problem-report messages.

Key Type Derivation

  • Ed25519 keys are automatically paired with X25519 for key agreement by the underlying Dart SSI package.

Support and Contribution

  • Technical issues should be reported through GitHub after searching for duplicates.
  • Contributions are welcome, and guidelines are provided in the project repository.

Decisions

  • No explicit decisions were recorded in the provided transcript.

Open Questions / Follow-Ups

  • None identified in the transcript.