Changes between 0.9.1c and 0.9.2
+ *) Modifications to the mkdef.pl for Win32 DEF file creation. The usage
+ message is now correct (it understands "crypto" and "ssl" on its
+ command line). There is also now an "update" option. This will update
+ the util/ssleay.num and util/libeay.num files with any new functions.
+ If you do a:
+ perl util/mkdef.pl crypto ssl update
+ it will update them.
+
*) Overhauled the Perl interface (perl/*):
- ported BN stuff to OpenSSL's different BN library
- made the perl/ source tree CVS-aware
i2d_NETSCAPE_CERT_SEQUENCE 1200
i2d_ext_ku 1201
EVP_MD_CTX_copy 1202
+i2d_ASN1_ENUMERATED 1203
+d2i_ASN1_ENUMERATED 1204
+ASN1_ENUMERATED_set 1205
+ASN1_ENUMERATED_get 1206
+BN_to_ASN1_ENUMERATED 1207
+ASN1_ENUMERATED_to_BN 1208
+i2a_ASN1_ENUMERATED 1209
+a2i_ASN1_ENUMERATED 1210
+i2d_GENERAL_NAME 1211
+d2i_GENERAL_NAME 1212
+GENERAL_NAME_new 1213
+GENERAL_NAME_free 1214
+GENERAL_NAMES_new 1215
+GENERAL_NAMES_free 1216
+d2i_GENERAL_NAMES 1217
+i2d_GENERAL_NAMES 1218
+i2v_GENERAL_NAMES 1219
+i2s_ASN1_OCTET_STRING 1220
+s2i_ASN1_OCTET_STRING 1221
+X509V3_EXT_check_conf 1222
+hex_to_string 1223
+string_to_hex 1224
$NT=1 if $_ eq "32";
$NT=0 if $_ eq "16";
$do_ssl=1 if $_ eq "ssleay";
+ $do_ssl=1 if $_ eq "ssl";
$do_crypto=1 if $_ eq "libeay";
+ $do_crypto=1 if $_ eq "crypto";
+ $do_update=1 if $_ eq "update";
}
if (!$do_ssl && !$do_crypto)
}
%ssl_list=&load_numbers($ssl_num);
+$max_ssl = $max_num;
%crypto_list=&load_numbers($crypto_num);
+$max_crypto = $max_num;
$ssl="ssl/ssl.h";
$match{'NOPROTO'}=1;
$match2{'PERL5'}=1;
-&print_def_file(*STDOUT,"SSLEAY",*ssl_list,&do_defs("SSLEAY",$ssl))
- if $do_ssl == 1;
+@ssl_func = &do_defs("SSLEAY", $ssl);
+@crypto_func = &do_defs("LIBEAY", $crypto);
+
+if ($do_update) {
+
+if ($do_ssl == 1) {
+ open(OUT, ">>$ssl_num");
+ &update_numbers(*OUT,"SSLEAY",*ssl_list,$max_ssl, @ssl_func);
+ close OUT;
+}
+
+if($do_crypto == 1) {
+ open(OUT, ">>$crypto_num");
+ &update_numbers(*OUT,"LIBEAY",*crypto_list,$max_crypto, @crypto_func);
+ close OUT;
+}
+
+} else {
+
+ &print_def_file(*STDOUT,"SSLEAY",*ssl_list,@ssl_func)
+ if $do_ssl == 1;
+
+ &print_def_file(*STDOUT,"LIBEAY",*crypto_list,@crypto_func)
+ if $do_crypto == 1;
+
+}
-&print_def_file(*STDOUT,"LIBEAY",*crypto_list,&do_defs("LIBEAY",$crypto))
- if $do_crypto == 1;
sub do_defs
{
while (($i=index($a,"/*")) >= 0)
{
$j=index($a,"*/");
- break unless ($j >= 0);
+ last unless ($j >= 0);
$a=substr($a,0,$i).substr($a,$j+2);
# print "$i $j\n";
}
{
if (!defined($nums{$func}))
{
- printf STDERR "$func does not have a number assigned\n";
+ printf STDERR "$func does not have a number assigned\n"
+ if(!$do_update);
}
else
{
local($name)=@_;
local($j,@a,%ret);
+ $max_num = 0;
+
open(IN,"<$name") || die "unable to open $name:$!\n";
while (<IN>)
{
next if /^\s*$/;
@a=split;
$ret{$a[0]}=$a[1];
+ $max_num = $a[1] if $a[1] > $max_num;
}
close(IN);
return(%ret);
}
+
+sub update_numbers
+ {
+ local(*OUT,$name,*nums,$start_num, @functions)=@_;
+ my $new_funcs = 0;
+ print STDERR "Updating $name\n";
+ foreach $func (@functions)
+ {
+ if (!defined($nums{$func}))
+ {
+ $new_funcs++;
+ printf OUT "%s%-40s%d\n","",$func, ++$start_num;
+ }
+ }
+ if($new_funcs) {
+ print STDERR "$new_funcs New Functions added\n";
+ } else {
+ print STDERR "No New Functions Added\n";
+ }
+ }