ECCTK (Elliptic Curve Cryptographic ToolKit): Référence du fichier ecctk-cipher.h

# Référence du fichier ecctk-cipher.h

## Description détaillée

Ce fichier contiend les références des fonctions disponibles pour la mise en oeuvre des algorithmes de chiffrement symétriques.

Auteur:
  Ludovic FLAMENT <ludovic.flament@free.fr>

Avertissement:
  L'utilisation et/ou la redistribution de ce code (avec ou sans modification), ainsi que de tous les composants du produit (librairies, documentation, exemples, ...) est soumise aux termes de la licence qui vous est attribuée par son auteur.

## Macros
#define | ECCTK_CIPHER_ALGO_RC2 0x01
#define | ECCTK_CIPHER_ALGO_RC4 0x02
#define | ECCTK_CIPHER_ALGO_BLOWFISH 0x03
#define | ECCTK_CIPHER_ALGO_DES 0x04
#define | ECCTK_CIPHER_ALGO_3DES_EDE_2 0x05
#define | ECCTK_CIPHER_ALGO_3DES_EDE_3 0x0b
#define | ECCTK_CIPHER_ALGO_CAST128 0x06
#define | ECCTK_CIPHER_ALGO_RIJNDAEL 0x07
#define | ECCTK_CIPHER_ALGO_TWOFISH 0x08
#define | ECCTK_CIPHER_ALGO_MARS 0x09
#define | ECCTK_CIPHER_ALGO_SERPENT 0x0a
#define | ECCTK_CIPHER_MODE_ECB 0x01
#define | ECCTK_CIPHER_MODE_CBC 0x02
#define | ECCTK_CIPHER_MODE_CFB 0x03
#define | ECCTK_CIPHER_MODE_OFB 0x04
#define | ECCTK_CIPHER_MODE_CTR 0x05
#define | ECCTK_CIPHER_MODE_RC4 0x06
#define | ECCTK_CIPHER_ENCRYPT 0x01
#define | ECCTK_CIPHER_DECRYPT 0x02
#define | ECCTK_CIPHER_NO_ERROR 0
#define | ECCTK_CIPHER_IV_ERROR -1
#define | ECCTK_CIPHER_OPERATION_ERROR -2
#define | ECCTK_CIPHER_MODE_ERROR -3
#define | ECCTK_CIPHER_FILE_OPEN_ERROR -4
#define | ECCTK_CIPHER_FILE_READ_ERROR -5
#define | ECCTK_CIPHER_FILE_WRITE_ERROR -6
#define | ECCTK_CIPHER_NBKEY_ERROR -7
#define | ECCTK_CIPHER_INIT_ERROR -8
#define | ECCTK_CIPHER_UPDATE_ERROR -9
#define | ECCTK_CIPHER_FINAL_ERROR -10
#define | ECCTK_CIPHER_DECRYPT_FAILED -11
#define | ECCTK_CIPHER_FILE_FSEEK_ERROR -12
#define | ECCTK_CIPHER_OUT_TOO_SMALL -13
#define | ECCTK_CIPHER_OUT_BUFFER_NULL -14
#define | ECCTK_CIPHER_ALGO_ERROR -15
#define | ECCTK_CIPHER_NULL_ARGS -16
#define | ECCTK_CIPHER_INTERNAL_ERROR -17
#define | ECCTK_CIPHER_VALID_SUCCESS 1
#define | ECCTK_CIPHER_VALID_FAILED 0
## Typedefs
typedef cipher_ctx | BLOWFISH_CTX
typedef cipher_ctx | CAST128_CTX
typedef cipher_ctx | DES_CTX
typedef cipher_ctx | RC2_CTX
typedef cipher_ctx | RC4_CTX
typedef cipher_ctx | RIJNDAEL_CTX
typedef cipher_ctx | SERPENT_CTX
typedef cipher_ctx | TWOFISH_CTX
typedef cipher_ctx | MARS_CTX
## Fonctions
BLOWFISH_CTX * | BLOWFISH_Init (u1byte Op, u1byte OpMode, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize)
| Initialisation d'un context pour l'algorithme BLOWFISH.
s4byte | BLOWFISH_Update (BLOWFISH_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme BLOWFISH.
s4byte | BLOWFISH_Final (BLOWFISH_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme BLOWFISH.
void | BLOWFISH_Free (BLOWFISH_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme BLOWFISH.
s2byte | BLOWFISH_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un fichier en utilisant l'algorithme BLOWFISH.
s2byte | BLOWFISH_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un fichier en utilisant l'algorithme BLOWFISH.
s2byte | BLOWFISH_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme BLOWFISH.
s2byte | BLOWFISH_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme BLOWFISH.
s2byte | BLOWFISH_Valid ()
| Validation de l'algorithme BLOWFISH sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
CAST128_CTX * | CAST128_Init (u1byte Op, u1byte OpMode, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize)
| Initialisation d'un context pour l'algorithme CAST-128.
s4byte | CAST128_Update (CAST128_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme CAST-128.
s4byte | CAST128_Final (CAST128_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme CAST-128.
void | CAST128_Free (CAST128_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme CAST-128.
s2byte | CAST128_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un fichier en utilisant l'algorithme CAST-128.
s2byte | CAST128_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un fichier en utilisant l'algorithme CAST-128.
s2byte | CAST128_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme CAST-128.
s2byte | CAST128_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme CAST-128.
s2byte | CAST128_Valid ()
| Validation de l'algorithme CAST-128 sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
DES_CTX * | DES_Init (u2byte Op, u2byte OpMode, u2byte NbKey, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize)
| Initialisation d'un context pour l'algorithme DES.
s4byte | DES_Update (DES_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme DES.
s4byte | DES_Final (DES_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme DES.
void | DES_Free (DES_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme DES.
s2byte | DES_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte NbKey, u2byte OpMode)
| Déchiffrement d'un fichier en utilisant l'algorithme DES.
s2byte | DES_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte NbKey, u2byte OpMode)
| Chiffrement d'un fichier en utilisant l'algorithme DES.
s2byte | DES_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte NbKey, u2byte OpMode)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme DES.
s2byte | DES_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte NbKey, u2byte OpMode)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme DES.
s2byte | DES_Valid ()
| Validation de l'algorithme DES sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
RC2_CTX * | RC2_Init (u2byte Op, u2byte OpMode, u2byte RealKeySize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize)
| Initialisation d'un context pour l'algorithme RC2.
s4byte | RC2_Update (RC2_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme RC2.
s4byte | RC2_Final (RC2_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme RC2.
void | RC2_Free (RC2_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme RC2.
s2byte | RC2_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un fichier en utilisant l'algorithme RC2.
s2byte | RC2_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un fichier en utilisant l'algorithme RC2.
s2byte | RC2_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme RC2.
s2byte | RC2_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme RC2.
s2byte | RC2_Valid ()
| Validation de l'algorithme RC2 sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
RC4_CTX * | RC4_Init (u2byte Op, u1byte *Key, u2byte Keysize)
| Initialisation d'un context pour l'algorithme RC4.
s4byte | RC4_Update (RC4_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme RC4.
s4byte | RC4_Final (RC4_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme RC4.
void | RC4_Free (RC4_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme RC4.
s2byte | RC4_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize)
| Déchiffrement d'un fichier en utilisant l'algorithme RC4.
s2byte | RC4_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize)
| Chiffrement d'un fichier en utilisant l'algorithme RC4.
s2byte | RC4_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme RC4.
s2byte | RC4_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme RC4.
s2byte | RC4_Valid ()
| Validation de l'algorithme RC4 sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
RIJNDAEL_CTX * | RIJNDAEL_Init (u1byte Op, u1byte OpMode, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize)
| Initialisation d'un context pour l'algorithme RIJNDAEL.
s4byte | RIJNDAEL_Update (RIJNDAEL_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme RIJNDAEL.
s4byte | RIJNDAEL_Final (RIJNDAEL_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme RIJNDAEL.
void | RIJNDAEL_Free (RIJNDAEL_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme RIJNDAEL.
s2byte | RIJNDAEL_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un fichier en utilisant l'algorithme RIJNDAEL.
s2byte | RIJNDAEL_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un fichier en utilisant l'algorithme RIJNDAEL.
s2byte | RIJNDAEL_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme RIJNDAEL.
s2byte | RIJNDAEL_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme RIJNDAEL.
s2byte | RIJNDAEL_Valid ()
| Validation de l'algorithme RIJNDAEL sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
SERPENT_CTX * | SERPENT_Init (u1byte Op, u1byte OpMode, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize)
| Initialisation d'un context pour l'algorithme SERPENT.
s4byte | SERPENT_Update (SERPENT_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme SERPENT.
s4byte | SERPENT_Final (SERPENT_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme SERPENT.
void | SERPENT_Free (SERPENT_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme SERPENT.
s2byte | SERPENT_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un fichier en utilisant l'algorithme SERPENT.
s2byte | SERPENT_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un fichier en utilisant l'algorithme SERPENT.
s2byte | SERPENT_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme SERPENT.
s2byte | SERPENT_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme SERPENT.
s2byte | SERPENT_Valid ()
| Validation de l'algorithme SERPENT sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
TWOFISH_CTX * | TWOFISH_Init (u1byte Op, u1byte OpMode, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize)
| Initialisation d'un context pour l'algorithme TWOFISH.
s4byte | TWOFISH_Update (TWOFISH_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme TWOFISH.
s4byte | TWOFISH_Final (TWOFISH_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme TWOFISH.
void | TWOFISH_Free (TWOFISH_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme TWOFISH.
s2byte | TWOFISH_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un fichier en utilisant l'algorithme TWOFISH.
s2byte | TWOFISH_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un fichier en utilisant l'algorithme TWOFISH.
s2byte | TWOFISH_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme TWOFISH.
s2byte | TWOFISH_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme TWOFISH.
s2byte | TWOFISH_Valid ()
| Validation de l'algorithme TWOFISH sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
MARS_CTX * | MARS_Init (u1byte Op, u1byte OpMode, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize)
| Initialisation d'un context pour l'algorithme MARS.
s4byte | MARS_Update (MARS_CTX *ctx, u1byte *BufferIn, u1byte *BufferOut, u4byte Size)
| Mise en oeuvre des opérations de chiffrement/déchiffrement pour l'algorithme MARS.
s4byte | MARS_Final (MARS_CTX *ctx, u1byte *BufferOut)
| Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme MARS.
void | MARS_Free (MARS_CTX *ctx)
| Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme MARS.
s2byte | MARS_FileDecrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un fichier en utilisant l'algorithme MARS.
s2byte | MARS_FileEncrypt (s1byte *InFile, s1byte *OutFile, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un fichier en utilisant l'algorithme MARS.
s2byte | MARS_StreamEncrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Chiffrement d'un buffer mémoire en utilisant l'algorithme MARS.
s2byte | MARS_StreamDecrypt (u1byte *BufferIn, s4byte BufferInSize, u1byte *BufferOut, s4byte *BufferOutSize, u1byte *Key, u2byte Keysize, u1byte *IV, u2byte IVsize, u2byte OpMode)
| Déchiffrement d'un buffer mémoire en utilisant l'algorithme MARS.
s2byte | MARS_Valid ()
| Validation de l'algorithme MARS sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
u2byte | CipherAlgorithmIVSize (s2byte Algorithm)
| Permet de connaître la taille "normale" du vecteur d'initialisation pour un algorithme donné.
u2byte | CipherAlgorithmKeySize (s2byte Algorithm)
| Permet de connaître la taille maximale d'une clef pour un algorithme donné.
void | EcctkCipherInfo (char *Information, u2byte Size)
| Permet d'obtenir des informations sur la librairie.