> Well a couple of files have an ASN1_METHOD in them but nothing actually
> made use of those.
> 
> You could just #if 0 out that structure then #if 0 the small number
> of functions and references that use it.
> 
> Steve.

I took your advice, and blindly #if 0'd out several offending sections in
openssl includes.  Not being familiar with the library, I've no way of
knowing which bits are 'obsolete'.  I began to get cold feet, though, when
I saw that the definition of EVP_MD (i.e. struct env_md_st) also seems to
have these incomplete prototypes.  See evp.h:

struct env_md_st
        {
[......]
        /* FIXME: prototype these some day */
        int (*sign)();
        int (*verify)();
[.......]
        }

There are also such prototypes in pem.h, rsa.h, x509.h and ui.h.  Note 
that my usage so far only requires DSA signing and verifying so there 
could be further warnings

My code now compiles without warnings, but I don't think it'd be easy to 
modify the openssl source to compile with these header files(!)  This 
doesn't look like a stable way to integrate with an evolving library
like OpenSSL....

I'm attaching a patch against 0.9.7c, if you're interested in seeing the 
places I hit warnings.  I only touched the header files.

Matt

p.s. In case the attachment doesn't come through on the list, here's the
list of types and functions that I #if 0'd out:

asn1.h:
typedef struct asn1_method_st
i2d_ASN1_SET
ASN1_dup
ASN1_d2i_fp
ASN1_i2d_fp
ASN1_d2i_bio
ASN1_i2d_bio
i2d_ASN1_HEADER
d2i_ASN1_HEADER
ASN1_HEADER_new
ASN1_HEADER_free
X509_asn1_meth
RSAPrivateKey_asn1_meth
ASN1_IA5STRING_asn1_meth
ASN1_BIT_STRING_asn1_meth
ASN1_seq_unpack
ASN1_seq_pack
ASN1_unpack_string
ASN1_pack_string

evp.h:
struct env_md_st

pem.h:
PEM_ASN1_read_bio
PEM_ASN1_write_bio
PEM_ASN1_read
PEM_ASN1_write

rsa.h:
i2d_RSA_NET
d2i_RSA_NET
i2d_Netscape_RSA
d2i_Netscape_RSA

ui.h:
UI_ctrl

x509.h:
struct X509_objects_st
ASN1_verify
ASN1_sign


diff -Naur openssl-0.9.7c.orig/crypto/asn1/asn1.h openssl-0.9.7c/crypto/asn1/asn1.h
--- openssl-0.9.7c.orig/crypto/asn1/asn1.h	2003-04-10 01:03:22.000000000 +0100
+++ openssl-0.9.7c/crypto/asn1/asn1.h	2003-12-01 10:53:06.000000000 +0000
@@ -473,6 +473,7 @@
 DECLARE_STACK_OF(ASN1_TYPE)
 DECLARE_ASN1_SET_OF(ASN1_TYPE)
 
+#if 0
 typedef struct asn1_method_st
 	{
 	int (*i2d)();
@@ -488,6 +489,7 @@
 	char *data;
 	ASN1_METHOD *meth;
 	} ASN1_HEADER;
+#endif
 
 /* This is used to contain a list of bit names */
 typedef struct BIT_STRING_BITNAME_st {
@@ -796,11 +798,13 @@
 int ASN1_TIME_check(ASN1_TIME *t);
 ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out);
 
+#if 0
 int		i2d_ASN1_SET(STACK *a, unsigned char **pp,
 			int (*func)(), int ex_tag, int ex_class, int is_set);
 STACK *		d2i_ASN1_SET(STACK **a, unsigned char **pp, long length,
 			char *(*func)(), void (*free_func)(void *),
 			int ex_tag, int ex_class);
+#endif
 
 #ifndef OPENSSL_NO_BIO
 int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a);
@@ -851,14 +855,18 @@
 int ASN1_object_size(int constructed, int length, int tag);
 
 /* Used to implement other functions */
+#if 0
 char *ASN1_dup(int (*i2d)(),char *(*d2i)(),char *x);
+#endif
 
 void *ASN1_item_dup(const ASN1_ITEM *it, void *x);
 
 #ifndef OPENSSL_NO_FP_API
+#if 0
 char *ASN1_d2i_fp(char *(*xnew)(),char *(*d2i)(),FILE *fp,unsigned char **x);
-void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
 int ASN1_i2d_fp(int (*i2d)(),FILE *out,unsigned char *x);
