File tree Expand file tree Collapse file tree
openmls/src/group/mls_group Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11use errors:: { ExportGroupInfoError , ExportSecretError } ;
2- use openmls_traits:: { crypto:: OpenMlsCrypto , signatures:: Signer } ;
2+ use openmls_traits:: { crypto:: OpenMlsCrypto , signatures:: Signer , types :: HashType } ;
33
44#[ cfg( feature = "extensions-draft-08" ) ]
55use crate :: group:: { PendingSafeExportSecretError , SafeExportSecretError } ;
@@ -99,6 +99,20 @@ impl MlsGroup {
9999 self . group_epoch_secrets ( ) . epoch_authenticator ( )
100100 }
101101
102+ /// Returns a hint (first 8 bytes of SHA-256 hash) of the sender data secret.
103+ /// XMTP ONLY USED FOR DEBUGGING PURPOSES.
104+ pub fn sender_data_secret_hint < Provider : OpenMlsProvider > ( & self , provider : & Provider ) -> Vec < u8 > {
105+ let crypto = provider. crypto ( ) ;
106+ let message_secrets = self . message_secrets_store . message_secrets ( ) ;
107+ let sender_data_secret_bytes = message_secrets. sender_data_secret ( ) . as_slice ( ) ; // Secret type in OpenMLS exposes as_slice()
108+ let sender_data_secret_tag = crypto
109+ . hash ( HashType :: Sha2_256 , sender_data_secret_bytes)
110+ . unwrap_or_default ( ) ;
111+ sender_data_secret_tag[ ..sender_data_secret_tag. len ( ) . min ( 8 ) ] . to_vec ( )
112+ }
113+
114+
115+
102116 /// Returns the resumption PSK secret of the current epoch.
103117 pub fn resumption_psk_secret ( & self ) -> & ResumptionPskSecret {
104118 self . group_epoch_secrets ( ) . resumption_psk ( )
You can’t perform that action at this time.
0 commit comments