WizardsToolkit  1.0.7
cipher.c File Reference
#include "wizard/studio.h"
#include "wizard/aes.h"
#include "wizard/cipher.h"
#include "wizard/exception.h"
#include "wizard/exception-private.h"
#include "wizard/memory_.h"
#include "wizard/random_.h"
#include "wizard/serpent.h"
#include "wizard/twofish.h"
Include dependency graph for cipher.c:

Go to the source code of this file.

Data Structures

struct  _CipherInfo

Defines

#define CipherRandomHash   SHA256Hash

Typedefs

typedef void(* DecipherBlock )(void *, const unsigned char *, const unsigned char *)
typedef void(*)(* EncipherBlock )(void *, const unsigned char *, const unsigned char *)

Functions

static StringInfoDecipherCTRMode (CipherInfo *, StringInfo *)
static StringInfoDecipherECBMode (CipherInfo *, StringInfo *)
static StringInfoDecipherOFBMode (CipherInfo *, StringInfo *)
static StringInfoEncipherCTRMode (CipherInfo *, StringInfo *)
static StringInfoEncipherECBMode (CipherInfo *, StringInfo *)
static StringInfoEncipherOFBMode (CipherInfo *, StringInfo *)
WizardExport CipherInfoAcquireCipherInfo (const CipherType cipher, const CipherMode mode)
static StringInfoDecipherCBCMode (CipherInfo *cipher_info, StringInfo *ciphertext)
static StringInfoDecipherCFBMode (CipherInfo *cipher_info, StringInfo *ciphertext)
WizardExport StringInfoDecryptCipher (CipherInfo *cipher_info, StringInfo *plaintext)
WizardExport StringInfoDecipherCipher (CipherInfo *cipher_info, StringInfo *ciphertext)
static void IncrementCipherNonce (const size_t length, unsigned char *nonce)
WizardExport CipherInfoDestroyCipherInfo (CipherInfo *cipher_info)
static StringInfoEncipherCBCMode (CipherInfo *cipher_info, StringInfo *plaintext)
static StringInfoEncipherCFBMode (CipherInfo *cipher_info, StringInfo *plaintext)
WizardExport StringInfoEncryptCipher (CipherInfo *cipher_info, StringInfo *plaintext)
WizardExport StringInfoEncipherCipher (CipherInfo *cipher_info, StringInfo *plaintext)
WizardExport size_t GetCipherBlocksize (const CipherInfo *cipher_info)
WizardExport StringInfoGenerateCipherNonce (CipherInfo *cipher_info)
WizardExport const StringInfoGetCipherNonce (CipherInfo *cipher_info)
WizardExport void ResetCipherNonce (CipherInfo *cipher_info)
WizardExport void SetCipherNonce (CipherInfo *cipher_info, const StringInfo *nonce)
WizardExport void SetCipherKey (CipherInfo *cipher_info, const StringInfo *key)

Define Documentation

#define CipherRandomHash   SHA256Hash

Definition at line 55 of file cipher.c.

Referenced by AcquireCipherInfo().


Typedef Documentation

typedef void(* DecipherBlock)(void *, const unsigned char *, const unsigned char *)

Definition at line 61 of file cipher.c.

typedef void(*)(* EncipherBlock)(void *, const unsigned char *, const unsigned char *)

Definition at line 62 of file cipher.c.


Function Documentation

WizardExport StringInfo* DecryptCipher ( CipherInfo cipher_info,
StringInfo plaintext 
)

Definition at line 385 of file cipher.c.

References DecipherCipher().

WizardExport StringInfo* EncryptCipher ( CipherInfo cipher_info,
StringInfo plaintext 
)

Definition at line 918 of file cipher.c.

References EncipherCipher().

WizardExport size_t GetCipherBlocksize ( const CipherInfo cipher_info)
WizardExport const StringInfo* GetCipherNonce ( CipherInfo cipher_info)
static void IncrementCipherNonce ( const size_t  length,
unsigned char *  nonce 
) [inline, static]

Definition at line 468 of file cipher.c.

References ThrowFatalException, and CipherFatalError.

Referenced by DecipherCTRMode(), and EncipherCTRMode().

WizardExport void ResetCipherNonce ( CipherInfo cipher_info)
WizardExport void SetCipherNonce ( CipherInfo cipher_info,
const StringInfo nonce 
)