Référence du fichier ecctk-ecc.h


Description détaillée

Ce fichier contiend les références des fonctions disponibles pour la mise en oeuvre des algorithmes directement basés sur les courbes elliptiques (signature, échange de clefs, authentification, ...).

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_CURVE_CERTICOM_131   0x1311
#define ECCTK_CURVE_SEC1_131   0x1312
#define ECCTK_CURVE_SEC2_131   0x1313
#define ECCTK_CURVE_CERTICOM_PRIME_131   0x1314
#define ECCTK_CURVE_SEC_PRIME_160   0x1601
#define ECCTK_CURVE_CERTICOM_163   0x1631
#define ECCTK_CURVE_SEC1_163   0x1632
#define ECCTK_CURVE_SEC2_163   0x1633
#define ECCTK_CURVE_CERTICOM_PRIME_163   0x1634
#define ECCTK_CURVE_CERTICOM_191   0x1911
#define ECCTK_CURVE_CERTICOM_PRIME_191   0x1912
#define ECCTK_CURVE_SEC_PRIME_192   0x1921
#define ECCTK_CURVE_SEC1_193   0x1931
#define ECCTK_CURVE_SEC2_193   0x1932
#define ECCTK_CURVE_SEC_PRIME_224   0x2241
#define ECCTK_CURVE_SEC_233   0x2331
#define ECCTK_CURVE_CERTICOM_239   0x2391
#define ECCTK_CURVE_SEC_PRIME_256   0x2561
#define ECCTK_CURVE_SEC_283   0x2831
#define ECCTK_CURVE_CERTICOM_359   0x3591
#define ECCTK_CURVE_SEC_PRIME_384   0x3841
#define ECCTK_CURVE_SEC_409   0x4091
#define ECCTK_CURVE_SEC_PRIME_521   0x5211
#define ECCTK_CURVE_SEC_571   0x5711
#define ECCTK_ECC_ALGO_ECIES   0x01
#define ECCTK_ECC_ALGO_PSEC3   0x02
#define ECCTK_ECC_ALGO_ECDSA   0x03
#define ECCTK_ECC_ALGO_ECNR   0x04
#define ECCTK_ECC_ALGO_DHKA   0x05
#define ECCTK_ECC_ALGO_MQVKA   0x06
#define ECCTK_COMPRESS_ON   0x01
#define ECCTK_COMPRESS_OFF   0x02
#define ECCTK_ECC_SECRET_SHARING_SECRET_MAX_SIZE   63
#define ECCTK_ECC_NO_ERROR   0
#define ECCTK_ECC_ERROR_INTERNAL   -1
#define ECCTK_ECC_ERROR_OPEN_FILE   -2
#define ECCTK_ECC_ERROR_TMPFILE   -3
#define ECCTK_ECC_ERROR_NULL_ARG   -4
#define ECCTK_ECC_ERROR_OUT_TOO_SMALL   -5
#define ECCTK_ECC_ERROR_KPUB_CTX   -6
#define ECCTK_ECC_ERROR_KPRV_CTX   -7
#define ECCTK_ECC_ERROR_CIPHER_CTX   -8
#define ECCTK_ECC_ERROR_PSEC3_CTX   -9
#define ECCTK_ECC_ERROR_ECIES_CTX   -10
#define ECCTK_ECC_ERROR_READ_SIGN   -11
#define ECCTK_ECC_ERROR_VERIFY   -12
#define ECCTK_ECC_ERROR_HASH_FILE   -13
#define ECCTK_ECC_ERROR_HASH_BUF   -14
#define ECCTK_ECC_ERROR_READ_KA   -15
#define ECCTK_ECC_ERROR_COMPRESS   -16
#define ECCTK_ECC_ERROR_DECOMPRESS   -17
#define ECCTK_ECC_ERROR_PSEC3   -18
#define ECCTK_ECC_ERROR_ECIES   -19
#define ECCTK_ECC_ERROR_ENCRYPT   -20
#define ECCTK_ECC_ERROR_DECRYPT   -21
#define ECCTK_ECC_ERROR_GENKEY   -22
#define ECCTK_ECC_ERROR_WRITE_FILE   -23
#define ECCTK_ECC_ERROR_BAD_ALGORITHM   -24
#define ECCTK_ECC_ERROR_DER_PEM   -25
#define ECCTK_ECC_ERROR_GENERATE_CURVE   -26
#define ECCTK_ECC_ERROR_GF2M_NOT_INIT   -27
#define ECCTK_ECC_ERROR_GFP_NOT_INIT   -28