+#endif
+void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
 int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x);
 int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
 #endif
@@ -866,9 +874,11 @@
 int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);
 
 #ifndef OPENSSL_NO_BIO
+#if 0
 char *ASN1_d2i_bio(char *(*xnew)(),char *(*d2i)(),BIO *bp,unsigned char **x);
-void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
 int ASN1_i2d_bio(int (*i2d)(),BIO *out,unsigned char *x);
+#endif
+void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
 int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x);
 int ASN1_UTCTIME_print(BIO *fp,ASN1_UTCTIME *a);
 int ASN1_GENERALIZEDTIME_print(BIO *fp,ASN1_GENERALIZEDTIME *a);
@@ -880,19 +890,23 @@
 #endif
 const char *ASN1_tag2str(int tag);
 
+#if 0
 /* Used to load and write netscape format cert/key */
 int i2d_ASN1_HEADER(ASN1_HEADER *a,unsigned char **pp);
 ASN1_HEADER *d2i_ASN1_HEADER(ASN1_HEADER **a,unsigned char **pp, long length);
 ASN1_HEADER *ASN1_HEADER_new(void );
 void ASN1_HEADER_free(ASN1_HEADER *a);
+#endif
 
 int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s);
 
+#if 0
 /* Not used that much at this point, except for the first two */
 ASN1_METHOD *X509_asn1_meth(void);
 ASN1_METHOD *RSAPrivateKey_asn1_meth(void);
 ASN1_METHOD *ASN1_IA5STRING_asn1_meth(void);
 ASN1_METHOD *ASN1_BIT_STRING_asn1_meth(void);
+#endif
 
 int ASN1_TYPE_set_octetstring(ASN1_TYPE *a,
 	unsigned char *data, int len);
@@ -903,13 +917,15 @@
 int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a,long *num,
 	unsigned char *data, int max_len);
 
+#if 0
 STACK *ASN1_seq_unpack(unsigned char *buf, int len, char *(*d2i)(),
 						 void (*free_func)(void *) ); 
 unsigned char *ASN1_seq_pack(STACK *safes, int (*i2d)(), unsigned char **buf,
 			     int *len );
 void *ASN1_unpack_string(ASN1_STRING *oct, char *(*d2i)());
-void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
 ASN1_STRING *ASN1_pack_string(void *obj, int (*i2d)(), ASN1_OCTET_STRING **oct);
+#endif
+void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
 
 void ASN1_STRING_set_default_mask(unsigned long mask);
diff -Naur openssl-0.9.7c.orig/crypto/evp/evp.h openssl-0.9.7c/crypto/evp/evp.h
--- openssl-0.9.7c.orig/crypto/evp/evp.h	2003-08-11 10:37:10.000000000 +0100
+++ openssl-0.9.7c/crypto/evp/evp.h	2003-12-01 10:57:53.000000000 +0000
@@ -267,6 +267,7 @@
 	} EVP_PKEY_METHOD;
 #endif
 
