Commit 7ed20a21 authored by Richard Levitte's avatar Richard Levitte
Browse files

Merge of stuff from main trunk, all conflicts resolved.

parent 6c621506
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -4,6 +4,31 @@

 Changes between 0.9.5a and 0.9.6  [xx XXX 2000]

  *) Reorganisation of the stack code. The macros are now all 
     collected in safestack.h . Each macro is defined in terms of
     a "stack macro" of the form SKM_<name>(type, a, b). The 
     DEBUG_SAFESTACK is now handled in terms of function casts,
     this has the advantage of retaining type safety without the
     use of additional functions. If DEBUG_SAFESTACK is not defined
     then the non typesafe macros are used instead. Also modified the
     mkstack.pl script to handle the new form. Needs testing to see
     if which (if any) compilers it chokes and maybe make DEBUG_SAFESTACK
     the default if no major problems. Also need analagous stuff for
     ASN1_SET_OF etc.
     [Steve Henson]

  *) When some versions of IIS use the 'NET' form of private key the
     key derivation algorithm is different. Normally MD5(password) is
     used as a 128 bit RC4 key. In the modified case
     MD5(MD5(password) + "SGCKEYSALT")  is used insted. Added some
     new functions i2d_RSA_NET(), d2i_RSA_NET() etc which are the same
     as the old Netscape_RSA functions except they have an additional
     'sgckey' parameter which uses the modified algorithm. Also added
     an -sgckey command line option to the rsa utility. Thanks to 
     Adrian Peck <bertie@ncipher.com> for posting details of the modified
     algorithm to openssl-dev.
     [Steve Henson]

  *) The evp_local.h macros were using 'c.##kname' which resulted in
     invalid expansion on some systems (SCO 5.0.5 for example).
     Corrected to 'c.kname'.
+1 −1
Original line number Diff line number Diff line
@@ -300,7 +300,7 @@ errors:
	perl util/mkerr.pl -recurse -write

stacks:
	perl util/mkstack.pl -recurse
	perl util/mkstack.pl -write

util/libeay.num::
	perl util/mkdef.pl crypto update
+7 −1
Original line number Diff line number Diff line

  OpenSSL STATUS                           Last modified at
  ______________                           $Date: 2000/05/30 07:16:55 $
  ______________                           $Date: 2000/06/19 14:44:56 $

  DEVELOPMENT STATE

@@ -27,6 +27,12 @@
	Private key, certificate and CRL API and implementation.
	Developing and bugfixing PKCS#7 (S/MIME code).
        Various X509 issues: character sets, certificate request extensions.
    o Geoff and Richard are currently working on:
	ENGINE (the new code that gives hardware support among others).
    o Richard is currently working on:
	UTIL (a new set of library functions to support some higher level
	      functionality that is currently missing).
	Dynamic thread-lock support.

  NEEDS PATCH

+0 −104
Original line number Diff line number Diff line
@@ -59,110 +59,6 @@

