127 lines
3.2 KiB
Raku
127 lines
3.2 KiB
Raku
#!/usr/local/bin/perl
|
|
|
|
%errfile=(
|
|
"ERR", "NONE",
|
|
"BN", "bn/bn.err",
|
|
"RSA", "rsa/rsa.err",
|
|
"DSA", "dsa/dsa.err",
|
|
"DH", "dh/dh.err",
|
|
"EVP", "evp/evp.err",
|
|
"BUF", "buffer/buffer.err",
|
|
"BIO", "bio/bio.err",
|
|
"OBJ", "objects/objects.err",
|
|
"PEM", "pem/pem.err",
|
|
"X509", "x509/x509.err",
|
|
"METH", "meth/meth.err",
|
|
"ASN1", "asn1/asn1.err",
|
|
"CONF", "conf/conf.err",
|
|
"PROXY","proxy/proxy.err",
|
|
"PKCS7","pkcs7/pkcs7.err",
|
|
"RSAREF","../rsaref/rsaref.err",
|
|
"SSL", "../ssl/ssl.err",
|
|
"SSL2", "../ssl/ssl2.err",
|
|
"SSL3", "../ssl/ssl3.err",
|
|
"SSL23","../ssl/ssl23.err",
|
|
);
|
|
|
|
$function{'RSAREF_F_RSA_BN2BIN'}=1;
|
|
$function{'RSAREF_F_RSA_PRIVATE_DECRYPT'}=1;
|
|
$function{'RSAREF_F_RSA_PRIVATE_ENCRYPT'}=1;
|
|
$function{'RSAREF_F_RSA_PUBLIC_DECRYPT'}=1;
|
|
$function{'RSAREF_F_RSA_PUBLIC_ENCRYPT'}=1;
|
|
$function{'SSL_F_CLIENT_CERTIFICATE'}=1;
|
|
|
|
$r_value{'SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE'}= 1010;
|
|
$r_value{'SSL_R_SSLV3_ALERT_BAD_RECORD_MAC'}= 1020;
|
|
$r_value{'SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE'}=1030;
|
|
$r_value{'SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE'}= 1040;
|
|
$r_value{'SSL_R_SSLV3_ALERT_NO_CERTIFICATE'}= 1041;
|
|
$r_value{'SSL_R_SSLV3_ALERT_BAD_CERTIFICATE'}= 1042;
|
|
$r_value{'SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE'}=1043;
|
|
$r_value{'SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED'}= 1044;
|
|
$r_value{'SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED'}= 1045;
|
|
$r_value{'SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN'}= 1046;
|
|
$r_value{'SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER'}= 1047;
|
|
|
|
$r_value{'RSAREF_R_CONTENT_ENCODING'}= 0x0400;
|
|
$r_value{'RSAREF_R_DATA'}= 0x0401;
|
|
$r_value{'RSAREF_R_DIGEST_ALGORITHM'}= 0x0402;
|
|
$r_value{'RSAREF_R_ENCODING'}= 0x0403;
|
|
$r_value{'RSAREF_R_KEY'}= 0x0404;
|
|
$r_value{'RSAREF_R_KEY_ENCODING'}= 0x0405;
|
|
$r_value{'RSAREF_R_LEN'}= 0x0406;
|
|
$r_value{'RSAREF_R_MODULUS_LEN'}= 0x0407;
|
|
$r_value{'RSAREF_R_NEED_RANDOM'}= 0x0408;
|
|
$r_value{'RSAREF_R_PRIVATE_KEY'}= 0x0409;
|
|
$r_value{'RSAREF_R_PUBLIC_KEY'}= 0x040a;
|
|
$r_value{'RSAREF_R_SIGNATURE'}= 0x040b;
|
|
$r_value{'RSAREF_R_SIGNATURE_ENCODING'}=0x040c;
|
|
$r_value{'RSAREF_R_ENCRYPTION_ALGORITHM'}=0x040d;
|
|
|
|
$last="";
|
|
while (<>)
|
|
{
|
|
if (/err\(([A-Z0-9]+_F_[0-9A-Z_]+)\s*,\s*([0-9A-Z]+_R_[0-9A-Z_]+)\s*\)/)
|
|
{
|
|
if ($1 != $last)
|
|
{
|
|
if ($function{$1} == 0)
|
|
{
|
|
printf STDERR "$. $1 is bad\n";
|
|
}
|
|
}
|
|
$function{$1}++;
|
|
$last=$1;
|
|
$reason{$2}++;
|
|
}
|
|
}
|
|
|
|
foreach (keys %function,keys %reason)
|
|
{
|
|
/^([A-Z0-9]+)_/;
|
|
$prefix{$1}++;
|
|
}
|
|
|
|
@F=sort keys %function;
|
|
@R=sort keys %reason;
|
|
foreach $j (sort keys %prefix)
|
|
{
|
|
next if $errfile{$j} eq "NONE";
|
|
printf STDERR "doing %-6s - ",$j;
|
|
open(OUT,">$errfile{$j}") || die "unable to open '$errfile{$j}':$!\n";
|
|
@f=grep(/^${j}_/,@F);
|
|
@r=grep(/^${j}_/,@R);
|
|
$num=100;
|
|
print OUT "/* Error codes for the $j functions. */\n\n";
|
|
print OUT "/* Function codes. */\n";
|
|
$f_count=0;
|
|
foreach $i (@f)
|
|
{
|
|
$z=6-int(length($i)/8);
|
|
printf OUT "#define $i%s $num\n","\t" x $z;
|
|
$num++;
|
|
$f_count++;
|
|
}
|
|
$num=100;
|
|
print OUT "\n/* Reason codes. */\n";
|
|
$r_count=0;
|
|
foreach $i (@r)
|
|
{
|
|
$z=6-int(length($i)/8);
|
|
if (defined($r_value{$i}))
|
|
{
|
|
printf OUT "#define $i%s $r_value{$i}\n","\t" x $z;
|
|
}
|
|
else
|
|
{
|
|
printf OUT "#define $i%s $num\n","\t" x $z;
|
|
$num++;
|
|
}
|
|
$r_count++;
|
|
}
|
|
close(OUT);
|
|
|
|
printf STDERR "%3d functions, %3d reasons\n",$f_count,$r_count;
|
|
}
|
|
|