- Should the send/receive chains own their keys? (They currently do) - Maybe instead of Vec everything can be stored as [u8; 32]? - X3DH to establish shared secret root key (using the shared session key established by x3dh) - Implement certificate publication / server setup - Allow Sha256 or Sha512 as the instantiation (template variable) ### Possible future directions: - Encrypted headers - Signal docs [section 4](https://signal.org/docs/specifications/doubleratchet/#double-ratchet-with-header-encryption)