ECCTK (Elliptic Curve Cryptographic ToolKit): DES

# DES
[Chiffrement "pas à pas"]

## Typedefs
typedef cipher_ctx | DES_CTX
## Fonctions
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.

## Documentation des typedef

typedef struct cipher_ctx DES_CTX

| Context utilisé pour effectuer les opérations avec l'algorithme DES

## Documentation des fonctions

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. Paramètres:
  | Op | : précise si on chiffre ou si on déchiffre (ECCTK_CIPHER_ENCRYPT ou ECCTK_CIPHER_DECRYPT).
  | OpMode | : mode de chiffrement (ECCTK_CIPHER_MODE_...).
  | NbKey | : nombre de clefs, 1 ==> DES, 2 ==> 3DES (mode EDE à 2 clefs), , 3 ==> 3DES (mode EDE à 3 clefs).
  | Key | : buffer contenant la clef de chiffrement/déchiffrement.
  | Keysize | : taille de la clef (en octets).
  | IV | : buffer contenant le vecteur d'initialisation.
  | IVsize | : taille du vecteur d'initialisation (en octets).
Remarques: le vecteur d'initialisation peut-être NULL si on utilise le mode ECCTK_CIPHER_MODE_ECB. Avertissement: si le vecteur d'initialisation n'est pas NULL, sa taille doit-être de 8 octets. la taille du buffer contenant la clef doit-être : 8 octets pour le DES 16 octets pour le 3DES-EDE2 24 octets pour le 3DES-EDE3 Renvoie: un context initialisé, ou NULL en cas d'erreur.

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. Paramètres:
  | ctx | : un context précédemment initialisé.
  | BufferIn | : buffer à chiffré/déchiffré.
  | BufferOut | : buffer de sortie contenant le buffer déchiffré/chiffré.
  | Size | : taille du buffer à chiffré/déchiffré.
Remarques: la taille minimale du buffer de sortie doit être de (Size + 8) octets. Renvoie: le nombre d'octets chiffrés/déchiffrés ou un code d'erreur.

s4byte DES_Final | ( | DES_CTX * | ctx,
|  | u1byte * | BufferOut
| ) |

  | Finalisation du chiffrement/déchiffrement (ajout, retrait du padding éventuel) pour l'algorithme DES. Paramètres:
  | ctx | : un context précédemment initialisé.
  | BufferOut | : buffer de sortie conenant le buffer déchiffré/chiffré.
Avertissement: il faut directement passer le buffer provenant de la fonction Update. Renvoie: la taille exacte du buffer chiffré/déchiffré ou un code d'erreur.

void DES_Free | ( | DES_CTX * | ctx | ) |

  | Effacement de la clef de chiffrement/déchiffrement, libération du context pour l'algorithme DES. Paramètres:
  | ctx | : un context précédemment initialisé.