/*
 *    Copyright (c) 2003, Cipherica Labs. All rights reserved.
 *    See enclosed license.txt for redistribution information.
 *
 *    $Id: walkthrough-code.txt,v 1.1 2003/04/10 03:45:41 alex Exp $
 */

Quick code walkthrough

  Start with isakmp.h, which defines number of RFC-define structures such
  as ISAKMP message header and ISAKMP payload.

  Then inspect message.h, which defines types and methods used to convert
  between native ISAKMP messages and their internal libike format. Converting
  to the internal format not only validates inbound messages, but also 
  simplifies further message parsing and analysis.

  Then look at packet.h, which defines inbound and outbound packet processing
  contexts.

  Then look at exchange.h, which defines structures and methods that wrap data
  and functionality common to 3 core IKE modes (Main, Aggressive and Quick).

  Then look at phase1.*, which extends exchange.h with phase1-specific methods
  and structures.

  Then - at phase2.h, which does the same for the quick mode exchange.

  Then - at charon.*, which binds all pieces together and maintains the 
  datamodel.

  
  Remaining source files are auxiliary (listed in alphabetical order):

  const.*    define ISAKMP/IKE constants
  natt.*     supports NAT Traversal drafts
  phasex.*   handles informational exchanges,
  sa.*       defines internal SA structure and packing/unpacking methods
  utils.*    implements various IKE hashing methods and IV operations