/* Hack a long name in crypto/asn1/a_mbstr.c */
#define ASN1_STRING_set_default_mask_asc ASN1_STRING_set_def_mask_asc
/* Hack the names created with DECLARE_STACK_OF(PKCS7_SIGNER_INFO) */
#define sk_PKCS7_SIGNER_INFO_new		sk_PKCS7_SIGINF_new
#define sk_PKCS7_SIGNER_INFO_new_null		sk_PKCS7_SIGINF_new_null
#define sk_PKCS7_SIGNER_INFO_free		sk_PKCS7_SIGINF_free
#define sk_PKCS7_SIGNER_INFO_num		sk_PKCS7_SIGINF_num
#define sk_PKCS7_SIGNER_INFO_value		sk_PKCS7_SIGINF_value
#define sk_PKCS7_SIGNER_INFO_set		sk_PKCS7_SIGINF_set
#define sk_PKCS7_SIGNER_INFO_zero		sk_PKCS7_SIGINF_zero
#define sk_PKCS7_SIGNER_INFO_push		sk_PKCS7_SIGINF_push
#define sk_PKCS7_SIGNER_INFO_unshift		sk_PKCS7_SIGINF_unshift
#define sk_PKCS7_SIGNER_INFO_find		sk_PKCS7_SIGINF_find
#define sk_PKCS7_SIGNER_INFO_delete		sk_PKCS7_SIGINF_delete
#define sk_PKCS7_SIGNER_INFO_delete_ptr		sk_PKCS7_SIGINF_delete_ptr
#define sk_PKCS7_SIGNER_INFO_insert		sk_PKCS7_SIGINF_insert
#define sk_PKCS7_SIGNER_INFO_set_cmp_func	sk_PKCS7_SIGINF_set_cmp_func
#define sk_PKCS7_SIGNER_INFO_dup		sk_PKCS7_SIGINF_dup
#define sk_PKCS7_SIGNER_INFO_pop_free		sk_PKCS7_SIGINF_pop_free
#define sk_PKCS7_SIGNER_INFO_shift		sk_PKCS7_SIGINF_shift
#define sk_PKCS7_SIGNER_INFO_pop		sk_PKCS7_SIGINF_pop
#define sk_PKCS7_SIGNER_INFO_sort		sk_PKCS7_SIGINF_sort

/* Hack the names created with DECLARE_STACK_OF(PKCS7_RECIP_INFO) */
#define sk_PKCS7_RECIP_INFO_new			sk_PKCS7_RECINF_new
#define sk_PKCS7_RECIP_INFO_new_null		sk_PKCS7_RECINF_new_null
#define sk_PKCS7_RECIP_INFO_free		sk_PKCS7_RECINF_free
#define sk_PKCS7_RECIP_INFO_num			sk_PKCS7_RECINF_num
#define sk_PKCS7_RECIP_INFO_value		sk_PKCS7_RECINF_value
#define sk_PKCS7_RECIP_INFO_set			sk_PKCS7_RECINF_set
#define sk_PKCS7_RECIP_INFO_zero		sk_PKCS7_RECINF_zero
#define sk_PKCS7_RECIP_INFO_push		sk_PKCS7_RECINF_push
#define sk_PKCS7_RECIP_INFO_unshift		sk_PKCS7_RECINF_unshift
#define sk_PKCS7_RECIP_INFO_find		sk_PKCS7_RECINF_find
#define sk_PKCS7_RECIP_INFO_delete		sk_PKCS7_RECINF_delete
#define sk_PKCS7_RECIP_INFO_delete_ptr		sk_PKCS7_RECINF_delete_ptr
#define sk_PKCS7_RECIP_INFO_insert		sk_PKCS7_RECINF_insert
#define sk_PKCS7_RECIP_INFO_set_cmp_func	sk_PKCS7_RECINF_set_cmp_func
#define sk_PKCS7_RECIP_INFO_dup			sk_PKCS7_RECINF_dup
#define sk_PKCS7_RECIP_INFO_pop_free		sk_PKCS7_RECINF_pop_free
#define sk_PKCS7_RECIP_INFO_shift		sk_PKCS7_RECINF_shift
#define sk_PKCS7_RECIP_INFO_pop			sk_PKCS7_RECINF_pop
#define sk_PKCS7_RECIP_INFO_sort		sk_PKCS7_RECINF_sort

