syslog-ng source
slog.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SLogOptions
 

Macros

#define AES_BLOCKSIZE   16
 
#define IV_LENGTH   12
 
#define KEY_LENGTH   32
 
#define CMAC_LENGTH   16
 
#define KEY_ERROR   0x20
 
#define KEY_FILE_ERROR   0x20
 
#define KEY_READ_ERROR   0x21
 
#define KEY_WRITE_ERROR   0x22
 
#define COLON   1
 
#define BLANK   1
 
#define COUNTER_LENGTH   12
 
#define CTR_LEN_SIMPLE   20
 
#define IPAD   0x36
 
#define OPAD   0x5C
 
#define EPAD   0x6A
 
#define MIN_BUF_SIZE   10
 
#define MAX_BUF_SIZE   1073741823
 
#define DEF_BUF_SIZE   1000
 
#define FILE_ERROR   "Invalid path or non existing regular file: "
 

Functions

void outputByteBuffer (unsigned char *buf, int length)
 
void evolveKey (unsigned char *key)
 
int sLogEncrypt (unsigned char *plaintext, int plaintext_len, unsigned char *key, unsigned char *iv, unsigned char *ciphertext, unsigned char *tag)
 
int sLogDecrypt (unsigned char *ciphertext, int ciphertext_len, unsigned char *tag, unsigned char *key, unsigned char *iv, unsigned char *plaintext)
 
void cmac (unsigned char *key, const void *input, gsize length, unsigned char *out, gsize *outlen, gsize out_capacity)
 
gchar * convertToBase64 (unsigned char *input, gsize len)
 
guchar * convertToBin (char *input, gsize *outLen)
 
void deriveKey (unsigned char *dst, guint64 index, guint64 currentKey)
 
void sLogEntry (guint64 numberOfLogEntries, GString *text, unsigned char *key, unsigned char *inputBigMac, GString *output, unsigned char *outputBigMac, gsize outputBigMac_capacity)
 
int generateMasterKey (guchar *masterkey)
 
int deriveHostKey (guchar *masterkey, gchar *macAddr, gchar *serial, guchar *hostkey)
 
int readBigMAC (gchar *filename, char *outputBuffer)
 
int writeBigMAC (gchar *filename, char *outputBuffer)
 
int readKey (char *destKey, guint64 *destCounter, gchar *keypath)
 
int writeKey (char *key, guint64 counter, gchar *keypath)
 
int fileVerify (unsigned char *key, char *inputFileName, char *outputFileName, unsigned char *bigMac, guint64 entriesInFile, int chunkLength)
 
int initVerify (guint64 entriesInFile, unsigned char *key, guint64 *nextLogEntry, guint64 *startingEntry, GString **input, GHashTable **tab)
 
int iterateBuffer (guint64 entriesInBuffer, GString **input, guint64 *nextLogEntry, unsigned char *key, unsigned char *keyZero, guint keyNumber, GString **output, guint64 *numberOfLogEntries, unsigned char *cmac_tag, gsize cmac_tag_capacity, GHashTable *tab)
 
int finalizeVerify (guint64 startingEntry, guint64 entriesInFile, unsigned char *bigMac, unsigned char *cmac_tag, GHashTable *tab)
 
int iterativeFileVerify (unsigned char *previousMAC, unsigned char *previousKey, char *inputFileName, unsigned char *currentMAC, char *outputFileName, guint64 entriesInFile, int chunkLength, guint64 keyNumber)
 
void deriveEncSubKey (unsigned char *mainKey, unsigned char *encKey)
 
void deriveMACSubKey (unsigned char *mainKey, unsigned char *MACKey)
 
void PRF (unsigned char *key, unsigned char *originalInput, guint64 inputLength, unsigned char *output, guint64 outputLength)
 
int slog_usage (GOptionContext *ctx, GOptionGroup *grp, GString *errormsg)
 
gboolean validFileNameArg (const gchar *option_name, const gchar *value, gpointer data, GError **error)
 

Macro Definition Documentation

◆ AES_BLOCKSIZE

#define AES_BLOCKSIZE   16

◆ BLANK

#define BLANK   1

◆ CMAC_LENGTH

#define CMAC_LENGTH   16

◆ COLON

#define COLON   1

◆ COUNTER_LENGTH

#define COUNTER_LENGTH   12

◆ CTR_LEN_SIMPLE

#define CTR_LEN_SIMPLE   20

◆ DEF_BUF_SIZE

#define DEF_BUF_SIZE   1000

◆ EPAD

#define EPAD   0x6A

◆ FILE_ERROR

#define FILE_ERROR   "Invalid path or non existing regular file: "

◆ IPAD

#define IPAD   0x36

◆ IV_LENGTH

#define IV_LENGTH   12

◆ KEY_ERROR

#define KEY_ERROR   0x20