Typedefs

typedef kprv_ctx KPRV_CTX
typedef kpub_ctx KPUB_CTX
typedef sign_ctx SIGN_CTX
typedef psec3_ctx PSEC3_CTX
typedef ecies_ctx ECIES_CTX
typedef ka_ctx KA_CTX
typedef sharing_ctx SHARING_CTX
typedef ecc_cipher_ctx ECC_CIPHER_CTX

Fonctions

void KprvCtxFree (KPRV_CTX *Ctx)
 Effacement et libération d'un context de clef privée.
KPRV_CTXReadStreamKprvCtx (u1byte *Buffer, u4byte Size)
 Permet de lire une clef privée dans un buffer mémoire.
KPRV_CTXReadFileKprvCtx (s1byte *File)
 Permet de lire une clef privée dans un fichier.
s2byte WriteFileKprvCtx (s1byte *File, KPRV_CTX *Ctx)
 Permet d'écrire un context de clef privée dans un fichier.
s2byte WriteStreamKprvCtx (u1byte *Buffer, u4byte *Size, KPRV_CTX *Ctx)
 Permet d'écrire un context de clef privée dans un buffer mémoire.
KPRV_CTXPemReadFileKprvCtx (s1byte *File)
 Permet de lire une clef privée au format PEM dans un fichier.
KPRV_CTXPemReadStreamKprvCtx (s1byte *Buffer)
 Permet de lire une clef privée au format PEM dans un buffer mémoire.
s2byte PemWriteFileKprvCtx (s1byte *File, KPRV_CTX *Ctx)
 Permet d'écrire au format PEM un context de clef privée dans un fichier.
s1bytePemWriteStreamKprvCtx (KPRV_CTX *Ctx)
 Permet d'écrire au format PEM un context de clef privée dans un buffer mémoire.
KPRV_CTXGeneratePrivateKey (u2byte Curve, s1byte *Password)
 Permet de générer une clef privée.
void KpubCtxFree (KPUB_CTX *Ctx)
 Effacement et libération d'un context de clef publique.
KPUB_CTXReadStreamKpubCtx (u1byte *Buffer, u4byte Size)
 Permet de lire une clef publique dans un buffer mémoire.
KPUB_CTXReadFileKpubCtx (s1byte *File)
 Permet de lire une clef publique dans un fichier.
s2byte WriteFileKpubCtx (s1byte *File, KPUB_CTX *Ctx)
 Permet d'écrire un context de clef publique dans un fichier.
s2byte WriteStreamKpubCtx (u1byte *Buffer, u4byte *Size, KPUB_CTX *Ctx)
 Permet d'écrire un context de clef publique dans un buffer mémoire.
KPUB_CTXPemReadFileKpubCtx (s1byte *File)
 Permet de lire une clef publique au format PEM dans un fichier.
KPUB_CTXPemReadStreamKpubCtx (s1byte *Buffer)
 Permet de lire une clef publique au format PEM dans un buffer mémoire.
s2byte PemWriteFileKpubCtx (s1byte *File, KPUB_CTX *Ctx)
 Permet d'écrire au format PEM un context de clef publique dans un fichier.
s1bytePemWriteStreamKpubCtx (KPUB_CTX *Ctx)
 Permet d'écrire au format PEM un context de clef publique dans un buffer mémoire.
KPUB_CTXGeneratePublicKey (KPRV_CTX *Ctx, s1byte *Password)
 Permet de générer une clef publique à partir d'une clef privée.
void SignCtxFree (SIGN_CTX *Ctx)
 Effacement et libération d'un context de signature.
SIGN_CTXReadStreamSignCtx (u1byte *Buffer, u4byte Size)
 Permet de lire une signature dans un buffer mémoire.
SIGN_CTXReadFileSignCtx (s1byte *File)
 Permet de lire une signature dans un fichier.
