Beispiel #1
0
        private static void EncryptMessage(ReadOnlySequence <byte> m, INoiseMessageTransformer transport,
                                           ArrayBufferWriter <byte> outputBuffer)
        {
            var l = BitConverter.GetBytes(Convert.ToInt16(m.Length))
                    .Reverse().ToArray(); //from little endian

            transport.WriteMessage(new ReadOnlySequence <byte>(l), outputBuffer);

            transport.WriteMessage(m, outputBuffer);
        }
Beispiel #2
0
 public HandshakeProcessor(IEllipticCurveActions curveActions, IHkdf hkdf,
                           ICipherFunction aeadConstruction, IKeyGenerator keyGenerator, INoiseHashFunction hasher,
                           INoiseMessageTransformer messageTransformer, ILogger <HandshakeProcessor> logger)
 {
     _curveActions       = curveActions;
     _hkdf               = hkdf;
     _aeadConstruction   = aeadConstruction;
     _keyGenerator       = keyGenerator;
     _hasher             = hasher;
     _messageTransformer = messageTransformer;
     _logger             = logger;
 }
Beispiel #3
0
        private static ReadOnlySpan <byte> DecryptAndValidateMessage(ReadOnlySequence <byte> message,
                                                                     INoiseMessageTransformer transport)
        {
            var header = GetArray(2);

            transport.ReadMessage(message.Slice(0, 18), header);

            var body = GetArray(BinaryPrimitives.ReadUInt16BigEndian(header.WrittenSpan));

            int bodyLength = transport.ReadMessage(message.Slice(18), body);

            return(body.WrittenSpan.Slice(0, bodyLength));
        }
Beispiel #4
0
        private static byte[] EncryptMessage(ReadOnlySequence <byte> m, INoiseMessageTransformer transport)
        {
            var outputBuffer = GetArray((int)LightningNetworkConfig.MAX_MESSAGE_LENGTH);

            var l = BitConverter.GetBytes(Convert.ToInt16(m.Length))
                    .Reverse().ToArray(); //from little endian

            transport.WriteMessage(new ReadOnlySequence <byte>(l), outputBuffer);

            transport.WriteMessage(m, outputBuffer);

            return(outputBuffer.WrittenSpan.ToArray());
        }