+#if 0
 #ifndef EVP_MD
 struct env_md_st
 	{
@@ -314,6 +315,7 @@
 #endif
 
 #endif /* !EVP_MD */
+#endif
 
 struct env_md_ctx_st
 	{
diff -Naur openssl-0.9.7c.orig/crypto/opensslconf.h openssl-0.9.7c/crypto/opensslconf.h
--- openssl-0.9.7c.orig/crypto/opensslconf.h	2003-09-30 13:38:13.000000000 +0100
+++ openssl-0.9.7c/crypto/opensslconf.h	2003-12-01 11:14:07.000000000 +0000
@@ -9,6 +9,9 @@
 #endif
 
 #endif /* OPENSSL_DOING_MAKEDEPEND */
+#ifndef OPENSSL_THREADS
+# define OPENSSL_THREADS
+#endif
 
 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
    asks for it.  This is a transient feature that is provided for those
@@ -79,7 +82,7 @@
 
 #if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
 #define CONFIG_HEADER_BN_H
-#undef BN_LLONG
+#define BN_LLONG
 
 /* Should we define BN_DIV2W here? */
 
@@ -98,7 +101,7 @@
 #define CONFIG_HEADER_RC4_LOCL_H
 /* if this is defined data[i] is used instead of *data, this is a %20
  * speedup on x86 */
-#undef RC4_INDEX
+#define RC4_INDEX
 #endif
 
 #if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
@@ -112,14 +115,14 @@
 /* the following is tweaked from a config script, that is why it is a
  * protected undef/define */
 #ifndef DES_PTR
-#undef DES_PTR
+#define DES_PTR
 #endif
 
 /* This helps C compiler generate the correct code for multiple functional
  * units.  It reduces register dependancies at the expense of 2 more
  * registers */
 #ifndef DES_RISC1
-#undef DES_RISC1
+#define DES_RISC1
 #endif
 
 #ifndef DES_RISC2
@@ -133,7 +136,7 @@
 /* Unroll the inner loop, this sometimes helps, sometimes hinders.
  * Very mucy CPU dependant */
 #ifndef DES_UNROLL
-#undef DES_UNROLL
+#define DES_UNROLL
 #endif
 
 /* These default values were supplied by
diff -Naur openssl-0.9.7c.orig/crypto/pem/pem.h openssl-0.9.7c/crypto/pem/pem.h
--- openssl-0.9.7c.orig/crypto/pem/pem.h	2002-11-12 13:22:41.000000000 +0000
+++ openssl-0.9.7c/crypto/pem/pem.h	2003-12-01 11:00:04.000000000 +0000
@@ -494,11 +494,13 @@
 		long len);
 int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp,
 	     pem_password_cb *cb, void *u);
+#if 0
 char *	PEM_ASN1_read_bio(char *(*d2i)(),const char *name,BIO *bp,char **x,
 		pem_password_cb *cb, void *u);
 int	PEM_ASN1_write_bio(int (*i2d)(),const char *name,BIO *bp,char *x,
 			   const EVP_CIPHER *enc,unsigned char *kstr,int klen,
 			   pem_password_cb *cb, void *u);
+#endif
 STACK_OF(X509_INFO) *	PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u);
 int	PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc,
 		unsigned char *kstr, int klen, pem_password_cb *cd, void *u);
@@ -508,11 +510,13 @@
 int	PEM_read(FILE *fp, char **name, char **header,
 		unsigned char **data,long *len);
 int	PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len);
+#if 0
 char *	PEM_ASN1_read(char *(*d2i)(),const char *name,FILE *fp,char **x,
 	pem_password_cb *cb, void *u);
 int	PEM_ASN1_write(int (*i2d)(),const char *name,FILE *fp,char *x,
 		       const EVP_CIPHER *enc,unsigned char *kstr,int klen,
 		       pem_password_cb *callback, void *u);
+#endif
 STACK_OF(X509_INFO) *	PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk,
 	pem_password_cb *cb, void *u);
 #endif
diff -Naur openssl-0.9.7c.orig/crypto/rsa/rsa.h openssl-0.9.7c/crypto/rsa/rsa.h
--- openssl-0.9.7c.orig/crypto/rsa/rsa.h	2003-05-07 12:38:13.000000000 +0100
+++ openssl-0.9.7c/crypto/rsa/rsa.h	2003-12-01 10:54:15.000000000 +0000
@@ -231,11 +231,13 @@
 int	RSA_print(BIO *bp, const RSA *r,int offset);
 #endif
 
+#if 0
 int i2d_RSA_NET(const RSA *a, unsigned char **pp, int (*cb)(), int sgckey);
 RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, int (*cb)(), int sgckey);
 
 int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, int (*cb)());
 RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, int (*cb)());
+#endif
 
 /* The following 2 functions sign and verify a X509_SIG ASN1 object
  * inside PKCS#1 padded RSA encryption */
diff -Naur openssl-0.9.7c.orig/crypto/ui/ui.h openssl-0.9.7c/crypto/ui/ui.h
--- openssl-0.9.7c.orig/crypto/ui/ui.h	2002-02-05 17:15:17.000000000 +0000
+++ openssl-0.9.7c/crypto/ui/ui.h	2003-12-01 10:53:36.000000000 +0000
@@ -217,7 +217,9 @@
 /* Give a user interface parametrised control commands.  This can be used to
    send down an integer, a data pointer or a function pointer, as well as
    be used to get information from a UI. */
+#if 0
 int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)());
