This commit was generated by cvs2svn to track changes on a CVS vendor
[openssl.git] / crypto / err / err_code.pl
1 #!/usr/local/bin/perl
2
3 %errfile=(
4         "ERR",  "NONE",
5         "BN",   "bn/bn.err",
6         "RSA",  "rsa/rsa.err",
7         "DSA",  "dsa/dsa.err",
8         "DH",   "dh/dh.err",
9         "EVP",  "evp/evp.err",
10         "BUF",  "buffer/buffer.err",
11         "BIO",  "bio/bio.err",
12         "OBJ",  "objects/objects.err",
13         "PEM",  "pem/pem.err",
14         "X509", "x509/x509.err",
15         "METH", "meth/meth.err",
16         "ASN1", "asn1/asn1.err",
17         "CONF", "conf/conf.err",
18         "PROXY","proxy/proxy.err",
19         "PKCS7","pkcs7/pkcs7.err",
20         "RSAREF","../rsaref/rsaref.err",
21         "SSL",  "../ssl/ssl.err",
22         "SSL2", "../ssl/ssl2.err",
23         "SSL3", "../ssl/ssl3.err",
24         "SSL23","../ssl/ssl23.err",
25         );
26
27 $function{'RSAREF_F_RSA_BN2BIN'}=1;
28 $function{'RSAREF_F_RSA_PRIVATE_DECRYPT'}=1;
29 $function{'RSAREF_F_RSA_PRIVATE_ENCRYPT'}=1;
30 $function{'RSAREF_F_RSA_PUBLIC_DECRYPT'}=1;
31 $function{'RSAREF_F_RSA_PUBLIC_ENCRYPT'}=1;
32 $function{'SSL_F_CLIENT_CERTIFICATE'}=1;
33
34 $r_value{'SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE'}=       1010;
35 $r_value{'SSL_R_SSLV3_ALERT_BAD_RECORD_MAC'}=   1020;
36 $r_value{'SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE'}=1030;
37 $r_value{'SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE'}=        1040;
38 $r_value{'SSL_R_SSLV3_ALERT_NO_CERTIFICATE'}=   1041;
39 $r_value{'SSL_R_SSLV3_ALERT_BAD_CERTIFICATE'}=  1042;
40 $r_value{'SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE'}=1043;
41 $r_value{'SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED'}=      1044;
42 $r_value{'SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED'}=      1045;
43 $r_value{'SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN'}=      1046;
44 $r_value{'SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER'}=        1047;
45
46 $r_value{'RSAREF_R_CONTENT_ENCODING'}=  0x0400;
47 $r_value{'RSAREF_R_DATA'}=              0x0401;
48 $r_value{'RSAREF_R_DIGEST_ALGORITHM'}=  0x0402;
49 $r_value{'RSAREF_R_ENCODING'}=          0x0403;
50 $r_value{'RSAREF_R_KEY'}=               0x0404;
51 $r_value{'RSAREF_R_KEY_ENCODING'}=      0x0405;
52 $r_value{'RSAREF_R_LEN'}=               0x0406;
53 $r_value{'RSAREF_R_MODULUS_LEN'}=       0x0407;
54 $r_value{'RSAREF_R_NEED_RANDOM'}=       0x0408;
55 $r_value{'RSAREF_R_PRIVATE_KEY'}=       0x0409;
56 $r_value{'RSAREF_R_PUBLIC_KEY'}=        0x040a;
57 $r_value{'RSAREF_R_SIGNATURE'}=         0x040b;
58 $r_value{'RSAREF_R_SIGNATURE_ENCODING'}=0x040c;
59 $r_value{'RSAREF_R_ENCRYPTION_ALGORITHM'}=0x040d;
60
61 $last="";
62 while (<>)
63         {
64         if (/err\(([A-Z0-9]+_F_[0-9A-Z_]+)\s*,\s*([0-9A-Z]+_R_[0-9A-Z_]+)\s*\)/)
65                 {
66                 if ($1 != $last)
67                         {
68                         if ($function{$1} == 0)
69                                 {
70                                 printf STDERR "$. $1 is bad\n";
71                                 }
72                         }
73                 $function{$1}++;
74                 $last=$1;
75                 $reason{$2}++;
76                 }
77         }
78
79 foreach (keys %function,keys %reason)
80         {
81         /^([A-Z0-9]+)_/;
82         $prefix{$1}++;
83         }
84
85 @F=sort keys %function;
86 @R=sort keys %reason;
87 foreach $j (sort keys %prefix)
88         {
89         next if $errfile{$j} eq "NONE";
90         printf STDERR "doing %-6s - ",$j;
91         open(OUT,">$errfile{$j}") || die "unable to open '$errfile{$j}':$!\n";
92         @f=grep(/^${j}_/,@F);
93         @r=grep(/^${j}_/,@R);
94         $num=100;
95         print OUT "/* Error codes for the $j functions. */\n\n";
96         print OUT "/* Function codes. */\n";
97         $f_count=0;
98         foreach $i (@f)
99                 {
100                 $z=6-int(length($i)/8);
101                 printf OUT "#define $i%s $num\n","\t" x $z;
102                 $num++;
103                 $f_count++;
104                 }
105         $num=100;
106         print OUT "\n/* Reason codes. */\n";
107         $r_count=0;
108         foreach $i (@r)
109                 {
110                 $z=6-int(length($i)/8);
111                 if (defined($r_value{$i}))
112                         {
113                         printf OUT "#define $i%s $r_value{$i}\n","\t" x $z;
114                         }
115                 else
116                         {
117                         printf OUT "#define $i%s $num\n","\t" x $z;
118                         $num++;
119                         }
120                 $r_count++;
121                 }
122         close(OUT);
123
124         printf STDERR "%3d functions, %3d reasons\n",$f_count,$r_count;
125         }
126