#ifndef _METERPRETER_SOURCE_COMMON_CRYPTO_H #define _METERPRETER_SOURCE_COMMON_CRYPTO_H struct _Remote; struct _Packet; typedef struct _CryptoContext { struct _Remote *remote; LPVOID extension; struct { DWORD (*process_negotiate_request)(struct _CryptoContext *ctx, struct _Packet *request); DWORD (*encrypt)(struct _CryptoContext *ctx, PUCHAR inBuffer, ULONG inBufferLength, PUCHAR *outBuffer, PULONG outBufferLength); DWORD (*decrypt)(struct _CryptoContext *ctx, PUCHAR inBuffer, ULONG inBufferLength, PUCHAR *outBuffer, PULONG outBufferLength); } handlers; } CryptoContext; // Individual ciphers #include "crypto/xor.h" #endif