/* Hack the names created with DECLARE_STACK_OF(ASN1_STRING_TABLE) */
#define sk_ASN1_STRING_TABLE_new		sk_ASN1_STRTAB_new
#define sk_ASN1_STRING_TABLE_new_null		sk_ASN1_STRTAB_new_null
#define sk_ASN1_STRING_TABLE_free		sk_ASN1_STRTAB_free
#define sk_ASN1_STRING_TABLE_num		sk_ASN1_STRTAB_num
#define sk_ASN1_STRING_TABLE_value		sk_ASN1_STRTAB_value
#define sk_ASN1_STRING_TABLE_set		sk_ASN1_STRTAB_set
#define sk_ASN1_STRING_TABLE_zero		sk_ASN1_STRTAB_zero
#define sk_ASN1_STRING_TABLE_push		sk_ASN1_STRTAB_push
#define sk_ASN1_STRING_TABLE_unshift		sk_ASN1_STRTAB_unshift
#define sk_ASN1_STRING_TABLE_find		sk_ASN1_STRTAB_find
#define sk_ASN1_STRING_TABLE_delete		sk_ASN1_STRTAB_delete
#define sk_ASN1_STRING_TABLE_delete_ptr		sk_ASN1_STRTAB_delete_ptr
#define sk_ASN1_STRING_TABLE_insert		sk_ASN1_STRTAB_insert
#define sk_ASN1_STRING_TABLE_set_cmp_func	sk_ASN1_STRTAB_set_cmp_func
#define sk_ASN1_STRING_TABLE_dup		sk_ASN1_STRTAB_dup
#define sk_ASN1_STRING_TABLE_pop_free		sk_ASN1_STRTAB_pop_free
#define sk_ASN1_STRING_TABLE_shift		sk_ASN1_STRTAB_shift
#define sk_ASN1_STRING_TABLE_pop		sk_ASN1_STRTAB_pop
#define sk_ASN1_STRING_TABLE_sort		sk_ASN1_STRTAB_sort

/* Hack the names created with DECLARE_STACK_OF(ACCESS_DESCRIPTION) */
#define sk_ACCESS_DESCRIPTION_new		sk_ACC_DESC_new
#define sk_ACCESS_DESCRIPTION_new_null		sk_ACC_DESC_new_null
#define sk_ACCESS_DESCRIPTION_free		sk_ACC_DESC_free
#define sk_ACCESS_DESCRIPTION_num		sk_ACC_DESC_num
#define sk_ACCESS_DESCRIPTION_value		sk_ACC_DESC_value
#define sk_ACCESS_DESCRIPTION_set		sk_ACC_DESC_set
#define sk_ACCESS_DESCRIPTION_zero		sk_ACC_DESC_zero
#define sk_ACCESS_DESCRIPTION_push		sk_ACC_DESC_push
#define sk_ACCESS_DESCRIPTION_unshift		sk_ACC_DESC_unshift
#define sk_ACCESS_DESCRIPTION_find		sk_ACC_DESC_find
#define sk_ACCESS_DESCRIPTION_delete		sk_ACC_DESC_delete
#define sk_ACCESS_DESCRIPTION_delete_ptr	sk_ACC_DESC_delete_ptr
#define sk_ACCESS_DESCRIPTION_insert		sk_ACC_DESC_insert
#define sk_ACCESS_DESCRIPTION_set_cmp_func	sk_ACC_DESC_set_cmp_func
#define sk_ACCESS_DESCRIPTION_dup		sk_ACC_DESC_dup
#define sk_ACCESS_DESCRIPTION_pop_free		sk_ACC_DESC_pop_free
#define sk_ACCESS_DESCRIPTION_shift		sk_ACC_DESC_shift
#define sk_ACCESS_DESCRIPTION_pop		sk_ACC_DESC_pop
#define sk_ACCESS_DESCRIPTION_sort		sk_ACC_DESC_sort