+#endif
 
 /* The commands */
 /* Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the
diff -Naur openssl-0.9.7c.orig/crypto/x509/x509.h openssl-0.9.7c/crypto/x509/x509.h
--- openssl-0.9.7c.orig/crypto/x509/x509.h	2002-11-12 13:23:00.000000000 +0000
+++ openssl-0.9.7c/crypto/x509/x509.h	2003-12-01 10:59:16.000000000 +0000
@@ -114,12 +114,14 @@
 #define X509v3_KU_DECIPHER_ONLY		0x8000
 #define X509v3_KU_UNDEF			0xffff
 
+#if 0
 typedef struct X509_objects_st
 	{
 	int nid;
 	int (*a2i)();
 	int (*i2a)();
 	} X509_OBJECTS;
+#endif
 
 struct X509_algor_st
 	{
@@ -912,6 +914,7 @@
 void		X509_INFO_free(X509_INFO *a);
 char *		X509_NAME_oneline(X509_NAME *a,char *buf,int size);
 
+#if 0
 int ASN1_verify(int (*i2d)(), X509_ALGOR *algor1,
 	ASN1_BIT_STRING *signature,char *data,EVP_PKEY *pkey);
 
@@ -921,6 +924,7 @@
 int ASN1_sign(int (*i2d)(), X509_ALGOR *algor1, X509_ALGOR *algor2,
 	ASN1_BIT_STRING *signature,
 	char *data,EVP_PKEY *pkey, const EVP_MD *type);
+#endif
 
 int ASN1_item_digest(const ASN1_ITEM *it,const EVP_MD *type,void *data,
 	unsigned char *md,unsigned int *len);
diff -Naur openssl-0.9.7c.orig/include/openssl/asn1.h openssl-0.9.7c/include/openssl/asn1.h
--- openssl-0.9.7c.orig/include/openssl/asn1.h	2003-04-10 01:03:22.000000000 +0100
+++ openssl-0.9.7c/include/openssl/asn1.h	2003-12-01 10:53:06.000000000 +0000
@@ -473,6 +473,7 @@
 DECLARE_STACK_OF(ASN1_TYPE)
 DECLARE_ASN1_SET_OF(ASN1_TYPE)
 
+#if 0
 typedef struct asn1_method_st
 	{
 	int (*i2d)();
@@ -488,6 +489,7 @@
 	char *data;
 	ASN1_METHOD *meth;
 	} ASN1_HEADER;
+#endif
 
 /* This is used to contain a list of bit names */
 typedef struct BIT_STRING_BITNAME_st {
@@ -796,11 +798,13 @@
 int ASN1_TIME_check(ASN1_TIME *t);
 ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out);
 
+#if 0
 int		i2d_ASN1_SET(STACK *a, unsigned char **pp,
 			int (*func)(), int ex_tag, int ex_class, int is_set);
 STACK *		d2i_ASN1_SET(STACK **a, unsigned char **pp, long length,
 			char *(*func)(), void (*free_func)(void *),
 			int ex_tag, int ex_class);
+#endif
 
 #ifndef OPENSSL_NO_BIO
 int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a);
@@ -851,14 +855,18 @@
 int ASN1_object_size(int constructed, int length, int tag);
 
 /* Used to implement other functions */
+#if 0
 char *ASN1_dup(int (*i2d)(),char *(*d2i)(),char *x);
+#endif
 
 void *ASN1_item_dup(const ASN1_ITEM *it, void *x);
 
 #ifndef OPENSSL_NO_FP_API
+#if 0
 char *ASN1_d2i_fp(char *(*xnew)(),char *(*d2i)(),FILE *fp,unsigned char **x);
-void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
 int ASN1_i2d_fp(int (*i2d)(),FILE *out,unsigned char *x);
+#endif
+void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
 int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x);
 int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
 #endif
@@ -866,9 +874,11 @@
 int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);
 
 #ifndef OPENSSL_NO_BIO
+#if 0
 char *ASN1_d2i_bio(char *(*xnew)(),char *(*d2i)(),BIO *bp,unsigned char **x);
-void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
 int ASN1_i2d_bio(int (*i2d)(),BIO *out,unsigned char *x);
+#endif
+void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
 int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x);
 int ASN1_UTCTIME_print(BIO *fp,ASN1_UTCTIME *a);
 int ASN1_GENERALIZEDTIME_print(BIO *fp,ASN1_GENERALIZEDTIME *a);
@@ -880,19 +890,23 @@
 #endif
 const char *ASN1_tag2str(int tag);
 
+#if 0
 /* Used to load and write netscape format cert/key */
 int i2d_ASN1_HEADER(ASN1_HEADER *a,unsigned char **pp);
 ASN1_HEADER *d2i_ASN1_HEADER(ASN1_HEADER **a,unsigned char **pp, long length);
 ASN1_HEADER *ASN1_HEADER_new(void );
 void ASN1_HEADER_free(ASN1_HEADER *a);
