File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ipsec-tools / src / racoon / prsa_tok.l
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:39:10 2012 UTC (12 years, 4 months ago) by misho
Branches: ipsec-tools, MAIN
CVS tags: v0_8_2p2, v0_8_1p0, v0_8_1, v0_8_0p0, v0_8_0, HEAD
ipsec-tools

    1: /*	$NetBSD: prsa_tok.l,v 1.4 2006/09/09 16:22:10 manu Exp $	*/
    2: 
    3: /* Id: prsa_tok.l,v 1.2 2004/07/12 20:43:51 ludvigm Exp */
    4: 
    5: %{
    6: /*
    7:  * Copyright (C) 2004 SuSE Linux AG, Nuernberg, Germany.
    8:  * Contributed by: Michal Ludvig <mludvig@suse.cz>, SUSE Labs
    9:  * All rights reserved.
   10:  *
   11:  * Redistribution and use in source and binary forms, with or without
   12:  * modification, are permitted provided that the following conditions
   13:  * are met:
   14:  * 1. Redistributions of source code must retain the above copyright
   15:  *    notice, this list of conditions and the following disclaimer.
   16:  * 2. Redistributions in binary form must reproduce the above copyright
   17:  *    notice, this list of conditions and the following disclaimer in the
   18:  *    documentation and/or other materials provided with the distribution.
   19:  * 3. Neither the name of the project nor the names of its contributors
   20:  *    may be used to endorse or promote products derived from this software
   21:  *    without specific prior written permission.
   22:  *
   23:  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
   24:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   25:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   26:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
   27:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   28:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   29:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   30:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   31:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   32:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   33:  * SUCH DAMAGE.
   34:  */
   35: 
   36: /* This file contains a tokeniser for FreeS/WAN-style ipsec.secrets RSA keys. */
   37: 
   38: #include <string.h>
   39: #include <openssl/bn.h>
   40: #include <openssl/rsa.h>
   41: #include "prsa_par.h"
   42: 
   43: extern int prsalex (void);
   44: extern int prsa_cur_lineno;
   45: 
   46: %}
   47: 
   48: comment		\#.*
   49: digit		[0-9]
   50: octet		(([01]?{digit}?{digit})|((2([0-4]{digit}))|(25[0-5])))
   51: addr4		{octet}\.{octet}\.{octet}\.{octet}
   52: hex		[0-9a-fA-F]
   53: word6		{hex}{0,4}
   54: base64		[A-Za-z0-9+/=]
   55: addr6		(::({word6}|{addr4})?|({word6}:)+:?({word6}|{addr4})?)
   56: %%
   57: \{		{ return OBRACE; }
   58: \}		{ return EBRACE; }
   59: :		{ return COLON; }
   60: RSA		{ return TAG_RSA; }
   61: PSK		{ return TAG_PSK; }
   62: PUB		{ return TAG_PUB; }
   63: 0x[0-9a-fA-F]+	{ 
   64: 			BIGNUM *bn = BN_new();
   65: 			BN_hex2bn(&bn, prsatext+2);
   66: 			prsalval.bn = bn;
   67: 			return HEX;
   68: 		}
   69: 0s{base64}+	{
   70: 			prsalval.chr = strdup(prsatext);
   71: 			return BASE64;
   72: 		}
   73: Modulus		{ return MODULUS; }
   74: PublicExponent	{ return PUBLIC_EXPONENT; }
   75: PrivateExponent	{ return PRIVATE_EXPONENT; }
   76: Prime1		{ return PRIME1; }
   77: Prime2		{ return PRIME2; }
   78: Exponent1	{ return EXPONENT1; }
   79: Exponent2	{ return EXPONENT2; }
   80: Coefficient	{ return COEFFICIENT; }
   81: \/		{ return SLASH; }
   82: {digit}+	{ prsalval.num = atol(prsatext); return NUMBER; }
   83: any		{ return ADDRANY; }
   84: {addr4}		{ prsalval.chr = strdup(prsatext); return ADDR4; }
   85: {addr6}		{ prsalval.chr = strdup(prsatext); return ADDR6; }
   86: [ \t]*		;
   87: \n		{ prsa_cur_lineno++; }
   88: \#.*		;
   89: %%

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>