Example #1
0
        //[Obsolete]
        //public byte[] Pack(CryptoDtoChannelStore channelStore, string channelTag, CryptoDtoMode mode, ReadOnlySpan<byte> dtoNameBuffer, ReadOnlySpan<byte> dtoBuffer)
        //{
        //    var channel = channelStore.GetChannel(channelTag);
        //    return Pack(channel, mode, dtoNameBuffer, dtoBuffer);
        //}

        //[Obsolete]
        //public byte[] Pack(CryptoDtoChannel channel, CryptoDtoMode mode, ReadOnlySpan<byte> dtoNameBuffer, ReadOnlySpan<byte> dtoBuffer)
        //{
        //    ArrayBufferWriter<byte> arrayBufferWriter = new ArrayBufferWriter<byte>();
        //    Pack(arrayBufferWriter, channel, mode, dtoNameBuffer, dtoBuffer);
        //    return arrayBufferWriter.WrittenSpan.ToArray();
        //}

        public void Pack(IBufferWriter <byte> output, CryptoDtoChannel channel, CryptoDtoMode mode, ReadOnlySpan <byte> dtoNameBuffer, ReadOnlySpan <byte> dtoBuffer)
        {
            channel.GetTransmitKey(mode, out ulong sequenceToSend);
            CryptoDtoHeaderDto header = new CryptoDtoHeaderDto
            {
                ChannelTag = channel.ChannelTag,
                Mode       = mode,
                Sequence   = sequenceToSend
            };

            Pack(output, header, channel.TransmitChaCha20Poly1305, dtoNameBuffer, dtoBuffer);
        }
        public static byte[] Pack(CryptoDtoChannel channel, CryptoDtoMode mode, byte[] dtoNameBuffer, byte[] dtoBuffer)
        {
            var transmitKey = channel.GetTransmitKey(mode, out ulong sequenceToSend);

            return(Pack(channel.ChannelTag, mode, transmitKey, sequenceToSend, dtoNameBuffer, dtoBuffer));
        }
        public static byte[] Serialize <T>(CryptoDtoChannel channel, CryptoDtoMode mode, T obj)
        {
            var transmitKey = channel.GetTransmitKey(mode, out ulong sequenceToSend);

            return(Serialise(channel.ChannelTag, mode, transmitKey, sequenceToSend, obj));
        }