s2byte WriteFileSignCtx (s1byte *File, SIGN_CTX *Ctx)
 Permet d'écrire un context de signature dans un fichier.
s2byte WriteStreamSignCtx (u1byte *Buffer, u4byte *Size, SIGN_CTX *Ctx)
 Permet d'écrire un context de signature dans un buffer mémoire.
SIGN_CTXPemReadFileSignCtx (s1byte *File)
 Permet de lire une signature au format PEM dans un fichier.
SIGN_CTXPemReadStreamSignCtx (s1byte *Buffer)
 Permet de lire une signature au format PEM dans un buffer mémoire.
s2byte PemWriteFileSignCtx (s1byte *File, SIGN_CTX *Ctx)
 Permet d'écrire au format PEM un context de signature dans un fichier.
s1bytePemWriteStreamSignCtx (SIGN_CTX *Ctx)
 Permet d'écrire au format PEM un context de signature dans un buffer mémoire.
SIGN_CTXSignFileEcdsa (s1byte *File, s2byte Algo, KPRV_CTX *Ctx, s1byte *Password)
 Permet de signer un fichier en utilisant l'algorithme ECDSA.
s2byte VerifyFileEcdsa (s1byte *File, SIGN_CTX *Sctx, KPUB_CTX *Kctx)
 Permet de vérifier la signature d'un fichier en utilisant l'algorithme ECDSA.
SIGN_CTXSignStreamEcdsa (u1byte *Buffer, u4byte Size, s2byte Algo, KPRV_CTX *Ctx, s1byte *Password)
 Permet de signer un buffer mémoire en utilisant l'algorithme ECDSA.
s2byte VerifyStreamEcdsa (u1byte *Buffer, u4byte Size, SIGN_CTX *Sctx, KPUB_CTX *Kctx)
 Permet de vérifier la signature d'un fichier en utilisant l'algorithme ECDSA.
SIGN_CTXSignFileEcnr (s1byte *File, s2byte Algo, KPRV_CTX *Ctx, s1byte *Password)
 Permet de signer un fichier en utilisant l'algorithme ECNR.
s2byte VerifyFileEcnr (s1byte *File, SIGN_CTX *Sctx, KPUB_CTX *Kctx)
 Permet de vérifier la signature d'un fichier en utilisant l'algorithme ECNR.
SIGN_CTXSignStreamEcnr (u1byte *Buffer, u4byte Size, s2byte Algo, KPRV_CTX *Ctx, s1byte *Password)
 Permet de signer un buffer mémoire en utilisant l'algorithme ECNR.
s2byte VerifyStreamEcnr (u1byte *Buffer, u4byte Size, SIGN_CTX *Sctx, KPUB_CTX *Kctx)
 Permet de vérifier la signature d'un fichier en utilisant l'algorithme ECNR.
void EccCipherCtxFree (ECC_CIPHER_CTX *Ctx)
 Effacement et libération d'un context de chiffrement.
ECC_CIPHER_CTXCreateEccCipherCtx (u1byte Algo, u1byte Mode, u1byte Compress, u2byte Keysize, u2byte IVsize, u1byte *IV)
 Permet de créer un context de chiffrement.
ECC_CIPHER_CTXReadStreamEccCipherCtx (u1byte *Buffer, u4byte Size)
 Permet de lire une structure de chiffrement dans un buffer mémoire.
ECC_CIPHER_CTXReadFileEccCipherCtx (s1byte *File)
 Permet de lire une structure de chiffrement dans un fichier.
s2byte WriteFileEccCipherCtx (s1byte *File, ECC_CIPHER_CTX *Ctx)
 Permet d'écrire un context de chiffrement dans un fichier.
s2byte WriteStreamEccCipherCtx (u1byte *Buffer, u4byte *Size, ECC_CIPHER_CTX *Ctx)
 Permet d'écrire un context de chiffrement dans un buffer mémoire.
ECC_CIPHER_CTXPemReadFileEccCipherCtx (s1byte *File)
 Permet de lire une structure de chiffrement au format PEM dans un fichier.
ECC_CIPHER_CTXPemReadStreamEccCipherCtx (s1byte *Buffer)
 Permet de lire une structure de chiffrement au format PEM dans un buffer mémoire.
