Commit fd520577 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Add functions to allow extensions to be added to certificate requests.

Modify obj_dat.pl to take its files from the command line. Usage is now
perl obj_dat.pl objects.h obj_dat.h
this should avoid redirection shell escape problems under Win32.
parent 8b946344
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -4,10 +4,14 @@

 Changes between 0.9.4 and 0.9.5  [xx XXX 1999]

  *) Changed obj_dat.pl script so it takes its input and output files on
     the command line. This should avoid shell escape redirection problems
     under Win32.
     [Steve Henson]

  *) Initial support for certificate extension requests, these are included
     in things like Xenroll certificate requests. They will later be used to
     allow PKCS#10 requests to include a list of "requested extensions" which
     can be added.
     in things like Xenroll certificate requests. Included functions to allow
     extensions to be obtained and added.
     [Steve Henson]

  *) -crlf option to s_client and s_server for sending newlines as
+1 −1
Original line number Diff line number Diff line
@@ -724,7 +724,7 @@ if($IsWindows) {
EOF
	close(OUT);

	system "perl crypto/objects/obj_dat.pl <crypto\\objects\\objects.h >crypto\\objects\\obj_dat.h";
	system "perl crypto/objects/obj_dat.pl crypto/objects/objects.h crypto/objects/obj_dat.h";
} else {
	(system "make -f Makefile.ssl PERL=\'$perl\' links") == 0 or exit $?;
	### (system 'make depend') == 0 or exit $? if $depflags ne "";
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ top:
all:	obj_dat.h lib

obj_dat.h: objects.h obj_dat.pl
	$(PERL) ./obj_dat.pl < objects.h > obj_dat.h
	$(PERL) ./obj_dat.pl objects.h obj_dat.h

lib:	$(LIBOBJ)
	$(AR) $(LIB) $(LIBOBJ)
+30 −24
Original line number Diff line number Diff line
@@ -38,7 +38,10 @@ sub expand_obj
	return(%objn);
	}

while (<>)
open (IN,"$ARGV[0]") || die "Can't open input file $ARGV[0]";
open (OUT,">$ARGV[1]") || die "Can't open output file $ARGV[1]";

while (<IN>)
	{
	next unless /^\#define\s+(\S+)\s+(.*)$/;
	$v=$1;
@@ -55,6 +58,7 @@ while (<>)
		$objd{$v}=$d;
		}
	}
close IN;

%ob=&expand_obj(*objd);

@@ -132,7 +136,7 @@ foreach (sort obj_cmp @a)
	push(@ob,sprintf("&(nid_objs[%2d]),/* %-32s %s */\n",$_,$m,$v));
	}

print <<'EOF';
print OUT <<'EOF';
/* lib/obj/obj_dat.h */
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
@@ -193,21 +197,21 @@ print <<'EOF';

/* THIS FILE IS GENERATED FROM Objects.h by obj_dat.pl via the
 * following command:
 * perl obj_dat.pl < objects.h > obj_dat.h
 * perl obj_dat.pl objects.h obj_dat.h
 */

EOF

printf "#define NUM_NID %d\n",$n;
printf "#define NUM_SN %d\n",$#sn+1;
printf "#define NUM_LN %d\n",$#ln+1;
printf "#define NUM_OBJ %d\n\n",$#ob+1;
printf OUT "#define NUM_NID %d\n",$n;
printf OUT "#define NUM_SN %d\n",$#sn+1;
printf OUT "#define NUM_LN %d\n",$#ln+1;
printf OUT "#define NUM_OBJ %d\n\n",$#ob+1;

printf "static unsigned char lvalues[%d]={\n",$lvalues+1;
print @lvalues;
print "};\n\n";
printf OUT "static unsigned char lvalues[%d]={\n",$lvalues+1;
print OUT @lvalues;
print OUT "};\n\n";

printf "static ASN1_OBJECT nid_objs[NUM_NID]={\n";
printf OUT "static ASN1_OBJECT nid_objs[NUM_NID]={\n";
foreach (@out)
	{
	if (length($_) > 75)
@@ -218,30 +222,32 @@ foreach (@out)
			$t=$out.$_.",";
			if (length($t) > 70)
				{
				print "$out\n";
				print OUT "$out\n";
				$t="\t$_,";
				}
			$out=$t;
			}
		chop $out;
		print "$out";
		print OUT "$out";
		}
	else
		{ print $_; }
		{ print OUT $_; }
	}
print  "};\n\n";
print  OUT "};\n\n";

printf OUT "static ASN1_OBJECT *sn_objs[NUM_SN]={\n";
print  OUT @sn;
print  OUT "};\n\n";

printf "static ASN1_OBJECT *sn_objs[NUM_SN]={\n";
print  @sn;
print  "};\n\n";
printf OUT "static ASN1_OBJECT *ln_objs[NUM_LN]={\n";
print  OUT @ln;
print  OUT "};\n\n";

printf "static ASN1_OBJECT *ln_objs[NUM_LN]={\n";
print  @ln;
print  "};\n\n";
printf OUT "static ASN1_OBJECT *obj_objs[NUM_OBJ]={\n";
print  OUT @ob;
print  OUT "};\n\n";

printf "static ASN1_OBJECT *obj_objs[NUM_OBJ]={\n";
print  @ob;
print  "};\n\n";
close OUT;

sub der_it
	{
+3 −0
Original line number Diff line number Diff line
@@ -791,6 +791,9 @@ int X509_REQ_extension_nid(int nid);
int *		X509_REQ_get_extesion_nids(void);
void		X509_REQ_set_extension_nids(int *nids);
STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req);
int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts,
				int nid);
int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts);

int		X509_check_private_key(X509 *x509,EVP_PKEY *pkey);

Loading