~ubuntu-branches/ubuntu/oneiric/openvpn/oneiric

« back to all changes in this revision

Viewing changes to session_id.c

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Gonzalez Iniesta
  • Date: 2004-06-10 15:59:39 UTC
  • Revision ID: james.westby@ubuntu.com-20040610155939-dcmtiuvcoqnwek62
Tags: upstream-1.6.0
ImportĀ upstreamĀ versionĀ 1.6.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  OpenVPN -- An application to securely tunnel IP networks
 
3
 *             over a single UDP port, with support for SSL/TLS-based
 
4
 *             session authentication and key exchange,
 
5
 *             packet encryption, packet authentication, and
 
6
 *             packet compression.
 
7
 *
 
8
 *  Copyright (C) 2002-2004 James Yonan <jim@yonan.net>
 
9
 *
 
10
 *  This program is free software; you can redistribute it and/or modify
 
11
 *  it under the terms of the GNU General Public License as published by
 
12
 *  the Free Software Foundation; either version 2 of the License, or
 
13
 *  (at your option) any later version.
 
14
 *
 
15
 *  This program is distributed in the hope that it will be useful,
 
16
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
18
 *  GNU General Public License for more details.
 
19
 *
 
20
 *  You should have received a copy of the GNU General Public License
 
21
 *  along with this program (see the file COPYING included with this
 
22
 *  distribution); if not, write to the Free Software Foundation, Inc.,
 
23
 *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
24
 */
 
25
 
 
26
/*
 
27
 * Each session is identified by a random 8-byte session identifier.
 
28
 *
 
29
 * For efficiency, the session id is only transmitted over the control
 
30
 * channel (which only sees traffic occasionally when keys are being
 
31
 * negotiated).  The data channel sees a smaller version of the session-id --
 
32
 * it is called the key_id and is currently 2 bits long.
 
33
 */
 
34
 
 
35
#ifdef WIN32
 
36
#include "config-win32.h"
 
37
#else
 
38
#include "config.h"
 
39
#endif
 
40
 
 
41
#if defined(USE_CRYPTO) && defined(USE_SSL)
 
42
 
 
43
#include "syshead.h"
 
44
 
 
45
#include "error.h"
 
46
#include "common.h"
 
47
#include "crypto.h"
 
48
#include "session_id.h"
 
49
 
 
50
#include "memdbg.h"
 
51
 
 
52
const struct session_id x_session_id_zero;
 
53
 
 
54
void
 
55
session_id_random (struct session_id *sid)
 
56
{
 
57
  prng_bytes (sid->id, SID_SIZE);
 
58
}
 
59
 
 
60
const char *
 
61
session_id_print (const struct session_id *sid)
 
62
{
 
63
  return format_hex (sid->id, SID_SIZE, 0);
 
64
}
 
65
 
 
66
#else
 
67
static void dummy(void) {}
 
68
#endif /* USE_CRYPTO && USE_SSL*/