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

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

## Description détaillée

Ce fichier contiend les références des fonctions disponibles pour la mise en oeuvre des algorithmes de HASH, MAC et HMAC.

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_HASH_ALGO_MD5 0x01
#define | ECCTK_HASH_ALGO_SHA160 0x02
#define | ECCTK_HASH_ALGO_SHA256 0x03
#define | ECCTK_HASH_ALGO_SHA384 0x04
#define | ECCTK_HASH_ALGO_SHA512 0x05
#define | ECCTK_HASH_ALGO_RMD128 0x06
#define | ECCTK_HASH_ALGO_RMD160 0x07
#define | ECCTK_HASH_ALGO_RMD256 0x08
#define | ECCTK_HASH_ALGO_RMD320 0x09
#define | ECCTK_HASH_HMAC_ALGO_MD5 0x20
#define | ECCTK_HASH_HMAC_ALGO_SHA160 0x21
#define | ECCTK_HASH_HMAC_ALGO_SHA256 0x22
#define | ECCTK_HASH_HMAC_ALGO_SHA384 0x23
#define | ECCTK_HASH_HMAC_ALGO_SHA512 0x24
#define | ECCTK_HASH_HMAC_ALGO_RMD128 0x25
#define | ECCTK_HASH_HMAC_ALGO_RMD160 0x26
#define | ECCTK_HASH_HMAC_ALGO_RMD256 0x27
#define | ECCTK_HASH_HMAC_ALGO_RMD320 0x28
#define | ECCTK_HASH_MAC_ALGO_RMD128 0x41
#define | ECCTK_HASH_MAC_ALGO_RMD160 0x42
#define | ECCTK_HASH_SIZE_MD5 16
#define | ECCTK_HASH_SIZE_SHA160 20
#define | ECCTK_HASH_SIZE_SHA256 32
#define | ECCTK_HASH_SIZE_SHA384 48
#define | ECCTK_HASH_SIZE_SHA512 64
#define | ECCTK_HASH_SIZE_RMD128 16
#define | ECCTK_HASH_SIZE_RMD160 20
#define | ECCTK_HASH_SIZE_RMD256 32
#define | ECCTK_HASH_SIZE_RMD320 40
#define | ECCTK_HASH_NO_ERROR 0
#define | ECCTK_HASH_ERROR_FILE_NOT_FOUND -1
#define | ECCTK_HASH_ERROR_CLOSE_FILE -2
#define | ECCTK_HASH_ERROR_READ_FILE -3
#define | ECCTK_HASH_ERROR_NULL_ARG -4
#define | ECCTK_HASH_ERROR_NULL_CTX -5
#define | ECCTK_HASH_ERROR_ALGO -6
#define | ECCTK_HASH_INIT_ERROR -7
#define | ECCTK_HASH_FILE_FSEEK_ERROR -8
#define | ECCTK_HASH_INTERNAL_ERROR -9
#define | ECCTK_HASH_VALID_SUCCESS 1
#define | ECCTK_HASH_VALID_FAILED 0
## Typedefs
typedef hash_ctx | MD5_CTX
typedef hash_ctx | SHA160_CTX
typedef hash_ctx | SHA256_CTX
typedef hash_ctx | SHA384_CTX
typedef hash_ctx | SHA512_CTX
typedef hash_ctx | RMD128_CTX
typedef hash_ctx | RMD160_CTX
typedef hash_ctx | RMD256_CTX
typedef hash_ctx | RMD320_CTX
## Fonctions
MD5_CTX * | MD5_Init ()
| Initialisation d'un context pour l'algorithme MD5.
s2byte | MD5_Update (MD5_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | MD5_Final (MD5_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme MD5.
void | MD5_Free (MD5_CTX *ctx)
| libération du context pour l'algorithme MD5
s2byte | MD5_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme MD5.
s2byte | MD5_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme MD5.
s2byte | MD5_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme MD5.
s2byte | MD5_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme MD5.
s2byte | MD5_StreamHash_Valid ()
| Permet de tester le MD5 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
s2byte | MD5_StreamHashMAC_Valid ()
| Permet de tester le HMAC-MD5 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
SHA160_CTX * | SHA160_Init ()
| Initialisation d'un context pour l'algorithme SHA-160.
s2byte | SHA160_Update (SHA160_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | SHA160_Final (SHA160_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme SHA-160.
void | SHA160_Free (SHA160_CTX *ctx)
| libération du context pour l'algorithme SHA-160
s2byte | SHA160_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme SHA-1 (version 160 bits).
s2byte | SHA160_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme SHA-1 (version 160 bits).
s2byte | SHA160_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme SHA-1 (version 160 bits).
s2byte | SHA160_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme SHA-1 (version 160 bits).
s2byte | SHA160_StreamHash_Valid ()
| Permet de tester le SHA1-160 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
s2byte | SHA160_StreamHashMAC_Valid ()
| Permet de tester le HMAC-SHA1 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
SHA256_CTX * | SHA256_Init ()
| Initialisation d'un context pour l'algorithme SHA-256.
s2byte | SHA256_Update (SHA256_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | SHA256_Final (SHA256_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme SHA-256.
void | SHA256_Free (SHA256_CTX *ctx)
| libération du context pour l'algorithme SHA-256
s2byte | SHA256_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme SHA-1 (version 256 bits).
s2byte | SHA256_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme SHA-1 (version 256 bits).
s2byte | SHA256_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme SHA-1 (version 256 bits).
s2byte | SHA256_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme SHA-1 (version 256 bits).
s2byte | SHA256_StreamHash_Valid ()
| Permet de tester le SHA1-256 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
SHA384_CTX * | SHA384_Init ()
| Initialisation d'un context pour l'algorithme SHA-384.
s2byte | SHA384_Update (SHA384_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | SHA384_Final (SHA384_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme SHA-384.
void | SHA384_Free (SHA384_CTX *ctx)
| libération du context pour l'algorithme SHA-384
s2byte | SHA384_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme SHA-1 (version 384 bits).
s2byte | SHA384_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme SHA-1 (version 384 bits).
s2byte | SHA384_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme SHA-1 (version 384 bits).
s2byte | SHA384_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme SHA-1 (version 384 bits).
s2byte | SHA384_StreamHash_Valid ()
| Permet de tester le SHA1-384 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
SHA512_CTX * | SHA512_Init ()
| Initialisation d'un context pour l'algorithme SHA-512.
s2byte | SHA512_Update (SHA512_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | SHA512_Final (SHA512_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme SHA-512.
void | SHA512_Free (SHA512_CTX *ctx)
| libération du context pour l'algorithme SHA-512
s2byte | SHA512_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme SHA-1 (version 512 bits).
s2byte | SHA512_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme SHA-1 (version 512 bits).
s2byte | SHA512_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme SHA-1 (version 512 bits).
s2byte | SHA512_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme SHA-1 (version 512 bits).
s2byte | SHA512_StreamHash_Valid ()
| Permet de tester le SHA1-512 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
RMD128_CTX * | RIPEMD128_Init ()
| Initialisation d'un context pour l'algorithme RIPEMD-128.
s2byte | RIPEMD128_Update (RMD128_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | RIPEMD128_Final (RMD128_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme RIPEMD-128.
void | RIPEMD128_Free (RMD128_CTX *ctx)
| libération du context pour l'algorithme RIPEMD-128
s2byte | RIPEMD128_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme RIPEMD (version 128 bits).
s2byte | RIPEMD128_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme RIPEMD (version 128 bits).
s2byte | RIPEMD128_FileMAC (s1byte *File, u1byte *Key, u2byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant l'algorithme MAC-RIPEMD (version 128 bits).
s2byte | RIPEMD128_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme RIPEMD (version 128 bits).
s2byte | RIPEMD128_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme RIPEMD (version 128 bits).
s2byte | RIPEMD128_StreamMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u2byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant l'algorithme MAC-RIPEMD (version 128 bits).
s2byte | RIPEMD128_StreamHash_Valid ()
| Permet de tester le RIPEMD-128 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
s2byte | RIPEMD128_StreamHashMAC_Valid ()
| Permet de tester le HMAC-RIPEMD-128 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
s2byte | RIPEMD128_StreamMAC_Valid ()
| Permet de tester le MAC-RIPEMD-128 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
RMD160_CTX * | RIPEMD160_Init ()
| Initialisation d'un context pour l'algorithme RIPEMD-160.
s2byte | RIPEMD160_Update (RMD160_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | RIPEMD160_Final (RMD160_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme RIPEMD-160.
void | RIPEMD160_Free (RMD160_CTX *ctx)
| libération du context pour l'algorithme RIPEMD-160
s2byte | RIPEMD160_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme RIPEMD (version 160 bits).
s2byte | RIPEMD160_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme RIPEMD (version 160 bits).
s2byte | RIPEMD160_FileMAC (s1byte *File, u1byte *Key, u2byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant l'algorithme MAC-RIPEMD (version 160 bits).
s2byte | RIPEMD160_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme RIPEMD (version 160 bits).
s2byte | RIPEMD160_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme RIPEMD (version 160 bits).
s2byte | RIPEMD160_StreamMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u2byte KeySize, u1byte *Hash, u2byte HashSize)
| effectue l'authentification d'un buffer en utilisant l'algorithme MAC-RIPEMD (version 160 bits)
s2byte | RIPEMD160_StreamHash_Valid ()
| Permet de tester le RIPEMD-160 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
s2byte | RIPEMD160_StreamHashMAC_Valid ()
| Permet de tester le HMAC-RIPEMD-160 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
s2byte | RIPEMD160_StreamMAC_Valid ()
| Permet de tester le MAC-RIPEMD-160 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
RMD256_CTX * | RIPEMD256_Init ()
| Initialisation d'un context pour l'algorithme RIPEMD-256.
s2byte | RIPEMD256_Update (RMD256_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | RIPEMD256_Final (RMD256_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme RIPEMD-256.
void | RIPEMD256_Free (RMD256_CTX *ctx)
| libération du context pour l'algorithme RIPEMD-256
s2byte | RIPEMD256_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme RIPEMD (version 256 bits).
s2byte | RIPEMD256_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme RIPEMD (version 256 bits).
s2byte | RIPEMD256_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme RIPEMD (version 256 bits).
s2byte | RIPEMD256_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme RIPEMD (version 256 bits).
s2byte | RIPEMD256_StreamHash_Valid ()
| Permet de tester le RIPEMD-256 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
s2byte | RIPEMD256_StreamHashMAC_Valid ()
| Permet de tester le HMAC-RIPEMD-256 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
RMD320_CTX * | RIPEMD320_Init ()
| Initialisation d'un context pour l'algorithme RIPEMD-320.
s2byte | RIPEMD320_Update (RMD320_CTX *ctx, u1byte *Buff, u4byte BuffSize)
| Mise en oeuvre des opérations de hash.
s2byte | RIPEMD320_Final (RMD320_CTX *ctx, u1byte *Hash, u2byte HashSize)
| Finalisation du calcul de l'empreinte pour l'algorithme RIPEMD-320.
void | RIPEMD320_Free (RMD320_CTX *ctx)
| libération du context pour l'algorithme RIPEMD-320
s2byte | RIPEMD320_FileHash (s1byte *File, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un fichier en utilisant l'algorithme RIPEMD (version 320 bits).
s2byte | RIPEMD320_FileHashMAC (s1byte *File, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un fichier en utilisant un MAC basé sur l'algorithme RIPEMD (version 320 bits).
s2byte | RIPEMD320_StreamHash (u1byte *Buff, u4byte BuffSize, u1byte *Hash, u2byte HashSize)
| Effectue l'empreinte d'un buffer en utilisant l'algorithme RIPEMD (version 320 bits).
s2byte | RIPEMD320_StreamHashMAC (u1byte *Buff, u4byte BuffSize, u1byte *Key, u4byte KeySize, u1byte *Hash, u2byte HashSize)
| Effectue l'authentification d'un buffer en utilisant un MAC basé sur l'algorithme RIPEMD (version 320 bits).
s2byte | RIPEMD320_StreamHash_Valid ()
| Permet de tester le RIPEMD-320 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
s2byte | RIPEMD320_StreamHashMAC_Valid ()
| Permet de tester le HMAC-RIPEMD-320 en comparant les résultats de la fonction sur des vecteurs de tests définis par le ou les concepteurs de l'algorithme.
void | EcctkHashInfo (char *Information, u2byte Size)
| Permet d'obtenir des informations sur la librairie.
u2byte | DigestAlgorithmSize (s2byte Algorithm)
| Permet d'obtenir la taille d'une empreinte en fonction de l'algorithme.