Ejemplo n.º 1
0
        /// <returns>offset to StatelessProofOfWorkData</returns>
        public int Encode(BinaryWriter writer)
        {
            writer.Write((byte)CcpPacketType.ClientHelloPacket0);
            writer.Write(Flags);
            if (Cnonce0.Length != Cnonce0SupportedSize)
            {
                throw new CcpBadPacketException();
            }
            PacketProcedures.EncodeByteArray256(writer, Cnonce0);
            writer.Write((byte)StatelessProofOfWorkType);

            PacketProcedures.EncodeByteArray256(writer, StatelessProofOfWorkData);
            return(1 + 2 + 1 + Cnonce0.Length + 1 + 1);
        }
Ejemplo n.º 2
0
        }                                   // = pow request data // set if status=okready

        public byte[] Encode()
        {
            PacketProcedures.CreateBinaryWriter(out var ms, out var writer);
            writer.Write((byte)CcpPacketType.ServerHelloPacket1);
            writer.Write(Flags);
            writer.Write((byte)Status);
            PacketProcedures.EncodeByteArray256(writer, Cnonce1);

            if (Status == ServerHello1Status.OKready)
            {
                writer.Write((byte)StatefulProofOfWorkType);
                PacketProcedures.EncodeByteArray256(writer, Snonce1);
            }
            return(ms.ToArray());
        }
Ejemplo n.º 3
0
        /// <returns>offset to StatefulProofOfWorkResponseData</returns>
        public int Encode(BinaryWriter writer)
        {
            writer.Write((byte)CcpPacketType.ClientHelloPacket1);
            writer.Write(Flags);
            if (Snonce0.Length != ServerHelloPacket0.Snonce0SupportedSize)
            {
                throw new CcpBadPacketException();
            }
            PacketProcedures.EncodeByteArray256(writer, Snonce0);

            if (StatefulProofOfWorkResponseData.Length != StatefulProofOfWorkResponseDataSupportedSize)
            {
                throw new CcpBadPacketException();
            }
            PacketProcedures.EncodeByteArray256(writer, StatefulProofOfWorkResponseData);
            return(1 + 1 + 1 + Snonce0.Length + 1);
        }