s2byte PemWriteFileEccCipherCtx (s1byte *File, ECC_CIPHER_CTX *Ctx)
 Permet d'écrire au format PEM un context de chiffrement dans un fichier.
s1bytePemWriteStreamEccCipherCtx (ECC_CIPHER_CTX *Ctx)
 Permet d'écrire au format PEM un context de chiffrement dans un buffer mémoire.
s2byte DecryptFilePsec3 (s1byte *EncryptFile, s1byte *DecryptFile, KPRV_CTX *Ctx, s1byte *Password)
 Permet de déchiffrer un fichier en utilisant l'algorithme PSEC3.
s2byte EncryptFilePsec3 (s1byte *PlainFile, s1byte *EncryptFile, s2byte Algo, KPUB_CTX *Kctx, ECC_CIPHER_CTX *Cctx)
 Permet de chiffrer un fichier en utilisant l'algorithme PSEC3.
u1byteDecryptStreamPsec3 (u1byte *BufferIn, u4byte BufferInSize, s4byte *BufferOutSize, KPRV_CTX *Ctx, s1byte *Password)
 Permet de déchiffrer un buffer mémoire en utilisant l'algorithme PSEC3.
u1byteEncryptStreamPsec3 (u1byte *BufferIn, u4byte BufferInSize, s4byte *BufferOutSize, s2byte Algo, KPUB_CTX *Kctx, ECC_CIPHER_CTX *Cctx)
 Permet de chiffrer un buffer mémoire en utilisant l'algorithme PSEC3.
s2byte DecryptFileEcies (s1byte *EncryptFile, s1byte *DecryptFile, KPRV_CTX *Ctx, s1byte *Password)
 Permet de déchiffrer un fichier en utilisant l'algorithme ECIES.
s2byte EncryptFileEcies (s1byte *PlainFile, s1byte *EncryptFile, s2byte Algo, KPUB_CTX *Kctx, ECC_CIPHER_CTX *Cctx)
 Permet de chiffrer un fichier en utilisant l'algorithme ECIES.
u1byteDecryptStreamEcies (u1byte *BufferIn, u4byte BufferInSize, s4byte *BufferOutSize, KPRV_CTX *Ctx, s1byte *Password)
 Permet de déchiffrer un buffer mémoire en utilisant l'algorithme ECIES.
u1byteEncryptStreamEcies (u1byte *BufferIn, u4byte BufferInSize, s4byte *BufferOutSize, s2byte Algo, KPUB_CTX *Kctx, ECC_CIPHER_CTX *Cctx)
 Permet de chiffrer un buffer mémoire en utilisant l'algorithme ECIES.
void SharingPtFree (SHARING_CTX **Ctx)
 Effacement et libération d'un pointeur sur des context de partage de secret.
SHARING_CTX ** SharingPtInit (int m)
 Allcation d'un pointeur sur des context de partage de secret.
void SharingCtxFree (SHARING_CTX *Ctx)
 Effacement et libération d'un context de partage de secret.
SHARING_CTXReadStreamSharingCtx (u1byte *Buffer, u4byte Size)
 Permet de lire une structure de partage de secret dans un buffer mémoire.
SHARING_CTXReadFileSharingCtx (s1byte *File)
 Permet de lire une structure de partage de secret dans un fichier.
s2byte WriteFileSharingCtx (s1byte *File, SHARING_CTX *Ctx)
 Permet d'écrire un context de partage de secret dans un fichier.
s2byte WriteStreamSharingCtx (u1byte *Buffer, u4byte *Size, SHARING_CTX *Ctx)
 Permet d'écrire un context de partage de secret dans un buffer mémoire.
SHARING_CTXPemReadFileSharingCtx (s1byte *File)
 Permet de lire un context de partage de secret au format PEM dans un fichier.
SHARING_CTXPemReadStreamSharingCtx (s1byte *Buffer)
 Permet de lire un context de partage de secret au format PEM dans un buffer mémoire.
s2byte PemWriteFileSharingCtx (s1byte *File, SHARING_CTX *Ctx)
 Permet d'écrire au format PEM un context de partage de secret dans un fichier.
s1bytePemWriteStreamSharingCtx (SHARING_CTX *Ctx)
 Permet d'écrire au format PEM un context de partage de secret dans un buffer mémoire.
