1#!/usr/local/bin/perl 2 3$NUMBER=0x01; 4$UPPER=0x02; 5$LOWER=0x04; 6$UNDER=0x100; 7$PUNCTUATION=0x200; 8$WS=0x10; 9$ESC=0x20; 10$QUOTE=0x40; 11$DQUOTE=0x400; 12$COMMENT=0x80; 13$FCOMMENT=0x800; 14$EOF=0x08; 15$HIGHBIT=0x1000; 16 17foreach (0 .. 255) 18 { 19 $v=0; 20 $c=sprintf("%c",$_); 21 $v|=$NUMBER if ($c =~ /[0-9]/); 22 $v|=$UPPER if ($c =~ /[A-Z]/); 23 $v|=$LOWER if ($c =~ /[a-z]/); 24 $v|=$UNDER if ($c =~ /_/); 25 $v|=$PUNCTUATION if ($c =~ /[!\.%&\*\+,\/;\?\@\^\~\|-]/); 26 $v|=$WS if ($c =~ /[ \t\r\n]/); 27 $v|=$ESC if ($c =~ /\\/); 28 $v|=$QUOTE if ($c =~ /['`"]/); # for emacs: "`'}/) 29 $v|=$COMMENT if ($c =~ /\#/); 30 $v|=$EOF if ($c =~ /\0/); 31 $v|=$HIGHBIT if ($c =~/[\x80-\xff]/); 32 33 push(@V_def,$v); 34 } 35 36foreach (0 .. 255) 37 { 38 $v=0; 39 $c=sprintf("%c",$_); 40 $v|=$NUMBER if ($c =~ /[0-9]/); 41 $v|=$UPPER if ($c =~ /[A-Z]/); 42 $v|=$LOWER if ($c =~ /[a-z]/); 43 $v|=$UNDER if ($c =~ /_/); 44 $v|=$PUNCTUATION if ($c =~ /[!\.%&\*\+,\/;\?\@\^\~\|-]/); 45 $v|=$WS if ($c =~ /[ \t\r\n]/); 46 $v|=$DQUOTE if ($c =~ /["]/); # for emacs: "}/) 47 $v|=$FCOMMENT if ($c =~ /;/); 48 $v|=$EOF if ($c =~ /\0/); 49 $v|=$HIGHBIT if ($c =~/[\x80-\xff]/); 50 51 push(@V_w32,$v); 52 } 53 54print <<"EOF"; 55/* crypto/conf/conf_def.h */ 56/* Copyright (C) 1995-1998 Eric Young (eay\@cryptsoft.com) 57 * All rights reserved. 58 * 59 * This package is an SSL implementation written 60 * by Eric Young (eay\@cryptsoft.com). 61 * The implementation was written so as to conform with Netscapes SSL. 62 * 63 * This library is free for commercial and non-commercial use as long as 64 * the following conditions are aheared to. The following conditions 65 * apply to all code found in this distribution, be it the RC4, RSA, 66 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 67 * included with this distribution is covered by the same copyright terms 68 * except that the holder is Tim Hudson (tjh\@cryptsoft.com). 69 * 70 * Copyright remains Eric Young's, and as such any Copyright notices in 71 * the code are not to be removed. 72 * If this package is used in a product, Eric Young should be given attribution 73 * as the author of the parts of the library used. 74 * This can be in the form of a textual message at program startup or 75 * in documentation (online or textual) provided with the package. 76 * 77 * Redistribution and use in source and binary forms, with or without 78 * modification, are permitted provided that the following conditions 79 * are met: 80 * 1. Redistributions of source code must retain the copyright 81 * notice, this list of conditions and the following disclaimer. 82 * 2. Redistributions in binary form must reproduce the above copyright 83 * notice, this list of conditions and the following disclaimer in the 84 * documentation and/or other materials provided with the distribution. 85 * 3. All advertising materials mentioning features or use of this software 86 * must display the following acknowledgement: 87 * "This product includes cryptographic software written by 88 * Eric Young (eay\@cryptsoft.com)" 89 * The word 'cryptographic' can be left out if the rouines from the library 90 * being used are not cryptographic related :-). 91 * 4. If you include any Windows specific code (or a derivative thereof) from 92 * the apps directory (application code) you must include an acknowledgement: 93 * "This product includes software written by Tim Hudson (tjh\@cryptsoft.com)" 94 * 95 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 96 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 97 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 98 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 99 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 100 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 101 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 102 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 103 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 104 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 105 * SUCH DAMAGE. 106 * 107 * The licence and distribution terms for any publically available version or 108 * derivative of this code cannot be changed. i.e. this code cannot simply be 109 * copied and put under another distribution licence 110 * [including the GNU Public Licence.] 111 */ 112 113/* THIS FILE WAS AUTOMAGICALLY GENERATED! 114 Please modify and use keysets.pl to regenerate it. */ 115 116#define CONF_NUMBER $NUMBER 117#define CONF_UPPER $UPPER 118#define CONF_LOWER $LOWER 119#define CONF_UNDER $UNDER 120#define CONF_PUNCTUATION $PUNCTUATION 121#define CONF_WS $WS 122#define CONF_ESC $ESC 123#define CONF_QUOTE $QUOTE 124#define CONF_DQUOTE $DQUOTE 125#define CONF_COMMENT $COMMENT 126#define CONF_FCOMMENT $FCOMMENT 127#define CONF_EOF $EOF 128#define CONF_HIGHBIT $HIGHBIT 129#define CONF_ALPHA (CONF_UPPER|CONF_LOWER) 130#define CONF_ALPHA_NUMERIC (CONF_ALPHA|CONF_NUMBER|CONF_UNDER) 131#define CONF_ALPHA_NUMERIC_PUNCT (CONF_ALPHA|CONF_NUMBER|CONF_UNDER| \\ 132 CONF_PUNCTUATION) 133 134#define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) 135#ifndef CHARSET_EBCDIC 136#define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) 137#define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) 138#define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) 139#define IS_ESC(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_ESC) 140#define IS_NUMBER(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_NUMBER) 141#define IS_WS(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_WS) 142#define IS_ALPHA_NUMERIC(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_ALPHA_NUMERIC) 143#define IS_ALPHA_NUMERIC_PUNCT(c,a) \\ 144 (KEYTYPES(c)[(a)&0xff]&CONF_ALPHA_NUMERIC_PUNCT) 145#define IS_QUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_QUOTE) 146#define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) 147#define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) 148 149#else /*CHARSET_EBCDIC*/ 150 151#define IS_COMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_COMMENT) 152#define IS_FCOMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_FCOMMENT) 153#define IS_EOF(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_EOF) 154#define IS_ESC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ESC) 155#define IS_NUMBER(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_NUMBER) 156#define IS_WS(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_WS) 157#define IS_ALPHA_NUMERIC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC) 158#define IS_ALPHA_NUMERIC_PUNCT(c,a) \\ 159 (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC_PUNCT) 160#define IS_QUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_QUOTE) 161#define IS_DQUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_DQUOTE) 162#define IS_HIGHBIT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_HIGHBIT) 163#endif /*CHARSET_EBCDIC*/ 164 165EOF 166 167print "static unsigned short CONF_type_default[256]={"; 168 169for ($i=0; $i<256; $i++) 170 { 171 print "\n\t" if ($i % 8) == 0; 172 printf "0x%04X,",$V_def[$i]; 173 } 174 175print "\n\t};\n\n"; 176 177print "static unsigned short CONF_type_win32[256]={"; 178 179for ($i=0; $i<256; $i++) 180 { 181 print "\n\t" if ($i % 8) == 0; 182 printf "0x%04X,",$V_w32[$i]; 183 } 184 185print "\n\t};\n\n"; 186