Mineserver
A rewrite of Minecraft 1.8.9 in C++ !
|
AES 128bit CFB8 Cipher stream. More...
#include <stream.h>
Public Member Functions | |
CipherStream (IMCStream *baseStream, std::byte *key, std::byte *iv) | |
Construct a new Cipher Stream object. | |
~CipherStream () | |
Destroy the Cipher Stream object. | |
void | read (std::byte *buffer, std::size_t offset, std::size_t len) override |
Reads from an encrypted stream. | |
void | write (const std::byte *buffer, std::size_t offset, std::size_t len) override |
Writes to an encrypted stream. | |
size_t | available () override |
Gets the number of available bytes Returns the number of available bytes in the sub-stream. Not accurate as to the real length because it doesn't account for the encryption. | |
void | finishPacketWrite (const std::byte *packetData, size_t len) override |
Finishes to write the packet in a Minecrafty way. | |
void | flush () override |
Flushes the base stream. | |
Public Member Functions inherited from IMCStream | |
bool | readBoolean () |
Reads a Boolean. | |
void | writeBoolean (bool b) |
Writes a Boolean. | |
std::int8_t | readByte () |
Reads a Byte. | |
void | writeByte (std::int8_t b) |
Writes a Byte. | |
std::uint8_t | readUnsignedByte () |
Reads an Unsigned Byte. | |
void | writeUnsignedByte (std::uint8_t b) |
Writes an Unsigned Byte. | |
std::int16_t | readShort () |
Reads a Short. | |
void | writeShort (std::int16_t s) |
Writes a Short. | |
std::uint16_t | readUnsignedShort () |
Reads an Unsigned Short. | |
void | writeUnsignedShort (std::uint16_t s) |
Writes an Unsigned short. | |
std::int32_t | readInt () |
Reads an Integer. | |
void | writeInt (std::int32_t i) |
Writes a Integer. | |
std::int64_t | readLong () |
Reads a Long. | |
void | writeLong (std::int64_t l) |
Writes a Long. | |
float | readFloat () |
Reads a Float. | |
void | writeFloat (float f) |
Writes a Float. | |
double | readDouble () |
Reads a Double. | |
void | writeDouble (double d) |
Writes a Double. | |
std::string | readString () |
Reads a String. | |
void | writeString (const std::string &s) |
Writes a String. | |
ChatMessage | readChat () |
Reads a Chat Message. | |
void | writeChat (const ChatMessage &c) |
Writes a Chat Message. | |
std::int32_t | readVarInt () |
Reads a Variable Integer. | |
void | writeVarInt (std::int32_t i) |
Writes a Variable Integer. | |
std::int64_t | readVarLong () |
Reads a Variable Long. | |
void | writeVarLong (std::int64_t l) |
Writes a Variable Long. | |
MinecraftUUID | readUUID () |
Reads an MinecraftUUID. | |
void | writeUUID (const MinecraftUUID &uuid) |
Writes an MinecraftUUID. | |
AES 128bit CFB8 Cipher stream.
Cipher stream for minecraft, is updates for every packet and not finalized then restarted.
CipherStream::CipherStream | ( | IMCStream * | baseStream, |
std::byte * | key, | ||
std::byte * | iv ) |
Construct a new Cipher Stream object.
baseStream | the stream to IO on, the class takes ownership |
key | the key for the AES cipher |
iv | the IV for the AES cipher |
|
overridevirtual |
Gets the number of available bytes Returns the number of available bytes in the sub-stream. Not accurate as to the real length because it doesn't account for the encryption.
Implements IMCStream.
Finishes to write the packet in a Minecrafty way.
packetData | the packet data |
len | the length of the packet data |
Implements IMCStream.
|
overridevirtual |
Reads from an encrypted stream.
buffer | the buffer to write to |
offset | the offset to start writing to |
len | the length to read from baseStream and write to buffer |
Implements IMCStream.
|
overridevirtual |
Writes to an encrypted stream.
buffer | the buffer to read from |
offset | the offset to start reading from |
len | the length to read from buffer |
Implements IMCStream.