public void Test_OmemoKeyExchangeMessage() { Random rand = new Random(); byte[] hmac = new byte[16]; rand.NextBytes(hmac); byte[] sessionKey = new byte[32]; rand.NextBytes(sessionKey); IdentityKeyPairModel identityKey = KeyHelper.GenerateIdentityKeyPair(); SignedPreKeyModel signedPreKey = KeyHelper.GenerateSignedPreKey(0, identityKey.privKey); OmemoSessionModel refOmemoSession = new OmemoSessionModel(new Bundle() { identityKey = identityKey.pubKey, preKeys = KeyHelper.GeneratePreKeys(0, 10), preKeySignature = signedPreKey.signature, signedPreKey = signedPreKey.preKey.pubKey, signedPreKeyId = signedPreKey.preKey.keyId }, 0, KeyHelper.GenerateIdentityKeyPair()) { ek = KeyHelper.GenerateKeyPair().pubKey }; OmemoMessage refOmemoMessage = new OmemoMessage(refOmemoSession); OmemoAuthenticatedMessage refOmemoAuthenticatedMessage = new OmemoAuthenticatedMessage(new byte[16], refOmemoMessage.ToByteArray()); OmemoKeyExchangeMessage refOmemoKeyExchangeMessage = new OmemoKeyExchangeMessage((uint)rand.Next(), (uint)rand.Next(), KeyHelper.GenerateKeyPair().pubKey, KeyHelper.GenerateKeyPair().pubKey, refOmemoAuthenticatedMessage); byte[] data = refOmemoKeyExchangeMessage.ToByteArray(); Assert.IsTrue(data.Length > 0); OmemoKeyExchangeMessage omemoKeyExchangeMessage = new OmemoKeyExchangeMessage(data); Assert.IsTrue(omemoKeyExchangeMessage.Equals(refOmemoKeyExchangeMessage)); }