---
# System prepended metadata

title: Untitled

---

DIDComm API Rust vs Python

1. DIDDoc:
- [DONE] **Rust**: add DID field: OK
- DIDDoc services: DIDComm VS all: SOLVED
   - create a ticket
   - keep all in Rust;
   - keep did comm only in Python 
- Verification method public key: just str in Python SOLVED
 - keep field name public_key
 - [DONE] in **Python**: add Enum with key types and VerificationMaterial type 
 - [DONE] in **Rust**: rename public key enum to verification material
- DIDDoc: verification_methods SOLVED
 - [DONE] **Python**:  verification_methods

2. Resolvers as separate params SOLVED
 - keep impl-dependent

2. DID Resolver: SOLVED
- DID only or DID + DID URL?
 DID only
 [DONE]**Python**
 [DONE] **Rust**

3. Secrets Resolver: SOLVED
 - [DONE] **Python** get_keys(self, kids: List[DID_URL])
 - **Rust**: get_keys(self, kids: List[DID_URL])

4. Errors
- DIDNotFound VS DIDNotResolvedError: SOLVED
  - Have two errors: DIDDocNotResolvedError and DIDUrlNotFoundError? - OK
  - [DONE] **Python**: two errors
  - [DONE] **Rust**: two errors
- Common DIDCommError SOLVED
- SecretNotFound VS notResolved SOLVED
    - [DONE] **Python**: SecretNotFound
- UnsatisfiedConstraintError 
 [DONE] **Python**
 **Rust**

5. hide instead of protect SOLVED
[Done] **Rust**: protect_sender_id

6. Message SOLVED
- Message VS Plaintext
 - [DONE]**Python**: Message 
- pack/unpack methods of Message OK
- no from prior in **Rust** 

7. pack/unpack SOLVED
- forward_headers
 **Rust**: check in Rust

8. Forward API: TBD for Rust