/* Hack the names created with DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS) */
#define sk_CRYPTO_EX_DATA_FUNCS_new		sk_CRYPT_EX_DATFNS_new
#define sk_CRYPTO_EX_DATA_FUNCS_new_null	sk_CRYPT_EX_DATFNS_new_null
#define sk_CRYPTO_EX_DATA_FUNCS_free		sk_CRYPT_EX_DATFNS_free
#define sk_CRYPTO_EX_DATA_FUNCS_num		sk_CRYPT_EX_DATFNS_num
#define sk_CRYPTO_EX_DATA_FUNCS_value		sk_CRYPT_EX_DATFNS_value
#define sk_CRYPTO_EX_DATA_FUNCS_set		sk_CRYPT_EX_DATFNS_set
#define sk_CRYPTO_EX_DATA_FUNCS_zero		sk_CRYPT_EX_DATFNS_zero
#define sk_CRYPTO_EX_DATA_FUNCS_push		sk_CRYPT_EX_DATFNS_push
#define sk_CRYPTO_EX_DATA_FUNCS_unshift		sk_CRYPT_EX_DATFNS_unshift
#define sk_CRYPTO_EX_DATA_FUNCS_find		sk_CRYPT_EX_DATFNS_find
#define sk_CRYPTO_EX_DATA_FUNCS_delete		sk_CRYPT_EX_DATFNS_delete
#define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr	sk_CRYPT_EX_DATFNS_delete_ptr
#define sk_CRYPTO_EX_DATA_FUNCS_insert		sk_CRYPT_EX_DATFNS_insert
#define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func	sk_CRYPT_EX_DATFNS_set_cmp_func
#define sk_CRYPTO_EX_DATA_FUNCS_dup		sk_CRYPT_EX_DATFNS_dup
#define sk_CRYPTO_EX_DATA_FUNCS_pop_free	sk_CRYPT_EX_DATFNS_pop_free
#define sk_CRYPTO_EX_DATA_FUNCS_shift		sk_CRYPT_EX_DATFNS_shift
#define sk_CRYPTO_EX_DATA_FUNCS_pop		sk_CRYPT_EX_DATFNS_pop
#define sk_CRYPTO_EX_DATA_FUNCS_sort		sk_CRYPT_EX_DATFNS_sort

/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) */
#define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO	i2d_ASN1_SET_OF_PKCS7_SIGINF
+7 −4
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ int MAIN(int argc, char **argv)
	{
	int ret=1;
	RSA *rsa=NULL;
	int i,badops=0;
	int i,badops=0, sgckey=0;
	const EVP_CIPHER *enc=NULL;
	BIO *in=NULL,*out=NULL;
	int informat,outformat,text=0,check=0,noout=0;
@@ -148,6 +148,8 @@ int MAIN(int argc, char **argv)
			if (--argc < 1) goto bad;
			passargout= *(++argv);
			}
		else if (strcmp(*argv,"-sgckey") == 0)
			sgckey=1;
		else if (strcmp(*argv,"-pubin") == 0)
			pubin=1;
		else if (strcmp(*argv,"-pubout") == 0)
@@ -178,6 +180,7 @@ bad:
		BIO_printf(bio_err," -inform arg     input format - one of DER NET PEM\n");
		BIO_printf(bio_err," -outform arg    output format - one of DER NET PEM\n");
		BIO_printf(bio_err," -in arg         input file\n");
		BIO_printf(bio_err," -sgckey         Use IIS SGC key format\n");
		BIO_printf(bio_err," -passin arg     input file pass phrase source\n");
		BIO_printf(bio_err," -out arg        output file\n");
		BIO_printf(bio_err," -passout arg    output file pass phrase source\n");
@@ -254,7 +257,7 @@ bad:
				}
			}
		p=(unsigned char *)buf->data;
		rsa=d2i_Netscape_RSA(NULL,&p,(long)size,NULL);
		rsa=d2i_RSA_NET(NULL,&p,(long)size,NULL, sgckey);
		BUF_MEM_free(buf);
		}
#endif
@@ -344,14 +347,14 @@ bad:
		int size;

		i=1;
		size=i2d_Netscape_RSA(rsa,NULL,NULL);
		size=i2d_RSA_NET(rsa,NULL,NULL, sgckey);
		if ((p=(unsigned char *)OPENSSL_malloc(size)) == NULL)
			{
			BIO_printf(bio_err,"Memory allocation failure\n");
			goto end;
			}
		pp=p;
		i2d_Netscape_RSA(rsa,&p,NULL);
		i2d_RSA_NET(rsa,&p,NULL, sgckey);
		BIO_write(out,(char *)pp,size);
		OPENSSL_free(pp);
		}
Loading