◆ KEY_FILE_ERROR

#define KEY_FILE_ERROR   0x20

◆ KEY_LENGTH

#define KEY_LENGTH   32

◆ KEY_READ_ERROR

#define KEY_READ_ERROR   0x21

◆ KEY_WRITE_ERROR

#define KEY_WRITE_ERROR   0x22

◆ MAX_BUF_SIZE

#define MAX_BUF_SIZE   1073741823

◆ MIN_BUF_SIZE

#define MIN_BUF_SIZE   10

◆ OPAD

#define OPAD   0x5C

Function Documentation

◆ cmac()

void cmac ( unsigned char *  key,
const void *  input,
gsize  length,
unsigned char *  out,
gsize *  outlen,
gsize  out_capacity 
)

◆ convertToBase64()

gchar* convertToBase64 ( unsigned char *  input,
gsize  len 
)

◆ convertToBin()

guchar* convertToBin ( char *  input,
gsize *  outLen 
)

◆ deriveEncSubKey()

void deriveEncSubKey ( unsigned char *  mainKey,
unsigned char *  encKey 
)

◆ deriveHostKey()

int deriveHostKey ( guchar *  masterkey,
gchar *  macAddr,
gchar *  serial,
guchar *  hostkey 
)

◆ deriveKey()

void deriveKey ( unsigned char *  dst,
guint64  index,
guint64  currentKey 
)

◆ deriveMACSubKey()

void deriveMACSubKey ( unsigned char *  mainKey,
unsigned char *  MACKey 
)

◆ evolveKey()

void evolveKey ( unsigned char *  key)

◆ fileVerify()

int fileVerify ( unsigned char *  key,
char *  inputFileName,
char *  outputFileName,
unsigned char *  bigMac,
guint64  entriesInFile,
int  chunkLength 
)

◆ finalizeVerify()

int finalizeVerify ( guint64  startingEntry,
guint64  entriesInFile,
unsigned char *  bigMac,
unsigned char *  cmac_tag,
GHashTable *  tab 
)

◆ generateMasterKey()

int generateMasterKey ( guchar *  masterkey)

◆ initVerify()

int initVerify ( guint64  entriesInFile,
unsigned char *  key,
guint64 *  nextLogEntry,
guint64 *  startingEntry,
GString **  input,
GHashTable **  tab 
)

◆ iterateBuffer()

int iterateBuffer ( guint64  entriesInBuffer,
GString **  input,
guint64 *  nextLogEntry,
unsigned char *  key,
unsigned char *  keyZero,
guint  keyNumber,
GString **  output,
guint64 *  numberOfLogEntries,
unsigned char *  cmac_tag,
gsize  cmac_tag_capacity,
GHashTable *  tab 
)

◆ iterativeFileVerify()

int iterativeFileVerify ( unsigned char *  previousMAC,
unsigned char *  previousKey,
char *  inputFileName,
unsigned char *  currentMAC,
char *  outputFileName,
guint64  entriesInFile,
int  chunkLength,
guint64  keyNumber 
)

◆ outputByteBuffer()

void outputByteBuffer ( unsigned char *  buf,
int  length 
)

◆ PRF()

void PRF ( unsigned char *  key,
unsigned char *  originalInput,
guint64  inputLength,
unsigned char *  output,
guint64  outputLength 
)

◆ readBigMAC()

int readBigMAC ( gchar *  filename,
char *  outputBuffer 
)

◆ readKey()

int readKey ( char *  destKey,
guint64 *  destCounter,
gchar *  keypath 
)

◆ slog_usage()

int slog_usage ( GOptionContext *  ctx,
GOptionGroup *  grp,
GString *  errormsg 
)

◆ sLogDecrypt()

int sLogDecrypt ( unsigned char *  ciphertext,
int  ciphertext_len,
unsigned char *  tag,
unsigned char *  key,
unsigned char *  iv,
unsigned char *  plaintext 
)

◆ sLogEncrypt()

int sLogEncrypt ( unsigned char *  plaintext,
int  plaintext_len,
unsigned char *  key,
unsigned char *  iv,
unsigned char *  ciphertext,
unsigned char *  tag 
)

◆ sLogEntry()

void sLogEntry ( guint64  numberOfLogEntries,
GString *  text,
unsigned char *  key,
unsigned char *  inputBigMac,
GString *  output,
unsigned char *  outputBigMac,
gsize  outputBigMac_capacity 
)

◆ validFileNameArg()

gboolean validFileNameArg ( const gchar *  option_name,
const gchar *  value,
gpointer  data,
GError **  error 
)

◆ writeBigMAC()

int writeBigMAC ( gchar *  filename,
char *  outputBuffer 
)

◆ writeKey()

int writeKey ( char *  key,
guint64  counter,
gchar *  keypath 
)