MagickCore 7.0.10
cipher.c File Reference
#include "wizard/studio.h"
#include "wizard/aes.h"
#include "wizard/chacha.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
 

Macros

#define CipherRandomHash   SHA2256Hash
 

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)
 

Macro Definition Documentation

◆ CipherRandomHash

#define CipherRandomHash   SHA2256Hash

Definition at line 56 of file cipher.c.

Typedef Documentation

◆ DecipherBlock

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

Definition at line 61 of file cipher.c.

◆ EncipherBlock

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

Definition at line 61 of file cipher.c.

Function Documentation

◆ AcquireCipherInfo()

◆ DecipherCBCMode()

◆ DecipherCFBMode()

◆ DecipherCipher()

◆ DecipherCTRMode()

◆ DecipherECBMode()

◆ DecipherOFBMode()

◆ DecryptCipher()

WizardExport StringInfo * DecryptCipher ( CipherInfo cipher_info,
StringInfo plaintext 
)

Definition at line 399 of file cipher.c.

References DecipherCipher().

◆ DestroyCipherInfo()

◆ EncipherCBCMode()

◆ EncipherCFBMode()

◆ EncipherCipher()

◆ EncipherCTRMode()

◆ EncipherECBMode()

◆ EncipherOFBMode()

◆ EncryptCipher()

WizardExport StringInfo * EncryptCipher ( CipherInfo cipher_info,
StringInfo plaintext 
)

Definition at line 940 of file cipher.c.

References EncipherCipher().

◆ GenerateCipherNonce()

◆ GetCipherBlocksize()

WizardExport size_t GetCipherBlocksize ( const CipherInfo cipher_info)

◆ GetCipherNonce()

◆ IncrementCipherNonce()

static void IncrementCipherNonce ( const size_t  length,
unsigned char *  nonce 
)
inlinestatic

Definition at line 482 of file cipher.c.

References CipherFatalError, and ThrowFatalException.

Referenced by DecipherCTRMode(), and EncipherCTRMode().

◆ ResetCipherNonce()

◆ SetCipherKey()

◆ SetCipherNonce()