+#endif
 
 int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s);
 
+#if 0
 /* Not used that much at this point, except for the first two */
 ASN1_METHOD *X509_asn1_meth(void);
 ASN1_METHOD *RSAPrivateKey_asn1_meth(void);
 ASN1_METHOD *ASN1_IA5STRING_asn1_meth(void);
 ASN1_METHOD *ASN1_BIT_STRING_asn1_meth(void);
+#endif
 
 int ASN1_TYPE_set_octetstring(ASN1_TYPE *a,
 	unsigned char *data, int len);
@@ -903,13 +917,15 @@
 int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a,long *num,
 	unsigned char *data, int max_len);
 
+#if 0
 STACK *ASN1_seq_unpack(unsigned char *buf, int len, char *(*d2i)(),
 						 void (*free_func)(void *) ); 
 unsigned char *ASN1_seq_pack(STACK *safes, int (*i2d)(), unsigned char **buf,
 			     int *len );
 void *ASN1_unpack_string(ASN1_STRING *oct, char *(*d2i)());
-void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
 ASN1_STRING *ASN1_pack_string(void *obj, int (*i2d)(), ASN1_OCTET_STRING **oct);
+#endif
+void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
 
 void ASN1_STRING_set_default_mask(unsigned long mask);
diff -Naur openssl-0.9.7c.orig/include/openssl/evp.h openssl-0.9.7c/include/openssl/evp.h
--- openssl-0.9.7c.orig/include/openssl/evp.h	2003-08-11 10:37:10.000000000 +0100
+++ openssl-0.9.7c/include/openssl/evp.h	2003-12-01 10:57:53.000000000 +0000
@@ -267,6 +267,7 @@
 	} EVP_PKEY_METHOD;
 #endif
 
