VirtualBox

source: vbox/trunk/src/libs/openssl-3.1.0/crypto/conf/keysets.pl@ 100908

最後變更 在這個檔案從100908是 99366,由 vboxsync 提交於 22 月 前

openssl-3.1.0: Applied and adjusted our OpenSSL changes to 3.0.7. bugref:10418

檔案大小: 4.0 KB
 
1#! /usr/bin/env perl
2# Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
3#
4# Licensed under the Apache License 2.0 (the "License"). You may not use
5# this file except in compliance with the License. You can obtain a copy
6# in the file LICENSE in the source distribution or at
7# https://www.openssl.org/source/license.html
8
9use strict;
10use warnings;
11use FindBin;
12use lib "$FindBin::Bin/../../util/perl";
13use OpenSSL::copyright;
14
15my $NUMBER = 0x0001;
16my $UPPER = 0x0002;
17my $LOWER = 0x0004;
18my $UNDER = 0x0100;
19my $PUNCTUATION = 0x0200;
20my $WS = 0x0010;
21my $ESC = 0x0020;
22my $QUOTE = 0x0040;
23my $DQUOTE = 0x0400;
24my $COMMENT = 0x0080;
25my $FCOMMENT = 0x0800;
26my $DOLLAR = 0x1000;
27my $EOF = 0x0008;
28my @V_def;
29my @V_w32;
30
31my $v;
32my $c;
33foreach (0 .. 127) {
34 $c = sprintf("%c", $_);
35 $v = 0;
36 $v |= $NUMBER if $c =~ /[0-9]/;
37 $v |= $UPPER if $c =~ /[A-Z]/;
38 $v |= $LOWER if $c =~ /[a-z]/;
39 $v |= $UNDER if $c =~ /_/;
40 $v |= $PUNCTUATION if $c =~ /[!\.%&\*\+,\/;\?\@\^\~\|-]/;
41 $v |= $WS if $c =~ /[ \t\r\n]/;
42 $v |= $ESC if $c =~ /\\/;
43 $v |= $QUOTE if $c =~ /['`"]/; # for emacs: "`'
44 $v |= $COMMENT if $c =~ /\#/;
45 $v |= $DOLLAR if $c eq '$';
46 $v |= $EOF if $c =~ /\0/;
47 push(@V_def, $v);
48
49 $v = 0;
50 $v |= $NUMBER if $c =~ /[0-9]/;
51 $v |= $UPPER if $c =~ /[A-Z]/;
52 $v |= $LOWER if $c =~ /[a-z]/;
53 $v |= $UNDER if $c =~ /_/;
54 $v |= $PUNCTUATION if $c =~ /[!\.%&\*\+,\/;\?\@\^\~\|-]/;
55 $v |= $WS if $c =~ /[ \t\r\n]/;
56 $v |= $DQUOTE if $c =~ /["]/; # for emacs: "
57 $v |= $FCOMMENT if $c =~ /;/;
58 $v |= $DOLLAR if $c eq '$';
59 $v |= $EOF if $c =~ /\0/;
60 push(@V_w32, $v);
61}
62
63# The year the output file is generated.
64my $YEAR = OpenSSL::copyright::year_of($0);
65print <<"EOF";
66/*
67 * WARNING: do not edit!
68 * Generated by crypto/conf/keysets.pl
69 *
70 * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved.
71 * Licensed under the Apache License 2.0 (the "License"). You may not use
72 * this file except in compliance with the License. You can obtain a copy
73 * in the file LICENSE in the source distribution or at
74 * https://www.openssl.org/source/license.html
75 */
76
77#define CONF_NUMBER $NUMBER
78#define CONF_UPPER $UPPER
79#define CONF_LOWER $LOWER
80#define CONF_UNDER $UNDER
81#define CONF_PUNCT $PUNCTUATION
82#define CONF_WS $WS
83#define CONF_ESC $ESC
84#define CONF_QUOTE $QUOTE
85#define CONF_DQUOTE $DQUOTE
86#define CONF_COMMENT $COMMENT
87#define CONF_FCOMMENT $FCOMMENT
88#define CONF_DOLLAR $DOLLAR
89#define CONF_EOF $EOF
90#define CONF_ALPHA (CONF_UPPER|CONF_LOWER)
91#define CONF_ALNUM (CONF_ALPHA|CONF_NUMBER|CONF_UNDER)
92#define CONF_ALNUM_PUNCT (CONF_ALPHA|CONF_NUMBER|CONF_UNDER|CONF_PUNCT)
93
94
95#define IS_COMMENT(conf,c) is_keytype(conf, c, CONF_COMMENT)
96#define IS_FCOMMENT(conf,c) is_keytype(conf, c, CONF_FCOMMENT)
97#define IS_EOF(conf,c) is_keytype(conf, c, CONF_EOF)
98#define IS_ESC(conf,c) is_keytype(conf, c, CONF_ESC)
99#define IS_NUMBER(conf,c) is_keytype(conf, c, CONF_NUMBER)
100#define IS_WS(conf,c) is_keytype(conf, c, CONF_WS)
101#define IS_ALNUM(conf,c) is_keytype(conf, c, CONF_ALNUM)
102#define IS_ALNUM_PUNCT(conf,c) is_keytype(conf, c, CONF_ALNUM_PUNCT)
103#define IS_QUOTE(conf,c) is_keytype(conf, c, CONF_QUOTE)
104#define IS_DQUOTE(conf,c) is_keytype(conf, c, CONF_DQUOTE)
105#define IS_DOLLAR(conf,c) is_keytype(conf, c, CONF_DOLLAR)
106
107EOF
108
109my $i;
110
111print "static const unsigned short CONF_type_default[128] = {";
112for ($i = 0; $i < 128; $i++) {
113 print "\n " if ($i % 8) == 0;
114 printf " 0x%04X,", $V_def[$i];
115}
116print "\n};\n\n";
117
118print "#ifndef OPENSSL_NO_DEPRECATED_3_0\n";
119print "static const unsigned short CONF_type_win32[128] = {";
120for ($i = 0; $i < 128; $i++) {
121 print "\n " if ($i % 8) == 0;
122 printf " 0x%04X,", $V_w32[$i];
123}
124print "\n};\n";
125print "#endif\n";
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette