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_CTXMD5_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_CTXSHA160_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_CTXSHA256_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_CTXSHA384_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_CTXSHA512_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_CTXRIPEMD128_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_CTXRIPEMD160_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_CTXRIPEMD256_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_CTXRIPEMD320_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.


Généré pour ECCTK (Elliptic Curve Cryptographic ToolKit) avec  doxygen