+#if 0
 #ifndef EVP_MD
 struct env_md_st
 	{
@@ -314,6 +315,7 @@
 #endif
 
 #endif /* !EVP_MD */
+#endif
 
 struct env_md_ctx_st
 	{
diff -Naur openssl-0.9.7c.orig/include/openssl/opensslconf.h openssl-0.9.7c/include/openssl/opensslconf.h
--- openssl-0.9.7c.orig/include/openssl/opensslconf.h	2003-09-30 13:38:13.000000000 +0100
+++ openssl-0.9.7c/include/openssl/opensslconf.h	2003-12-01 11:14:07.000000000 +0000
@@ -9,6 +9,9 @@
 #endif
 
 #endif /* OPENSSL_DOING_MAKEDEPEND */
+#ifndef OPENSSL_THREADS
+# define OPENSSL_THREADS
+#endif
 
 /* The OPENSSL_NO_* macros are also defined as NO_* if the application
    asks for it.  This is a transient feature that is provided for those
@@ -79,7 +82,7 @@
 
 #if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
 #define CONFIG_HEADER_BN_H
-#undef BN_LLONG
+#define BN_LLONG
 
 /* Should we define BN_DIV2W here? */
 
@@ -98,7 +101,7 @@
 #define CONFIG_HEADER_RC4_LOCL_H
 /* if this is defined data[i] is used instead of *data, this is a %20
  * speedup on x86 */
-#undef RC4_INDEX
+#define RC4_INDEX
 #endif
 
 #if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
@@ -112,14 +115,14 @@
 /* the following is tweaked from a config script, that is why it is a
  * protected undef/define */
 #ifndef DES_PTR
-#undef DES_PTR
+#define DES_PTR
 #endif
 
 /* This helps C compiler generate the correct code for multiple functional
  * units.  It reduces register dependancies at the expense of 2 more
  * registers */
 #ifndef DES_RISC1
-#undef DES_RISC1
+#define DES_RISC1
 #endif
 
 #ifndef DES_RISC2
@@ -133,7 +136,7 @@
 /* Unroll the inner loop, this sometimes helps, sometimes hinders.
  * Very mucy CPU dependant */
 #ifndef DES_UNROLL
-#undef DES_UNROLL
+#define DES_UNROLL
 #endif
 
 /* These default values were supplied by
diff -Naur openssl-0.9.7c.orig/include/openssl/pem.h openssl-0.9.7c/include/openssl/pem.h
--- openssl-0.9.7c.orig/include/openssl/pem.h	2002-11-12 13:22:41.000000000 +0000
+++ openssl-0.9.7c/include/openssl/pem.h	2003-12-01 11:00:04.000000000 +0000
@@ -494,11 +494,13 @@
 		long len);
 int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp,
 	     pem_password_cb *cb, void *u);
+#if 0
 char *	PEM_ASN1_read_bio(char *(*d2i)(),const char *name,BIO *bp,char **x,
 		pem_password_cb *cb, void *u);
 int	PEM_ASN1_write_bio(int (*i2d)(),const char *name,BIO *bp,char *x,
 			   const EVP_CIPHER *enc,unsigned char *kstr,int klen,
 			   pem_password_cb *cb, void *u);
+#endif
 STACK_OF(X509_INFO) *	PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u);
 int	PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc,
 		unsigned char *kstr, int klen, pem_password_cb *cd, void *u);
@@ -508,11 +510,13 @@
 int	PEM_read(FILE *fp, char **name, char **header,
 		unsigned char **data,long *len);
 int	PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len);
+#if 0
 char *	PEM_ASN1_read(char *(*d2i)(),const char *name,FILE *fp,char **x,
 	pem_password_cb *cb, void *u);
 int	PEM_ASN1_write(int (*i2d)(),const char *name,FILE *fp,char *x,
 		       const EVP_CIPHER *enc,unsigned char *kstr,int klen,
 		       pem_password_cb *callback, void *u);
+#endif
 STACK_OF(X509_INFO) *	PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk,
 	pem_password_cb *cb, void *u);
 #endif
diff -Naur openssl-0.9.7c.orig/include/openssl/rsa.h openssl-0.9.7c/include/openssl/rsa.h
--- openssl-0.9.7c.orig/include/openssl/rsa.h	2003-05-07 12:38:13.000000000 +0100
+++ openssl-0.9.7c/include/openssl/rsa.h	2003-12-01 10:54:15.000000000 +0000
@@ -231,11 +231,13 @@
 int	RSA_print(BIO *bp, const RSA *r,int offset);
 #endif
 
+#if 0
 int i2d_RSA_NET(const RSA *a, unsigned char **pp, int (*cb)(), int sgckey);
 RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, int (*cb)(), int sgckey);
 
 int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, int (*cb)());
 RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, int (*cb)());
+#endif
 
 /* The following 2 functions sign and verify a X509_SIG ASN1 object
  * inside PKCS#1 padded RSA encryption */
diff -Naur openssl-0.9.7c.orig/include/openssl/ui.h openssl-0.9.7c/include/openssl/ui.h
--- openssl-0.9.7c.orig/include/openssl/ui.h	2002-02-05 17:15:17.000000000 +0000
+++ openssl-0.9.7c/include/openssl/ui.h	2003-12-01 10:53:36.000000000 +0000
@@ -217,7 +217,9 @@
 /* Give a user interface parametrised control commands.  This can be used to
    send down an integer, a data pointer or a function pointer, as well as
    be used to get information from a UI. */
+#if 0
 int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)());
+#endif
 
 /* The commands */
 /* Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the
diff -Naur openssl-0.9.7c.orig/include/openssl/x509.h openssl-0.9.7c/include/openssl/x509.h
--- openssl-0.9.7c.orig/include/openssl/x509.h	2002-11-12 13:23:00.000000000 +0000
+++ openssl-0.9.7c/include/openssl/x509.h	2003-12-01 10:59:16.000000000 +0000
@@ -114,12 +114,14 @@
 #define X509v3_KU_DECIPHER_ONLY		0x8000
 #define X509v3_KU_UNDEF			0xffff
 
+#if 0
 typedef struct X509_objects_st
 	{
 	int nid;
 	int (*a2i)();
 	int (*i2a)();
 	} X509_OBJECTS;
+#endif
 
 struct X509_algor_st
 	{
@@ -912,6 +914,7 @@
 void		X509_INFO_free(X509_INFO *a);
 char *		X509_NAME_oneline(X509_NAME *a,char *buf,int size);
 
+#if 0
 int ASN1_verify(int (*i2d)(), X509_ALGOR *algor1,
 	ASN1_BIT_STRING *signature,char *data,EVP_PKEY *pkey);
 
@@ -921,6 +924,7 @@
 int ASN1_sign(int (*i2d)(), X509_ALGOR *algor1, X509_ALGOR *algor2,
 	ASN1_BIT_STRING *signature,
 	char *data,EVP_PKEY *pkey, const EVP_MD *type);
+#endif
 
 int ASN1_item_digest(const ASN1_ITEM *it,const EVP_MD *type,void *data,
 	unsigned char *md,unsigned int *len);

Reply via email to