提交 5fd4e2b1 编写于 作者: B Bodo Möller

Don#t auto-generate crypto/pem/pem.h -- a fixed file is fine for it.

Submitted by:
Reviewed by:
PR:
上级 f73e07cf
......@@ -5,6 +5,9 @@
Changes between 0.9.2b and 0.9.3
*) Don't auto-generate pem.h.
[Bodo Moeller]
*) Introduce type-safe ASN.1 SETs.
[Ben Laurie]
......
......@@ -236,9 +236,9 @@ my %table=(
# Miscellaneous hacks: this is designed to allow environments where the "one
# makefile" option does not auto build all files.
# The first six fields are the hard coded versions of the stuff generated by
# ctx_size for pem.h: that is EVP_ENCODE_CTX_SIZE, EVP_MD_SIZE EVP_MD_CTX_SIZE,
# EVP_CIPHER_SIZE, EVP_CIPHER_CTX_SIZE and EVP_MAX_MD_SIZE respectively.
## # The first six fields are the hard coded versions of the stuff generated by
## # ctx_size for pem.h: that is EVP_ENCODE_CTX_SIZE, EVP_MD_SIZE EVP_MD_CTX_SIZE,
## # EVP_CIPHER_SIZE, EVP_CIPHER_CTX_SIZE and EVP_MAX_MD_SIZE respectively.
# If the seventh field is 1 then auto generate
# crypto/date.h
# Need to add Win16 and others here.
......@@ -636,12 +636,12 @@ if(defined $misc_table{$target}) {
$max_md_size, $date_fix) =
split(/\s*:\s*/,$misc_table{$target} . ":", -1);
#print "EVP_ENCODE_CTX_SIZE $enc_ctx\n";
#print "EVP_MD_SIZE $md_size\n";
#print "EVP_MD_CTX_SIZE $md_ctx_size\n";
#print "EVP_CIPHER_SIZE $cipher_size\n";
#print "EVP_CIPHER_CTX_SIZE $cipher_ctx_size\n";
#print "EVP_MAX_MD_SIZE $max_md_size\n";
## #print "EVP_ENCODE_CTX_SIZE $enc_ctx\n";
## #print "EVP_MD_SIZE $md_size\n";
## #print "EVP_MD_CTX_SIZE $md_ctx_size\n";
## #print "EVP_CIPHER_SIZE $cipher_size\n";
## #print "EVP_CIPHER_CTX_SIZE $cipher_ctx_size\n";
## #print "EVP_MAX_MD_SIZE $max_md_size\n";
#printf "Date fix: %s\n", $date_fix ? "Yes" : "No";
# Fix the date
......@@ -652,23 +652,23 @@ if($date_fix) {
close(OUT);
}
open (IN, "crypto/pem/pem.org") || die "Can't open crypto/pem/pem.org";
open (OUT, ">crypto/pem/pem.h") || die "Can't create crypto/pem/pem.h";
# Now fix up pem.h
while(<IN>) {
chop;
s/^(#define EVP_ENCODE_CTX_SIZE).*$/$1 $enc_ctx/;
s/^(#define EVP_MD_SIZE).*$/$1 $md_size/;
s/^(#define EVP_MD_CTX_SIZE).*$/$1 $md_ctx_size/;
s/^(#define EVP_CIPHER_SIZE).*$/$1 $cipher_size/;
s/^(#define EVP_CIPHER_CTX_SIZE).*$/$1 $cipher_ctx_size/;
s/^(#define EVP_MAX_MD_SIZE).*$/$1 $max_md_size/;
print OUT "$_\n";
}
close (IN);
close (OUT);
## open (IN, "crypto/pem/pem.org") || die "Can't open crypto/pem/pem.org";
## open (OUT, ">crypto/pem/pem.h") || die "Can't create crypto/pem/pem.h";
##
## # Now fix up pem.h
## while(<IN>) {
## chop;
## s/^(#define EVP_ENCODE_CTX_SIZE).*$/$1 $enc_ctx/;
## s/^(#define EVP_MD_SIZE).*$/$1 $md_size/;
## s/^(#define EVP_MD_CTX_SIZE).*$/$1 $md_ctx_size/;
## s/^(#define EVP_CIPHER_SIZE).*$/$1 $cipher_size/;
## s/^(#define EVP_CIPHER_CTX_SIZE).*$/$1 $cipher_ctx_size/;
## s/^(#define EVP_MAX_MD_SIZE).*$/$1 $max_md_size/;
## print OUT "$_\n";
## }
##
## close (IN);
## close (OUT);
}
......
......@@ -21,8 +21,6 @@ GENERAL=Makefile
TEST=
APPS=
CTX_SIZE= ctx_size
LIB=$(TOP)/libcrypto.a
LIBSRC= pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c $(ERRC).c
......@@ -38,15 +36,7 @@ ALL= $(GENERAL) $(SRC) $(HEADER)
top:
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
all: pem.h lib
pem.h: $(CTX_SIZE) pem.org
./$(CTX_SIZE) <pem.org >pem.new
if [ -f pem.h ]; then mv -f pem.h pem.old; fi
mv -f pem.new pem.h
$(CTX_SIZE): $(CTX_SIZE).o
$(CC) $(CFLAGS) -o $(CTX_SIZE) $(CTX_SIZE).o
all: lib
lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ)
......@@ -78,14 +68,14 @@ lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
depend:
$(MAKEDEPEND) $(INCLUDES) $(CTX_SIZE).c $(LIBSRC)
$(MAKEDEPEND) $(INCLUDES) $(LIBSRC)
dclean:
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
mv -f Makefile.new $(MAKEFILE)
clean:
rm -f $(CTX_SIZE) *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
errors: $(ERRC).c
......
/* crypto/pem/ctx_size.c */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
*
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
#include <stdio.h>
#include <string.h>
#include "evp.h"
int main(argc,argv)
int argc;
char *argv[];
{
int i,j;
char buf[256];
for (;;)
{
char *str;
buf[0]='\0';
fgets(buf,256,stdin);
if (buf[0] == '\0') break;
str="#define EVP_ENCODE_CTX_SIZE ";
if (strncmp(buf,str,strlen(str)) == 0)
{
printf("%s %d\n",str,(int)sizeof(EVP_ENCODE_CTX));
continue;
}
str="#define EVP_MD_SIZE ";
if (strncmp(buf,str,strlen(str)) == 0)
{
printf("%s %d\n",str,(int)sizeof(EVP_MD));
continue;
}
str="#define EVP_MD_CTX_SIZE ";
if (strncmp(buf,str,strlen(str)) == 0)
{
printf("%s %d\n",str,(int)sizeof(EVP_MD_CTX));
continue;
}
str="#define EVP_CIPHER_SIZE ";
if (strncmp(buf,str,strlen(str)) == 0)
{
printf("%s %d\n",str,(int)sizeof(EVP_CIPHER));
continue;
}
str="#define EVP_CIPHER_CTX_SIZE ";
if (strncmp(buf,str,strlen(str)) == 0)
{
printf("%s %d\n",str,(int)sizeof(EVP_CIPHER_CTX));
continue;
}
str="#define EVP_MAX_MD_SIZE ";
if (strncmp(buf,str,strlen(str)) == 0)
{
i=MD2_DIGEST_LENGTH;
j=MD5_DIGEST_LENGTH;
if (j > i) i=j;
j=SHA_DIGEST_LENGTH;
if (j > i) i=j;
printf("%s %d\n",str,i);
continue;
}
fputs(buf,stdout);
}
exit(0);
}
......@@ -121,36 +121,6 @@ extern "C" {
#define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS"
#define PEM_STRING_DSAPARAMS "DSA PARAMETERS"
#ifndef HEADER_ENVELOPE_H
#define EVP_ENCODE_CTX_SIZE 92
#define EVP_MD_SIZE 48
#define EVP_MD_CTX_SIZE 152
#define EVP_CIPHER_SIZE 28
#define EVP_CIPHER_CTX_SIZE 4212
#define EVP_MAX_MD_SIZE 20
typedef struct evp_encode_ctx_st
{
char data[EVP_ENCODE_CTX_SIZE];
} EVP_ENCODE_CTX;
typedef struct env_md_ctx_st
{
char data[EVP_MD_CTX_SIZE];
} EVP_MD_CTX;
typedef struct evp_cipher_st
{
char data[EVP_CIPHER_SIZE];
} EVP_CIPHER;
typedef struct evp_cipher_ctx_st
{
char data[EVP_CIPHER_CTX_SIZE];
} EVP_CIPHER_CTX;
#endif
typedef struct PEM_Encode_Seal_st
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册