//--------------------------------------------------------Constructor:----------------------------------------------------------------\\
 #region --Constructors--
 public OmemoKeyExchangeMessage(uint pkId, uint spkId, ECPubKeyModel ik, ECPubKeyModel ek, OmemoAuthenticatedMessage message)
 {
     PK_ID   = pkId;
     SPK_ID  = spkId;
     IK      = ik;
     EK      = ek;
     MESSAGE = message;
 }
 public OmemoKeyExchangeMessage(byte[] data)
 {
     PK_ID  = BitConverter.ToUInt32(data, 0);
     SPK_ID = BitConverter.ToUInt32(data, 4);
     IK     = new ECPubKeyModel(new byte[KeyHelper.PUB_KEY_SIZE]);
     Buffer.BlockCopy(data, 8, IK.key, 0, IK.key.Length);
     EK = new ECPubKeyModel(new byte[KeyHelper.PUB_KEY_SIZE]);
     Buffer.BlockCopy(data, 8 + IK.key.Length, EK.key, 0, EK.key.Length);
     byte[] msg = new byte[data.Length - 4 - 4 - IK.key.Length - EK.key.Length];
     Buffer.BlockCopy(data, 8 + IK.key.Length + EK.key.Length, msg, 0, msg.Length);
     MESSAGE = new OmemoAuthenticatedMessage(msg);
     Validate();
 }