ECCTK (Elliptic Curve Cryptographic ToolKit): Authentification

# Authentification
[Algorithmes Asymétriques]

## Macros
#define | ECCTK_ECC_ALGO_DHKA 0x05
#define | ECCTK_ECC_ALGO_MQVKA 0x06
## Typedefs
typedef ka_ctx | KA_CTX
## Fonctions
void | KaCtxFree (KA_CTX *Ctx)
| Effacement et libération d'un context d'authentification.
KA_CTX * | ReadStreamKaCtx (u1byte *Buffer, u4byte Size)
| Permet de lire une structure d'authentification dans un buffer mémoire.
KA_CTX * | ReadFileKaCtx (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_CTX * | PemReadFileKaCtx (s1byte *File)
| Permet de lire un context d'authentification au format PEM dans un fichier.
KA_CTX * | PemReadStreamKaCtx (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.
s1byte * | PemWriteStreamKaCtx (KA_CTX *Ctx)
| Permet d'écrire au format PEM un context d'authentification dans un buffer mémoire.
KA_CTX * | CreateDHKeyAgreement (KPUB_CTX *KpubCtx, KPRV_CTX *KprvCtx, s1byte *Password)
| Permet de créer un context pour l'authentification Diffie-Hellman.
KA_CTX * | CreateMQVKeyAgreement (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.

## Documentation des macro

#define ECCTK_ECC_ALGO_DHKA 0x05

| Utilisation de l'algorithme DHKA pour l'authentificiation

#define ECCTK_ECC_ALGO_MQVKA 0x06

| Utilisation de l'algorithme MQVKA pour l'authentificiation

## Documentation des typedef

typedef struct ka_ctx KA_CTX

| Context utilisé pour effectuer les opérations avec les algorithmes d'authentification

## Documentation des fonctions

void KaCtxFree | ( | KA_CTX * | Ctx | ) |

  | Effacement et libération d'un context d'authentification. Paramètres:
  | Ctx | : un context d'authentification précédemment initialisé.

KA_CTX* ReadStreamKaCtx | ( | u1byte * | Buffer,
|  | u4byte | Size
| ) |

  | Permet de lire une structure d'authentification dans un buffer mémoire. Paramètres:
  | Buffer | : buffer mémoire contenant une structure d'authentification.
  | Size | : taille du buffer mémoire.
Renvoie: un context d'authentification initialisé, ou NULL en cas d'erreur.

KA_CTX* ReadFileKaCtx | ( | s1byte * | File | ) |

  | Permet de lire une structure d'authentification dans un fichier. Paramètres:
  | File | : fichier contenant une structure d'authentification.
Renvoie: un context d'authentification initialisé, ou NULL en cas d'erreur.

s2byte WriteFileKaCtx | ( | s1byte * | File,
|  | KA_CTX * | Ctx
| ) |

  | Permet d'écrire un context d'authentification dans un fichier. Paramètres:
  | File | : fichier de sortie pour le context.
  | Ctx | : context d'authentification à écrire.
Renvoie: code d'erreur de la fonction.

s2byte WriteStreamKaCtx | ( | u1byte * | Buffer,
|  | u4byte * | Size,
|  | KA_CTX * | Ctx
| ) |

  | Permet d'écrire un context d'authentification dans un buffer mémoire. Paramètres:
  | Buffer | : buffer mémoire de sortie pour le context.
  | Size | : pointeur sur taille du buffer mémoire.
  | Ctx | : context d'authentification à écrire.
Remarques: le buffer mémoire peut-être NULL. la taille du buffer mémoire est toujours mise à jour. Renvoie: code d'erreur de la fonction.

KA_CTX* PemReadFileKaCtx | ( | s1byte * | File | ) |

  | Permet de lire un context d'authentification au format PEM dans un fichier. Paramètres:
  | File | : fichier contenant un context d'authentification.
Renvoie: un context d'authentification initialisé, ou NULL en cas d'erreur.

KA_CTX* PemReadStreamKaCtx | ( | s1byte * | Buffer | ) |

  | Permet de lire un context d'authentification au format PEM dans un buffer mémoire. Paramètres:
  | Buffer | : buffer mémoire contenant un context d'authentification.
Renvoie: un context d'authentification initialisé, ou NULL en cas d'erreur.

s2byte PemWriteFileKaCtx | ( | s1byte * | File,
|  | KA_CTX * | Ctx
| ) |

  | Permet d'écrire au format PEM un context d'authentification dans un fichier. Paramètres:
  | File | : fichier de sortie pour le context.
  | Ctx | : context d'authentification à écrire.
Renvoie: code d'erreur de la fonction.

s1byte* PemWriteStreamKaCtx | ( | KA_CTX * | Ctx | ) |

  | Permet d'écrire au format PEM un context d'authentification dans un buffer mémoire. Paramètres:
  | Ctx | : context d'authentification à écrire.
Renvoie: buffer mémoire alloué contenant le context d'authentification, ou NULL en cas d'erreur.

KA_CTX* CreateDHKeyAgreement | ( | KPUB_CTX * | KpubCtx,
|  | KPRV_CTX * | KprvCtx,
|  | s1byte * | Password
| ) |

  | Permet de créer un context pour l'authentification Diffie-Hellman. Paramètres:
  | KpubCtx | : context initialisé de la clef publique du correspondant.
  | KprvCtx | : context initialisé de la clef privée de l'initiateur.
  | Password | : mot de passe protégeant la clef privée
Remarques: les contexts de clef publique et privée doivent-être associés à la même courbe. si la clef privée n'est pas protégée, le mot de passe peut-être NULL. Renvoie: context d'authentification Diffie-Hellman initialisé, ou NULL en cas d'erreur. Exemples: key_agreement.cpp.

KA_CTX* CreateMQVKeyAgreement | ( | 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. Paramètres:
  | Sctx | : context initialisé de la première clef privée de l'initiateur.
  | U_ctx | : context initialisé de la seconde clef privée de l'initiateur.
  | V_ctx | : context initialisé de le seconde clef publique de l'initiateur.
  | Wprime_ctx | : context initialisé de clef première clef publique du correspondant.
  | Vprime_ctx | : context initialisé de clef seconde clef publique du correspondant.
  | Spassword | : mot de passe protégeant la première clef privée de l'initiateur.
  | Upassword | : mot de passe protégeant la seconde clef privée de l'initiateur.
Remarques: si les clefs privées ne sont pas protégées, les mot de passe peuvent-être NULL. Renvoie: context d'authentification Menezes-Qu-Vanstone initialisé, ou NULL en cas d'erreur. Exemples: key_agreement.cpp.

s2byte VerifyKeyAgreement | ( | KA_CTX * | Ka1,
|  | KA_CTX * | Ka2
| ) |

  | Permet d'effectuer une authentification Diffie-Hellman ou Menezes-Qu-Vanstone. Paramètres:
  | Ka1 | : context d'authentification initialisé de l'initiateur.
  | Ka2 | : context d'authentification initialisé du correspondant.
Remarques: il n'y a pas d'ordre spécifique pour les contexts. il faut que les deux contexts soient initialisés pour le même algorithme (Diffie-Hellman ou Menezes-Qu-Vanstone). Renvoie: code d'erreur de la fonction. Exemples: key_agreement.cpp.