Le fichier « app_msgs.c » est le fichier
principal que doit incorporer une application qui veut se connecter et utiliser
l'API_IPsec et ses fonctionnalités directement. Il incorpore le fichier
pour la génération de messages. Ensuite on présente la
liste de fonctions qu'on a développés liées au message
envoyé et la valeur que retourne. On n'explique pas au détail les
fonctions comme dans la section antérieure oil on a déjà
traité très bien le but des messages, les fonctions et les
paramètres de l'API_IPsec. Fonctions pour se
connecter
 Type de Message Valeurs de retour
 sfd = api_connect (char *addr); APX_SCK_OPEN sfd_local / VKO
 ret = api_close (int sfd~local) ; APX_SCK_CLOSE VOK /
VKO
 sfd = rem_connect (char *adr~rem); REM_SCK_OPEN
sfd_rem / VKO
 ret = rem_close (int sfd~rem); REM_SCK_CLOSE VOK
VKO
 ret = api_exit (int sfd~local) ; API_MSG_EXI T VOK /
VKO
 
 
 Fonctions simples pour gérer l'API_IPsec DB,
et fonctions de synchronisation
 API MSG FUNCTION Valeurs de retour
 db_add (sfd, table); > DB_ADD id / VKO
 db_add_sa (sfd, spi, *src, *dst, mode, type); > DB_ADD +
DB_UPDATE id / VKO
 db_getid (sfd, table, spi, *src, *dst); > DB_GE TID id /
VKO
 db_copy (sfd, table, id, *idext, *mh); > DB_COPY id2 / VKO
 db_read (sfd, table, id, *idext, tag); > DB_READ 1_PARAM /
NULL
 db_update (sfd, table, id, *idext, tag, *value); > DB_UPDATE
VOK / VKO
 db_delete (sfd, table, id, *idext); > DB_DELE TE
VOK / VKO
db_dump (sfd, table, id, *idext); > DB_DUMP VOK / VKO
 db_read_xparam (table, id, *xparams); > DB_READ X_PARAM /
NULL
 db_update_xparam (table, id, *xparams); > DB_UPDATE VOK /
VKO
 synchro_ipsec (int sfd) API_SYN_IPSEC VOK / VKO
 api_re start (int sfd) API_SCK_RES TART VOK / VKO
 OPTIONS :
 sfd>0 On encapsule le message avec REM_MSG_FUNCTION
pour
 l'envoyer à une API_IPsec distante avec laquelle
on a déjà une connexion établie.
 idext = (spi, @src, @dst) Structure pour chercher
l'identificateur d'une DB_SA/DB_SP à
 partir d'autres paramètres que l'indexent
aussi. Si on l'utilise, on introduit dans le message la fonction DB_GETID avant
de la fonction spécifique à demander à
l'API_IPsec.
 > DB_GETID + DB_XX...
 mh = (flow, flags) Structure de multihoming que le
message/fonction DB_COPY
 peut utiliser. On explique cette structure dans la
section de fonctions pour la mobilité.
 Fonctions pour la mobilité
 Ces fonctions spéciales modifient ou
dérivent un canal sécurisé (2 SA) dans la machine local et
la machine distante. Puis synchronisent pour faire effectif les changes dans la
SAD. Seulement trois messages sont échangés entre les deux
machines ou noeuds. L'analyse des messages échangés pour chaque
fonction est faite dans la prochaine section des tests avec le
Démonstrateur de l'API_IPsec.
 Pour faire l'opération de mobilité ou
de multihoming, à la base les messages font appel aux fonctions de type
API_MSG_FUNCTION. Pour la mobilité la fonction est DB_UPDATE de
l'adresse source et pour le multihoming est DB_COPY d'une SA utilisant la
structure MH (flow, flags) pour remplir la TB_MH.
Les deux opérations utilisent aussi la
fonctionnalité DB_GETID parce que la Mobility_Application n'est pas
obligée à connaître l'identificateur des DB_SA qu'il veut
changer ou utiliser. Une structure « idext » qui contient au
moins un des valeurs <spi, @src, @dst> sert alors à trouver les
associations de sécurité.