u1byteResolveSecretSharingCtx (SHARING_CTX **Ctx, u2byte *Size)
 Permet de retrouver un secret à partir des secrets partagés.
SHARING_CTX ** CreateSecretSharingCtx (u1byte *Secret, u2byte Size, u2byte Nb, u2byte NbGen)
 Permet de créer des secrets partagés à partir d'un secret.
void KaCtxFree (KA_CTX *Ctx)
 Effacement et libération d'un context d'authentification.
KA_CTXReadStreamKaCtx (u1byte *Buffer, u4byte Size)
 Permet de lire une structure d'authentification dans un buffer mémoire.
KA_CTXReadFileKaCtx (s1byte *File)
 Permet de lire une structure d'authentification dans un fichier.
s2byte WriteFileKaCtx (s1byte *File, KA_CTX *Ctx)
 Permet d'écrire un context d'authentification dans un fichier.
s2byte WriteStreamKaCtx (u1byte *Buffer, u4byte *Size, KA_CTX *Ctx)
 Permet d'écrire un context d'authentification dans un buffer mémoire.
KA_CTXPemReadFileKaCtx (s1byte *File)
 Permet de lire un context d'authentification au format PEM dans un fichier.
KA_CTXPemReadStreamKaCtx (s1byte *Buffer)
 Permet de lire un context d'authentification au format PEM dans un buffer mémoire.
s2byte PemWriteFileKaCtx (s1byte *File, KA_CTX *Ctx)
 Permet d'écrire au format PEM un context d'authentification dans un fichier.
s1bytePemWriteStreamKaCtx (KA_CTX *Ctx)
 Permet d'écrire au format PEM un context d'authentification dans un buffer mémoire.
KA_CTXCreateDHKeyAgreement (KPUB_CTX *KpubCtx, KPRV_CTX *KprvCtx, s1byte *Password)
 Permet de créer un context pour l'authentification Diffie-Hellman.
KA_CTXCreateMQVKeyAgreement (KPRV_CTX *Sctx, KPRV_CTX *U_ctx, KPUB_CTX *V_ctx, KPUB_CTX *Wprime_ctx, KPUB_CTX *Vprime_ctx, s1byte *Spassword, s1byte *Upassword)
 Permet de créer un context pour l'authentification Menezes-Qu-Vanstone.
s2byte VerifyKeyAgreement (KA_CTX *Ka1, KA_CTX *Ka2)
 Permet d'effectuer une authentification Diffie-Hellman ou Menezes-Qu-Vanstone.
u1byteGenerateRandom (u4byte Size)
 Permet de générer une valeur pseudo-aléatoire d'une taille donnée (algorithme Mersenne Twister).
u1byteGenerateRandomFips186 (u4byte Size)
 Permet de générer une valeur pseudo-aléatoire d'une taille donnée (algorithme du standard FIPS-186).
u1byteGenerateRandomAnsiX9_17 (u4byte Size)
 Permet de générer une valeur pseudo-aléatoire d'une taille donnée (algorithme du standard ANSI X9.17).
s2byte SecureReadPassword (s1byte *Buffer, u2byte Size)
 Permet de lire de manière sécurisé un password sur une console.
void EcctkEccInfo (char *Information, u2byte Size)
 Permet d'obtenir des informations sur la librairie.
s2byte InitializeEcctkGf2m ()
 Permet de mettre en place les paramètres nécessaires aux opérations sur GF(2^m).
void FreeEcctkGf2m ()
 Permet de libérer la mémoire utilisée par les paramètres nécessaires aux opérations sur GF(2^m).
s2byte InitializeEcctkGfp ()
 Permet de mettre en place les paramètres nécessaires aux opérations sur GF(p).
void FreeEcctkGfp ()
 Permet de libérer la mémoire utilisée par les paramètres nécessaires aux opérations sur GF(p).
s2byte InitializeEcctkAll ()
 Permet de mettre en place les paramètres nécessaires aux opérations sur GF(2^m) & GF(p).
void FreeEcctkAll ()
 Permet de libérer la mémoire utilisée par les paramètres nécessaires aux opérations sur GF(2^m) & GF(p).


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