ECDSA support

Submitted by: Nils Larsch <nla@trustcenter.de>
This commit is contained in:
Bodo Möller 2002-02-13 18:21:51 +00:00
parent 60d8bae30d
commit 4d94ae00d5
84 changed files with 9116 additions and 2689 deletions

42
CHANGES
View file

@ -2,19 +2,45 @@
OpenSSL CHANGES
_______________
Changes between 0.9.7 and 0.9.8 [xx XXX 2001]
Changes between 0.9.7 and 0.9.8 [xx XXX 2002]
*)
*) Add ECDSA in new directory crypto/ecdsa/.
Changes between 0.9.6 and 0.9.7 [xx XXX 2001]
Add applications 'openssl ecdsaparam' and 'openssl ecdsa'
(these are variants of 'openssl dsaparam' and 'openssl dsa').
OpenSSL 0.9.6a/0.9.6b/0.9.6c (bugfix releases, 5 Apr 2001, 9 July 2001
and 21 Dec 2001) and OpenSSL 0.9.7 were developed in parallel, based
on OpenSSL 0.9.6.
ECDSA support is also included in various other files across the
library. Most notably,
- 'openssl req' now has a '-newkey ecdsa:file' option;
- EVP_PKCS82PKEY (crypto/evp/evp_pkey.c) now can handle ECDSA;
- X509_PUBKEY_get (crypto/asn1/x_pubkey.c) and
d2i_PublicKey (crypto/asn1/d2i_pu.c) have been modified to make
them suitable for ECDSA where domain parameters must be
extracted before the specific public key.
[Nils Larsch <nla@trustcenter.de]
*) Add reference counting for EC_GROUP objects.
[Nils Larsch <nla@trustcenter.de]
*) Include some named elliptic curves. These can be obtained from
the new functions
EC_GROUP_new_by_nid()
EC_GROUP_new_by_name()
Also add a 'nid' field to EC_GROUP objects, which can be accessed
via
EC_GROUP_set_nid()
EC_GROUP_get_nid()
[Nils Larsch <nla@trustcenter.de, Bodo Moeller]
Changes between 0.9.6 and 0.9.7 [xx XXX 2002]
OpenSSL 0.9.6a/0.9.6b/0.9.6c/0.9.6d (bugfix releases, 5 Apr 2001,
9 July 2001, 21 Dec 2001 and xx XXX 2002) and OpenSSL 0.9.7 were
developed in parallel, based on OpenSSL 0.9.6.
Change log entries are tagged as follows:
-) applies to 0.9.6a/0.9.6b/0.9.6c only
*) applies to 0.9.6a/0.9.6b/0.9.6c and 0.9.7
-) applies to 0.9.6a ... 0.9.6d only
*) applies to 0.9.6a ... 0.9.6d and 0.9.7
+) applies to 0.9.7 only
*) Add information about CygWin32 1.3 and on, and preserve proper

View file

@ -719,6 +719,14 @@ PROCESS_ARGS:
$depflags .= "-DOPENSSL_NO_MDC2 ";
$openssl_algorithm_defines .= "#define OPENSSL_NO_MDC2\n";
}
if ($algo eq "EC" || $algo eq "SHA" || $algo eq "SHA1")
{
push @skip, "ecdsa";
$options .= " no-ecdsa";
$flags .= "-DOPENSSL_NO_ECDSA ";
$depflags .= "-DOPENSSL_NO_ECDSA ";
$openssl_algorithm_defines .= "#define OPENSSL_NO_ECDSA\n";
}
if ($algo eq "MD5")
{
$no_md5 = 1;

View file

@ -166,7 +166,7 @@ SHLIBDIRS= crypto ssl
SDIRS= \
md2 md4 md5 sha mdc2 hmac ripemd \
des rc2 rc4 rc5 idea bf cast \
bn ec rsa dsa dh dso engine aes \
bn ec rsa dsa ecdsa dh dso engine aes \
buffer bio stack lhash rand err objects \
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5

24
TABLE
View file

@ -90,6 +90,30 @@ $rc4_obj =
$rmd160_obj =
$rc5_obj =
$dso_scheme = win32
$shared_target= cygwin-shared
$shared_cflag =
$shared_ldflag = .dll
$shared_extension =
$ranlib =
*** CygWin32-pre1.3
$cc = gcc
$cflags = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall
$unistd =
$thread_cflag = (unknown)
$sys_id = CYGWIN32
$lflags =
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
$bn_obj =
$des_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
$cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
$dso_scheme = win32
$shared_target=
$shared_cflag =
$shared_ldflag =

File diff suppressed because it is too large Load diff

View file

@ -1501,6 +1501,11 @@ bad:
if (pkey->type == EVP_PKEY_DSA)
dgst=EVP_dss1();
else
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA)
dgst=EVP_ecdsa();
else
#endif
dgst=EVP_md5();
}
@ -2270,6 +2275,16 @@ again2:
EVP_PKEY_copy_parameters(pktmp,pkey);
EVP_PKEY_free(pktmp);
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA)
dgst = EVP_ecdsa();
pktmp = X509_get_pubkey(ret);
if (EVP_PKEY_missing_parameters(pktmp) &&
!EVP_PKEY_missing_parameters(pkey))
EVP_PKEY_copy_parameters(pktmp, pkey);
EVP_PKEY_free(pktmp);
#endif
if (!X509_sign(ret,pkey,dgst))
goto err;

435
apps/ecdsa.c Normal file
View file

@ -0,0 +1,435 @@
/* apps/ecdsa.c */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* 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.]
*/
#ifndef OPENSSL_NO_ECDSA
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "apps.h"
#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/ecdsa.h>
#include <openssl/evp.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#undef PROG
#define PROG ecdsa_main
/* -inform arg - input format - default PEM (one of DER, NET or PEM)
* -outform arg - output format - default PEM
* -in arg - input file - default stdin
* -out arg - output file - default stdout
* -des - encrypt output if PEM format with DES in cbc mode
* -des3 - encrypt output if PEM format
* -idea - encrypt output if PEM format
* -text - print a text version
* -pub - print the ECDSA public key
* -compressed - print the public key in compressed form ( default )
* -hybrid - print the public key in hybrid form
* -uncompressed - print the public key in uncompressed form
* the last three options ( compressed, hybrid and uncompressed )
* are only used if the "-pub" option is also selected.
* For a precise description of the the meaning of compressed,
* hybrid and uncompressed please refer to the X9.62 standart.
* All three forms represents ways to express the ecdsa public
* key ( a point on a elliptic curve ) as octet string. Let len be
* the length ( in bytes ) of an element of the field over which
* the curve is defined, then a compressed octet string has the form
* 0x02 + result of BN_bn2bin() of the x coordinate of the public key
*/
int MAIN(int, char **);
int MAIN(int argc, char **argv)
{
ENGINE *e = NULL;
int ret = 1;
ECDSA *ecdsa = NULL;
int i, badops = 0;
const EVP_CIPHER *enc = NULL;
BIO *in = NULL, *out = NULL;
int informat, outformat, text=0, noout=0;
int pubin = 0, pubout = 0;
char *infile, *outfile, *prog, *engine;
char *passargin = NULL, *passargout = NULL;
char *passin = NULL, *passout = NULL;
int pub = 0, point_form = 0;
unsigned char *buffer = NULL;
unsigned int buf_len = 0;
BIGNUM *tmp_bn = NULL;
apps_startup();
if (bio_err == NULL)
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
BIO_set_fp(bio_err, stderr, BIO_NOCLOSE|BIO_FP_TEXT);
engine = NULL;
infile = NULL;
outfile = NULL;
informat = FORMAT_PEM;
outformat = FORMAT_PEM;
prog = argv[0];
argc--;
argv++;
while (argc >= 1)
{
if (strcmp(*argv,"-inform") == 0)
{
if (--argc < 1) goto bad;
informat=str2fmt(*(++argv));
}
else if (strcmp(*argv,"-outform") == 0)
{
if (--argc < 1) goto bad;
outformat=str2fmt(*(++argv));
}
else if (strcmp(*argv,"-in") == 0)
{
if (--argc < 1) goto bad;
infile= *(++argv);
}
else if (strcmp(*argv,"-out") == 0)
{
if (--argc < 1) goto bad;
outfile= *(++argv);
}
else if (strcmp(*argv,"-passin") == 0)
{
if (--argc < 1) goto bad;
passargin= *(++argv);
}
else if (strcmp(*argv,"-passout") == 0)
{
if (--argc < 1) goto bad;
passargout= *(++argv);
}
else if (strcmp(*argv, "-engine") == 0)
{
if (--argc < 1) goto bad;
engine= *(++argv);
}
else if (strcmp(*argv, "-noout") == 0)
noout = 1;
else if (strcmp(*argv, "-text") == 0)
text = 1;
else if (strcmp(*argv, "-pub") == 0)
{
pub = 1;
buffer = (*(argv+1));
if (strcmp(buffer, "compressed") == 0)
point_form = POINT_CONVERSION_COMPRESSED;
else if (strcmp(buffer, "hybrid") == 0)
point_form = POINT_CONVERSION_HYBRID;
else if (strcmp(buffer, "uncompressed") == 0)
point_form = POINT_CONVERSION_UNCOMPRESSED;
if (point_form)
{
argc--;
argv++;
}
}
else if (strcmp(*argv, "-pubin") == 0)
pubin=1;
else if (strcmp(*argv, "-pubout") == 0)
pubout=1;
else if ((enc=EVP_get_cipherbyname(&(argv[0][1]))) == NULL)
{
BIO_printf(bio_err,"unknown option %s\n",*argv);
badops=1;
break;
}
argc--;
argv++;
}
if (badops)
{
bad:
BIO_printf(bio_err, "%s [options] <infile >outfile\n",prog);
BIO_printf(bio_err, "where options are\n");
BIO_printf(bio_err, " -inform arg input format - DER or PEM\n");
BIO_printf(bio_err, " -outform arg output format - DER or PEM\n");
BIO_printf(bio_err, " -in arg input file\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");
BIO_printf(bio_err, " -engine e use engine e, possibly a hardware device.\n");
BIO_printf(bio_err, " -des encrypt PEM output with cbc des\n");
BIO_printf(bio_err, " -des3 encrypt PEM output with ede cbc des using 168 bit key\n");
#ifndef OPENSSL_NO_IDEA
BIO_printf(bio_err, " -idea encrypt PEM output with cbc idea\n");
#endif
BIO_printf(bio_err, " -text print the key in text\n");
BIO_printf(bio_err, " -noout don't print key out\n");
BIO_printf(bio_err, " -pub [compressed | hybrid | uncompressed] \n");
BIO_printf(bio_err, " compressed print the public key in compressed form ( default )\n");
BIO_printf(bio_err, " hybrid print the public key in hybrid form\n");
BIO_printf(bio_err, " uncompressed print the public key in uncompressed form\n");
goto end;
}
ERR_load_crypto_strings();
e = setup_engine(bio_err, engine, 0);
if(!app_passwd(bio_err, passargin, passargout, &passin, &passout))
{
BIO_printf(bio_err, "Error getting passwords\n");
goto end;
}
in = BIO_new(BIO_s_file());
out = BIO_new(BIO_s_file());
if ((in == NULL) || (out == NULL))
{
ERR_print_errors(bio_err);
goto end;
}
if (infile == NULL)
BIO_set_fp(in,stdin,BIO_NOCLOSE);
else
{
if (BIO_read_filename(in,infile) <= 0)
{
perror(infile);
goto end;
}
}
BIO_printf(bio_err,"read ECDSA key\n");
if (informat == FORMAT_ASN1)
{
if (pubin)
ecdsa = d2i_ECDSA_PUBKEY_bio(in, NULL);
else
ecdsa = d2i_ECDSAPrivateKey_bio(in, NULL);
} else if (informat == FORMAT_PEM)
{
if (pubin)
ecdsa = PEM_read_bio_ECDSA_PUBKEY(in, NULL, NULL, NULL);
else
ecdsa = PEM_read_bio_ECDSAPrivateKey(in, NULL, NULL, passin);
} else
{
BIO_printf(bio_err, "bad input format specified for key\n");
goto end;
}
if (ecdsa == NULL)
{
BIO_printf(bio_err,"unable to load Key\n");
ERR_print_errors(bio_err);
goto end;
}
if (outfile == NULL)
{
BIO_set_fp(out, stdout, BIO_NOCLOSE);
#ifdef OPENSSL_SYS_VMS
{
BIO *tmpbio = BIO_new(BIO_f_linebuffer());
out = BIO_push(tmpbio, out);
}
#endif
}
else
{
if (BIO_write_filename(out, outfile) <= 0)
{
perror(outfile);
goto end;
}
}
if (text)
if (!ECDSA_print(out, ecdsa, 0))
{
perror(outfile);
ERR_print_errors(bio_err);
goto end;
}
if (pub)
{
fprintf(stdout, "Public Key (");
if (point_form == POINT_CONVERSION_COMPRESSED)
fprintf(stdout, "COMPRESSED");
else if (point_form == POINT_CONVERSION_UNCOMPRESSED)
fprintf(stdout, "UNCOMPRESSED");
else if (point_form == POINT_CONVERSION_HYBRID)
fprintf(stdout, "HYBRID");
fprintf(stdout, ")=");
buf_len = EC_POINT_point2oct(ecdsa->group, EC_GROUP_get0_generator(ecdsa->group),
point_form, NULL, 0, NULL);
if (!buf_len)
{
BIO_printf(bio_err,"invalid public key length\n");
ERR_print_errors(bio_err);
goto end;
}
if ((tmp_bn = BN_new()) == NULL ||
(buffer = OPENSSL_malloc(buf_len)) == NULL) goto end;
if (!EC_POINT_point2oct(ecdsa->group, EC_GROUP_get0_generator(ecdsa->group),
point_form, buffer, buf_len, NULL) ||
!BN_bin2bn(buffer, buf_len, tmp_bn))
{
BIO_printf(bio_err,"can not encode public key\n");
ERR_print_errors(bio_err);
OPENSSL_free(buffer);
goto end;
}
BN_print(out, tmp_bn);
fprintf(stdout,"\n");
}
if (noout)
goto end;
BIO_printf(bio_err, "writing ECDSA key\n");
if (outformat == FORMAT_ASN1)
{
if(pubin || pubout)
i = i2d_ECDSA_PUBKEY_bio(out, ecdsa);
else
i = i2d_ECDSAPrivateKey_bio(out, ecdsa);
} else if (outformat == FORMAT_PEM)
{
if(pubin || pubout)
i = PEM_write_bio_ECDSA_PUBKEY(out, ecdsa);
else
i = PEM_write_bio_ECDSAPrivateKey(out, ecdsa, enc,
NULL, 0, NULL, passout);
} else
{
BIO_printf(bio_err, "bad output format specified for outfile\n");
goto end;
}
if (!i)
{
BIO_printf(bio_err, "unable to write private key\n");
ERR_print_errors(bio_err);
}
else
ret=0;
end:
if (in) BIO_free(in);
if (out) BIO_free_all(out);
if (ecdsa) ECDSA_free(ecdsa);
if (tmp_bn) BN_free(tmp_bn);
if (passin) OPENSSL_free(passin);
if (passout) OPENSSL_free(passout);
apps_shutdown();
EXIT(ret);
}
#endif

560
apps/ecdsaparam.c Normal file
View file

@ -0,0 +1,560 @@
/* apps/ecdsaparam.c */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* 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.]
*/
#ifndef OPENSSL_NO_ECDSA
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include "apps.h"
#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/bn.h>
#include <openssl/ec.h>
#include <openssl/ecdsa.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#undef PROG
#define PROG ecdsaparam_main
/* -inform arg - input format - default PEM (DER or PEM)
* -outform arg - output format - default PEM
* -in arg - input file - default stdin
* -out arg - output file - default stdout
* -noout
* -text
* -C
* -noout
* -genkey - generate a private public keypair based on the supplied curve
* -named_curve - use the curve oid instead of the parameters
* -NIST_192 - use the NIST recommeded curve parameters over a 192 bit prime field
* -NIST_224 - use the NIST recommeded curve parameters over a 224 bit prime field
* -NIST_256 - use the NIST recommeded curve parameters over a 256 bit prime field
* -NIST_384 - use the NIST recommeded curve parameters over a 384 bit prime field
* -NIST_521 - use the NIST recommeded curve parameters over a 521 bit prime field
* -X9_62_192v1 - use the X9_62 192v1 example curve over a 192 bit prime field
* -X9_62_192v2 - use the X9_62 192v2 example curve over a 192 bit prime field
* -X9_62_192v3 - use the X9_62 192v3 example curve over a 192 bit prime field
* -X9_62_239v1 - use the X9_62 239v1 example curve over a 239 bit prime field
* -X9_62_239v2 - use the X9_62 239v2 example curve over a 239 bit prime field
* -X9_62_239v3 - use the X9_62 239v3 example curve over a 239 bit prime field
* -X9_62_256v1 - use the X9_62 239v1 example curve over a 256 bit prime field
*/
int MAIN(int, char **);
int MAIN(int argc, char **argv)
{
ENGINE *e = NULL;
ECDSA *ecdsa = NULL;
int i, badops = 0, text = 0;
BIO *in = NULL, *out = NULL;
int informat, outformat, noout = 0, C = 0, ret = 1;
char *infile, *outfile, *prog, *inrand = NULL;
int genkey = 0;
int need_rand = 0;
char *engine=NULL;
int curve_type = EC_GROUP_NO_CURVE;
int named_curve = 0;
BIGNUM *tmp_1 = NULL, *tmp_2 = NULL, *tmp_3 = NULL, *tmp_4 = NULL, *tmp_5 = NULL,
*tmp_6 = NULL, *tmp_7 = NULL;
BN_CTX *ctx = NULL;
EC_POINT *point = NULL;
apps_startup();
if (bio_err == NULL)
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
infile=NULL;
outfile=NULL;
informat=FORMAT_PEM;
outformat=FORMAT_PEM;
prog=argv[0];
argc--;
argv++;
while (argc >= 1)
{
if (strcmp(*argv,"-inform") == 0)
{
if (--argc < 1) goto bad;
informat=str2fmt(*(++argv));
}
else if (strcmp(*argv,"-outform") == 0)
{
if (--argc < 1) goto bad;
outformat=str2fmt(*(++argv));
}
else if (strcmp(*argv,"-in") == 0)
{
if (--argc < 1) goto bad;
infile= *(++argv);
}
else if (strcmp(*argv,"-out") == 0)
{
if (--argc < 1) goto bad;
outfile= *(++argv);
}
else if(strcmp(*argv, "-engine") == 0)
{
if (--argc < 1) goto bad;
engine = *(++argv);
}
else if (strcmp(*argv,"-text") == 0)
text = 1;
else if (strcmp(*argv,"-C") == 0)
C = 1;
else if (strcmp(*argv,"-genkey") == 0)
{
genkey = 1;
need_rand = 1;
}
else if (strcmp(*argv,"-rand") == 0)
{
if (--argc < 1) goto bad;
inrand= *(++argv);
need_rand=1;
}
else if (strcmp(*argv, "-named_curve") == 0)
named_curve = 1;
else if (strcmp(*argv, "-NIST_192") == 0)
curve_type = EC_GROUP_NIST_PRIME_192;
else if (strcmp(*argv, "-NIST_224") == 0)
curve_type = EC_GROUP_NIST_PRIME_224;
else if (strcmp(*argv, "-NIST_256") == 0)
curve_type = EC_GROUP_NIST_PRIME_256;
else if (strcmp(*argv, "-NIST_384") == 0)
curve_type = EC_GROUP_NIST_PRIME_384;
else if (strcmp(*argv, "-NIST_521") == 0)
curve_type = EC_GROUP_NIST_PRIME_521;
else if (strcmp(*argv, "-X9_62_192v1") == 0)
curve_type = EC_GROUP_X9_62_PRIME_192V1;
else if (strcmp(*argv, "-X9_62_192v2") == 0)
curve_type = EC_GROUP_X9_62_PRIME_192V2;
else if (strcmp(*argv, "-X9_62_192v3") == 0)
curve_type = EC_GROUP_X9_62_PRIME_192V3;
else if (strcmp(*argv, "-X9_62_239v1") == 0)
curve_type = EC_GROUP_X9_62_PRIME_239V1;
else if (strcmp(*argv, "-X9_62_239v2") == 0)
curve_type = EC_GROUP_X9_62_PRIME_239V2;
else if (strcmp(*argv, "-X9_62_239v3") == 0)
curve_type = EC_GROUP_X9_62_PRIME_239V3;
else if (strcmp(*argv, "-X9_62_256v1") == 0)
curve_type = EC_GROUP_X9_62_PRIME_256V1;
else if (strcmp(*argv, "-noout") == 0)
noout=1;
else
{
BIO_printf(bio_err,"unknown option %s\n",*argv);
badops=1;
break;
}
argc--;
argv++;
}
if (badops)
{
bad:
BIO_printf(bio_err,"%s [options] [bits] <infile >outfile\n",prog);
BIO_printf(bio_err,"where options are\n");
BIO_printf(bio_err," -inform arg input format - DER or PEM\n");
BIO_printf(bio_err," -outform arg output format - DER or PEM\n");
BIO_printf(bio_err," -in arg input file\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -text print the key in text\n");
BIO_printf(bio_err," -C Output C code\n");
BIO_printf(bio_err," -noout no output\n");
BIO_printf(bio_err," -rand files to use for random number input\n");
BIO_printf(bio_err," -engine e use engine e, possibly a hardware device.\n");
BIO_printf(bio_err," -named_curve use the curve oid instead of the parameters\n");
BIO_printf(bio_err," -NIST_192 use the NIST recommeded curve parameters over a 192 bit prime field\n");
BIO_printf(bio_err," -NIST_224 use the NIST recommeded curve parameters over a 224 bit prime field\n");
BIO_printf(bio_err," -NIST_256 use the NIST recommeded curve parameters over a 256 bit prime field\n");
BIO_printf(bio_err," -NIST_384 use the NIST recommeded curve parameters over a 384 bit prime field\n");
BIO_printf(bio_err," -NIST_521 use the NIST recommeded curve parameters over a 521 bit prime field\n");
BIO_printf(bio_err," -X9_62_192v1 use the X9_62 192v1 example curve over a 192 bit prime field\n");
BIO_printf(bio_err," -X9_62_192v2 use the X9_62 192v2 example curve over a 192 bit prime field\n");
BIO_printf(bio_err," -X9_62_192v3 use the X9_62 192v3 example curve over a 192 bit prime field\n");
BIO_printf(bio_err," -X9_62_239v1 use the X9_62 239v1 example curve over a 239 bit prime field\n");
BIO_printf(bio_err," -X9_62_239v2 use the X9_62 239v2 example curve over a 239 bit prime field\n");
BIO_printf(bio_err," -X9_62_239v3 use the X9_62 239v3 example curve over a 239 bit prime field\n");
BIO_printf(bio_err," -X9_62_256v1 use the X9_62 239v1 example curve over a 256 bit prime field\n");
goto end;
}
ERR_load_crypto_strings();
in=BIO_new(BIO_s_file());
out=BIO_new(BIO_s_file());
if ((in == NULL) || (out == NULL))
{
ERR_print_errors(bio_err);
goto end;
}
if (infile == NULL)
BIO_set_fp(in,stdin,BIO_NOCLOSE);
else
{
if (BIO_read_filename(in,infile) <= 0)
{
perror(infile);
goto end;
}
}
if (outfile == NULL)
{
BIO_set_fp(out,stdout,BIO_NOCLOSE);
#ifdef OPENSSL_SYS_VMS
{
BIO *tmpbio = BIO_new(BIO_f_linebuffer());
out = BIO_push(tmpbio, out);
}
#endif
}
else
{
if (BIO_write_filename(out,outfile) <= 0)
{
perror(outfile);
goto end;
}
}
e = setup_engine(bio_err, engine, 0);
if (need_rand)
{
app_RAND_load_file(NULL, bio_err, (inrand != NULL));
if (inrand != NULL)
BIO_printf(bio_err,"%ld semi-random bytes loaded\n",
app_RAND_load_files(inrand));
}
if (curve_type != EC_GROUP_NO_CURVE)
{
if ((ecdsa = ECDSA_new()) == NULL)
goto end;
ecdsa->group = EC_GROUP_get_group_by_name(curve_type);
if (named_curve)
ECDSA_set_parameter_flags(ecdsa, ECDSA_FLAG_NAMED_CURVE);
}
else if (informat == FORMAT_ASN1)
ecdsa = d2i_ECDSAParameters_bio(in,NULL);
else if (informat == FORMAT_PEM)
ecdsa = PEM_read_bio_ECDSAParameters(in, NULL, NULL, NULL);
else
{
BIO_printf(bio_err, "bad input format specified\n");
goto end;
}
if (ecdsa == NULL)
{
BIO_printf(bio_err, "unable to load ECDSA parameters\n");
ERR_print_errors(bio_err);
goto end;
}
if (text)
{
ECDSAParameters_print(out, ecdsa);
}
if (C)
{ // TODO : characteristic two
int l, len, bits_p, bits_a, bits_b, bits_x, bits_y, bits_o, bits_c;
unsigned char *data;
if ((tmp_1 = BN_new()) == NULL || (tmp_2 = BN_new()) == NULL ||
(tmp_3 = BN_new()) == NULL || (tmp_4 = BN_new()) == NULL ||
(tmp_5 = BN_new()) == NULL || (tmp_6 = BN_new()) == NULL ||
(tmp_7 = BN_new()) == NULL || (ctx = BN_CTX_new()) == NULL)
{
perror("OPENSSL_malloc");
goto end;
}
if (!EC_GROUP_get_curve_GFp(ecdsa->group, tmp_1, tmp_2, tmp_3, ctx))
goto end;
if ((point = EC_GROUP_get0_generator(ecdsa->group)) == NULL)
goto end;
if (!EC_POINT_get_affine_coordinates_GFp(ecdsa->group, point, tmp_4, tmp_5, ctx))
goto end;
if (!EC_GROUP_get_order(ecdsa->group, tmp_6, ctx))
goto end;
if (!EC_GROUP_get_cofactor(ecdsa->group, tmp_7, ctx))
goto end;
len = BN_num_bytes(tmp_1);
bits_p = BN_num_bits(tmp_1);
bits_a = BN_num_bits(tmp_2);
bits_b = BN_num_bits(tmp_3);
bits_x = BN_num_bits(tmp_4);
bits_y = BN_num_bits(tmp_5);
bits_o = BN_num_bits(tmp_6);
bits_c = BN_num_bits(tmp_7);
data=(unsigned char *)OPENSSL_malloc(len+20);
if (data == NULL)
{
perror("OPENSSL_malloc");
goto end;
}
l = BN_bn2bin(tmp_1, data);
printf("static unsigned char ecdsa%d_p[]={", bits_p);
for (i=0; i<l; i++)
{
if ((i%12) == 0) printf("\n\t");
printf("0x%02X,",data[i]);
}
printf("\n\t};\n");
l = BN_bn2bin(tmp_2, data);
printf("static unsigned char ecdsa%d_a[]={",bits_p);
for (i=0; i<l; i++)
{
if ((i%12) == 0) printf("\n\t");
printf("0x%02X,",data[i]);
}
printf("\n\t};\n");
l = BN_bn2bin(tmp_3, data);
printf("static unsigned char ecdsa%d_b[]={", bits_p);
for (i=0; i<l; i++)
{
if ((i%12) == 0) printf("\n\t");
printf("0x%02X,",data[i]);
}
printf("\n\t};\n\n");
l = BN_bn2bin(tmp_3, data);
printf("static unsigned char ecdsa%d_x[]={", bits_x);
for (i=0; i<l; i++)
{
if ((i%12) == 0) printf("\n\t");
printf("0x%02X,",data[i]);
}
printf("\n\t};\n\n");
l = BN_bn2bin(tmp_3, data);
printf("static unsigned char ecdsa%d_y[]={", bits_y);
for (i=0; i<l; i++)
{
if ((i%12) == 0) printf("\n\t");
printf("0x%02X,",data[i]);
}
printf("\n\t};\n\n");
l = BN_bn2bin(tmp_3, data);
printf("static unsigned char ecdsa%d_o[]={", bits_o);
for (i=0; i<l; i++)
{
if ((i%12) == 0) printf("\n\t");
printf("0x%02X,",data[i]);
}
printf("\n\t};\n\n");
l = BN_bn2bin(tmp_3, data);
printf("static unsigned char ecdsa%d_c[]={", bits_c);
for (i=0; i<l; i++)
{
if ((i%12) == 0) printf("\n\t");
printf("0x%02X,",data[i]);
}
printf("\n\t};\n\n");
printf("ECDSA *get_ecdsa%d()\n\t{\n",bits_p);
printf("\tint ok=1;\n");
printf("\tECDSA *ecdsa=NULL;\n");
printf("\tEC_POINT *point=NULL;\n");
printf("\tBIGNUM *tmp_1=NULL,*tmp_2=NULL,*tmp_3=NULL;\n");
printf("\tBN_CTX *ctx=NULL;\n\n");
printf("\tecdsa=ECDSA_new();\n");
printf("\ttmp_1=BN_new();\n");
printf("\ttmp_2=BN_new();\n");
printf("\ttmp_3=BN_new();\n");
printf("\tctx=BN_CTX_new();\n");
printf("\tif (!ecdsa || !tmp_1 || !tmp_2 || !tmp_3 || !ctx) ok=0;\n");
printf("\tif (ok && !ecdsa->group=EC_GROUP_new(EC_GFp_mont_method())) == NULL) ok=0;");
printf("\tif (ok && !BN_bin2bn(ecdsa%d_p,sizeof(ecdsa%d_p),tmp_1)) ok=0;\n", bits_p, bits_p);
printf("\tif (ok && !BN_bin2bn(ecdsa%d_a,sizeof(ecdsa%d_a),tmp_2)) ok=0;\n", bits_p, bits_p);
printf("\tif (ok && !BN_bin2bn(ecdsa%d_b,sizeof(ecdsa%d_b),tmp_3)) ok=0;\n", bits_p, bits_p);
printf("\tif (ok && !EC_GROUP_set_curve_GFp(ecdsa->group,tmp_1,tmp_2,tmp_3,ctx)) ok=0;\n");
printf("\tif (ok && !BN_bin2bn(ecdsa%d_x,sizeof(ecdsa%d_p),tmp_1)) ok=0;\n", bits_p, bits_p);
printf("\tif (ok && !BN_bin2bn(ecdsa%d_y,sizeof(ecdsa%d_a),tmp_2)) ok=0;\n", bits_p, bits_p);
printf("\tif (ok && (point = EC_POINT_new(ecdsa->group)) == NULL) ok=0;\n");
printf("\tif (ok && !EC_POINT_set_affine_coordinates_GFp(ecdsa->group,point,tmp_1,tmp_2,ctx)) ok=0:\n");
printf("\tif (ok && !BN_bin2bn(ecdsa%d_o,sizeof(ecdsa%d_b),tmp_1)) ok=0;\n", bits_p, bits_p);
printf("\tif (ok && !BN_bin2bn(ecdsa%d_c,sizeof(ecdsa%d_b),tmp_2)) ok=0;\n", bits_p, bits_p);
printf("\tif (ok && !EC_GROUP_set_generator(ecdsa->group,point,tmp_1,tmp_2)) ok=0;\n");
printf("\tif ((ecdsa->group == NULL) || (ecdsa->pub_key == NULL) || (ecdsa->priv_key == NULL))\n");
printf("\t\t{ ECDSA_free(ecdsa); return(NULL); }\n");
printf("\treturn(ecdsa);\n\t}\n");
}
if (!noout)
{
if (outformat == FORMAT_ASN1)
i = i2d_ECDSAParameters_bio(out, ecdsa);
else if (outformat == FORMAT_PEM)
i = PEM_write_bio_ECDSAParameters(out, ecdsa);
else
{
BIO_printf(bio_err,"bad output format specified for outfile\n");
goto end;
}
if (!i)
{
BIO_printf(bio_err, "unable to write ECDSA parameters\n");
ERR_print_errors(bio_err);
goto end;
}
}
if (genkey)
{
ECDSA *ecdsakey;
assert(need_rand);
if ((ecdsakey = ECDSAParameters_dup(ecdsa)) == NULL) goto end;
if (!ECDSA_generate_key(ecdsakey)) goto end;
if (outformat == FORMAT_ASN1)
i = i2d_ECDSAPrivateKey_bio(out, ecdsakey);
else if (outformat == FORMAT_PEM)
i = PEM_write_bio_ECDSAPrivateKey(out, ecdsakey, NULL, NULL, 0, NULL, NULL);
else
{
BIO_printf(bio_err, "bad output format specified for outfile\n");
goto end;
}
ECDSA_free(ecdsakey);
}
if (need_rand)
app_RAND_write_file(NULL, bio_err);
ret=0;
end:
if (in != NULL) BIO_free(in);
if (out != NULL) BIO_free_all(out);
if (ecdsa != NULL) ECDSA_free(ecdsa);
if (tmp_1) BN_free(tmp_1);
if (tmp_2) BN_free(tmp_2);
if (tmp_3) BN_free(tmp_3);
if (tmp_3) BN_free(tmp_4);
if (tmp_3) BN_free(tmp_5);
if (tmp_3) BN_free(tmp_6);
if (tmp_3) BN_free(tmp_7);
if (ctx) BN_CTX_free(ctx);
apps_shutdown();
EXIT(ret);
}
#endif

View file

@ -17,6 +17,8 @@ extern int rsa_main(int argc,char *argv[]);
extern int rsautl_main(int argc,char *argv[]);
extern int dsa_main(int argc,char *argv[]);
extern int dsaparam_main(int argc,char *argv[]);
extern int ecdsa_main(int argc,char *argv[]);
extern int ecdsaparam_main(int argc,char *argv[]);
extern int x509_main(int argc,char *argv[]);
extern int genrsa_main(int argc,char *argv[]);
extern int gendsa_main(int argc,char *argv[]);
@ -78,6 +80,12 @@ FUNCTION functions[] = {
#endif
#ifndef OPENSSL_NO_DSA
{FUNC_TYPE_GENERAL,"dsaparam",dsaparam_main},
#endif
#ifndef OPENSSL_NO_ECDSA
{FUNC_TYPE_GENERAL,"ecdsa",ecdsa_main},
#endif
#ifndef OPENSSL_NO_ECDSA
{FUNC_TYPE_GENERAL,"ecdsaparam",ecdsaparam_main},
#endif
{FUNC_TYPE_GENERAL,"x509",x509_main},
#ifndef OPENSSL_NO_RSA

View file

@ -33,6 +33,8 @@ foreach (@ARGV)
{ print "#ifndef OPENSSL_NO_RSA\n${str}#endif\n"; }
elsif ( ($_ =~ /^dsa$/) || ($_ =~ /^gendsa$/) || ($_ =~ /^dsaparam$/))
{ print "#ifndef OPENSSL_NO_DSA\n${str}#endif\n"; }
elsif ( ($_ =~ /^ecdsa$/) || ($_ =~ /^ecdsaparam$/))
{ print "#ifndef OPENSSL_NO_ECDSA\n${str}#endif\n";}
elsif ( ($_ =~ /^dh$/) || ($_ =~ /^gendh$/) || ($_ =~ /^dhparam$/))
{ print "#ifndef OPENSSL_NO_DH\n${str}#endif\n"; }
elsif ( ($_ =~ /^pkcs12$/))

View file

@ -142,6 +142,7 @@ static int batch=0;
#define TYPE_RSA 1
#define TYPE_DSA 2
#define TYPE_DH 3
#define TYPE_ECDSA 4
int MAIN(int, char **);
@ -150,6 +151,9 @@ int MAIN(int argc, char **argv)
ENGINE *e = NULL;
#ifndef OPENSSL_NO_DSA
DSA *dsa_params=NULL;
#endif
#ifndef OPENSSL_NO_ECDSA
ECDSA *ecdsa_params = NULL;
#endif
unsigned long nmflag = 0;
int ex=1,x509=0,days=30;
@ -317,8 +321,60 @@ int MAIN(int argc, char **argv)
}
}
BIO_free(in);
newkey=BN_num_bits(dsa_params->p);
in=NULL;
newkey=BN_num_bits(dsa_params->p);
}
else
#endif
#ifndef OPENSSL_NO_ECDSA
if (strncmp("ecdsa:",p,4) == 0)
{
X509 *xtmp=NULL;
EVP_PKEY *dtmp;
pkey_type=TYPE_ECDSA;
p+=6;
if ((in=BIO_new_file(p,"r")) == NULL)
{
perror(p);
goto end;
}
if ((ecdsa_params = PEM_read_bio_ECDSAParameters(in, NULL, NULL, NULL)) == NULL)
{
ERR_clear_error();
(void)BIO_reset(in);
if ((xtmp=PEM_read_bio_X509(in,NULL,NULL,NULL)) == NULL)
{
BIO_printf(bio_err,"unable to load ECDSA parameters from file\n");
goto end;
}
dtmp=X509_get_pubkey(xtmp);
if (dtmp->type == EVP_PKEY_ECDSA)
ecdsa_params = ECDSAParameters_dup(dtmp->pkey.ecdsa);
EVP_PKEY_free(dtmp);
X509_free(xtmp);
if (ecdsa_params == NULL)
{
BIO_printf(bio_err,"Certificate does not contain ECDSA parameters\n");
goto end;
}
}
BIO_free(in);
in=NULL;
{
BIGNUM *order = BN_new();
if (!order)
goto end;
if (!EC_GROUP_get_order(ecdsa_params->group, order, NULL))
goto end;
newkey = BN_num_bits(order);
BN_free(order);
}
}
else
#endif
@ -433,6 +489,7 @@ bad:
BIO_printf(bio_err," the random number generator\n");
BIO_printf(bio_err," -newkey rsa:bits generate a new RSA key of 'bits' in size\n");
BIO_printf(bio_err," -newkey dsa:file generate a new DSA key, parameters taken from CA in 'file'\n");
BIO_printf(bio_err," -newkey ecdsa:file generate a new ECDSA key, parameters taken from CA in 'file'\n");
BIO_printf(bio_err," -[digest] Digest to sign with (md5, sha1, md2, mdc2, md4)\n");
BIO_printf(bio_err," -config file request template file.\n");
BIO_printf(bio_err," -subj arg set or modify request subject\n");
@ -626,7 +683,7 @@ bad:
message */
goto end;
}
if (EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA)
if (EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA || EVP_PKEY_type(pkey->type) == EVP_PKEY_ECDSA)
{
char *randfile = NCONF_get_string(req_conf,SECTION,"RANDFILE");
if (randfile == NULL)
@ -650,14 +707,15 @@ bad:
newkey=DEFAULT_KEY_LENGTH;
}
if (newkey < MIN_KEY_LENGTH)
if (newkey < MIN_KEY_LENGTH && (pkey_type == TYPE_RSA || pkey_type == TYPE_DSA))
/* TODO: appropriate minimal keylength for the different algorithm (esp. ECDSA) */
{
BIO_printf(bio_err,"private key length is too short,\n");
BIO_printf(bio_err,"it needs to be at least %d bits, not %d\n",MIN_KEY_LENGTH,newkey);
goto end;
}
BIO_printf(bio_err,"Generating a %d bit %s private key\n",
newkey,(pkey_type == TYPE_RSA)?"RSA":"DSA");
newkey,(pkey_type == TYPE_RSA)?"RSA":(pkey_type == TYPE_DSA)?"DSA":"ECDSA");
if ((pkey=EVP_PKEY_new()) == NULL) goto end;
@ -679,6 +737,14 @@ bad:
dsa_params=NULL;
}
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey_type == TYPE_ECDSA)
{
if (!ECDSA_generate_key(ecdsa_params)) goto end;
if (!EVP_PKEY_assign_ECDSA(pkey, ecdsa_params)) goto end;
ecdsa_params = NULL;
}
#endif
app_RAND_write_file(randfile, bio_err);
@ -784,6 +850,10 @@ loop:
#ifndef OPENSSL_NO_DSA
if (pkey->type == EVP_PKEY_DSA)
digest=EVP_dss1();
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA)
digest=EVP_ecdsa();
#endif
if (req == NULL)
{
@ -1064,6 +1134,9 @@ end:
OBJ_cleanup();
#ifndef OPENSSL_NO_DSA
if (dsa_params != NULL) DSA_free(dsa_params);
#endif
#ifndef OPENSSL_NO_ECDSA
if (ecdsa_params != NULL) ECDSA_free(ecdsa_params);
#endif
apps_shutdown();
EXIT(ex);

View file

@ -702,7 +702,7 @@ bad:
}
}
#if !defined(OPENSSL_NO_RSA) || !defined(OPENSSL_NO_DSA)
#if !defined(OPENSSL_NO_RSA) || !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_ECDSA)
if (nocert)
#endif
{

View file

@ -866,6 +866,10 @@ bad:
if (Upkey->type == EVP_PKEY_DSA)
digest=EVP_dss1();
#endif
#ifndef OPENSSL_NO_ECDSA
if (Upkey->type == EVP_PKEY_ECDSA)
digest=EVP_ecdsa();
#endif
assert(need_rand);
if (!sign(x,Upkey,days,clrext,digest,
@ -885,6 +889,10 @@ bad:
if (CApkey->type == EVP_PKEY_DSA)
digest=EVP_dss1();
#endif
#ifndef OPENSSL_NO_ECDSA
if (CApkey->type == EVP_PKEY_ECDSA)
digest = EVP_ecdsa();
#endif
assert(need_rand);
if (!x509_certify(ctx,CAfile,digest,x,xca,
@ -914,6 +922,8 @@ bad:
if (pk->type == EVP_PKEY_DSA)
digest=EVP_dss1();
else if (pk->type == EVP_PKEY_ECDSA)
digest=EVP_ecdsa();
rq=X509_to_X509_REQ(x,pk,digest);
EVP_PKEY_free(pk);

View file

@ -28,7 +28,7 @@ LIBS=
SDIRS= md2 md5 sha mdc2 hmac ripemd \
des rc2 rc4 rc5 idea bf cast \
bn ec rsa dsa dh dso engine aes \
bn ec rsa dsa ecdsa dh dso engine aes \
buffer bio stack lhash rand err objects \
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5

View file

@ -145,13 +145,14 @@ a_d2i_fp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
a_d2i_fp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
a_d2i_fp.o: ../../include/openssl/symhacks.h ../cryptlib.h a_d2i_fp.c
a_digest.o: ../../e_os.h ../../include/openssl/asn1.h
a_digest.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
a_digest.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
a_digest.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
a_digest.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
a_digest.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
a_digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
a_digest.o: ../../include/openssl/opensslconf.h
a_digest.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
a_digest.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
a_digest.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
a_digest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
a_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
a_digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
a_digest.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
a_digest.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
a_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
a_digest.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
a_digest.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -257,10 +258,12 @@ a_set.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
a_set.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
a_set.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
a_set.o: ../cryptlib.h a_set.c
a_sign.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
a_sign.o: ../../e_os.h ../../include/openssl/asn1.h
a_sign.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
a_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
a_sign.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
a_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
a_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
a_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
a_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
a_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -270,18 +273,20 @@ a_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
a_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
a_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
a_sign.o: ../cryptlib.h a_sign.c
a_strex.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
a_strex.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
a_strex.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
a_strex.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
a_strex.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
a_strex.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
a_strex.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
a_strex.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
a_strex.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
a_strex.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
a_strex.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
a_strex.o: ../../include/openssl/x509_vfy.h a_strex.c charmap.h
a_strex.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
a_strex.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
a_strex.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
a_strex.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
a_strex.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
a_strex.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
a_strex.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
a_strex.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
a_strex.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
a_strex.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
a_strex.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
a_strex.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
a_strex.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
a_strex.o: a_strex.c charmap.h
a_strnid.o: ../../e_os.h ../../include/openssl/asn1.h
a_strnid.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
a_strnid.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
@ -326,13 +331,14 @@ a_utf8.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
a_utf8.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
a_utf8.o: ../cryptlib.h a_utf8.c
a_verify.o: ../../e_os.h ../../include/openssl/asn1.h
a_verify.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
a_verify.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
a_verify.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
a_verify.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
a_verify.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
a_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
a_verify.o: ../../include/openssl/opensslconf.h
a_verify.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
a_verify.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
a_verify.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
a_verify.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
a_verify.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
a_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
a_verify.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
a_verify.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
a_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
a_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
a_verify.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -364,14 +370,15 @@ asn1_par.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
asn1_par.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
asn1_par.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_par.c
asn_moid.o: ../../e_os.h ../../include/openssl/asn1.h
asn_moid.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
asn_moid.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
asn_moid.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
asn_moid.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
asn_moid.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
asn_moid.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
asn_moid.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
asn_moid.o: ../../include/openssl/opensslconf.h
asn_moid.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
asn_moid.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
asn_moid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
asn_moid.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
asn_moid.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
asn_moid.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
asn_moid.o: ../../include/openssl/err.h ../../include/openssl/evp.h
asn_moid.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
asn_moid.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
asn_moid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
asn_moid.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
asn_moid.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -386,10 +393,12 @@ asn_pack.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
asn_pack.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
asn_pack.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
asn_pack.o: ../../include/openssl/symhacks.h ../cryptlib.h asn_pack.c
d2i_pr.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
d2i_pr.o: ../../e_os.h ../../include/openssl/asn1.h
d2i_pr.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
d2i_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
d2i_pr.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
d2i_pr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
d2i_pr.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
d2i_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
d2i_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
d2i_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -397,10 +406,12 @@ d2i_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
d2i_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
d2i_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
d2i_pr.o: ../cryptlib.h d2i_pr.c
d2i_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
d2i_pu.o: ../../e_os.h ../../include/openssl/asn1.h
d2i_pu.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
d2i_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
d2i_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
d2i_pu.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
d2i_pu.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
d2i_pu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
d2i_pu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
d2i_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -441,10 +452,12 @@ f_string.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
f_string.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
f_string.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
f_string.o: ../../include/openssl/symhacks.h ../cryptlib.h f_string.c
i2d_pr.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
i2d_pr.o: ../../e_os.h ../../include/openssl/asn1.h
i2d_pr.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
i2d_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
i2d_pr.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
i2d_pr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
i2d_pr.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
i2d_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
i2d_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
i2d_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -452,10 +465,12 @@ i2d_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
i2d_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
i2d_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
i2d_pr.o: ../cryptlib.h i2d_pr.c
i2d_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
i2d_pu.o: ../../e_os.h ../../include/openssl/asn1.h
i2d_pu.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
i2d_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
i2d_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
i2d_pu.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
i2d_pu.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
i2d_pu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
i2d_pu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
i2d_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -468,7 +483,8 @@ n_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
n_pkey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
n_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
n_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
n_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
n_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
n_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
n_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
n_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
n_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -481,7 +497,8 @@ nsseq.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
nsseq.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
nsseq.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
nsseq.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
nsseq.o: ../../include/openssl/e_os2.h ../../include/openssl/evp.h
nsseq.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
nsseq.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
nsseq.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
nsseq.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
nsseq.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
@ -494,6 +511,7 @@ p5_pbe.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p5_pbe.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p5_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p5_pbe.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p5_pbe.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p5_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p5_pbe.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p5_pbe.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -508,6 +526,7 @@ p5_pbev2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p5_pbev2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p5_pbev2.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p5_pbev2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p5_pbev2.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p5_pbev2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p5_pbev2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p5_pbev2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -522,6 +541,7 @@ p8_pkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p8_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p8_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p8_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p8_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p8_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p8_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p8_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -532,24 +552,28 @@ p8_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p8_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p8_pkey.o: ../cryptlib.h p8_pkey.c
t_bitst.o: ../../e_os.h ../../include/openssl/asn1.h
t_bitst.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
t_bitst.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
t_bitst.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
t_bitst.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
t_bitst.o: ../../include/openssl/err.h ../../include/openssl/evp.h
t_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
t_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
t_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
t_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
t_bitst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
t_bitst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
t_bitst.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
t_bitst.o: ../../include/openssl/x509v3.h ../cryptlib.h t_bitst.c
t_crl.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
t_bitst.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
t_bitst.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
t_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
t_bitst.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
t_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
t_bitst.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
t_bitst.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
t_bitst.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
t_bitst.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
t_bitst.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
t_bitst.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
t_bitst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
t_bitst.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
t_bitst.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
t_bitst.o: ../cryptlib.h t_bitst.c
t_crl.o: ../../e_os.h ../../include/openssl/asn1.h
t_crl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
t_crl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
t_crl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
t_crl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
t_crl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
t_crl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
t_crl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
t_crl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
t_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
t_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -559,20 +583,24 @@ t_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
t_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
t_crl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
t_crl.o: ../cryptlib.h t_crl.c
t_pkey.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
t_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
t_pkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
t_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
t_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
t_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
t_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
t_pkey.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
t_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
t_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
t_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
t_pkey.o: ../../include/openssl/symhacks.h ../cryptlib.h t_pkey.c
t_req.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
t_req.o: ../../e_os.h ../../include/openssl/asn1.h
t_req.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
t_req.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
t_req.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
t_req.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
t_req.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
t_req.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
t_req.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
t_req.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
t_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
t_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -582,10 +610,12 @@ t_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
t_req.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
t_req.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
t_req.o: ../cryptlib.h t_req.c
t_spki.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
t_spki.o: ../../e_os.h ../../include/openssl/asn1.h
t_spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
t_spki.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
t_spki.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
t_spki.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
t_spki.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
t_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
t_spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
t_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -595,11 +625,13 @@ t_spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
t_spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
t_spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
t_spki.o: ../cryptlib.h t_spki.c
t_x509.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
t_x509.o: ../../e_os.h ../../include/openssl/asn1.h
t_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
t_x509.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
t_x509.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
t_x509.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
t_x509.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
t_x509.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
t_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
t_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
t_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
t_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -610,18 +642,20 @@ t_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
t_x509.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
t_x509.o: ../cryptlib.h t_x509.c
t_x509a.o: ../../e_os.h ../../include/openssl/asn1.h
t_x509a.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
t_x509a.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
t_x509a.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
t_x509a.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
t_x509a.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
t_x509a.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
t_x509a.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
t_x509a.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
t_x509a.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
t_x509a.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
t_x509a.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
t_x509a.o: ../../include/openssl/x509_vfy.h ../cryptlib.h t_x509a.c
t_x509a.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
t_x509a.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
t_x509a.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
t_x509a.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
t_x509a.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
t_x509a.o: ../../include/openssl/err.h ../../include/openssl/evp.h
t_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
t_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
t_x509a.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
t_x509a.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
t_x509a.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
t_x509a.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
t_x509a.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
t_x509a.o: ../cryptlib.h t_x509a.c
tasn_dec.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
tasn_dec.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
tasn_dec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
@ -676,7 +710,8 @@ x_algor.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
x_algor.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x_algor.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x_algor.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x_algor.o: ../../include/openssl/e_os2.h ../../include/openssl/evp.h
x_algor.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x_algor.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
x_algor.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_algor.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x_algor.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
@ -690,6 +725,7 @@ x_attrib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_attrib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_attrib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_attrib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_attrib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_attrib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_attrib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_attrib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -713,6 +749,7 @@ x_crl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_crl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_crl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_crl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_crl.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_crl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_crl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -726,7 +763,8 @@ x_exten.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
x_exten.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x_exten.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x_exten.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x_exten.o: ../../include/openssl/e_os2.h ../../include/openssl/evp.h
x_exten.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x_exten.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
x_exten.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_exten.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x_exten.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
@ -735,10 +773,12 @@ x_exten.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
x_exten.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x_exten.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x_exten.o: x_exten.c
x_info.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
x_info.o: ../../e_os.h ../../include/openssl/asn1.h
x_info.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_info.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_info.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_info.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_info.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_info.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_info.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -762,6 +802,7 @@ x_name.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_name.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_name.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_name.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_name.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_name.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_name.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -772,24 +813,26 @@ x_name.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x_name.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x_name.o: ../cryptlib.h x_name.c
x_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
x_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
x_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
x_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x_pkey.o: ../cryptlib.h x_pkey.c
x_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
x_pkey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
x_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
x_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
x_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
x_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
x_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_pkey.c
x_pubkey.o: ../../e_os.h ../../include/openssl/asn1.h
x_pubkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_pubkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_pubkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_pubkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_pubkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_pubkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_pubkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_pubkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -804,6 +847,7 @@ x_req.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_req.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_req.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_req.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_req.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_req.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -818,6 +862,7 @@ x_sig.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_sig.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_sig.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_sig.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_sig.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_sig.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_sig.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_sig.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -832,6 +877,7 @@ x_spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_spki.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_spki.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_spki.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_spki.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -846,6 +892,7 @@ x_val.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_val.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_val.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_val.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_val.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_val.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_val.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_val.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -860,7 +907,8 @@ x_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_x509.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_x509.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
x_x509.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x_x509.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x_x509.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -875,6 +923,7 @@ x_x509a.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_x509a.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_x509a.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_x509a.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_x509a.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_x509a.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h

View file

@ -1006,6 +1006,7 @@ void ERR_load_ASN1_strings(void);
#define ASN1_F_D2I_X509_PKEY 159
#define ASN1_F_I2D_ASN1_TIME 160
#define ASN1_F_I2D_DSA_PUBKEY 161
#define ASN1_F_I2D_ECDSA_PUBKEY 174
#define ASN1_F_I2D_NETSCAPE_RSA 162
#define ASN1_F_I2D_PRIVATEKEY 163
#define ASN1_F_I2D_PUBLICKEY 164

View file

@ -128,6 +128,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
{ERR_PACK(0,ASN1_F_D2I_X509_PKEY,0), "d2i_X509_PKEY"},
{ERR_PACK(0,ASN1_F_I2D_ASN1_TIME,0), "I2D_ASN1_TIME"},
{ERR_PACK(0,ASN1_F_I2D_DSA_PUBKEY,0), "i2d_DSA_PUBKEY"},
{ERR_PACK(0,ASN1_F_I2D_ECDSA_PUBKEY,0), "i2d_ECDSA_PUBKEY"},
{ERR_PACK(0,ASN1_F_I2D_NETSCAPE_RSA,0), "i2d_Netscape_RSA"},
{ERR_PACK(0,ASN1_F_I2D_PRIVATEKEY,0), "i2d_PrivateKey"},
{ERR_PACK(0,ASN1_F_I2D_PUBLICKEY,0), "i2d_PublicKey"},

View file

@ -68,6 +68,9 @@
#ifndef OPENSSL_NO_DSA
#include <openssl/dsa.h>
#endif
#ifndef OPENSSL_NO_ECDSA
#include <openssl/ecdsa.h>
#endif
EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, unsigned char **pp,
long length)
@ -107,6 +110,16 @@ EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, unsigned char **pp,
goto err;
}
break;
#endif
#ifndef OPENSSL_NO_ECDSA
case EVP_PKEY_ECDSA:
if ((ret->pkey.ecdsa = d2i_ECDSAPrivateKey(NULL,
(const unsigned char **)pp, length)) == NULL)
{
ASN1err(ASN1_F_D2I_PRIVATEKEY, ERR_R_ASN1_LIB);
goto err;
}
break;
#endif
default:
ASN1err(ASN1_F_D2I_PRIVATEKEY,ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE);
@ -138,7 +151,10 @@ EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, unsigned char **pp,
/* Since we only need to discern "traditional format" RSA and DSA
* keys we can just count the elements.
*/
if(sk_ASN1_TYPE_num(inkey) == 6) keytype = EVP_PKEY_DSA;
if(sk_ASN1_TYPE_num(inkey) == 6)
keytype = EVP_PKEY_DSA;
else if (sk_ASN1_TYPE_num(inkey) == 4)
keytype = EVP_PKEY_ECDSA;
else keytype = EVP_PKEY_RSA;
sk_ASN1_TYPE_pop_free(inkey, ASN1_TYPE_free);
return d2i_PrivateKey(keytype, a, pp, length);

View file

@ -68,6 +68,9 @@
#ifndef OPENSSL_NO_DSA
#include <openssl/dsa.h>
#endif
#ifndef OPENSSL_NO_ECDSA
#include <openssl/ecdsa.h>
#endif
EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, unsigned char **pp,
long length)
@ -100,13 +103,23 @@ EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, unsigned char **pp,
#endif
#ifndef OPENSSL_NO_DSA
case EVP_PKEY_DSA:
if ((ret->pkey.dsa=d2i_DSAPublicKey(NULL,
if ((ret->pkey.dsa=d2i_DSAPublicKey(&(ret->pkey.dsa),
(const unsigned char **)pp,length)) == NULL) /* TMP UGLY CAST */
{
ASN1err(ASN1_F_D2I_PUBLICKEY,ERR_R_ASN1_LIB);
goto err;
}
break;
#endif
#ifndef OPENSSL_NO_ECDSA
case EVP_PKEY_ECDSA:
if ((ret->pkey.ecdsa = d2i_ECDSAPublicKey(&(ret->pkey.ecdsa),
(const unsigned char **)pp, length)) == NULL)
{
ASN1err(ASN1_F_D2I_PUBLICKEY, ERR_R_ASN1_LIB);
goto err;
}
break;
#endif
default:
ASN1err(ASN1_F_D2I_PUBLICKEY,ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE);

View file

@ -67,6 +67,9 @@
#ifndef OPENSSL_NO_DSA
#include <openssl/dsa.h>
#endif
#ifndef OPENSSL_NO_ECDSA
#include <openssl/ecdsa.h>
#endif
int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp)
{
@ -83,6 +86,12 @@ int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp)
return(i2d_DSAPrivateKey(a->pkey.dsa,pp));
}
#endif
#ifndef OPENSSL_NO_ECDSA
if (a->type == EVP_PKEY_ECDSA)
{
return(i2d_ECDSAPrivateKey(a->pkey.ecdsa, pp));
}
#endif
ASN1err(ASN1_F_I2D_PRIVATEKEY,ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE);
return(-1);

View file

@ -67,6 +67,9 @@
#ifndef OPENSSL_NO_DSA
#include <openssl/dsa.h>
#endif
#ifndef OPENSSL_NO_ECDSA
#include <openssl/ecdsa.h>
#endif
int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp)
{
@ -79,6 +82,10 @@ int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp)
#ifndef OPENSSL_NO_DSA
case EVP_PKEY_DSA:
return(i2d_DSAPublicKey(a->pkey.dsa,pp));
#endif
#ifndef OPENSSL_NO_ECDSA
case EVP_PKEY_ECDSA:
return(i2d_ECDSAPublicKey(a->pkey.ecdsa, pp));
#endif
default:
ASN1err(ASN1_F_I2D_PUBLICKEY,ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE);

View file

@ -69,26 +69,29 @@
#ifndef OPENSSL_NO_DSA
#include <openssl/dsa.h>
#endif
#ifndef OPENSSL_NO_ECDSA
#include <openssl/ecdsa.h>
#endif
static int print(BIO *fp,const char *str,BIGNUM *num,
unsigned char *buf,int off);
#ifndef OPENSSL_NO_RSA
#ifndef OPENSSL_NO_FP_API
int RSA_print_fp(FILE *fp, const RSA *x, int off)
{
BIO *b;
int ret;
{
BIO *b;
int ret;
if ((b=BIO_new(BIO_s_file())) == NULL)
if ((b=BIO_new(BIO_s_file())) == NULL)
{
RSAerr(RSA_F_RSA_PRINT_FP,ERR_R_BUF_LIB);
return(0);
return(0);
}
BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=RSA_print(b,x,off);
BIO_free(b);
return(ret);
}
BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=RSA_print(b,x,off);
BIO_free(b);
return(ret);
}
#endif
int RSA_print(BIO *bp, const RSA *x, int off)
@ -209,6 +212,139 @@ err:
}
#endif /* !OPENSSL_NO_DSA */
#ifndef OPENSSL_NO_ECDSA
#ifndef OPENSSL_NO_FP_API
int ECDSA_print_fp(FILE *fp, const ECDSA *x, int off)
{
BIO *b;
int ret;
if ((b=BIO_new(BIO_s_file())) == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_PRINT_FP, ERR_R_BIO_LIB);
return(0);
}
BIO_set_fp(b, fp, BIO_NOCLOSE);
ret = ECDSA_print(b, x, off);
BIO_free(b);
return(ret);
}
#endif
int ECDSA_print(BIO *bp, const ECDSA *x, int off)
{
char str[128];
unsigned char *buffer=NULL;
int i, buf_len=0, ret=0, reason=ERR_R_BIO_LIB;
BIGNUM *tmp_1=NULL, *tmp_2=NULL, *tmp_3=NULL,
*tmp_4=NULL, *tmp_5=NULL;
BN_CTX *ctx=NULL;
EC_POINT *point=NULL;
/* TODO: fields other than prime fields */
if (!x || !x->group)
{
reason = ECDSA_R_MISSING_PARAMETERS;
goto err;
}
if ((tmp_1 = BN_new()) == NULL || (tmp_2 = BN_new()) == NULL ||
(tmp_3 = BN_new()) == NULL || (ctx = BN_CTX_new()) == NULL)
{
reason = ERR_R_MALLOC_FAILURE;
goto err;
}
if (!EC_GROUP_get_curve_GFp(x->group, tmp_1, tmp_2, tmp_3, ctx))
{
reason = ERR_R_EC_LIB;
goto err;
}
if ((point = EC_GROUP_get0_generator(x->group)) == NULL)
{
reason = ERR_R_EC_LIB;
goto err;
}
if ((buf_len = EC_POINT_point2oct(x->group, point, POINT_CONVERSION_COMPRESSED, NULL, 0, ctx)) == 0)
{
reason = ECDSA_R_UNEXPECTED_PARAMETER_LENGTH;
goto err;
}
if ((buffer = OPENSSL_malloc(buf_len)) == NULL)
{
reason = ERR_R_MALLOC_FAILURE;
goto err;
}
if (!EC_POINT_point2oct(x->group, point, POINT_CONVERSION_COMPRESSED,
buffer, buf_len, ctx)) goto err;
if ((tmp_4 = BN_bin2bn(buffer, buf_len, NULL)) == NULL)
{
reason = ERR_R_BN_LIB;
goto err;
}
if ((i = EC_POINT_point2oct(x->group, x->pub_key, POINT_CONVERSION_COMPRESSED, NULL, 0, ctx)) == 0)
{
reason = ECDSA_R_UNEXPECTED_PARAMETER_LENGTH;
goto err;
}
if (i > buf_len && (buffer = OPENSSL_realloc(buffer, i)) == NULL)
{
reason = ERR_R_MALLOC_FAILURE;
buf_len = i;
goto err;
}
if (!EC_POINT_point2oct(x->group, x->pub_key, POINT_CONVERSION_COMPRESSED,
buffer, buf_len, ctx))
{
reason = ERR_R_EC_LIB;
goto err;
}
if ((tmp_5 = BN_bin2bn(buffer, buf_len, NULL)) == NULL)
{
reason = ERR_R_BN_LIB;
goto err;
}
if (tmp_1 != NULL)
i = BN_num_bytes(tmp_1)*2;
else
i=256;
if ((i + 10) > buf_len && (buffer = OPENSSL_realloc(buffer, i+10)) == NULL)
{
reason = ERR_R_MALLOC_FAILURE;
buf_len = i;
goto err;
}
if (off)
{
if (off > 128) off=128;
memset(str,' ',off);
}
if (x->priv_key != NULL)
{
if (off && (BIO_write(bp, str, off) <= 0)) goto err;
if (BIO_printf(bp, "Private-Key: (%d bit)\n", BN_num_bits(tmp_1)) <= 0) goto err;
}
if ((x->priv_key != NULL) && !print(bp, "priv:", x->priv_key, buffer, off)) goto err;
if ((tmp_5 != NULL) && !print(bp, "pub: ", tmp_5, buffer, off)) goto err;
if ((tmp_1 != NULL) && !print(bp, "P: ", tmp_1, buffer, off)) goto err;
if ((tmp_2 != NULL) && !print(bp, "A: ", tmp_2, buffer, off)) goto err;
if ((tmp_3 != NULL) && !print(bp, "B: ", tmp_3, buffer, off)) goto err;
if ((tmp_4 != NULL) && !print(bp, "Gen: ", tmp_4, buffer, off)) goto err;
ret=1;
err:
if (!ret)
ECDSAerr(ECDSA_F_ECDSA_PRINT, reason);
if (tmp_1) BN_free(tmp_1);
if (tmp_2) BN_free(tmp_2);
if (tmp_3) BN_free(tmp_3);
if (tmp_4) BN_free(tmp_4);
if (tmp_5) BN_free(tmp_5);
if (ctx) BN_CTX_free(ctx);
if (buffer != NULL) OPENSSL_free(buffer);
return(ret);
}
#endif
static int print(BIO *bp, const char *number, BIGNUM *num, unsigned char *buf,
int off)
{
@ -262,20 +398,20 @@ static int print(BIO *bp, const char *number, BIGNUM *num, unsigned char *buf,
#ifndef OPENSSL_NO_DH
#ifndef OPENSSL_NO_FP_API
int DHparams_print_fp(FILE *fp, const DH *x)
{
BIO *b;
int ret;
{
BIO *b;
int ret;
if ((b=BIO_new(BIO_s_file())) == NULL)
if ((b=BIO_new(BIO_s_file())) == NULL)
{
DHerr(DH_F_DHPARAMS_PRINT_FP,ERR_R_BUF_LIB);
return(0);
return(0);
}
BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=DHparams_print(b, x);
BIO_free(b);
return(ret);
}
BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=DHparams_print(b, x);
BIO_free(b);
return(ret);
}
#endif
int DHparams_print(BIO *bp, const DH *x)
@ -315,20 +451,20 @@ err:
#ifndef OPENSSL_NO_DSA
#ifndef OPENSSL_NO_FP_API
int DSAparams_print_fp(FILE *fp, const DSA *x)
{
BIO *b;
int ret;
{
BIO *b;
int ret;
if ((b=BIO_new(BIO_s_file())) == NULL)
if ((b=BIO_new(BIO_s_file())) == NULL)
{
DSAerr(DSA_F_DSAPARAMS_PRINT_FP,ERR_R_BUF_LIB);
return(0);
return(0);
}
BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=DSAparams_print(b, x);
BIO_free(b);
return(ret);
}
BIO_set_fp(b,fp,BIO_NOCLOSE);
ret=DSAparams_print(b, x);
BIO_free(b);
return(ret);
}
#endif
int DSAparams_print(BIO *bp, const DSA *x)
@ -359,3 +495,87 @@ err:
#endif /* !OPENSSL_NO_DSA */
#ifndef OPENSSL_NO_ECDSA
#ifndef OPENSSL_NO_FP_API
int ECDSAParameters_print_fp(FILE *fp, const ECDSA *x)
{
BIO *b;
int ret;
if ((b=BIO_new(BIO_s_file())) == NULL)
{
ECDSAerr(ECDSA_F_ECDSAPARAMETERS_PRINT_FP, ERR_R_BIO_LIB);
return(0);
}
BIO_set_fp(b, fp, BIO_NOCLOSE);
ret = ECDSAParameters_print(b, x);
BIO_free(b);
return(ret);
}
#endif
int ECDSAParameters_print(BIO *bp, const ECDSA *x)
{
unsigned char *buffer=NULL;
int buf_len;
int reason=ERR_R_EC_LIB, i, ret=0;
BIGNUM *tmp_1=NULL, *tmp_2=NULL, *tmp_3=NULL, *tmp_4=NULL;
BN_CTX *ctx=NULL;
EC_POINT *point=NULL;
/* TODO: fields other than prime fields */
if (!x || !x->group)
{
reason = ECDSA_R_MISSING_PARAMETERS;
goto err;
}
if ((tmp_1 = BN_new()) == NULL || (tmp_2 = BN_new()) == NULL ||
(tmp_3 = BN_new()) == NULL || (ctx = BN_CTX_new()) == NULL)
{
reason = ERR_R_MALLOC_FAILURE;
goto err;
}
if (!EC_GROUP_get_curve_GFp(x->group, tmp_1, tmp_2, tmp_3, ctx)) goto err;
if ((point = EC_GROUP_get0_generator(x->group)) == NULL) goto err;
buf_len = EC_POINT_point2oct(x->group, point, POINT_CONVERSION_COMPRESSED, NULL, 0, ctx);
if (!buf_len || (buffer = OPENSSL_malloc(buf_len)) == NULL)
{
reason = ERR_R_MALLOC_FAILURE;
goto err;
}
if (!EC_POINT_point2oct(x->group, point, POINT_CONVERSION_COMPRESSED, buffer, buf_len, ctx))
{
reason = ERR_R_EC_LIB;
goto err;
}
if ((tmp_4 = BN_bin2bn(buffer, buf_len, NULL)) == NULL)
{
reason = ERR_R_BN_LIB;
goto err;
}
i = BN_num_bits(tmp_1) + 10;
if (i > buf_len && (buffer = OPENSSL_realloc(buffer, i)) == NULL)
{
reason=ERR_R_MALLOC_FAILURE;
goto err;
}
if (BIO_printf(bp, "ECDSA-Parameters: (%d bit)\n", BN_num_bits(tmp_1)) <= 0) goto err;
if (!print(bp, "Prime p:", tmp_1, buffer, 4)) goto err;
if (!print(bp, "Curve a:", tmp_2, buffer, 4)) goto err;
if (!print(bp, "Curve b:", tmp_3, buffer, 4)) goto err;
if (!print(bp, "Generator ( compressed ) :", tmp_4, buffer, 4)) goto err;
ret=1;
err:
if (tmp_1) BN_free(tmp_1);
if (tmp_2) BN_free(tmp_2);
if (tmp_3) BN_free(tmp_3);
if (tmp_4) BN_free(tmp_4);
if (ctx) BN_CTX_free(ctx);
if (buffer) OPENSSL_free(buffer);
ECDSAerr(ECDSA_F_ECDSAPARAMETERS_PRINT, reason);
return(ret);
}
#endif

View file

@ -134,6 +134,15 @@ int X509_REQ_print(BIO *bp, X509_REQ *x)
}
else
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey != NULL && pkey->type == EVP_PKEY_ECDSA)
{
BIO_printf(bp, "%12sECDSA Public Key: \n","");
ECDSA_print(bp, pkey->pkey.ecdsa, 16);
}
else
#endif
BIO_printf(bp,"%12sUnknown Public Key:\n","");
if (pkey != NULL)

View file

@ -93,6 +93,15 @@ int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki)
}
else
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA)
{
BIO_printf(out, " ECDSA Public Key:\n");
ECDSA_print(out, pkey->pkey.ecdsa,2);
}
else
#endif
BIO_printf(out," Unknown Public Key:\n");
EVP_PKEY_free(pkey);
}

View file

@ -66,6 +66,9 @@
#ifndef OPENSSL_NO_DSA
#include <openssl/dsa.h>
#endif
#ifndef OPENSSL_NO_ECDSA
#include <openssl/ecdsa.h>
#endif
#include <openssl/objects.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
@ -228,6 +231,14 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
DSA_print(bp,pkey->pkey.dsa,16);
}
else
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA)
{
BIO_printf(bp, "%12sECDSA Public Key:\n","");
ECDSA_print(bp, pkey->pkey.ecdsa, 16);
}
else
#endif
BIO_printf(bp,"%12sUnknown Public Key:\n","");

View file

@ -63,13 +63,14 @@
/* Minor tweak to operation: free up EVP_PKEY */
static int pubkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
{
if(operation == ASN1_OP_FREE_POST) {
{
if (operation == ASN1_OP_FREE_POST)
{
X509_PUBKEY *pubkey = (X509_PUBKEY *)*pval;
EVP_PKEY_free(pubkey->pkey);
}
}
return 1;
}
}
ASN1_SEQUENCE_cb(X509_PUBKEY, pubkey_cb) = {
ASN1_SIMPLE(X509_PUBKEY, algor, X509_ALGOR),
@ -108,9 +109,8 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
a->parameter->type=V_ASN1_NULL;
}
}
else
#ifndef OPENSSL_NO_DSA
if (pkey->type == EVP_PKEY_DSA)
else if (pkey->type == EVP_PKEY_DSA)
{
unsigned char *pp;
DSA *dsa;
@ -128,8 +128,51 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
ASN1_STRING_set(a->parameter->value.sequence,p,i);
OPENSSL_free(p);
}
else
#endif
#ifndef OPENSSL_NO_ECDSA
else if (pkey->type == EVP_PKEY_ECDSA)
{
unsigned char *pp;
ECDSA *ecdsa;
ecdsa = pkey->pkey.ecdsa;
ecdsa->write_params=0;
ASN1_TYPE_free(a->parameter);
if ((i = i2d_ECDSAParameters(ecdsa, NULL)) == 0)
{
X509err(X509_F_X509_PUBKEY_SET, ERR_R_ECDSA_LIB);
goto err;
}
if ((p = (unsigned char *) OPENSSL_malloc(i)) == NULL)
{
X509err(X509_F_X509_PUBKEY_SET, ERR_R_MALLOC_FAILURE);
goto err;
}
pp = p;
if (!i2d_ECDSAParameters(ecdsa, &pp))
{
X509err(X509_F_X509_PUBKEY_SET, ERR_R_ECDSA_LIB);
OPENSSL_free(p);
goto err;
}
if ((a->parameter = ASN1_TYPE_new()) == NULL)
{
X509err(X509_F_X509_PUBKEY_SET, ERR_R_ASN1_LIB);
OPENSSL_free(p);
goto err;
}
a->parameter->type = V_ASN1_SEQUENCE;
if ((a->parameter->value.sequence = ASN1_STRING_new()) == NULL)
{
X509err(X509_F_X509_PUBKEY_SET, ERR_R_ASN1_LIB);
OPENSSL_free(p);
goto err;
}
ASN1_STRING_set(a->parameter->value.sequence, p, i);
OPENSSL_free(p);
}
#endif
else if (1)
{
X509err(X509_F_X509_PUBKEY_SET,X509_R_UNSUPPORTED_ALGORITHM);
goto err;
@ -177,40 +220,79 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
if (key == NULL) goto err;
if (key->pkey != NULL)
{
CRYPTO_add(&key->pkey->references,1,CRYPTO_LOCK_EVP_PKEY);
return(key->pkey);
}
{
CRYPTO_add(&key->pkey->references, 1, CRYPTO_LOCK_EVP_PKEY);
return(key->pkey);
}
if (key->public_key == NULL) goto err;
type=OBJ_obj2nid(key->algor->algorithm);
p=key->public_key->data;
j=key->public_key->length;
if ((ret=d2i_PublicKey(type,NULL,&p,(long)j)) == NULL)
if ((ret = EVP_PKEY_new()) == NULL)
{
X509err(X509_F_X509_PUBKEY_GET,X509_R_ERR_ASN1_LIB);
X509err(X509_F_X509_PUBKEY_GET, ERR_R_MALLOC_FAILURE);
goto err;
}
ret->save_parameters=0;
ret->type = EVP_PKEY_type(type);
/* the parameters must be extracted before the public key (ECDSA!) */
#ifndef OPENSSL_NO_DSA
a=key->algor;
if (ret->type == EVP_PKEY_DSA)
if (0)
;
#ifndef OPENSSL_NO_DSA
else if (ret->type == EVP_PKEY_DSA)
{
if (a->parameter && (a->parameter->type == V_ASN1_SEQUENCE))
{
if ((ret->pkey.dsa = DSA_new()) == NULL)
{
X509err(X509_F_X509_PUBKEY_GET, ERR_R_MALLOC_FAILURE);
goto err;
}
ret->pkey.dsa->write_params=0;
cp=p=a->parameter->value.sequence->data;
j=a->parameter->value.sequence->length;
if (!d2i_DSAparams(&ret->pkey.dsa,&cp,(long)j))
if (!d2i_DSAparams(&ret->pkey.dsa, &cp, (long)j))
goto err;
}
ret->save_parameters=1;
}
#endif
key->pkey=ret;
CRYPTO_add(&ret->references,1,CRYPTO_LOCK_EVP_PKEY);
#ifndef OPENSSL_NO_ECDSA
else if (ret->type == EVP_PKEY_ECDSA)
{
if (a->parameter && (a->parameter->type == V_ASN1_SEQUENCE))
{
if ((ret->pkey.ecdsa= ECDSA_new()) == NULL)
{
X509err(X509_F_X509_PUBKEY_GET, ERR_R_MALLOC_FAILURE);
goto err;
}
ret->pkey.ecdsa->write_params = 0;
cp = p = a->parameter->value.sequence->data;
j = a->parameter->value.sequence->length;
if (!d2i_ECDSAParameters(&ret->pkey.ecdsa, &cp, (long)j))
{
X509err(X509_F_X509_PUBKEY_GET, ERR_R_ECDSA_LIB);
goto err;
}
}
ret->save_parameters = 1;
}
#endif
p=key->public_key->data;
j=key->public_key->length;
if ((ret = d2i_PublicKey(type, &ret, &p, (long)j)) == NULL)
{
X509err(X509_F_X509_PUBKEY_GET, X509_R_ERR_ASN1_LIB);
goto err;
}
key->pkey = ret;
CRYPTO_add(&ret->references, 1, CRYPTO_LOCK_EVP_PKEY);
return(ret);
err:
if (ret != NULL)
@ -224,7 +306,7 @@ err:
EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, unsigned char **pp,
long length)
{
{
X509_PUBKEY *xpk;
EVP_PKEY *pktmp;
xpk = d2i_X509_PUBKEY(NULL, pp, length);
@ -232,15 +314,16 @@ EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, unsigned char **pp,
pktmp = X509_PUBKEY_get(xpk);
X509_PUBKEY_free(xpk);
if(!pktmp) return NULL;
if(a) {
if(a)
{
EVP_PKEY_free(*a);
*a = pktmp;
}
}
return pktmp;
}
}
int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp)
{
{
X509_PUBKEY *xpk=NULL;
int ret;
if(!a) return 0;
@ -248,7 +331,7 @@ int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp)
ret = i2d_X509_PUBKEY(xpk, pp);
X509_PUBKEY_free(xpk);
return ret;
}
}
/* The following are equivalents but which return RSA and DSA
* keys
@ -256,75 +339,117 @@ int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp)
#ifndef OPENSSL_NO_RSA
RSA *d2i_RSA_PUBKEY(RSA **a, unsigned char **pp,
long length)
{
{
EVP_PKEY *pkey;
RSA *key;
unsigned char *q;
q = *pp;
pkey = d2i_PUBKEY(NULL, &q, length);
if(!pkey) return NULL;
if (!pkey) return NULL;
key = EVP_PKEY_get1_RSA(pkey);
EVP_PKEY_free(pkey);
if(!key) return NULL;
if (!key) return NULL;
*pp = q;
if(a) {
if (a)
{
RSA_free(*a);
*a = key;
}
}
return key;
}
}
int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp)
{
{
EVP_PKEY *pktmp;
int ret;
if(!a) return 0;
if (!a) return 0;
pktmp = EVP_PKEY_new();
if(!pktmp) {
if (!pktmp)
{
ASN1err(ASN1_F_I2D_RSA_PUBKEY, ERR_R_MALLOC_FAILURE);
return 0;
}
}
EVP_PKEY_set1_RSA(pktmp, a);
ret = i2d_PUBKEY(pktmp, pp);
EVP_PKEY_free(pktmp);
return ret;
}
}
#endif
#ifndef OPENSSL_NO_DSA
DSA *d2i_DSA_PUBKEY(DSA **a, unsigned char **pp,
long length)
{
{
EVP_PKEY *pkey;
DSA *key;
unsigned char *q;
q = *pp;
pkey = d2i_PUBKEY(NULL, &q, length);
if(!pkey) return NULL;
if (!pkey) return NULL;
key = EVP_PKEY_get1_DSA(pkey);
EVP_PKEY_free(pkey);
if(!key) return NULL;
if (!key) return NULL;
*pp = q;
if(a) {
if (a)
{
DSA_free(*a);
*a = key;
}
}
return key;
}
}
int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp)
{
{
EVP_PKEY *pktmp;
int ret;
if(!a) return 0;
pktmp = EVP_PKEY_new();
if(!pktmp) {
if(!pktmp)
{
ASN1err(ASN1_F_I2D_DSA_PUBKEY, ERR_R_MALLOC_FAILURE);
return 0;
}
}
EVP_PKEY_set1_DSA(pktmp, a);
ret = i2d_PUBKEY(pktmp, pp);
EVP_PKEY_free(pktmp);
return ret;
}
}
#endif
#ifndef OPENSSL_NO_ECDSA
ECDSA *d2i_ECDSA_PUBKEY(ECDSA **a, unsigned char **pp, long length)
{
EVP_PKEY *pkey;
ECDSA *key;
unsigned char *q;
q = *pp;
pkey = d2i_PUBKEY(NULL, &q, length);
if (!pkey) return(NULL);
key = EVP_PKEY_get1_ECDSA(pkey);
EVP_PKEY_free(pkey);
if (!key) return(NULL);
*pp = q;
if (a)
{
ECDSA_free(*a);
*a = key;
}
return(key);
}
int i2d_ECDSA_PUBKEY(ECDSA *a, unsigned char **pp)
{
EVP_PKEY *pktmp;
int ret;
if (!a) return(0);
if ((pktmp = EVP_PKEY_new()) == NULL)
{
ASN1err(ASN1_F_I2D_ECDSA_PUBKEY, ERR_R_MALLOC_FAILURE);
return(0);
}
EVP_PKEY_set1_ECDSA(pktmp, a);
ret = i2d_PUBKEY(pktmp, pp);
EVP_PKEY_free(pktmp);
return(ret);
}
#endif

View file

@ -110,14 +110,15 @@ conf_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
conf_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
conf_lib.o: conf_lib.c
conf_mall.o: ../../e_os.h ../../include/openssl/asn1.h
conf_mall.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
conf_mall.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
conf_mall.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
conf_mall.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
conf_mall.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
conf_mall.o: ../../include/openssl/err.h ../../include/openssl/evp.h
conf_mall.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
conf_mall.o: ../../include/openssl/objects.h
conf_mall.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
conf_mall.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
conf_mall.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
conf_mall.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
conf_mall.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
conf_mall.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
conf_mall.o: ../../include/openssl/engine.h ../../include/openssl/err.h
conf_mall.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
conf_mall.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
conf_mall.o: ../../include/openssl/opensslconf.h
conf_mall.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
conf_mall.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
@ -127,14 +128,15 @@ conf_mall.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
conf_mall.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
conf_mall.o: ../cryptlib.h conf_mall.c
conf_mod.o: ../../e_os.h ../../include/openssl/asn1.h
conf_mod.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
conf_mod.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
conf_mod.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
conf_mod.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
conf_mod.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
conf_mod.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
conf_mod.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
conf_mod.o: ../../include/openssl/opensslconf.h
conf_mod.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
conf_mod.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
conf_mod.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
conf_mod.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
conf_mod.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
conf_mod.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
conf_mod.o: ../../include/openssl/err.h ../../include/openssl/evp.h
conf_mod.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
conf_mod.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
conf_mod.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
conf_mod.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
conf_mod.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h

View file

@ -112,10 +112,12 @@ dh_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
dh_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
dh_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
dh_gen.o: ../cryptlib.h dh_gen.c
dh_key.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
dh_key.o: ../../e_os.h ../../include/openssl/asn1.h
dh_key.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
dh_key.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
dh_key.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
dh_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
dh_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
dh_key.o: ../../include/openssl/engine.h ../../include/openssl/err.h
dh_key.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
dh_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
@ -123,10 +125,12 @@ dh_key.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
dh_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
dh_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
dh_key.o: ../cryptlib.h dh_key.c
dh_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
dh_lib.o: ../../e_os.h ../../include/openssl/asn1.h
dh_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
dh_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
dh_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
dh_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
dh_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
dh_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
dh_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
dh_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h

View file

@ -121,49 +121,54 @@ dsa_key.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
dsa_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
dsa_key.o: ../cryptlib.h dsa_key.c
dsa_lib.o: ../../e_os.h ../../include/openssl/asn1.h
dsa_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
dsa_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
dsa_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
dsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
dsa_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
dsa_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
dsa_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
dsa_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
dsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
dsa_lib.o: ../../include/openssl/ui.h ../cryptlib.h dsa_lib.c
dsa_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
dsa_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
dsa_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
dsa_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
dsa_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
dsa_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
dsa_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
dsa_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
dsa_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
dsa_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
dsa_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
dsa_lib.o: ../cryptlib.h dsa_lib.c
dsa_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
dsa_ossl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
dsa_ossl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
dsa_ossl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
dsa_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
dsa_ossl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
dsa_ossl.o: ../../include/openssl/opensslconf.h
dsa_ossl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
dsa_ossl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
dsa_ossl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
dsa_ossl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
dsa_ossl.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
dsa_ossl.o: ../../include/openssl/engine.h ../../include/openssl/err.h
dsa_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
dsa_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
dsa_ossl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
dsa_ossl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
dsa_ossl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
dsa_ossl.o: ../cryptlib.h dsa_ossl.c
dsa_sign.o: ../../e_os.h ../../include/openssl/asn1.h
dsa_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
dsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
dsa_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
dsa_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
dsa_sign.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
dsa_sign.o: ../../include/openssl/opensslconf.h
dsa_sign.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
dsa_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
dsa_sign.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
dsa_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
dsa_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
dsa_sign.o: ../../include/openssl/engine.h ../../include/openssl/err.h
dsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
dsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
dsa_sign.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
dsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
dsa_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
dsa_sign.o: ../cryptlib.h dsa_sign.c
dsa_vrf.o: ../../e_os.h ../../include/openssl/asn1.h
dsa_vrf.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
dsa_vrf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
dsa_vrf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
dsa_vrf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
dsa_vrf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
dsa_vrf.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
dsa_vrf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
dsa_vrf.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
dsa_vrf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
dsa_vrf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
dsa_vrf.o: ../cryptlib.h dsa_vrf.c
dsa_vrf.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
dsa_vrf.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
dsa_vrf.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
dsa_vrf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
dsa_vrf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
dsa_vrf.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
dsa_vrf.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
dsa_vrf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
dsa_vrf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
dsa_vrf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
dsa_vrf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
dsa_vrf.o: ../../include/openssl/ui.h ../cryptlib.h dsa_vrf.c

View file

@ -1,6 +1,6 @@
/* crypto/ec/ec_cvt.c */
/* ====================================================================
* Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions

View file

@ -1,6 +1,6 @@
/* crypto/ec/ec_err.c */
/* ====================================================================
* Copyright (c) 1999 The OpenSSL Project. All rights reserved.
* Copyright (c) 2001 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions

View file

@ -1,6 +1,6 @@
/* crypto/ec/ec_lib.c */
/* ====================================================================
* Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions

2
crypto/ecdsa/.cvsignore Normal file
View file

@ -0,0 +1,2 @@
lib
Makefile.save

174
crypto/ecdsa/Makefile.ssl Normal file
View file

@ -0,0 +1,174 @@
#
# crypto/ecdsa/Makefile
#
DIR= ecdsa
TOP= ../..
CC= cc
INCLUDES= -I.. -I$(TOP) -I../../include
CFLAG=-g -Wall
INSTALL_PREFIX=
OPENSSLDIR= /usr/local/ssl
INSTALLTOP=/usr/local/ssl
MAKE= make -f Makefile.ssl
MAKEDEPPROG= makedepend
MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
MAKEFILE= Makefile.ssl
AR= ar r
CFLAGS= $(INCLUDES) $(CFLAG)
GENERAL=Makefile
TEST=ecdsatest.c
APPS=
LIB=$(TOP)/libcrypto.a
LIBSRC= ecs_lib.c ecs_gen.c ecs_asn1.c ecs_ossl.c ecs_sign.c ecs_vrf.c \
ecs_key.c ecs_err.c
LIBOBJ= ecs_lib.o ecs_gen.o ecs_asn1.o ecs_ossl.o ecs_sign.o ecs_vrf.o \
ecs_key.o ecs_err.o
SRC= $(LIBSRC)
EXHEADER= ecdsa.h
HEADER= ecs_locl.h $(EXHEADER)
ALL= $(GENERAL) $(SRC) $(HEADER)
top:
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
all: lib
lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
links:
@$(TOP)/util/point.sh Makefile.ssl Makefile
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
@for i in $(EXHEADER) ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
done;
tags:
ctags $(SRC)
tests:
lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
depend:
$(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
dclean:
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
mv -f Makefile.new $(MAKEFILE)
clean:
rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
ecs_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
ecs_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ecs_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ecs_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
ecs_asn1.o: ../../include/openssl/ec.h ../../include/openssl/err.h
ecs_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ecs_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
ecs_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ecs_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
ecs_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h ecdsa.h ecs_asn1.c
ecs_asn1.o: ecs_locl.h
ecs_err.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
ecs_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ecs_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
ecs_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ecs_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
ecs_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
ecs_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
ecs_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
ecs_err.o: ecs_err.c
ecs_gen.o: ../../e_os.h ../../include/openssl/asn1.h
ecs_gen.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ecs_gen.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ecs_gen.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
ecs_gen.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ecs_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ecs_gen.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ecs_gen.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
ecs_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ecs_gen.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
ecs_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
ecs_gen.o: ../../include/openssl/symhacks.h ../cryptlib.h ecs_gen.c
ecs_key.o: ../../e_os.h ../../include/openssl/asn1.h
ecs_key.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ecs_key.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ecs_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
ecs_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ecs_key.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
ecs_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
ecs_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
ecs_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
ecs_key.o: ../cryptlib.h ecs_key.c
ecs_lib.o: ../../e_os.h ../../include/openssl/asn1.h
ecs_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ecs_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ecs_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ecs_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ecs_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ecs_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
ecs_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
ecs_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ecs_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
ecs_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
ecs_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
ecs_lib.o: ../cryptlib.h ecdsa.h ecs_lib.c ecs_locl.h
ecs_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
ecs_ossl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ecs_ossl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ecs_ossl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
ecs_ossl.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ecs_ossl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
ecs_ossl.o: ../../include/openssl/opensslconf.h
ecs_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ecs_ossl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
ecs_ossl.o: ../../include/openssl/symhacks.h ../cryptlib.h ecs_ossl.c
ecs_sign.o: ../../e_os.h ../../include/openssl/asn1.h
ecs_sign.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ecs_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ecs_sign.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ecs_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ecs_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ecs_sign.o: ../../include/openssl/engine.h ../../include/openssl/err.h
ecs_sign.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
ecs_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ecs_sign.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
ecs_sign.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
ecs_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
ecs_sign.o: ../cryptlib.h ecs_sign.c
ecs_vrf.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
ecs_vrf.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ecs_vrf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ecs_vrf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ecs_vrf.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ecs_vrf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
ecs_vrf.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
ecs_vrf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ecs_vrf.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
ecs_vrf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
ecs_vrf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
ecs_vrf.o: ecs_vrf.c

266
crypto/ecdsa/ecdsa.h Normal file
View file

@ -0,0 +1,266 @@
/* crypto/ecdsa/ecdsa.h */
/* ====================================================================
* Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* licensing@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#ifndef HEADER_ECDSA_H
#define HEADER_ECDSA_H
#ifdef OPENSSL_NO_ECDSA
#error ECDSA is disabled.
#endif
#ifndef OPENSSL_NO_BIO
#include <openssl/bio.h>
#endif
#include <openssl/bn.h>
#include <openssl/ec.h>
#include <openssl/crypto.h>
#include <openssl/ossl_typ.h>
#include <openssl/asn1.h>
#include <openssl/asn1t.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ecdsa_st ECDSA;
typedef struct ECDSA_SIG_st
{
BIGNUM *r;
BIGNUM *s;
} ECDSA_SIG;
typedef struct ecdsa_method
{
const char *name;
ECDSA_SIG *(*ecdsa_do_sign)(const unsigned char *dgst, int dgst_len, ECDSA *ecdsa);
int (*ecdsa_sign_setup)(ECDSA *ecdsa, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **r);
int (*ecdsa_do_verify)(const unsigned char *dgst, int dgst_len, ECDSA_SIG *sig, ECDSA *ecdsa);
int (*init)(ECDSA *ecdsa);
int (*finish)(ECDSA *ecdsa);
int flags;
char *app_data;
} ECDSA_METHOD;
#define ECDSA_FLAG_NAMED_CURVE 1
#define ECDSA_FLAG_IMPLICITLYCA 2
struct ecdsa_st
{
int version;
int write_params;
EC_GROUP *group;
EC_POINT *pub_key;
BIGNUM *priv_key;
BIGNUM *kinv; /* signing pre-calc */
BIGNUM *r; /* signing pre-calc */
unsigned char *seed; /* seed for curve generation */
unsigned int seed_len;
int parameter_flags;
int references;
int flags;
CRYPTO_EX_DATA ex_data;
const ECDSA_METHOD *meth;
struct engine_st *engine;
};
ECDSA_SIG *ECDSA_SIG_new(void);
void ECDSA_SIG_free(ECDSA_SIG *a);
int i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **pp);
ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **v, const unsigned char **pp, long length);
ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, const int dgst_len, ECDSA *ecdsa);
int ECDSA_do_verify(const unsigned char *dgst, const int dgst_len, ECDSA_SIG *sig, ECDSA* ecdsa);
int ECDSA_generate_key(ECDSA *ecdsa);
int ECDSA_check_key(ECDSA *ecdsa);
const ECDSA_METHOD *ECDSA_OpenSSL(void);
void ECDSA_set_default_method(const ECDSA_METHOD *);
const ECDSA_METHOD *ECDSA_get_default_openssl_method(void);
int ECDSA_set_method(ECDSA *, const ECDSA_METHOD *);
ECDSA *ECDSA_new();
ECDSA *ECDSA_new_method(ENGINE *engine);
int ECDSA_size(const ECDSA *);
int ECDSA_sign_setup(ECDSA *ecdsa, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp);
int ECDSA_sign(int type, const unsigned char *dgst, int dgst_len, unsigned char *sig,
unsigned int *siglen, ECDSA *ecdsa);
int ECDSA_verify(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sig,
const int sig_len, ECDSA *ecdsa);
int ECDSA_up_ref(ECDSA *ecdsa);
void ECDSA_free(ECDSA *a);
int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int ECDSA_set_ex_data(ECDSA *d, int idx, void *arg);
void *ECDSA_get_ex_data(ECDSA *d, int idx);
#ifndef OPENSSL_NO_BIO
int ECDSAParameters_print(BIO *bp, const ECDSA *x);
int ECDSA_print(BIO *bp, const ECDSA *x, int off);
#endif
#ifndef OPENSSL_NO_FP_API
int ECDSAParameters_print_fp(FILE *fp, const ECDSA *x);
int ECDSA_print_fp(FILE *fp, const ECDSA *x, int off);
#endif
void ECDSA_set_parameter_flags(ECDSA *, int);
int ECDSA_get_parameter_flags(const ECDSA*);
/* the basic de- and encode functions ( see ecs_asn1.c ) */
ECDSA *d2i_ECDSAParameters(ECDSA **a, const unsigned char **in, long len);
int i2d_ECDSAParameters(ECDSA *a, unsigned char **out);
ECDSA *d2i_ECDSAPrivateKey(ECDSA **a, const unsigned char **in, long len);
int i2d_ECDSAPrivateKey(ECDSA *a, unsigned char **out);
ECDSA *d2i_ECDSAPublicKey(ECDSA **a, const unsigned char **in, long len);
int i2d_ECDSAPublicKey(ECDSA *a, unsigned char **out);
#define ECDSAParameters_dup(x) (ECDSA *)ASN1_dup((int (*)())i2d_ECDSAParameters, \
(char *(*)())d2i_ECDSAParameters,(char *)(x))
#define d2i_ECDSAParameters_fp(fp,x) (ECDSA *)ASN1_d2i_fp((char *(*)())ECDSA_new, \
(char *(*)())d2i_ECDSAParameters,(fp),(unsigned char **)(x))
#define i2d_ECDSAParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECDSAParameters,(fp), \
(unsigned char *)(x))
#define d2i_ECDSAParameters_bio(bp,x) (ECDSA *)ASN1_d2i_bio((char *(*)())ECDSA_new, \
(char *(*)())d2i_ECDSAParameters,(bp),(unsigned char **)(x))
#define i2d_ECDSAParameters_bio(bp,x) ASN1_i2d_bio(i2d_ECDSAParameters,(bp), \
(unsigned char *)(x))
/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
* made after this point may be overwritten when the script is next run.
*/
/* Error codes for the ECDSA functions. */
/* Function codes. */
#define ECDSA_F_D2I_ECDSAPARAMETERS 100
#define ECDSA_F_D2I_ECDSAPRIVATEKEY 101
#define ECDSA_F_ECDSAPARAMETERS_PRINT 102
#define ECDSA_F_ECDSAPARAMETERS_PRINT_FP 103
#define ECDSA_F_ECDSA_DO_SIGN 104
#define ECDSA_F_ECDSA_DO_VERIFY 105
#define ECDSA_F_ECDSA_GENERATE_KEY 106
#define ECDSA_F_ECDSA_GET 107
#define ECDSA_F_ECDSA_GET_CURVE_NID 120
#define ECDSA_F_ECDSA_GET_ECDSA 121
#define ECDSA_F_ECDSA_GET_EC_PARAMETERS 122
#define ECDSA_F_ECDSA_GET_X9_62_CURVE 108
#define ECDSA_F_ECDSA_GET_X9_62_EC_PARAMETERS 109
#define ECDSA_F_ECDSA_GET_X9_62_FIELDID 110
#define ECDSA_F_ECDSA_NEW 111
#define ECDSA_F_ECDSA_PRINT 112
#define ECDSA_F_ECDSA_PRINT_FP 113
#define ECDSA_F_ECDSA_SET_GROUP_P 114
#define ECDSA_F_ECDSA_SET_PRIME_GROUP 123
#define ECDSA_F_ECDSA_SIGN_SETUP 115
#define ECDSA_F_I2D_ECDSAPARAMETERS 116
#define ECDSA_F_I2D_ECDSAPRIVATEKEY 117
#define ECDSA_F_I2D_ECDSAPUBLICKEY 118
#define ECDSA_F_SIG_CB 119
/* Reason codes. */
#define ECDSA_R_BAD_SIGNATURE 100
#define ECDSA_R_CAN_NOT_GET_GENERATOR 101
#define ECDSA_R_D2I_ECDSAPRIVATEKEY_MISSING_PRIVATE_KEY 102
#define ECDSA_R_D2I_ECDSA_PRIVATEKEY_FAILURE 103
#define ECDSA_R_D2I_EC_PARAMETERS_FAILURE 133
#define ECDSA_R_D2I_X9_62_EC_PARAMETERS_FAILURE 104
#define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 105
#define ECDSA_R_ECDSAPRIVATEKEY_NEW_FAILURE 106
#define ECDSA_R_ECDSA_F_ECDSA_NEW 107
#define ECDSA_R_ECDSA_GET_EC_PARAMETERS_FAILURE 134
#define ECDSA_R_ECDSA_GET_FAILURE 108
#define ECDSA_R_ECDSA_GET_X9_62_CURVE_FAILURE 109
#define ECDSA_R_ECDSA_GET_X9_62_EC_PARAMETERS_FAILURE 110
#define ECDSA_R_ECDSA_GET_X9_62_FIELDID_FAILURE 111
#define ECDSA_R_ECDSA_NEW_FAILURE 112
#define ECDSA_R_ECDSA_R_D2I_EC_PARAMETERS_FAILURE 135
#define ECDSA_R_ECDSA_R_D2I_X9_62_EC_PARAMETERS_FAILURE 113
#define ECDSA_R_ECPARAMETERS2ECDSA_FAILURE 138
#define ECDSA_R_EC_GROUP_NID2CURVE_FAILURE 136
#define ECDSA_R_ERR_EC_LIB 114
#define ECDSA_R_I2D_ECDSA_PRIVATEKEY 115
#define ECDSA_R_I2D_ECDSA_PUBLICKEY 116
#define ECDSA_R_MISSING_PARAMETERS 117
#define ECDSA_R_NOT_SUPPORTED 118
#define ECDSA_R_NO_CURVE_PARAMETER_A_SPECIFIED 119
#define ECDSA_R_NO_CURVE_PARAMETER_B_SPECIFIED 120
#define ECDSA_R_NO_CURVE_SPECIFIED 121
#define ECDSA_R_NO_FIELD_SPECIFIED 122
#define ECDSA_R_PRIME_MISSING 123
#define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED 124
#define ECDSA_R_SIGNATURE_MALLOC_FAILED 125
#define ECDSA_R_UNEXPECTED_ASN1_TYPE 126
#define ECDSA_R_UNEXPECTED_PARAMETER 127
#define ECDSA_R_UNEXPECTED_PARAMETER_LENGTH 128
#define ECDSA_R_UNEXPECTED_VERSION_NUMER 129
#define ECDSA_R_UNKNOWN_PARAMETERS_TYPE 137
#define ECDSA_R_WRONG_FIELD_IDENTIFIER 130
#define ECDSA_R_X9_62_CURVE_NEW_FAILURE 131
#define ECDSA_R_X9_62_EC_PARAMETERS_NEW_FAILURE 132
#ifdef __cplusplus
}
#endif
#endif

692
crypto/ecdsa/ecdsatest.c Normal file
View file

@ -0,0 +1,692 @@
/* crypto/ecdsa/ecdsatest.c */
/* ====================================================================
* Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* licensing@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <openssl/crypto.h>
#include <openssl/bio.h>
#include <openssl/evp.h>
#include <openssl/x509.h>
#include <openssl/ecdsa.h>
#include <openssl/engine.h>
#include <openssl/err.h>
#ifdef CLOCKS_PER_SEC
/* "To determine the time in seconds, the value returned
* by the clock function should be divided by the value
* of the macro CLOCKS_PER_SEC."
* -- ISO/IEC 9899 */
# define UNIT "s"
#else
/* "`CLOCKS_PER_SEC' undeclared (first use this function)"
* -- cc on NeXTstep/OpenStep */
# define UNIT "units"
# define CLOCKS_PER_SEC 1
#endif
#ifdef OPENSSL_NO_ECDSA
int main(int argc, char * argv[]) { puts("Elliptic curves are disabled."); return 0; }
#else
static BIO *bio_err=NULL;
static const char rnd_seed[] = "string to make the random number generator think it has entropy";
#define ECDSA_NIST_TESTS 10
ECDSA_SIG* signatures[ECDSA_NIST_TESTS];
unsigned char digest[ECDSA_NIST_TESTS][20];
void clear_ecdsa(ECDSA *ecdsa)
{
if (!ecdsa)
return;
if (ecdsa->group)
{
EC_GROUP_free(ecdsa->group);
ecdsa->group = NULL;
}
if (ecdsa->pub_key)
{
EC_POINT_free(ecdsa->pub_key);
ecdsa->pub_key = NULL;
}
if (ecdsa->priv_key)
{
BN_free(ecdsa->priv_key);
ecdsa->priv_key = NULL;
}
}
int set_p192_param(ECDSA *ecdsa)
{
BN_CTX *ctx=NULL;
int ret=0;
if (!ecdsa)
return 0;
if ((ctx = BN_CTX_new()) == NULL) goto err;
clear_ecdsa(ecdsa);
if ((ecdsa->group = EC_GROUP_get_group_by_name(EC_GROUP_X9_62_PRIME_192V1)) == NULL)
{
BIO_printf(bio_err,"ECDSA_SET_GROUP_P_192_V1() failed \n");
goto err;
}
if ((ecdsa->pub_key = EC_POINT_new(ecdsa->group)) == NULL)
{
BIO_printf(bio_err,"EC_POINT_new failed \n");
goto err;
}
if (!BN_dec2bn(&(ecdsa->priv_key), "651056770906015076056810763456358567190100156695615665659")) goto err;
if (!EC_POINT_mul(ecdsa->group,ecdsa->pub_key,ecdsa->priv_key,NULL,NULL,ctx))
{
BIO_printf(bio_err,"EC_POINT_mul() failed \n");
goto err;
}
ret = 1;
err : if (ctx) BN_CTX_free(ctx);
return ret;
}
int set_p239_param(ECDSA *ecdsa)
{
BN_CTX *ctx=NULL;
int ret=0;
if (!ecdsa)
return 0;
if ((ctx = BN_CTX_new()) == NULL) goto err;
clear_ecdsa(ecdsa);
if ((ecdsa->group = EC_GROUP_get_group_by_name(EC_GROUP_X9_62_PRIME_239V1)) == NULL)
{
BIO_printf(bio_err,"ECDSA_SET_GROUP_P_239_V1() failed \n");
goto err;
}
if ((ecdsa->pub_key = EC_POINT_new(ecdsa->group)) == NULL)
{
BIO_printf(bio_err,"EC_POINT_new failed \n");
goto err;
}
if (!BN_dec2bn(&(ecdsa->priv_key), "876300101507107567501066130761671078357010671067781776716671676178726717")) goto err;
if (!EC_POINT_mul(ecdsa->group,ecdsa->pub_key,ecdsa->priv_key,NULL,NULL,ctx))
{
BIO_printf(bio_err,"EC_POINT_mul() failed \n");
goto err;
}
ret = 1;
err : if (ctx) BN_CTX_free(ctx);
return ret;
}
int test_sig_vrf(ECDSA *ecdsa, const unsigned char* dgst)
{
int ret=0,type=0;
unsigned char *buffer=NULL;
unsigned int buf_len;
clock_t time;
if (!ecdsa || !ecdsa->group || !ecdsa->pub_key || !ecdsa->priv_key)
return 0;
if ((buf_len = ECDSA_size(ecdsa)) == 0)
{
BIO_printf(bio_err, "ECDSA_size() == 0 \n");
goto err;
}
if ((buffer = OPENSSL_malloc(buf_len)) == NULL)
goto err;
time = clock();
if (!ECDSA_sign(type, dgst , 20, buffer, &buf_len, ecdsa))
{
BIO_printf(bio_err, "ECDSA_sign() FAILED \n");
goto err;
}
time = clock() - time;
BIO_printf(bio_err, " [ ECDSA_sign() %.2f"UNIT, (double)time/(CLOCKS_PER_SEC));
time = clock();
ret = ECDSA_verify(type, dgst, 20, buffer, buf_len, ecdsa);
if (ret != 1)
{
BIO_printf(bio_err, "ECDSA_verify() FAILED \n");
goto err;
}
time = clock() - time;
BIO_printf(bio_err, " and ECDSA_verify() %.2f"UNIT" ] ", (double)time/(CLOCKS_PER_SEC));
err: OPENSSL_free(buffer);
return(ret == 1);
}
int test_x962_sig_vrf(ECDSA *ecdsa, const unsigned char *dgst,
const char *k_in, const char *r_in, const char *s_in)
{
int ret=0;
ECDSA_SIG *sig=NULL;
EC_POINT *point=NULL;
BIGNUM *r=NULL,*s=NULL,*k=NULL,*x=NULL,*y=NULL,*m=NULL,*ord=NULL;
BN_CTX *ctx=NULL;
char *tmp_char=NULL;
if (!ecdsa || !ecdsa->group || !ecdsa->pub_key || !ecdsa->priv_key)
return 0;
if ((point = EC_POINT_new(ecdsa->group)) == NULL) goto err;
if ((r = BN_new()) == NULL || (s = BN_new()) == NULL || (k = BN_new()) == NULL ||
(x = BN_new()) == NULL || (y = BN_new()) == NULL || (m = BN_new()) == NULL ||
(ord = BN_new()) == NULL) goto err;
if ((ctx = BN_CTX_new()) == NULL) goto err;
if (!BN_bin2bn(dgst, 20, m)) goto err;
if (!BN_dec2bn(&k, k_in)) goto err;
if (!EC_POINT_mul(ecdsa->group, point, k, NULL, NULL, ctx)) goto err;
if (!EC_POINT_get_affine_coordinates_GFp(ecdsa->group, point, x, y, ctx)) goto err;
if (!EC_GROUP_get_order(ecdsa->group, ord, ctx)) goto err;
if ((ecdsa->r = BN_dup(x)) == NULL) goto err;
if ((ecdsa->kinv = BN_mod_inverse(NULL, k, ord, ctx)) == NULL) goto err;
if ((sig = ECDSA_do_sign(dgst, 20, ecdsa)) == NULL)
{
BIO_printf(bio_err,"ECDSA_do_sign() failed \n");
goto err;
}
if (!BN_dec2bn(&r, r_in)) goto err;
if (!BN_dec2bn(&s, s_in)) goto err;
if (BN_cmp(sig->r,r) != 0 || BN_cmp(sig->s,s) != 0)
{
tmp_char = OPENSSL_malloc(128);
if (tmp_char == NULL) goto err;
tmp_char = BN_bn2dec(sig->r);
BIO_printf(bio_err,"unexpected signature \n");
BIO_printf(bio_err,"sig->r = %s\n",tmp_char);
tmp_char = BN_bn2dec(sig->s);
BIO_printf(bio_err,"sig->s = %s\n",tmp_char);
goto err;
}
ret = ECDSA_do_verify(dgst, 20, sig, ecdsa);
if (ret != 1)
{
BIO_printf(bio_err,"ECDSA_do_verify : signature verification failed \n");
goto err;
}
ret = 1;
err : if (r) BN_free(r);
if (s) BN_free(s);
if (k) BN_free(k);
if (x) BN_free(x);
if (y) BN_free(y);
if (m) BN_free(m);
if (ord) BN_free(ord);
if (sig) ECDSA_SIG_free(sig);
if (ctx) BN_CTX_free(ctx);
if (point) EC_POINT_free(point);
if (tmp_char) OPENSSL_free(tmp_char);
return(ret == 1);
}
int ecdsa_cmp(const ECDSA *a, const ECDSA *b)
{
int ret=1;
BN_CTX *ctx=NULL;
BIGNUM *tmp_a1=NULL, *tmp_a2=NULL, *tmp_a3=NULL;
BIGNUM *tmp_b1=NULL, *tmp_b2=NULL, *tmp_b3=NULL;
if ((ctx = BN_CTX_new()) == NULL) return 1;
if ((tmp_a1 = BN_new()) == NULL || (tmp_a2 = BN_new()) == NULL || (tmp_a3 = BN_new()) == NULL) goto err;
if ((tmp_b1 = BN_new()) == NULL || (tmp_b2 = BN_new()) == NULL || (tmp_b3 = BN_new()) == NULL) goto err;
if (a->pub_key && b->pub_key)
if (EC_POINT_cmp(a->group, a->pub_key, b->pub_key, ctx) != 0) goto err;
if (a->priv_key && b->priv_key)
if (BN_cmp(a->priv_key, b->priv_key) != 0) goto err;
if (!EC_GROUP_get_curve_GFp(a->group, tmp_a1, tmp_a2, tmp_a3, ctx)) goto err;
if (!EC_GROUP_get_curve_GFp(a->group, tmp_b1, tmp_b2, tmp_b3, ctx)) goto err;
if (BN_cmp(tmp_a1, tmp_b1) != 0) goto err;
if (BN_cmp(tmp_a2, tmp_b2) != 0) goto err;
if (BN_cmp(tmp_a3, tmp_b3) != 0) goto err;
ret = 0;
err: if (tmp_a1) BN_free(tmp_a1);
if (tmp_a2) BN_free(tmp_a2);
if (tmp_a3) BN_free(tmp_a3);
if (tmp_b1) BN_free(tmp_b1);
if (tmp_b2) BN_free(tmp_b2);
if (tmp_b3) BN_free(tmp_b3);
if (ctx) BN_CTX_free(ctx);
return(ret);
}
int main(void)
{
ECDSA *ecdsa=NULL, *ret_ecdsa=NULL;
BIGNUM *d=NULL;
X509_PUBKEY *x509_pubkey=NULL;
PKCS8_PRIV_KEY_INFO *pkcs8=NULL;
EVP_PKEY *pkey=NULL, *ret_pkey=NULL;
int dgst_len=0;
unsigned char *dgst=NULL;
int ret = 0, i=0;
clock_t time;
unsigned char *buffer=NULL;
unsigned char *pp;
long buf_len=0;
double time_d;
EVP_MD_CTX *md_ctx=NULL;
RAND_seed(rnd_seed, sizeof(rnd_seed));
if (bio_err == NULL)
bio_err=BIO_new_fp(stderr, BIO_NOCLOSE);
CRYPTO_malloc_debug_init();
CRYPTO_dbg_set_options(V_CRYPTO_MDEBUG_ALL);
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
ERR_load_crypto_strings();
if ((ecdsa = ECDSA_new()) == NULL) goto err;
set_p192_param(ecdsa);
ECDSA_print(bio_err, ecdsa, 0);
/* en- decode tests */
/* i2d_ - d2i_ECDSAParameters() */
BIO_printf(bio_err, "\nTesting i2d_ - d2i_ECDSAParameters \n");
buf_len = i2d_ECDSAParameters(ecdsa, NULL);
if (!buf_len || (buffer = OPENSSL_malloc(buf_len)) == NULL) goto err;
pp = buffer;
if (!i2d_ECDSAParameters(ecdsa, &pp)) goto err;
pp = buffer;
if ((ret_ecdsa = d2i_ECDSAParameters(&ret_ecdsa, (const unsigned char **)&pp,
buf_len)) == NULL) goto err;
ECDSAParameters_print(bio_err, ret_ecdsa);
if (ecdsa_cmp(ecdsa, ret_ecdsa)) goto err;
OPENSSL_free(buffer);
buffer = NULL;
ECDSA_free(ret_ecdsa);
ret_ecdsa = NULL;
/* i2d_ - d2i_ECDSAPrivateKey() */
BIO_printf(bio_err, "\nTesting i2d_ - d2i_ECDSAPrivateKey \n");
buf_len = i2d_ECDSAPrivateKey(ecdsa, NULL);
if (!buf_len || (buffer = OPENSSL_malloc(buf_len)) == NULL) goto err;
pp = buffer;
if (!i2d_ECDSAPrivateKey(ecdsa, &pp)) goto err;
pp = buffer;
if ((ret_ecdsa = d2i_ECDSAPrivateKey(&ret_ecdsa, (const unsigned char**)&pp,
buf_len)) == NULL) goto err;
ECDSA_print(bio_err, ret_ecdsa, 0);
if (ecdsa_cmp(ecdsa, ret_ecdsa)) goto err;
ECDSA_free(ret_ecdsa);
ret_ecdsa = NULL;
OPENSSL_free(buffer);
buffer = NULL;
/* i2d_ - d2i_ECDSAPublicKey() */
BIO_printf(bio_err, "\nTesting i2d_ - d2i_ECDSAPublicKey \n");
buf_len = i2d_ECDSAPublicKey(ecdsa, NULL);
if (!buf_len || (buffer = OPENSSL_malloc(buf_len)) == NULL) goto err;
pp = buffer;
if (!i2d_ECDSAPublicKey(ecdsa, &pp)) goto err;
pp = buffer;
if ((ret_ecdsa = d2i_ECDSAPublicKey(&ret_ecdsa , (const unsigned char**)&pp,
buf_len)) == NULL) goto err;
ECDSA_print(bio_err, ret_ecdsa, 0);
if (ecdsa_cmp(ecdsa, ret_ecdsa)) goto err;
OPENSSL_free(buffer);
buffer = NULL;
ECDSA_free(ret_ecdsa);
ret_ecdsa = NULL;
/* X509_PUBKEY_set() & X509_PUBKEY_get() */
BIO_printf(bio_err, "\nTesting X509_PUBKEY_{get,set} : ");
if ((pkey = EVP_PKEY_new()) == NULL) goto err;
EVP_PKEY_assign_ECDSA(pkey, ecdsa);
if ((x509_pubkey = X509_PUBKEY_new()) == NULL) goto err;
if (!X509_PUBKEY_set(&x509_pubkey, pkey)) goto err;
if ((ret_pkey = X509_PUBKEY_get(x509_pubkey)) == NULL) goto err;
ret_ecdsa = EVP_PKEY_get1_ECDSA(ret_pkey);
EVP_PKEY_free(ret_pkey);
ret_pkey = NULL;
if (ecdsa_cmp(ecdsa, ret_ecdsa))
{
BIO_printf(bio_err, "TEST FAILED \n");
goto err;
}
else BIO_printf(bio_err, "TEST OK \n");
X509_PUBKEY_free(x509_pubkey);
x509_pubkey = NULL;
ECDSA_free(ret_ecdsa);
ret_ecdsa = NULL;
/* Testing PKCS8_PRIV_KEY_INFO <-> EVP_PKEY */
BIO_printf(bio_err, "Testing PKCS8_PRIV_KEY_INFO <-> EVP_PKEY : \n");
BIO_printf(bio_err, "PKCS8_OK : ");
if ((pkcs8 = EVP_PKEY2PKCS8_broken(pkey, PKCS8_OK)) == NULL) goto err;
if ((ret_pkey = EVP_PKCS82PKEY(pkcs8)) == NULL) goto err;
ret_ecdsa = EVP_PKEY_get1_ECDSA(ret_pkey);
if (ecdsa_cmp(ecdsa, ret_ecdsa))
{
BIO_printf(bio_err, "TEST FAILED \n");
goto err;
}
else BIO_printf(bio_err, "TEST OK \n");
EVP_PKEY_free(ret_pkey);
ret_pkey = NULL;
ECDSA_free(ret_ecdsa);
ret_ecdsa = NULL;
PKCS8_PRIV_KEY_INFO_free(pkcs8);
BIO_printf(bio_err, "PKCS8_NO_OCTET : ");
if ((pkcs8 = EVP_PKEY2PKCS8_broken(pkey, PKCS8_NO_OCTET)) == NULL) goto err;
if ((ret_pkey = EVP_PKCS82PKEY(pkcs8)) == NULL) goto err;
ret_ecdsa = EVP_PKEY_get1_ECDSA(ret_pkey);
if (ecdsa_cmp(ecdsa, ret_ecdsa))
{
BIO_printf(bio_err, "TEST FAILED \n");
goto err;
}
else BIO_printf(bio_err, "TEST OK \n");
EVP_PKEY_free(ret_pkey);
ret_pkey = NULL;
ECDSA_free(ret_ecdsa);
ret_ecdsa = NULL;
PKCS8_PRIV_KEY_INFO_free(pkcs8);
BIO_printf(bio_err, "PKCS8_EMBEDDED_PARAM : ");
if ((pkcs8 = EVP_PKEY2PKCS8_broken(pkey, PKCS8_EMBEDDED_PARAM)) == NULL) goto err;
if ((ret_pkey = EVP_PKCS82PKEY(pkcs8)) == NULL) goto err;
ret_ecdsa = EVP_PKEY_get1_ECDSA(ret_pkey);
if (ecdsa_cmp(ecdsa, ret_ecdsa))
{
BIO_printf(bio_err, "TEST FAILED \n");
goto err;
}
else BIO_printf(bio_err, "TEST OK \n");
EVP_PKEY_free(ret_pkey);
ret_pkey = NULL;
ECDSA_free(ret_ecdsa);
ret_ecdsa = NULL;
PKCS8_PRIV_KEY_INFO_free(pkcs8);
BIO_printf(bio_err, "PKCS8_NS_DB : ");
if ((pkcs8 = EVP_PKEY2PKCS8_broken(pkey, PKCS8_NS_DB)) == NULL) goto err;
if ((ret_pkey = EVP_PKCS82PKEY(pkcs8)) == NULL) goto err;
ret_ecdsa = EVP_PKEY_get1_ECDSA(ret_pkey);
if (ecdsa_cmp(ecdsa, ret_ecdsa))
{
BIO_printf(bio_err, "TEST FAILED \n");
goto err;
}
else BIO_printf(bio_err, "TEST OK \n");
EVP_PKEY_free(ret_pkey);
ret_pkey = NULL;
ECDSA_free(ret_ecdsa);
ret_ecdsa = NULL;
EVP_PKEY_free(pkey);
pkey = NULL;
ecdsa = NULL;
PKCS8_PRIV_KEY_INFO_free(pkcs8);
pkcs8 = NULL;
/* sign and verify tests */
if ((d = BN_new()) == NULL) goto err;
if (!BN_dec2bn(&d, "968236873715988614170569073515315707566766479517")) goto err;
dgst_len = BN_num_bytes(d);
if ((dgst = OPENSSL_malloc(dgst_len)) == NULL) goto err;
if (!BN_bn2bin(d, dgst)) goto err;
BIO_printf(bio_err, "Performing tests based on examples H.3.1 and H.3.2 of X9.62 \n");
BIO_printf(bio_err, "PRIME_192_V1 : ");
if ((ecdsa = ECDSA_new()) == NULL) goto err;
if (!set_p192_param(ecdsa)) goto err;
if (!test_x962_sig_vrf(ecdsa, dgst, "6140507067065001063065065565667405560006161556565665656654",
"3342403536405981729393488334694600415596881826869351677613",
"5735822328888155254683894997897571951568553642892029982342"))
goto err;
else
BIO_printf(bio_err, "OK\n");
BIO_printf(bio_err, "PRIME_239_V1 : ");
if (!set_p239_param(ecdsa))
goto err;
if (!test_x962_sig_vrf(ecdsa, dgst, "700000017569056646655505781757157107570501575775705779575555657156756655",
"308636143175167811492622547300668018854959378758531778147462058306432176",
"323813553209797357708078776831250505931891051755007842781978505179448783"))
goto err;
else
BIO_printf(bio_err, "OK\n");
ECDSA_free(ecdsa);
ecdsa = NULL;
OPENSSL_free(dgst);
dgst = NULL;
/* NIST PRIME CURVES TESTS */
/* EC_GROUP_NIST_PRIME_192 */
for (i=0; i<ECDSA_NIST_TESTS; i++)
if (!RAND_bytes(digest[i], 20)) goto err;
BIO_printf(bio_err, "\nTesting sign & verify with NIST Prime-Curve P-192 : \n");
ECDSA_free(ecdsa);
if ((ecdsa = ECDSA_new()) == NULL) goto err;
if ((ecdsa->group = EC_GROUP_get_group_by_name(EC_GROUP_NIST_PRIME_192)) == NULL) goto err;
if (!ECDSA_generate_key(ecdsa)) goto err;
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if ((signatures[i] = ECDSA_do_sign(digest[i], 20, ecdsa)) == NULL) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_sign() in %.2f"UNIT" => average time for ECDSA_do_sign() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d / ECDSA_NIST_TESTS);
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if (!ECDSA_do_verify(digest[i], 20, signatures[i], ecdsa)) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_verify() in %.2f"UNIT" => average time for ECDSA_do_verify() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d/ECDSA_NIST_TESTS);
for (i=0; i<ECDSA_NIST_TESTS; i++)
{
ECDSA_SIG_free(signatures[i]);
signatures[i] = NULL;
}
/* EC_GROUP_NIST_PRIME_224 */
BIO_printf(bio_err, "Testing sign & verify with NIST Prime-Curve P-224 : \n");
ECDSA_free(ecdsa);
if ((ecdsa = ECDSA_new()) == NULL) goto err;
if ((ecdsa->group = EC_GROUP_get_group_by_name(EC_GROUP_NIST_PRIME_224)) == NULL) goto err;
if (!ECDSA_generate_key(ecdsa)) goto err;
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if ((signatures[i] = ECDSA_do_sign(digest[i], 20, ecdsa)) == NULL) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_sign() in %.2f"UNIT" => average time for ECDSA_do_sign() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d / ECDSA_NIST_TESTS);
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if (!ECDSA_do_verify(digest[i], 20, signatures[i], ecdsa)) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_verify() in %.2f"UNIT" => average time for ECDSA_do_verify() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d/ECDSA_NIST_TESTS);
for (i=0; i<ECDSA_NIST_TESTS; i++)
{
ECDSA_SIG_free(signatures[i]);
signatures[i] = NULL;
}
/* EC_GROUP_NIST_PRIME_256 */
BIO_printf(bio_err, "Testing sign & verify with NIST Prime-Curve P-256 : \n");
ECDSA_free(ecdsa);
if ((ecdsa = ECDSA_new()) == NULL) goto err;
if ((ecdsa->group = EC_GROUP_get_group_by_name(EC_GROUP_NIST_PRIME_256)) == NULL) goto err;
if (!ECDSA_generate_key(ecdsa)) goto err;
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if ((signatures[i] = ECDSA_do_sign(digest[i], 20, ecdsa)) == NULL) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_sign() in %.2f"UNIT" => average time for ECDSA_do_sign() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d / ECDSA_NIST_TESTS);
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if (!ECDSA_do_verify(digest[i], 20, signatures[i], ecdsa)) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_verify() in %.2f"UNIT" => average time for ECDSA_do_verify() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d/ECDSA_NIST_TESTS);
for (i=0; i<ECDSA_NIST_TESTS; i++)
{
ECDSA_SIG_free(signatures[i]);
signatures[i] = NULL;
}
/* EC_GROUP_NIST_PRIME_384 */
BIO_printf(bio_err, "Testing sign & verify with NIST Prime-Curve P-384 : \n");
ECDSA_free(ecdsa);
if ((ecdsa = ECDSA_new()) == NULL) goto err;
if ((ecdsa->group = EC_GROUP_get_group_by_name(EC_GROUP_NIST_PRIME_384)) == NULL) goto err;
if (!ECDSA_generate_key(ecdsa)) goto err;
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if ((signatures[i] = ECDSA_do_sign(digest[i], 20, ecdsa)) == NULL) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_sign() in %.2f"UNIT" => average time for ECDSA_do_sign() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d / ECDSA_NIST_TESTS);
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if (!ECDSA_do_verify(digest[i], 20, signatures[i], ecdsa)) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_verify() in %.2f"UNIT" => average time for ECDSA_do_verify() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d/ECDSA_NIST_TESTS);
for (i=0; i<ECDSA_NIST_TESTS; i++)
{
ECDSA_SIG_free(signatures[i]);
signatures[i] = NULL;
}
/* EC_GROUP_NIST_PRIME_521 */
BIO_printf(bio_err, "Testing sign & verify with NIST Prime-Curve P-521 : \n");
ECDSA_free(ecdsa);
if ((ecdsa = ECDSA_new()) == NULL) goto err;
if ((ecdsa->group = EC_GROUP_get_group_by_name(EC_GROUP_NIST_PRIME_521)) == NULL) goto err;
if (!ECDSA_generate_key(ecdsa)) goto err;
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if ((signatures[i] = ECDSA_do_sign(digest[i], 20, ecdsa)) == NULL) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_sign() in %.2f"UNIT" => average time for ECDSA_do_sign() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d / ECDSA_NIST_TESTS);
time = clock();
for (i=0; i<ECDSA_NIST_TESTS; i++)
if (!ECDSA_do_verify(digest[i], 20, signatures[i], ecdsa)) goto err;
time = clock() - time;
time_d = (double)time / CLOCKS_PER_SEC;
BIO_printf(bio_err, "%d x ECDSA_do_verify() in %.2f"UNIT" => average time for ECDSA_do_verify() %.4f"UNIT"\n"
, ECDSA_NIST_TESTS, time_d, time_d/ECDSA_NIST_TESTS);
ECDSA_free(ecdsa);
ecdsa = NULL;
for (i=0; i<ECDSA_NIST_TESTS; i++)
{
ECDSA_SIG_free(signatures[i]);
signatures[i] = NULL;
}
OPENSSL_free(buffer);
buffer = NULL;
EVP_PKEY_free(pkey);
pkey = NULL;
ecdsa = NULL;
ret = 1;
err: if (!ret)
BIO_printf(bio_err, "TEST FAILED \n");
else
BIO_printf(bio_err, "TEST PASSED \n");
if (!ret)
ERR_print_errors(bio_err);
if (ecdsa) ECDSA_free(ecdsa);
if (d) BN_free(d);
if (dgst) OPENSSL_free(dgst);
if (md_ctx) EVP_MD_CTX_destroy(md_ctx);
CRYPTO_cleanup_all_ex_data();
ERR_remove_state(0);
ERR_free_strings();
CRYPTO_mem_leaks(bio_err);
if (bio_err != NULL)
{
BIO_free(bio_err);
bio_err = NULL;
}
return(0);
}
#endif

723
crypto/ecdsa/ecs_asn1.c Normal file
View file

@ -0,0 +1,723 @@
/* crypto/ecdsa/ecs_asn1.c */
/* ====================================================================
* Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* licensing@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#include "cryptlib.h"
#include "ecs_locl.h"
#include <openssl/asn1.h>
#include <openssl/asn1t.h>
#include <openssl/objects.h>
static point_conversion_form_t POINT_CONVERSION_FORM = POINT_CONVERSION_COMPRESSED;
/* Override the default new methods */
static int sig_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
{
if(operation == ASN1_OP_NEW_PRE) {
ECDSA_SIG *sig;
sig = OPENSSL_malloc(sizeof(ECDSA_SIG));
if (sig == NULL)
{
ECDSAerr(ECDSA_F_SIG_CB, ERR_R_MALLOC_FAILURE);
return 0;
}
sig->r = NULL;
sig->s = NULL;
*pval = (ASN1_VALUE *)sig;
return 2;
}
return 1;
}
ASN1_SEQUENCE_cb(ECDSA_SIG, sig_cb) = {
ASN1_SIMPLE(ECDSA_SIG, r, CBIGNUM),
ASN1_SIMPLE(ECDSA_SIG, s, CBIGNUM)
} ASN1_SEQUENCE_END_cb(ECDSA_SIG, ECDSA_SIG)
IMPLEMENT_ASN1_FUNCTIONS_const(ECDSA_SIG)
ASN1_SEQUENCE(X9_62_FIELDID) = {
ASN1_SIMPLE(X9_62_FIELDID, fieldType, ASN1_OBJECT),
ASN1_SIMPLE(X9_62_FIELDID, parameters, ASN1_ANY)
} ASN1_SEQUENCE_END(X9_62_FIELDID)
IMPLEMENT_ASN1_FUNCTIONS_const(X9_62_FIELDID)
ASN1_SEQUENCE(X9_62_CURVE) = {
ASN1_SIMPLE(X9_62_CURVE, a, ASN1_OCTET_STRING),
ASN1_SIMPLE(X9_62_CURVE, b, ASN1_OCTET_STRING),
ASN1_OPT(X9_62_CURVE, seed, ASN1_BIT_STRING)
} ASN1_SEQUENCE_END(X9_62_CURVE)
IMPLEMENT_ASN1_FUNCTIONS_const(X9_62_CURVE)
ASN1_SEQUENCE(X9_62_EC_PARAMETERS) = {
ASN1_OPT(X9_62_EC_PARAMETERS, version, ASN1_INTEGER),
ASN1_SIMPLE(X9_62_EC_PARAMETERS, fieldID, X9_62_FIELDID),
ASN1_SIMPLE(X9_62_EC_PARAMETERS, curve, X9_62_CURVE),
ASN1_SIMPLE(X9_62_EC_PARAMETERS, base, ASN1_OCTET_STRING),
ASN1_SIMPLE(X9_62_EC_PARAMETERS, order, ASN1_INTEGER),
ASN1_SIMPLE(X9_62_EC_PARAMETERS, cofactor, ASN1_INTEGER)
} ASN1_SEQUENCE_END(X9_62_EC_PARAMETERS)
IMPLEMENT_ASN1_FUNCTIONS_const(X9_62_EC_PARAMETERS)
ASN1_CHOICE(EC_PARAMETERS) = {
ASN1_SIMPLE(EC_PARAMETERS, value.named_curve, ASN1_OBJECT),
ASN1_SIMPLE(EC_PARAMETERS, value.parameters, X9_62_EC_PARAMETERS),
ASN1_SIMPLE(EC_PARAMETERS, value.implicitlyCA, ASN1_NULL)
} ASN1_CHOICE_END(EC_PARAMETERS)
IMPLEMENT_ASN1_FUNCTIONS_const(EC_PARAMETERS);
ASN1_SEQUENCE(ECDSAPrivateKey) = {
ASN1_SIMPLE(ECDSAPrivateKey, version, LONG),
ASN1_SIMPLE(ECDSAPrivateKey, parameters, EC_PARAMETERS),
ASN1_SIMPLE(ECDSAPrivateKey, pub_key, ASN1_OCTET_STRING),
ASN1_SIMPLE(ECDSAPrivateKey, priv_key, BIGNUM)
} ASN1_SEQUENCE_END(ECDSAPrivateKey)
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(ECDSAPrivateKey, ECDSAPrivateKey, ECDSAPrivateKey)
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ECDSAPrivateKey, ECDSAPrivateKey, ecdsaPrivateKey)
ASN1_SEQUENCE(ecdsa_pub_internal) = {
ASN1_SIMPLE(ECDSAPrivateKey, pub_key, ASN1_OCTET_STRING),
ASN1_SIMPLE(ECDSAPrivateKey, parameters, EC_PARAMETERS),
} ASN1_SEQUENCE_END_name(ECDSAPrivateKey, ecdsa_pub_internal)
ASN1_CHOICE(ECDSAPublicKey) = {
ASN1_SIMPLE(ECDSAPrivateKey, pub_key, ASN1_OCTET_STRING),
ASN1_EX_COMBINE(0, 0, ecdsa_pub_internal)
} ASN1_CHOICE_END_selector(ECDSAPrivateKey, ECDSAPublicKey, write_params)
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ECDSAPrivateKey, ECDSAPublicKey, ecdsaPublicKey)
X9_62_FIELDID *ECDSA_get_X9_62_FIELDID(const ECDSA *ecdsa, X9_62_FIELDID *field)
{
/* TODO : characteristic two */
int ok=0, reason=ERR_R_ASN1_LIB;
X9_62_FIELDID *ret=NULL;
BIGNUM *tmp=NULL;
if (!ecdsa || !ecdsa->group)
OPENSSL_ECDSA_ABORT(ECDSA_R_MISSING_PARAMETERS)
if (field == NULL)
{
if ((ret = X9_62_FIELDID_new()) == NULL) return NULL;
}
else
{
ret = field;
if (ret->fieldType != NULL) ASN1_OBJECT_free(ret->fieldType);
if (ret->parameters != NULL) ASN1_TYPE_free(ret->parameters);
}
if ((tmp = BN_new()) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_BN_LIB)
if ((ret->fieldType = OBJ_nid2obj(NID_X9_62_prime_field)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_OBJ_LIB)
if ((ret->parameters = ASN1_TYPE_new()) == NULL) goto err;
ret->parameters->type = V_ASN1_INTEGER;
if (!EC_GROUP_get_curve_GFp(ecdsa->group, tmp, NULL, NULL, NULL))
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
if ((ret->parameters->value.integer = BN_to_ASN1_INTEGER(tmp, NULL)) == NULL) goto err;
ok = 1;
err : if (!ok)
{
if (ret && !field) X9_62_FIELDID_free(ret);
ret = NULL;
ECDSAerr(ECDSA_F_ECDSA_GET_X9_62_FIELDID, reason);
}
if (tmp) BN_free(tmp);
return(ret);
}
X9_62_CURVE *ECDSA_get_X9_62_CURVE(const ECDSA *ecdsa, X9_62_CURVE *curve)
{
int ok=0, reason=ERR_R_BN_LIB, len1=0, len2=0;
X9_62_CURVE *ret=NULL;
BIGNUM *tmp1=NULL, *tmp2=NULL;
unsigned char *buffer=NULL;
if (!ecdsa || !ecdsa->group)
OPENSSL_ECDSA_ABORT(ECDSA_R_MISSING_PARAMETERS)
if ((tmp1 = BN_new()) == NULL || (tmp2 = BN_new()) == NULL) goto err;
if (curve == NULL)
{
if ((ret = X9_62_CURVE_new()) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_X9_62_CURVE_NEW_FAILURE)
}
else
{
ret = curve;
if (ret->a) ASN1_OCTET_STRING_free(ret->a);
if (ret->b) ASN1_OCTET_STRING_free(ret->b);
if (ret->seed) ASN1_BIT_STRING_free(ret->seed);
}
if (!EC_GROUP_get_curve_GFp(ecdsa->group, NULL, tmp1, tmp2, NULL))
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
if ((len1 = BN_num_bytes(tmp1)) == 0)
OPENSSL_ECDSA_ABORT(ECDSA_R_UNEXPECTED_PARAMETER_LENGTH)
if ((buffer = OPENSSL_malloc(len1)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
if ((len1 = BN_bn2bin(tmp1, buffer)) == 0) goto err;
if ((ret->a = M_ASN1_OCTET_STRING_new()) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if (!M_ASN1_OCTET_STRING_set(ret->a, buffer, len1))
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if ((len2 = BN_num_bytes(tmp2)) == 0)
OPENSSL_ECDSA_ABORT(ECDSA_R_UNEXPECTED_PARAMETER_LENGTH)
if (len1 < len2)
{
OPENSSL_free(buffer);
if ((buffer = OPENSSL_malloc(len2)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
}
if ((len2 = BN_bn2bin(tmp2, buffer)) == 0) goto err;
if ((ret->b = M_ASN1_OCTET_STRING_new()) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if (!M_ASN1_OCTET_STRING_set(ret->b, buffer, len2))
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if (ecdsa->seed)
{
if ((ret->seed = ASN1_BIT_STRING_new()) == NULL) goto err;
if (!ASN1_BIT_STRING_set(ret->seed, ecdsa->seed, (int)ecdsa->seed_len))
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
}
else
ret->seed = NULL;
ok = 1;
err : if (!ok)
{
if (ret && !curve) X9_62_CURVE_free(ret);
ret = NULL;
ECDSAerr(ECDSA_F_ECDSA_GET_X9_62_CURVE, reason);
}
if (buffer) OPENSSL_free(buffer);
if (tmp1) BN_free(tmp1);
if (tmp2) BN_free(tmp2);
return(ret);
}
X9_62_EC_PARAMETERS *ECDSA_get_X9_62_EC_PARAMETERS(const ECDSA *ecdsa, X9_62_EC_PARAMETERS *param)
{
int ok=0, reason=ERR_R_ASN1_LIB;
size_t len=0;
X9_62_EC_PARAMETERS *ret=NULL;
BIGNUM *tmp=NULL;
unsigned char *buffer=NULL;
EC_POINT *point=NULL;
if (!ecdsa || !ecdsa->group)
OPENSSL_ECDSA_ABORT(ECDSA_R_MISSING_PARAMETERS)
if ((tmp = BN_new()) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_BN_LIB)
if (param == NULL)
{
if ((ret = X9_62_EC_PARAMETERS_new()) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_X9_62_EC_PARAMETERS_NEW_FAILURE)
}
else
ret = param;
if (ecdsa->version == 1)
ret->version = NULL;
else
{
if (ret->version == NULL && (ret->version = ASN1_INTEGER_new()) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
if (!ASN1_INTEGER_set(ret->version, (long)ecdsa->version)) goto err;
}
if ((ret->fieldID = ECDSA_get_X9_62_FIELDID(ecdsa, ret->fieldID)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSA_GET_X9_62_FIELDID_FAILURE)
if ((ret->curve = ECDSA_get_X9_62_CURVE(ecdsa, ret->curve)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSA_GET_X9_62_CURVE_FAILURE)
if ((point = EC_GROUP_get0_generator(ecdsa->group)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_CAN_NOT_GET_GENERATOR)
if (!(len = EC_POINT_point2oct(ecdsa->group, point, POINT_CONVERSION_COMPRESSED, NULL, len, NULL)))
OPENSSL_ECDSA_ABORT(ECDSA_R_UNEXPECTED_PARAMETER_LENGTH)
if ((buffer = OPENSSL_malloc(len)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
if (!EC_POINT_point2oct(ecdsa->group, point, POINT_CONVERSION_COMPRESSED, buffer, len, NULL))
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
if (ret->base == NULL && (ret->base = ASN1_OCTET_STRING_new()) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
if (!ASN1_OCTET_STRING_set(ret->base, buffer, len)) goto err;
if (!EC_GROUP_get_order(ecdsa->group, tmp, NULL))
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
if ((ret->order = BN_to_ASN1_INTEGER(tmp, ret->order)) == NULL) goto err;
if (!EC_GROUP_get_cofactor(ecdsa->group, tmp, NULL))
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
if ((ret->cofactor = BN_to_ASN1_INTEGER(tmp, ret->cofactor)) == NULL) goto err;
ok = 1;
err : if(!ok)
{
ECDSAerr(ECDSA_F_ECDSA_GET_X9_62_EC_PARAMETERS, reason);
if (ret && !param) X9_62_EC_PARAMETERS_free(ret);
ret = NULL;
}
if (tmp) BN_free(tmp);
if (buffer) OPENSSL_free(buffer);
return(ret);
}
EC_PARAMETERS *ECDSA_get_EC_PARAMETERS(const ECDSA *ecdsa, EC_PARAMETERS *params)
{
int ok = 1;
int tmp = 0;
EC_PARAMETERS *ret = params;
if (ret == NULL)
if ((ret = EC_PARAMETERS_new()) == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_GET_EC_PARAMETERS, ERR_R_MALLOC_FAILURE);
return NULL;
}
if (ecdsa == NULL)
{ /* missing parameter */
ECDSAerr(ECDSA_F_ECDSA_GET_EC_PARAMETERS, ECDSA_R_MISSING_PARAMETERS);
EC_PARAMETERS_free(params);
return NULL;
}
if (ecdsa->parameter_flags & ECDSA_FLAG_NAMED_CURVE)
{ /* use a named curve */
tmp = EC_GROUP_get_nid(ecdsa->group);
if (tmp)
{
ret->type = 0;
if ((ret->value.named_curve = OBJ_nid2obj(tmp)) == NULL)
ok = 0;
}
else
{
/* use the x9_64 ec_parameters structure */
ret->type = 1;
if ((ret->value.parameters = ECDSA_get_X9_62_EC_PARAMETERS(ecdsa, NULL)) == NULL)
ok = 0;
}
}
else if (ecdsa->parameter_flags & ECDSA_FLAG_IMPLICITLYCA)
{ /* use implicitlyCA */
ret->type = 2;
if ((ret->value.implicitlyCA = ASN1_NULL_new()) == NULL)
ok = 0;
}
else
{ /* use the x9_64 ec_parameters structure */
ret->type = 1;
if ((ret->value.parameters = ECDSA_get_X9_62_EC_PARAMETERS(ecdsa, NULL)) == NULL)
ok = 0;
}
if (!ok)
{
EC_PARAMETERS_free(ret);
return NULL;
}
return ret;
}
ECDSA *ECDSA_x9_62parameters2ecdsa(const X9_62_EC_PARAMETERS *params, ECDSA *ecdsa)
{
int ok=0, reason=ERR_R_EC_LIB, tmp;
ECDSA *ret=NULL;
EC_METHOD *meth=NULL;
BIGNUM *tmp_1=NULL, *tmp_2=NULL, *tmp_3=NULL;
EC_POINT *point=NULL;
if (!params)
OPENSSL_ECDSA_ABORT(ECDSA_R_MISSING_PARAMETERS)
if (ecdsa == NULL)
{
if ((ret = ECDSA_new()) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSA_NEW_FAILURE)
}
else
{
if (ecdsa->group) EC_GROUP_free(ecdsa->group);
if (ecdsa->pub_key) EC_POINT_free(ecdsa->pub_key);
ecdsa->pub_key = NULL;
if (ecdsa->priv_key) BN_clear_free(ecdsa->priv_key);
ecdsa->priv_key = NULL;
if (ecdsa->seed) OPENSSL_free(ecdsa->seed);
ecdsa->seed = NULL;
if (ecdsa->kinv)
{
BN_clear_free(ecdsa->kinv);
ecdsa->kinv = NULL;
}
if (ecdsa->r)
{
BN_clear_free(ecdsa->r);
ecdsa->r = NULL;
}
ret = ecdsa;
}
/* TODO : characteristic two */
if (!params->fieldID || !params->fieldID->fieldType || !params->fieldID->parameters)
OPENSSL_ECDSA_ABORT(ECDSA_R_NO_FIELD_SPECIFIED)
tmp = OBJ_obj2nid(params->fieldID->fieldType);
if (tmp == NID_X9_62_characteristic_two_field)
{
OPENSSL_ECDSA_ABORT(ECDSA_R_NOT_SUPPORTED)
}
else if (tmp == NID_X9_62_prime_field)
{
/* TODO : optimal method for the curve */
(const EC_METHOD *)meth = EC_GFp_mont_method();
if ((ret->group = EC_GROUP_new(meth)) == NULL) goto err;
if (params->fieldID->parameters->type != V_ASN1_INTEGER)
OPENSSL_ECDSA_ABORT(ECDSA_R_UNEXPECTED_ASN1_TYPE)
if (!params->fieldID->parameters->value.integer)
OPENSSL_ECDSA_ABORT(ECDSA_R_PRIME_MISSING)
if ((tmp_1 = ASN1_INTEGER_to_BN(params->fieldID->parameters->value.integer, NULL)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if (!params->curve)
OPENSSL_ECDSA_ABORT(ECDSA_R_NO_CURVE_SPECIFIED)
if (!params->curve->a || !params->curve->a->data)
OPENSSL_ECDSA_ABORT(ECDSA_R_NO_CURVE_PARAMETER_A_SPECIFIED)
if ((tmp_2 = BN_bin2bn(params->curve->a->data, params->curve->a->length, NULL)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_BN_LIB)
if (!params->curve->b || !params->curve->b->data)
OPENSSL_ECDSA_ABORT(ECDSA_R_NO_CURVE_PARAMETER_B_SPECIFIED)
if ((tmp_3 = BN_bin2bn(params->curve->b->data, params->curve->b->length, NULL)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_BN_LIB)
if (!EC_GROUP_set_curve_GFp(ret->group, tmp_1, tmp_2, tmp_3, NULL)) goto err;
if ((point = EC_POINT_new(ret->group)) == NULL) goto err;
}
else OPENSSL_ECDSA_ABORT(ECDSA_R_WRONG_FIELD_IDENTIFIER)
if (params->curve->seed != NULL && params->curve->seed->data > 0)
{
if (ret->seed != NULL)
OPENSSL_free(ret->seed);
if ((ret->seed = OPENSSL_malloc(params->curve->seed->length)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
memcpy(ret->seed, params->curve->seed->data, params->curve->seed->length);
ret->seed_len = params->curve->seed->length;
}
if (params->version)
{
if ((ret->version = (int)ASN1_INTEGER_get(params->version)) < 0)
OPENSSL_ECDSA_ABORT(ECDSA_R_UNEXPECTED_VERSION_NUMER)
}
else
ret->version = 1;
if (params->order && params->cofactor && params->base && params->base->data)
{
if ((tmp_1 = ASN1_INTEGER_to_BN(params->order, tmp_1)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if ((tmp_2 = ASN1_INTEGER_to_BN(params->cofactor, tmp_2)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if (!EC_POINT_oct2point(ret->group, point, params->base->data,
params->base->length, NULL)) goto err;
if (!EC_GROUP_set_generator(ret->group, point, tmp_1, tmp_2)) goto err;
}
ok = 1;
err: if (!ok)
{
ECDSAerr(ECDSA_F_ECDSA_GET, reason);
if (ret && !ecdsa) ECDSA_free(ret);
ret = NULL;
}
if (tmp_1) BN_free(tmp_1);
if (tmp_2) BN_free(tmp_2);
if (tmp_3) BN_free(tmp_3);
if (point) EC_POINT_free(point);
return(ret);
}
ECDSA *ECDSA_ecparameters2ecdsa(const EC_PARAMETERS *params, ECDSA *ecdsa)
{
ECDSA *ret = ecdsa;
int tmp = 0;
if (ret == NULL)
if ((ret = ECDSA_new()) == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_GET_ECDSA, ERR_R_MALLOC_FAILURE);
return NULL;
}
if (params == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_GET_ECDSA, ECDSA_R_MISSING_PARAMETERS);
ECDSA_free(ret);
return NULL;
}
if (params->type == 0)
{
if (ret->group)
EC_GROUP_free(ret->group);
tmp = OBJ_obj2nid(params->value.named_curve);
ret->parameter_flags |= ECDSA_FLAG_NAMED_CURVE;
if ((ret->group = EC_GROUP_get_group_by_name(tmp)) == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_GET_ECDSA, ECDSA_R_EC_GROUP_NID2CURVE_FAILURE);
ECDSA_free(ret);
return NULL;
}
}
else if (params->type == 1)
{
ret = ECDSA_x9_62parameters2ecdsa(params->value.parameters, ret);
}
else if (params->type == 2)
{
if (ret->group)
EC_GROUP_free(ret->group);
ret->group = NULL;
ret->parameter_flags |= ECDSA_FLAG_IMPLICITLYCA;
}
else
{
ECDSAerr(ECDSA_F_ECDSA_GET_ECDSA, ECDSA_R_UNKNOWN_PARAMETERS_TYPE);
ECDSA_free(ret);
ret = NULL;
}
return ret;
}
ECDSA *d2i_ECDSAParameters(ECDSA **a, const unsigned char **in, long len)
{
ECDSA *ecdsa = (a && *a)? *a : NULL;
EC_PARAMETERS *params = NULL;
if ((params = d2i_EC_PARAMETERS(NULL, in, len)) == NULL)
{
ECDSAerr(ECDSA_F_D2I_ECDSAPARAMETERS, ECDSA_R_D2I_EC_PARAMETERS_FAILURE);
EC_PARAMETERS_free(params);
return NULL;
}
if ((ecdsa = ECDSA_ecparameters2ecdsa(params, ecdsa)) == NULL)
{
ECDSAerr(ECDSA_F_D2I_ECDSAPARAMETERS, ECDSA_R_ECPARAMETERS2ECDSA_FAILURE);
return NULL;
}
EC_PARAMETERS_free(params);
return(ecdsa);
}
int i2d_ECDSAParameters(ECDSA *a, unsigned char **out)
{
int ret=0;
EC_PARAMETERS *tmp = ECDSA_get_EC_PARAMETERS(a, NULL);
if (tmp == NULL)
{
ECDSAerr(ECDSA_F_I2D_ECDSAPARAMETERS, ECDSA_R_ECDSA_GET_EC_PARAMETERS_FAILURE);
return 0;
}
if ((ret = i2d_EC_PARAMETERS(tmp, out)) == 0)
{
ECDSAerr(ECDSA_F_I2D_ECDSAPARAMETERS, ECDSA_R_ECDSA_R_D2I_EC_PARAMETERS_FAILURE);
EC_PARAMETERS_free(tmp);
return 0;
}
EC_PARAMETERS_free(tmp);
return(ret);
}
ECDSA *d2i_ECDSAPrivateKey(ECDSA **a, const unsigned char **in, long len)
{
int reason=ERR_R_BN_LIB, ok=0;
ECDSA *ret=NULL;
ECDSAPrivateKey *priv_key=NULL;
if ((priv_key = ECDSAPrivateKey_new()) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSAPRIVATEKEY_NEW_FAILURE)
if ((priv_key = d2i_ecdsaPrivateKey(&priv_key, in, len)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_D2I_ECDSA_PRIVATEKEY_FAILURE)
if ((ret = ECDSA_ecparameters2ecdsa(priv_key->parameters, NULL)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSA_GET_FAILURE)
ret->version = priv_key->version;
ret->write_params = priv_key->write_params;
if (priv_key->priv_key)
{
if ((ret->priv_key = BN_dup(priv_key->priv_key)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_BN_LIB)
}
else
OPENSSL_ECDSA_ABORT(ECDSA_R_D2I_ECDSAPRIVATEKEY_MISSING_PRIVATE_KEY)
if ((ret->pub_key = EC_POINT_new(ret->group)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
if (!EC_POINT_oct2point(ret->group, ret->pub_key, priv_key->pub_key->data, priv_key->pub_key->length, NULL))
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
ok = 1;
err : if (!ok)
{
if (ret) ECDSA_free(ret);
ret = NULL;
ECDSAerr(ECDSA_F_D2I_ECDSAPRIVATEKEY, reason);
}
if (priv_key) ECDSAPrivateKey_free(priv_key);
return(ret);
}
int i2d_ECDSAPrivateKey(ECDSA *a, unsigned char **out)
{
int ret=0, ok=0, reason=ERR_R_EC_LIB;
unsigned char *buffer=NULL;
size_t buf_len=0;
ECDSAPrivateKey *priv_key=NULL;
if (a == NULL || a->group == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_MISSING_PARAMETERS)
if ((priv_key = ECDSAPrivateKey_new()) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSAPRIVATEKEY_NEW_FAILURE)
if ((priv_key->parameters = ECDSA_get_EC_PARAMETERS(a, priv_key->parameters)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSA_GET_X9_62_EC_PARAMETERS_FAILURE)
priv_key->version = a->version;
if (BN_copy(priv_key->priv_key, a->priv_key) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_BN_LIB)
buf_len = EC_POINT_point2oct(a->group, a->pub_key, POINT_CONVERSION_COMPRESSED, NULL, 0, NULL);
if ((buffer = OPENSSL_malloc(buf_len)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
if (!EC_POINT_point2oct(a->group, a->pub_key, POINT_CONVERSION_COMPRESSED,
buffer, buf_len, NULL)) goto err;
if (!M_ASN1_OCTET_STRING_set(priv_key->pub_key, buffer, buf_len))
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if ((ret = i2d_ecdsaPrivateKey(priv_key, out)) == 0)
OPENSSL_ECDSA_ABORT(ECDSA_R_I2D_ECDSA_PRIVATEKEY)
ok=1;
err: if (!ok)
ECDSAerr(ECDSA_F_I2D_ECDSAPRIVATEKEY, reason);
if (buffer) OPENSSL_free(buffer);
if (priv_key) ECDSAPrivateKey_free(priv_key);
return(ok?ret:0);
}
ECDSA *d2i_ECDSAPublicKey(ECDSA **a, const unsigned char **in, long len)
{
int reason=ERR_R_BN_LIB, ok=0, ecdsa_new=1;
ECDSA *ret=NULL;
ECDSAPrivateKey *priv_key=NULL;
if (a && *a)
{
ecdsa_new = 0;
ret = *a;
}
else if ((ret = ECDSA_new()) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE);
if ((priv_key = ECDSAPrivateKey_new()) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSAPRIVATEKEY_NEW_FAILURE)
if ((priv_key = d2i_ecdsaPublicKey(&priv_key, in, len)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_D2I_ECDSA_PRIVATEKEY_FAILURE)
if (priv_key->write_params == 0)
{
if (ecdsa_new || !ret->group)
OPENSSL_ECDSA_ABORT(ECDSA_R_MISSING_PARAMETERS)
if (ret->pub_key == NULL && (ret->pub_key = EC_POINT_new(ret->group)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
if (!EC_POINT_oct2point(ret->group, ret->pub_key, priv_key->pub_key->data,
priv_key->pub_key->length, NULL))
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
}
else if (priv_key->write_params == 1)
{
if ((ret = ECDSA_ecparameters2ecdsa(priv_key->parameters, ret)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSA_GET_FAILURE)
if (ret->pub_key == NULL && (ret->pub_key = EC_POINT_new(ret->group)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
if (!EC_POINT_oct2point(ret->group, ret->pub_key, priv_key->pub_key->data,
priv_key->pub_key->length, NULL))
OPENSSL_ECDSA_ABORT(ERR_R_EC_LIB)
}
else OPENSSL_ECDSA_ABORT(ECDSA_R_UNEXPECTED_PARAMETER)
ret->write_params = 1;
ok = 1;
err : if (!ok)
{
if (ret && ecdsa_new) ECDSA_free(ret);
ret = NULL;
ECDSAerr(ECDSA_F_D2I_ECDSAPRIVATEKEY, reason);
}
if (priv_key) ECDSAPrivateKey_free(priv_key);
return(ret);
}
int i2d_ECDSAPublicKey(ECDSA *a, unsigned char **out)
{
int ret=0, reason=ERR_R_EC_LIB, ok=0;
unsigned char *buffer=NULL;
size_t buf_len=0;
ECDSAPrivateKey *priv_key=NULL;
if (a == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_MISSING_PARAMETERS)
if ((priv_key = ECDSAPrivateKey_new()) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSAPRIVATEKEY_NEW_FAILURE)
if ((priv_key->parameters = ECDSA_get_EC_PARAMETERS(a, priv_key->parameters)) == NULL)
OPENSSL_ECDSA_ABORT(ECDSA_R_ECDSA_GET_X9_62_EC_PARAMETERS_FAILURE)
priv_key->version = a->version;
priv_key->write_params = a->write_params;
buf_len = EC_POINT_point2oct(a->group, a->pub_key, POINT_CONVERSION_FORM, NULL, 0, NULL);
if (!buf_len || (buffer = OPENSSL_malloc(buf_len)) == NULL)
OPENSSL_ECDSA_ABORT(ERR_R_MALLOC_FAILURE)
if (!EC_POINT_point2oct(a->group, a->pub_key, POINT_CONVERSION_FORM,
buffer, buf_len, NULL)) goto err;
if (!M_ASN1_OCTET_STRING_set(priv_key->pub_key, buffer, buf_len))
OPENSSL_ECDSA_ABORT(ERR_R_ASN1_LIB)
if ((ret = i2d_ecdsaPublicKey(priv_key, out)) == 0)
OPENSSL_ECDSA_ABORT(ECDSA_R_I2D_ECDSA_PUBLICKEY)
ok = 1;
err: if (!ok)
ECDSAerr(ECDSA_F_I2D_ECDSAPUBLICKEY, reason);
if (buffer) OPENSSL_free(buffer);
if (priv_key) ECDSAPrivateKey_free(priv_key);
return(ok?ret:0);
}

155
crypto/ecdsa/ecs_err.c Normal file
View file

@ -0,0 +1,155 @@
/* crypto/ecdsa/ecs_err.c */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* NOTE: this file was auto generated by the mkerr.pl script: any changes
* made to it will be overwritten when the script next updates this file,
* only reason strings will be preserved.
*/
#include <stdio.h>
#include <openssl/err.h>
#include <openssl/ecdsa.h>
/* BEGIN ERROR CODES */
#ifndef OPENSSL_NO_ERR
static ERR_STRING_DATA ECDSA_str_functs[]=
{
{ERR_PACK(0,ECDSA_F_D2I_ECDSAPARAMETERS,0), "d2i_ECDSAParameters"},
{ERR_PACK(0,ECDSA_F_D2I_ECDSAPRIVATEKEY,0), "d2i_ECDSAPrivateKey"},
{ERR_PACK(0,ECDSA_F_ECDSAPARAMETERS_PRINT,0), "ECDSAParameters_print"},
{ERR_PACK(0,ECDSA_F_ECDSAPARAMETERS_PRINT_FP,0), "ECDSAParameters_print_fp"},
{ERR_PACK(0,ECDSA_F_ECDSA_DO_SIGN,0), "ECDSA_do_sign"},
{ERR_PACK(0,ECDSA_F_ECDSA_DO_VERIFY,0), "ECDSA_do_verify"},
{ERR_PACK(0,ECDSA_F_ECDSA_GENERATE_KEY,0), "ECDSA_generate_key"},
{ERR_PACK(0,ECDSA_F_ECDSA_GET,0), "ECDSA_GET"},
{ERR_PACK(0,ECDSA_F_ECDSA_GET_CURVE_NID,0), "ECDSA_GET_CURVE_NID"},
{ERR_PACK(0,ECDSA_F_ECDSA_GET_ECDSA,0), "ECDSA_GET_ECDSA"},
{ERR_PACK(0,ECDSA_F_ECDSA_GET_EC_PARAMETERS,0), "ECDSA_get_EC_PARAMETERS"},
{ERR_PACK(0,ECDSA_F_ECDSA_GET_X9_62_CURVE,0), "ECDSA_get_X9_62_CURVE"},
{ERR_PACK(0,ECDSA_F_ECDSA_GET_X9_62_EC_PARAMETERS,0), "ECDSA_get_X9_62_EC_PARAMETERS"},
{ERR_PACK(0,ECDSA_F_ECDSA_GET_X9_62_FIELDID,0), "ECDSA_get_X9_62_FIELDID"},
{ERR_PACK(0,ECDSA_F_ECDSA_NEW,0), "ECDSA_NEW"},
{ERR_PACK(0,ECDSA_F_ECDSA_PRINT,0), "ECDSA_print"},
{ERR_PACK(0,ECDSA_F_ECDSA_PRINT_FP,0), "ECDSA_print_fp"},
{ERR_PACK(0,ECDSA_F_ECDSA_SET_GROUP_P,0), "ECDSA_set_group_p"},
{ERR_PACK(0,ECDSA_F_ECDSA_SET_PRIME_GROUP,0), "ECDSA_SET_PRIME_GROUP"},
{ERR_PACK(0,ECDSA_F_ECDSA_SIGN_SETUP,0), "ECDSA_sign_setup"},
{ERR_PACK(0,ECDSA_F_I2D_ECDSAPARAMETERS,0), "i2d_ECDSAParameters"},
{ERR_PACK(0,ECDSA_F_I2D_ECDSAPRIVATEKEY,0), "i2d_ECDSAPrivateKey"},
{ERR_PACK(0,ECDSA_F_I2D_ECDSAPUBLICKEY,0), "i2d_ECDSAPublicKey"},
{ERR_PACK(0,ECDSA_F_SIG_CB,0), "SIG_CB"},
{0,NULL}
};
static ERR_STRING_DATA ECDSA_str_reasons[]=
{
{ECDSA_R_BAD_SIGNATURE ,"bad signature"},
{ECDSA_R_CAN_NOT_GET_GENERATOR ,"can not get generator"},
{ECDSA_R_D2I_ECDSAPRIVATEKEY_MISSING_PRIVATE_KEY,"d2i ecdsaprivatekey missing private key"},
{ECDSA_R_D2I_ECDSA_PRIVATEKEY_FAILURE ,"d2i ecdsa privatekey failure"},
{ECDSA_R_D2I_EC_PARAMETERS_FAILURE ,"d2i ec parameters failure"},
{ECDSA_R_D2I_X9_62_EC_PARAMETERS_FAILURE ,"d2i x9 62 ec parameters failure"},
{ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ,"data too large for key size"},
{ECDSA_R_ECDSAPRIVATEKEY_NEW_FAILURE ,"ecdsaprivatekey new failure"},
{ECDSA_R_ECDSA_F_ECDSA_NEW ,"ecdsa f ecdsa new"},
{ECDSA_R_ECDSA_GET_EC_PARAMETERS_FAILURE ,"ecdsa get ec parameters failure"},
{ECDSA_R_ECDSA_GET_FAILURE ,"ecdsa get failure"},
{ECDSA_R_ECDSA_GET_X9_62_CURVE_FAILURE ,"ecdsa get x9 62 curve failure"},
{ECDSA_R_ECDSA_GET_X9_62_EC_PARAMETERS_FAILURE,"ecdsa get x9 62 ec parameters failure"},
{ECDSA_R_ECDSA_GET_X9_62_FIELDID_FAILURE ,"ecdsa get x9 62 fieldid failure"},
{ECDSA_R_ECDSA_NEW_FAILURE ,"ecdsa new failure"},
{ECDSA_R_ECDSA_R_D2I_EC_PARAMETERS_FAILURE,"ecdsa r d2i ec parameters failure"},
{ECDSA_R_ECDSA_R_D2I_X9_62_EC_PARAMETERS_FAILURE,"ecdsa r d2i x9 62 ec parameters failure"},
{ECDSA_R_ECPARAMETERS2ECDSA_FAILURE ,"ecparameters2ecdsa failure"},
{ECDSA_R_EC_GROUP_NID2CURVE_FAILURE ,"ec group nid2curve failure"},
{ECDSA_R_ERR_EC_LIB ,"err ec lib"},
{ECDSA_R_I2D_ECDSA_PRIVATEKEY ,"i2d ecdsa privatekey"},
{ECDSA_R_I2D_ECDSA_PUBLICKEY ,"i2d ecdsa publickey"},
{ECDSA_R_MISSING_PARAMETERS ,"missing parameters"},
{ECDSA_R_NOT_SUPPORTED ,"not supported"},
{ECDSA_R_NO_CURVE_PARAMETER_A_SPECIFIED ,"no curve parameter a specified"},
{ECDSA_R_NO_CURVE_PARAMETER_B_SPECIFIED ,"no curve parameter b specified"},
{ECDSA_R_NO_CURVE_SPECIFIED ,"no curve specified"},
{ECDSA_R_NO_FIELD_SPECIFIED ,"no field specified"},
{ECDSA_R_PRIME_MISSING ,"prime missing"},
{ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED ,"random number generation failed"},
{ECDSA_R_SIGNATURE_MALLOC_FAILED ,"signature malloc failed"},
{ECDSA_R_UNEXPECTED_ASN1_TYPE ,"unexpected asn1 type"},
{ECDSA_R_UNEXPECTED_PARAMETER ,"unexpected parameter"},
{ECDSA_R_UNEXPECTED_PARAMETER_LENGTH ,"unexpected parameter length"},
{ECDSA_R_UNEXPECTED_VERSION_NUMER ,"unexpected version numer"},
{ECDSA_R_UNKNOWN_PARAMETERS_TYPE ,"unknown parameters type"},
{ECDSA_R_WRONG_FIELD_IDENTIFIER ,"wrong field identifier"},
{ECDSA_R_X9_62_CURVE_NEW_FAILURE ,"x9 62 curve new failure"},
{ECDSA_R_X9_62_EC_PARAMETERS_NEW_FAILURE ,"x9 62 ec parameters new failure"},
{0,NULL}
};
#endif
void ERR_load_ECDSA_strings(void)
{
static int init=1;
if (init)
{
init=0;
#ifndef OPENSSL_NO_ERR
ERR_load_strings(ERR_LIB_ECDSA,ECDSA_str_functs);
ERR_load_strings(ERR_LIB_ECDSA,ECDSA_str_reasons);
#endif
}
}

133
crypto/ecdsa/ecs_gen.c Normal file
View file

@ -0,0 +1,133 @@
/* crypto/ecdsa/ecs_gen.c */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* 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 <time.h>
#include "cryptlib.h"
#include <openssl/evp.h>
#include <openssl/bn.h>
#include <openssl/ecdsa.h>
#include <openssl/rand.h>
#include <openssl/sha.h>
#ifdef __cplusplus
extern "C" {
#endif
ECDSA *ECDSA_generate_parameters(int bits,
unsigned char *seed_in, int seed_len,
int *counter_ret, unsigned long *h_ret,
void (*callback)(int, int, void *),
void *cb_arg)
{
return NULL;
}
#ifdef __cplusplus
}
#endif

143
crypto/ecdsa/ecs_key.c Normal file
View file

@ -0,0 +1,143 @@
/* 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 "cryptlib.h"
#include <openssl/ecdsa.h>
int ECDSA_generate_key(ECDSA *ecdsa)
{
int ok=0;
BN_CTX *ctx=NULL;
BIGNUM *priv_key=NULL,*order=NULL;
EC_POINT *pub_key=NULL;
if (!ecdsa || !ecdsa->group)
{
ECDSAerr(ECDSA_F_ECDSA_GENERATE_KEY,ECDSA_R_MISSING_PARAMETERS);
return 0;
}
if ((order = BN_new()) == NULL) goto err;
if ((ctx = BN_CTX_new()) == NULL) goto err;
if (ecdsa->priv_key == NULL)
{
if ((priv_key = BN_new()) == NULL) goto err;
}
else
priv_key = ecdsa->priv_key;
if (!EC_GROUP_get_order(ecdsa->group, order, ctx)) goto err;
do
if (!BN_rand_range(priv_key, order)) goto err;
while (BN_is_zero(priv_key));
if (ecdsa->pub_key == NULL)
{
if ((pub_key = EC_POINT_new(ecdsa->group)) == NULL) goto err;
}
else
pub_key = ecdsa->pub_key;
if (!EC_POINT_copy(pub_key, EC_GROUP_get0_generator(ecdsa->group))) goto err;
if (!EC_POINT_mul(ecdsa->group, pub_key, priv_key, NULL, NULL, ctx)) goto err;
ecdsa->priv_key = priv_key;
ecdsa->pub_key = pub_key;
ok=1;
err: if (order) BN_free(order);
if ((pub_key != NULL) && (ecdsa->pub_key == NULL)) EC_POINT_free(pub_key);
if ((priv_key != NULL) && (ecdsa->priv_key == NULL)) BN_free(priv_key);
if (ctx != NULL) BN_CTX_free(ctx);
return(ok);
}
int ECDSA_check_key(ECDSA *ecdsa)
{
int ok=0;
BN_CTX *ctx=NULL;
BIGNUM *order=NULL;
EC_POINT *point=NULL;
if (!ecdsa || !ecdsa->group || !ecdsa->pub_key)
return 0;
if ((ctx = BN_CTX_new()) == NULL) goto err;
if ((order = BN_new()) == NULL) goto err;
if ((point = EC_POINT_new(ecdsa->group)) == NULL) goto err;
/* testing whether pub_key is a valid point on the elliptic curve */
if (!EC_POINT_is_on_curve(ecdsa->group,ecdsa->pub_key,ctx)) goto err;
/* testing whether pub_key * order is the point at infinity */
if (!EC_GROUP_get_order(ecdsa->group,order,ctx)) goto err;
if (!EC_POINT_copy(point,ecdsa->pub_key)) goto err;
if (!EC_POINT_mul(ecdsa->group,point,order,NULL,NULL,ctx)) goto err;
if (!EC_POINT_is_at_infinity(ecdsa->group,point)) goto err;
/* in case the priv_key is present : check if generator * priv_key == pub_key */
if (ecdsa->priv_key)
{
if (BN_cmp(ecdsa->priv_key,order) >= 0) goto err;
if (!EC_POINT_copy(point,EC_GROUP_get0_generator(ecdsa->group))) goto err;
if (!EC_POINT_mul(ecdsa->group,point,ecdsa->priv_key,NULL,NULL,ctx)) goto err;
if (EC_POINT_cmp(ecdsa->group,point,ecdsa->pub_key,ctx) != 0) goto err;
}
ok = 1;
err:
if (ctx != NULL) BN_CTX_free(ctx);
if (order != NULL) BN_free(order);
if (point != NULL) EC_POINT_free(point);
return(ok);
}

312
crypto/ecdsa/ecs_lib.c Normal file
View file

@ -0,0 +1,312 @@
/* crypto/ecdsa/ecs_lib.c */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* 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 "cryptlib.h"
#include "ecs_locl.h"
#include <openssl/engine.h>
const char *ECDSA_version="ECDSA" OPENSSL_VERSION_PTEXT;
static const ECDSA_METHOD *default_ECDSA_method = NULL;
void ECDSA_set_default_method(const ECDSA_METHOD *meth)
{
default_ECDSA_method = meth;
}
const ECDSA_METHOD *ECDSA_get_default_method(void)
{
if(!default_ECDSA_method)
default_ECDSA_method = ECDSA_OpenSSL();
return default_ECDSA_method;
}
ECDSA *ECDSA_new(void)
{
return ECDSA_new_method(NULL);
}
int ECDSA_set_method(ECDSA *ecdsa, const ECDSA_METHOD *meth)
{
const ECDSA_METHOD *mtmp;
mtmp = ecdsa->meth;
if (mtmp->finish) mtmp->finish(ecdsa);
if (ecdsa->engine)
{
ENGINE_finish(ecdsa->engine);
ecdsa->engine = NULL;
}
ecdsa->meth = meth;
if (meth->init) meth->init(ecdsa);
return 1;
}
ECDSA *ECDSA_new_method(ENGINE *engine)
{
ECDSA *ret;
ret=(ECDSA *)OPENSSL_malloc(sizeof(ECDSA));
if (ret == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_NEW,ERR_R_MALLOC_FAILURE);
return(NULL);
}
ret->meth = ECDSA_get_default_method();
ret->engine = engine;
if (!ret->engine)
ret->engine = ENGINE_get_default_ECDSA();
if (ret->engine)
{
ret->meth = ENGINE_get_ECDSA(ret->engine);
if (!ret->meth)
{
ECDSAerr(ECDSA_R_ECDSA_F_ECDSA_NEW, ERR_R_ENGINE_LIB);
ENGINE_finish(ret->engine);
OPENSSL_free(ret);
return NULL;
}
}
ret->version = 1;
ret->write_params=1;
ret->group = NULL;
ret->pub_key = NULL;
ret->priv_key = NULL;
ret->kinv = NULL;
ret->r = NULL;
ret->seed = NULL;
ret->seed_len = 0;
ret->parameter_flags = 0;
ret->references = 1;
ret->flags = ret->meth->flags;
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ECDSA, ret, &ret->ex_data);
if ((ret->meth->init != NULL) && !ret->meth->init(ret))
{
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_ECDSA, ret, &ret->ex_data);
OPENSSL_free(ret);
ret=NULL;
}
return(ret);
}
void ECDSA_free(ECDSA *r)
{
int i;
if (r == NULL) return;
i=CRYPTO_add(&r->references,-1,CRYPTO_LOCK_ECDSA);
#ifdef REF_PRINT
REF_PRINT("ECDSA",r);
#endif
if (i > 0) return;
#ifdef REF_CHECK
if (i < 0)
{
fprintf(stderr,"ECDSA_free, bad reference count\n");
abort();
}
#endif
if (r->meth->finish)
r->meth->finish(r);
if (r->engine)
ENGINE_finish(r->engine);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_ECDSA, r, &r->ex_data);
if (r->group != NULL) EC_GROUP_free(r->group);
if (r->pub_key != NULL) EC_POINT_free(r->pub_key);
if (r->priv_key != NULL) BN_clear_free(r->priv_key);
if (r->kinv != NULL) BN_clear_free(r->kinv);
if (r->r != NULL) BN_clear_free(r->r);
if (r->seed != NULL) OPENSSL_free(r->seed);
OPENSSL_free(r);
}
int ECDSA_size(const ECDSA *r)
{
int ret,i;
ASN1_INTEGER bs;
BIGNUM *order=NULL;
unsigned char buf[4];
if (r == NULL || r->group == NULL)
return 0;
if ((order = BN_new()) == NULL) return 0;
if (!EC_GROUP_get_order(r->group,order,NULL))
{
BN_clear_free(order);
return 0;
}
i=BN_num_bits(order);
bs.length=(i+7)/8;
bs.data=buf;
bs.type=V_ASN1_INTEGER;
/* If the top bit is set the asn1 encoding is 1 larger. */
buf[0]=0xff;
i=i2d_ASN1_INTEGER(&bs,NULL);
i+=i; /* r and s */
ret=ASN1_object_size(1,i,V_ASN1_SEQUENCE);
BN_clear_free(order);
return(ret);
}
int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
{
return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ECDSA, argl, argp,
new_func, dup_func, free_func);
}
int ECDSA_set_ex_data(ECDSA *d, int idx, void *arg)
{
return(CRYPTO_set_ex_data(&d->ex_data,idx,arg));
}
void *ECDSA_get_ex_data(ECDSA *d, int idx)
{
return(CRYPTO_get_ex_data(&d->ex_data,idx));
}
int ECDSA_up_ref(ECDSA *ecdsa)
{
int i = CRYPTO_add(&ecdsa->references, 1, CRYPTO_LOCK_ECDSA);
#ifdef REF_PRINT
REF_PRINT("ECDSA",r);
#endif
#ifdef REF_CHECK
if (i < 2)
{
fprintf(stderr, "ECDSA_up_ref, bad reference count\n");
abort();
}
#endif
return ((i > 1) ? 1 : 0);
}
void ECDSA_set_parameter_flags(ECDSA *ecdsa, int flag)
{
ecdsa->parameter_flags = flag;
}
int ECDSA_get_parameter_flags(const ECDSA *ecdsa)
{
return ecdsa->parameter_flags;
}

118
crypto/ecdsa/ecs_locl.h Normal file
View file

@ -0,0 +1,118 @@
/* crypto/ecdsa/ecs_locl.h */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* licensing@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#include "ecdsa.h"
#ifndef HEADER_ECS_LOCL_H
#define HEADER_ECS_LOCL_H
#ifdef __cplusplus
extern "C" {
#endif
#define OPENSSL_ECDSA_ABORT(r) { reason = (r); goto err; }
/* some structures needed for the asn1 encoding */
typedef struct x9_62_fieldid_st {
ASN1_OBJECT *fieldType;
ASN1_TYPE *parameters;
} X9_62_FIELDID;
typedef struct x9_62_curve_st {
ASN1_OCTET_STRING *a;
ASN1_OCTET_STRING *b;
ASN1_BIT_STRING *seed;
} X9_62_CURVE;
typedef struct x9_62_ec_parameters {
ASN1_INTEGER *version;
X9_62_FIELDID *fieldID;
X9_62_CURVE *curve;
ASN1_OCTET_STRING *base;
ASN1_INTEGER *order;
ASN1_INTEGER *cofactor;
} X9_62_EC_PARAMETERS;
typedef struct ec_parameters {
int type;
union {
ASN1_OBJECT *named_curve;
X9_62_EC_PARAMETERS *parameters;
ASN1_NULL *implicitlyCA;
} value;
} EC_PARAMETERS;
typedef struct ecdsa_priv_key_st {
int version;
int write_params;
EC_PARAMETERS *parameters;
ASN1_OBJECT *named_curve;
ASN1_OCTET_STRING *pub_key;
BIGNUM *priv_key;
} ECDSAPrivateKey;
X9_62_FIELDID *ECDSA_get_X9_62_FIELDID(const ECDSA *ecdsa, X9_62_FIELDID *field);
X9_62_CURVE *ECDSA_get_X9_62_CURVE(const ECDSA *ecdsa, X9_62_CURVE *curve);
X9_62_EC_PARAMETERS *ECDSA_get_X9_62_EC_PARAMETERS(const ECDSA *ecdsa, X9_62_EC_PARAMETERS *params);
EC_PARAMETERS *ECDSA_get_EC_PARAMETERS(const ECDSA *ecdsa, EC_PARAMETERS *params);
ECDSA *ECDSA_x9_62parameters2ecdsa(const X9_62_EC_PARAMETERS *params, ECDSA *ecdsa);
ECDSA *ECDSA_ecparameters2ecdsa(const EC_PARAMETERS *params, ECDSA *ecdsa);
#ifdef __cplusplus
}
#endif
#endif

381
crypto/ecdsa/ecs_ossl.c Normal file
View file

@ -0,0 +1,381 @@
/* crypto/ecdsa/ecs_ossl.c */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* 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 "cryptlib.h"
#include <openssl/ecdsa.h>
/* TODO : general case */
#define EC_POINT_get_affine_coordinates EC_POINT_get_affine_coordinates_GFp
static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dlen, ECDSA *ecdsa);
static int ecdsa_sign_setup(ECDSA *ecdsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len, ECDSA_SIG *sig,
ECDSA *ecdsa);
static ECDSA_METHOD openssl_ecdsa_meth = {
"OpenSSL ECDSA method",
ecdsa_do_sign,
ecdsa_sign_setup,
ecdsa_do_verify,
0,
NULL
};
const ECDSA_METHOD *ECDSA_OpenSSL(void)
{
return &openssl_ecdsa_meth;
}
static int ecdsa_sign_setup(ECDSA *ecdsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
{
BN_CTX *ctx = NULL;
BIGNUM k,*kinv=NULL,*r=NULL,*order=NULL,*X=NULL;
EC_POINT *tmp_point=NULL;
int ret = 0,reason = ERR_R_BN_LIB;
if (!ecdsa || !ecdsa->group || !ecdsa->pub_key || !ecdsa->priv_key)
{
reason = ECDSA_R_MISSING_PARAMETERS;
return 0;
}
if (ctx_in == NULL)
{
if ((ctx=BN_CTX_new()) == NULL) goto err;
}
else
ctx=ctx_in;
if ((r = BN_new()) == NULL) goto err;
if ((order = BN_new()) == NULL) goto err;
if ((X = BN_new()) == NULL) goto err;
if ((tmp_point = EC_POINT_new(ecdsa->group)) == NULL)
{
reason = ERR_R_EC_LIB;
goto err;
}
if (!EC_POINT_copy(tmp_point,EC_GROUP_get0_generator(ecdsa->group)))
{
reason = ERR_R_EC_LIB;
goto err;
}
if (!EC_GROUP_get_order(ecdsa->group,order,ctx))
{
reason = ERR_R_EC_LIB;
goto err;
}
do
{
/* get random k */
BN_init(&k);
do
if (!BN_rand_range(&k,order))
{
reason = ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED;
goto err;
}
while (BN_is_zero(&k));
/* compute r the x-coordinate of generator * k */
if (!EC_POINT_mul(ecdsa->group,tmp_point,&k,NULL,NULL,ctx)
|| !EC_POINT_get_affine_coordinates(ecdsa->group,tmp_point,X,NULL,ctx))
{
reason = ERR_R_EC_LIB;
goto err;
}
if (!BN_nnmod(r,X,order,ctx)) goto err;
}
while (BN_is_zero(r));
/* compute the inverse of k */
if ((kinv = BN_mod_inverse(NULL,&k,order,ctx)) == NULL) goto err;
if (*rp == NULL)
BN_clear_free(*rp);
*rp = r;
if (*kinvp == NULL)
BN_clear_free(*kinvp);
*kinvp = kinv;
kinv = NULL;
ret = 1;
err:
if (!ret)
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP,reason);
if (kinv != NULL) BN_clear_free(kinv);
if (r != NULL) BN_clear_free(r);
}
if (ctx_in == NULL)
BN_CTX_free(ctx);
if (kinv != NULL)
BN_clear_free(kinv);
if (order != NULL)
BN_clear_free(order);
if (tmp_point != NULL)
EC_POINT_free(tmp_point);
if (X) BN_clear_free(X);
BN_clear_free(&k);
return(ret);
}
static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dgst_len, ECDSA *ecdsa)
{
BIGNUM *kinv=NULL,*r=NULL,*s=NULL,*m=NULL,*tmp=NULL,*order=NULL;
BIGNUM xr;
BN_CTX *ctx=NULL;
int reason=ERR_R_BN_LIB;
ECDSA_SIG *ret=NULL;
if (!ecdsa || !ecdsa->group || !ecdsa->pub_key || !ecdsa->priv_key)
{
reason = ECDSA_R_MISSING_PARAMETERS;
goto err;
}
BN_init(&xr);
if ((ctx = BN_CTX_new()) == NULL) goto err;
if ((order = BN_new()) == NULL) goto err;
if ((tmp = BN_new()) == NULL) goto err;
if ((m = BN_new()) == NULL) goto err;
if ((s = BN_new()) == NULL) goto err;
if (!EC_GROUP_get_order(ecdsa->group,order,ctx))
{
reason = ECDSA_R_ERR_EC_LIB;
goto err;
}
if (dgst_len > BN_num_bytes(order))
{
reason = ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE;
goto err;
}
if (BN_bin2bn(dgst,dgst_len,m) == NULL) goto err;
do
{
if ((ecdsa->kinv == NULL) || (ecdsa->r == NULL))
{
if (!ECDSA_sign_setup(ecdsa,ctx,&kinv,&r)) goto err;
}
else
{
kinv = ecdsa->kinv;
ecdsa->kinv = NULL;
r = ecdsa->r;
ecdsa->r = NULL;
}
if (!BN_mod_mul(tmp,ecdsa->priv_key,r,order,ctx)) goto err;
if (!BN_add(s,tmp,m)) goto err;
if (BN_cmp(s,order) > 0)
BN_sub(s,s,order);
if (!BN_mod_mul(s,s,kinv,order,ctx)) goto err;
}
while (BN_is_zero(s));
if ((ret = ECDSA_SIG_new()) == NULL)
{
reason = ECDSA_R_SIGNATURE_MALLOC_FAILED;
goto err;
}
ret->r = r;
ret->s = s;
err:
if (!ret)
{
ECDSAerr(ECDSA_F_ECDSA_DO_SIGN,reason);
BN_free(r);
BN_free(s);
}
if (ctx != NULL) BN_CTX_free(ctx);
if (m != NULL) BN_clear_free(m);
if (tmp != NULL) BN_clear_free(tmp);
if (order != NULL) BN_clear_free(order);
if (kinv != NULL) BN_clear_free(kinv);
return(ret);
}
static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len, ECDSA_SIG *sig,
ECDSA *ecdsa)
{
BN_CTX *ctx;
BIGNUM *order=NULL,*u1=NULL,*u2=NULL,*m=NULL,*X=NULL;
EC_POINT *point=NULL;
int ret = -1,reason = ERR_R_BN_LIB;
if (!ecdsa || !ecdsa->group || !ecdsa->pub_key || !sig)
{
reason = ECDSA_R_MISSING_PARAMETERS;
return -1;
}
if ((ctx = BN_CTX_new()) == NULL) goto err;
if ((order = BN_new()) == NULL) goto err;
if ((u1 = BN_new()) == NULL) goto err;
if ((u2 = BN_new()) == NULL) goto err;
if ((m = BN_new()) == NULL) goto err;
if ((X = BN_new()) == NULL) goto err;
if (!EC_GROUP_get_order(ecdsa->group,order,ctx)) goto err;
if (BN_is_zero(sig->r) || sig->r->neg || BN_ucmp(sig->r, order) >= 0)
{
reason = ECDSA_R_BAD_SIGNATURE;
ret = 0;
goto err;
}
if (BN_is_zero(sig->s) || sig->s->neg || BN_ucmp(sig->s, order) >= 0)
{
reason = ECDSA_R_BAD_SIGNATURE;
ret = 0;
goto err;
}
/* calculate tmp1 = inv(S) mod order */
if ((BN_mod_inverse(u2,sig->s,order,ctx)) == NULL) goto err;
/* digest -> m */
if (BN_bin2bn(dgst,dgst_len,m) == NULL) goto err;
/* u1 = m * tmp mod order */
if (!BN_mod_mul(u1,m,u2,order,ctx)) goto err;
/* u2 = r * w mod q */
if (!BN_mod_mul(u2,sig->r,u2,order,ctx)) goto err;
if ((point = EC_POINT_new(ecdsa->group)) == NULL)
{
reason = ERR_R_EC_LIB;
goto err;
}
if (!EC_POINT_copy(point,EC_GROUP_get0_generator(ecdsa->group)))
{
reason = ERR_R_EC_LIB;
goto err;
}
if (!EC_POINT_mul(ecdsa->group,point,u1,ecdsa->pub_key,u2,ctx)
|| !EC_POINT_get_affine_coordinates(ecdsa->group,point,X,NULL,ctx))
{
reason = ERR_R_EC_LIB;
goto err;
}
if (!BN_nnmod(u1,X,order,ctx)) goto err;
/* is now in u1. If the signature is correct, it will be
* equal to R. */
ret = (BN_ucmp(u1,sig->r) == 0);
err:
if (ret != 1) ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY,reason);
if (ctx != NULL) BN_CTX_free(ctx);
if (u1 != NULL) BN_clear_free(u1);
if (u2 != NULL) BN_clear_free(u2);
if (m != NULL) BN_clear_free(m);
if (X != NULL) BN_clear_free(X);
if (order != NULL) BN_clear_free(order);
if (point != NULL) EC_POINT_free(point);
return(ret);
}

138
crypto/ecdsa/ecs_sign.c Normal file
View file

@ -0,0 +1,138 @@
/* crypto/ecdsa/ecdsa_sign.c */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* 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 "cryptlib.h"
#include <openssl/ecdsa.h>
#include <openssl/engine.h>
ECDSA_SIG * ECDSA_do_sign(const unsigned char *dgst, int dlen, ECDSA *ecdsa)
{
return ecdsa->meth->ecdsa_do_sign(dgst, dlen, ecdsa);
}
int ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
unsigned int *siglen, ECDSA *ecdsa)
{
ECDSA_SIG *s;
s=ECDSA_do_sign(dgst,dlen,ecdsa);
if (s == NULL)
{
*siglen=0;
return(0);
}
*siglen=i2d_ECDSA_SIG(s,&sig);
ECDSA_SIG_free(s);
return(1);
}
int ECDSA_sign_setup(ECDSA *ecdsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
{
return ecdsa->meth->ecdsa_sign_setup(ecdsa, ctx_in, kinvp, rp);
}

141
crypto/ecdsa/ecs_vrf.c Normal file
View file

@ -0,0 +1,141 @@
/* crypto/ecdsa/ecdsa_vrf.c */
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
/* 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 <openssl/ecdsa.h>
#include <openssl/engine.h>
/* returns
* 1: correct signature
* 0: incorrect signature
* -1: error
*/
int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, ECDSA_SIG *sig, ECDSA *ecdsa)
{
return ecdsa->meth->ecdsa_do_verify(dgst, dgst_len, sig, ecdsa);
}
/* returns
* 1: correct signature
* 0: incorrect signature
* -1: error
*/
int ECDSA_verify(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int sig_len, ECDSA *ecdsa)
{
ECDSA_SIG *s;
int ret=-1;
s = ECDSA_SIG_new();
if (s == NULL) return(ret);
if (d2i_ECDSA_SIG(&s,&sigbuf,sig_len) == NULL) goto err;
ret=ECDSA_do_verify(dgst,dgst_len,s,ecdsa);
err:
ECDSA_SIG_free(s);
return(ret);
}

View file

@ -25,13 +25,13 @@ APPS=
LIB=$(TOP)/libcrypto.a
LIBSRC= eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c \
eng_table.c eng_pkey.c eng_fat.c eng_all.c \
tb_rsa.c tb_dsa.c tb_dh.c tb_rand.c tb_cipher.c tb_digest.c \
tb_rsa.c tb_dsa.c tb_ecdsa.c tb_dh.c tb_rand.c tb_cipher.c tb_digest.c \
eng_openssl.c eng_dyn.c eng_cnf.c \
hw_atalla.c hw_cswift.c hw_ncipher.c hw_nuron.c hw_ubsec.c \
hw_openbsd_dev_crypto.c hw_aep.c hw_sureware.c
LIBOBJ= eng_err.o eng_lib.o eng_list.o eng_init.o eng_ctrl.o \
eng_table.o eng_pkey.o eng_fat.o eng_all.o \
tb_rsa.o tb_dsa.o tb_dh.o tb_rand.o tb_cipher.o tb_digest.o \
tb_rsa.o tb_dsa.o tb_ecdsa.o tb_dh.o tb_rand.o tb_cipher.o tb_digest.o \
eng_openssl.o eng_dyn.o eng_cnf.o \
hw_atalla.o hw_cswift.o hw_ncipher.o hw_nuron.o hw_ubsec.o \
hw_openbsd_dev_crypto.o hw_aep.o hw_sureware.o
@ -93,117 +93,131 @@ clean:
# DO NOT DELETE THIS LINE -- make depend depends on it.
eng_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
eng_all.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
eng_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_all.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
eng_all.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
eng_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
eng_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
eng_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
eng_all.o: ../../include/openssl/ui.h eng_all.c eng_int.h
eng_all.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
eng_all.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_all.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_all.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
eng_all.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_all.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_all.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_all.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_all.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_all.o: eng_all.c eng_int.h
eng_cnf.o: ../../e_os.h ../../include/openssl/asn1.h
eng_cnf.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_cnf.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
eng_cnf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_cnf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_cnf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_cnf.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_cnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_cnf.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_cnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_cnf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_cnf.o: ../cryptlib.h eng_cnf.c
eng_cnf.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_cnf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_cnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
eng_cnf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_cnf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
eng_cnf.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
eng_cnf.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_cnf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
eng_cnf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
eng_cnf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
eng_cnf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
eng_cnf.o: ../../include/openssl/ui.h ../cryptlib.h eng_cnf.c
eng_ctrl.o: ../../e_os.h ../../include/openssl/asn1.h
eng_ctrl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_ctrl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
eng_ctrl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_ctrl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
eng_ctrl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_ctrl.o: ../../include/openssl/opensslconf.h
eng_ctrl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_ctrl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_ctrl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_ctrl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_ctrl.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
eng_ctrl.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_ctrl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_ctrl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_ctrl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_ctrl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_ctrl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_ctrl.o: ../cryptlib.h eng_ctrl.c eng_int.h
eng_dyn.o: ../../e_os.h ../../include/openssl/asn1.h
eng_dyn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_dyn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
eng_dyn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_dyn.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
eng_dyn.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_dyn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_dyn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_dyn.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_dyn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_dyn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_dyn.o: ../cryptlib.h eng_dyn.c eng_int.h
eng_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
eng_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
eng_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_err.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
eng_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
eng_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
eng_err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
eng_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
eng_err.o: ../../include/openssl/ui.h eng_err.c
eng_dyn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_dyn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_dyn.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_dyn.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
eng_dyn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
eng_dyn.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
eng_dyn.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_dyn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
eng_dyn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
eng_dyn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
eng_dyn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
eng_dyn.o: ../../include/openssl/ui.h ../cryptlib.h eng_dyn.c eng_int.h
eng_err.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
eng_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
eng_err.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_err.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_err.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_err.o: eng_err.c
eng_fat.o: ../../e_os.h ../../include/openssl/asn1.h
eng_fat.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_fat.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
eng_fat.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_fat.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_fat.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_fat.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_fat.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_fat.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_fat.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_fat.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_fat.o: ../cryptlib.h eng_fat.c eng_int.h
eng_fat.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_fat.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_fat.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
eng_fat.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_fat.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
eng_fat.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
eng_fat.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_fat.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
eng_fat.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
eng_fat.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
eng_fat.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
eng_fat.o: ../../include/openssl/ui.h ../cryptlib.h eng_fat.c eng_int.h
eng_init.o: ../../e_os.h ../../include/openssl/asn1.h
eng_init.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_init.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
eng_init.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_init.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
eng_init.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_init.o: ../../include/openssl/opensslconf.h
eng_init.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_init.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_init.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_init.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_init.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
eng_init.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_init.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_init.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_init.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_init.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_init.o: ../cryptlib.h eng_init.c eng_int.h
eng_lib.o: ../../e_os.h ../../include/openssl/asn1.h
eng_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
eng_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
eng_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
eng_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
eng_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
eng_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
eng_lib.o: ../../include/openssl/ui.h ../cryptlib.h eng_int.h eng_lib.c
eng_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
eng_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_lib.o: ../cryptlib.h eng_int.h eng_lib.c
eng_list.o: ../../e_os.h ../../include/openssl/asn1.h
eng_list.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_list.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
eng_list.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_list.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
eng_list.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_list.o: ../../include/openssl/opensslconf.h
eng_list.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_list.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_list.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_list.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_list.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
eng_list.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_list.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_list.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_list.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_list.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_list.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_list.o: ../cryptlib.h eng_int.h eng_list.c
eng_openssl.o: ../../e_os.h ../../include/openssl/asn1.h
eng_openssl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
eng_openssl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_openssl.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
eng_openssl.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_openssl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
eng_openssl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
eng_openssl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_openssl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_openssl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_openssl.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
eng_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
eng_openssl.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
eng_openssl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
eng_openssl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
eng_openssl.o: ../../include/openssl/objects.h
eng_openssl.o: ../../include/openssl/opensslconf.h
eng_openssl.o: ../../include/openssl/opensslv.h
eng_openssl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
@ -212,48 +226,54 @@ eng_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
eng_openssl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
eng_openssl.o: ../../include/openssl/ui.h ../cryptlib.h eng_openssl.c
eng_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
eng_pkey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
eng_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
eng_pkey.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
eng_pkey.o: ../../include/openssl/opensslconf.h
eng_pkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
eng_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
eng_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
eng_pkey.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
eng_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_pkey.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_pkey.o: ../cryptlib.h eng_int.h eng_pkey.c
eng_table.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
eng_table.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
eng_table.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
eng_table.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
eng_table.o: ../../include/openssl/err.h ../../include/openssl/evp.h
eng_table.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
eng_table.o: ../../include/openssl/objects.h
eng_table.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
eng_table.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
eng_table.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
eng_table.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
eng_table.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
eng_table.o: ../../include/openssl/engine.h ../../include/openssl/err.h
eng_table.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
eng_table.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
eng_table.o: ../../include/openssl/opensslconf.h
eng_table.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
eng_table.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
eng_table.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
eng_table.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
eng_table.o: eng_int.h eng_table.c
hw_aep.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
hw_aep.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
hw_aep.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
hw_aep.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
hw_aep.o: ../../include/openssl/engine.h ../../include/openssl/err.h
hw_aep.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
hw_aep.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
hw_aep.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
hw_aep.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
hw_aep.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h hw_aep.c
hw_aep.o: hw_aep_err.c hw_aep_err.h vendor_defns/aep.h
hw_aep.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
hw_aep.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
hw_aep.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
hw_aep.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
hw_aep.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
hw_aep.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
hw_aep.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
hw_aep.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
hw_aep.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
hw_aep.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
hw_aep.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
hw_aep.o: ../../include/openssl/ui.h hw_aep.c hw_aep_err.c hw_aep_err.h
hw_aep.o: vendor_defns/aep.h
hw_atalla.o: ../../e_os.h ../../include/openssl/asn1.h
hw_atalla.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
hw_atalla.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
hw_atalla.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
hw_atalla.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
hw_atalla.o: ../../include/openssl/engine.h ../../include/openssl/err.h
hw_atalla.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
hw_atalla.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
hw_atalla.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
hw_atalla.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
hw_atalla.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
hw_atalla.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
hw_atalla.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
hw_atalla.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
hw_atalla.o: ../../include/openssl/opensslconf.h
hw_atalla.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
hw_atalla.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
hw_atalla.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
@ -261,12 +281,14 @@ hw_atalla.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
hw_atalla.o: ../cryptlib.h hw_atalla.c hw_atalla_err.c hw_atalla_err.h
hw_atalla.o: vendor_defns/atalla.h
hw_cswift.o: ../../e_os.h ../../include/openssl/asn1.h
hw_cswift.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
hw_cswift.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
hw_cswift.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
hw_cswift.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
hw_cswift.o: ../../include/openssl/engine.h ../../include/openssl/err.h
hw_cswift.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
hw_cswift.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
hw_cswift.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
hw_cswift.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
hw_cswift.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
hw_cswift.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
hw_cswift.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
hw_cswift.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
hw_cswift.o: ../../include/openssl/opensslconf.h
hw_cswift.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
hw_cswift.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
hw_cswift.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
@ -274,13 +296,15 @@ hw_cswift.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
hw_cswift.o: ../cryptlib.h hw_cswift.c hw_cswift_err.c hw_cswift_err.h
hw_cswift.o: vendor_defns/cswift.h
hw_ncipher.o: ../../e_os.h ../../include/openssl/asn1.h
hw_ncipher.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
hw_ncipher.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
hw_ncipher.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
hw_ncipher.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
hw_ncipher.o: ../../include/openssl/engine.h ../../include/openssl/err.h
hw_ncipher.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
hw_ncipher.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
hw_ncipher.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
hw_ncipher.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
hw_ncipher.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
hw_ncipher.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
hw_ncipher.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
hw_ncipher.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
hw_ncipher.o: ../../include/openssl/err.h ../../include/openssl/evp.h
hw_ncipher.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
hw_ncipher.o: ../../include/openssl/objects.h
hw_ncipher.o: ../../include/openssl/opensslconf.h
hw_ncipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
hw_ncipher.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
@ -292,23 +316,28 @@ hw_ncipher.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
hw_ncipher.o: ../cryptlib.h hw_ncipher.c hw_ncipher_err.c hw_ncipher_err.h
hw_ncipher.o: vendor_defns/hwcryptohook.h
hw_nuron.o: ../../e_os.h ../../include/openssl/asn1.h
hw_nuron.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
hw_nuron.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
hw_nuron.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
hw_nuron.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
hw_nuron.o: ../../include/openssl/engine.h ../../include/openssl/err.h
hw_nuron.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
hw_nuron.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
hw_nuron.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
hw_nuron.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
hw_nuron.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
hw_nuron.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
hw_nuron.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
hw_nuron.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
hw_nuron.o: ../../include/openssl/opensslconf.h
hw_nuron.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
hw_nuron.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
hw_nuron.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
hw_nuron.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
hw_nuron.o: ../cryptlib.h hw_nuron.c hw_nuron_err.c hw_nuron_err.h
hw_openbsd_dev_crypto.o: ../../include/openssl/asn1.h
hw_openbsd_dev_crypto.o: ../../include/openssl/asn1t.h
hw_openbsd_dev_crypto.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
hw_openbsd_dev_crypto.o: ../../include/openssl/conf.h
hw_openbsd_dev_crypto.o: ../../include/openssl/crypto.h
hw_openbsd_dev_crypto.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
hw_openbsd_dev_crypto.o: ../../include/openssl/e_os2.h
hw_openbsd_dev_crypto.o: ../../include/openssl/ec.h
hw_openbsd_dev_crypto.o: ../../include/openssl/ecdsa.h
hw_openbsd_dev_crypto.o: ../../include/openssl/engine.h
hw_openbsd_dev_crypto.o: ../../include/openssl/err.h
hw_openbsd_dev_crypto.o: ../../include/openssl/evp.h
@ -326,13 +355,15 @@ hw_openbsd_dev_crypto.o: ../../include/openssl/symhacks.h
hw_openbsd_dev_crypto.o: ../../include/openssl/ui.h ../evp/evp_locl.h eng_int.h
hw_openbsd_dev_crypto.o: hw_openbsd_dev_crypto.c
hw_sureware.o: ../../e_os.h ../../include/openssl/asn1.h
hw_sureware.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
hw_sureware.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
hw_sureware.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
hw_sureware.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
hw_sureware.o: ../../include/openssl/engine.h ../../include/openssl/err.h
hw_sureware.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
hw_sureware.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
hw_sureware.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
hw_sureware.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
hw_sureware.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
hw_sureware.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
hw_sureware.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
hw_sureware.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
hw_sureware.o: ../../include/openssl/err.h ../../include/openssl/evp.h
hw_sureware.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
hw_sureware.o: ../../include/openssl/objects.h
hw_sureware.o: ../../include/openssl/opensslconf.h
hw_sureware.o: ../../include/openssl/opensslv.h
hw_sureware.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
@ -345,89 +376,111 @@ hw_sureware.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h
hw_sureware.o: engine.h hw_sureware.c hw_sureware_err.c hw_sureware_err.h
hw_sureware.o: vendor_defns/sureware.h
hw_ubsec.o: ../../e_os.h ../../include/openssl/asn1.h
hw_ubsec.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
hw_ubsec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
hw_ubsec.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
hw_ubsec.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
hw_ubsec.o: ../../include/openssl/engine.h ../../include/openssl/err.h
hw_ubsec.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
hw_ubsec.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
hw_ubsec.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
hw_ubsec.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
hw_ubsec.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
hw_ubsec.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
hw_ubsec.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
hw_ubsec.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
hw_ubsec.o: ../../include/openssl/opensslconf.h
hw_ubsec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
hw_ubsec.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
hw_ubsec.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
hw_ubsec.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
hw_ubsec.o: ../cryptlib.h hw_ubsec.c hw_ubsec_err.c hw_ubsec_err.h
hw_ubsec.o: vendor_defns/hw_ubsec.h
tb_cipher.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
tb_cipher.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
tb_cipher.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
tb_cipher.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
tb_cipher.o: ../../include/openssl/err.h ../../include/openssl/evp.h
tb_cipher.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
tb_cipher.o: ../../include/openssl/objects.h
tb_cipher.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
tb_cipher.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
tb_cipher.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
tb_cipher.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
tb_cipher.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
tb_cipher.o: ../../include/openssl/engine.h ../../include/openssl/err.h
tb_cipher.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
tb_cipher.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
tb_cipher.o: ../../include/openssl/opensslconf.h
tb_cipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
tb_cipher.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
tb_cipher.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
tb_cipher.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
tb_cipher.o: eng_int.h tb_cipher.c
tb_dh.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
tb_dh.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
tb_dh.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
tb_dh.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
tb_dh.o: ../../include/openssl/err.h ../../include/openssl/evp.h
tb_dh.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
tb_dh.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
tb_dh.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
tb_dh.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
tb_dh.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
tb_dh.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h eng_int.h
tb_dh.o: tb_dh.c
tb_digest.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
tb_digest.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
tb_digest.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
tb_digest.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
tb_digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
tb_digest.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
tb_digest.o: ../../include/openssl/objects.h
tb_dh.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
tb_dh.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
tb_dh.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
tb_dh.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
tb_dh.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
tb_dh.o: ../../include/openssl/engine.h ../../include/openssl/err.h
tb_dh.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
tb_dh.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
tb_dh.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
tb_dh.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
tb_dh.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
tb_dh.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
tb_dh.o: ../../include/openssl/ui.h eng_int.h tb_dh.c
tb_digest.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
tb_digest.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
tb_digest.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
tb_digest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
tb_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
tb_digest.o: ../../include/openssl/engine.h ../../include/openssl/err.h
tb_digest.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
tb_digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
tb_digest.o: ../../include/openssl/opensslconf.h
tb_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
tb_digest.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
tb_digest.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
tb_digest.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
tb_digest.o: eng_int.h tb_digest.c
tb_dsa.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
tb_dsa.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
tb_dsa.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
tb_dsa.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
tb_dsa.o: ../../include/openssl/err.h ../../include/openssl/evp.h
tb_dsa.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
tb_dsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
tb_dsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
tb_dsa.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
tb_dsa.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
tb_dsa.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h eng_int.h
tb_dsa.o: tb_dsa.c
tb_rand.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
tb_rand.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
tb_rand.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
tb_rand.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
tb_rand.o: ../../include/openssl/err.h ../../include/openssl/evp.h
tb_rand.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
tb_rand.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
tb_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
tb_rand.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
tb_rand.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
tb_rand.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
tb_rand.o: eng_int.h tb_rand.c
tb_rsa.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
tb_rsa.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
tb_rsa.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
tb_rsa.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
tb_rsa.o: ../../include/openssl/err.h ../../include/openssl/evp.h
tb_rsa.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
tb_rsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
tb_rsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
tb_rsa.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
tb_rsa.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
tb_rsa.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h eng_int.h
tb_rsa.o: tb_rsa.c
tb_dsa.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
tb_dsa.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
tb_dsa.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
tb_dsa.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
tb_dsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
tb_dsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
tb_dsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
tb_dsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
tb_dsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
tb_dsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
tb_dsa.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
tb_dsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
tb_dsa.o: ../../include/openssl/ui.h eng_int.h tb_dsa.c
tb_ecdsa.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
tb_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
tb_ecdsa.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
tb_ecdsa.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
tb_ecdsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
tb_ecdsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
tb_ecdsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
tb_ecdsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
tb_ecdsa.o: ../../include/openssl/opensslconf.h
tb_ecdsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
tb_ecdsa.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
tb_ecdsa.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
tb_ecdsa.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
tb_ecdsa.o: eng_int.h tb_ecdsa.c
tb_rand.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
tb_rand.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
tb_rand.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
tb_rand.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
tb_rand.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
tb_rand.o: ../../include/openssl/engine.h ../../include/openssl/err.h
tb_rand.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
tb_rand.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
tb_rand.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
tb_rand.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
tb_rand.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
tb_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
tb_rand.o: ../../include/openssl/ui.h eng_int.h tb_rand.c
tb_rsa.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
tb_rsa.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
tb_rsa.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
tb_rsa.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
tb_rsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
tb_rsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
tb_rsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
tb_rsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
tb_rsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
tb_rsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
tb_rsa.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
tb_rsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
tb_rsa.o: ../../include/openssl/ui.h eng_int.h tb_rsa.c

View file

@ -146,6 +146,7 @@ struct engine_st
const RSA_METHOD *rsa_meth;
const DSA_METHOD *dsa_meth;
const DH_METHOD *dh_meth;
const ECDSA_METHOD *ecdsa_meth;
const RAND_METHOD *rand_meth;
/* Cipher handling is via this callback */
ENGINE_CIPHERS_PTR ciphers;

View file

@ -323,6 +323,9 @@ static void engine_cpy(ENGINE *dest, const ENGINE *src)
#endif
#ifndef OPENSSL_NO_DH
dest->dh_meth = src->dh_meth;
#endif
#ifndef OPENSSL_NO_ECDSA
dest->ecdsa_meth = src->ecdsa_meth;
#endif
dest->rand_meth = src->rand_meth;
dest->ciphers = src->ciphers;

View file

@ -70,6 +70,9 @@
#ifndef OPENSSL_NO_DH
#include <openssl/dh.h>
#endif
#ifndef OPENSSL_NO_ECDSA
#include <openssl/ecdsa.h>
#endif
#include <openssl/rand.h>
#include <openssl/ui.h>
#include <openssl/symhacks.h>
@ -89,6 +92,9 @@ typedef void DSA_METHOD;
#ifdef OPENSSL_NO_DH
typedef void DH_METHOD;
#endif
#ifdef OPENSS_NO_ECDSA
typedef void ECDSA_METHOD;
#endif
/* These flags are used to control combinations of algorithm (methods)
* by bitwise "OR"ing. */
@ -96,6 +102,7 @@ typedef void DH_METHOD;
#define ENGINE_METHOD_DSA (unsigned int)0x0002
#define ENGINE_METHOD_DH (unsigned int)0x0004
#define ENGINE_METHOD_RAND (unsigned int)0x0008
#define ENGINE_METHOD_ECDSA (unsigned int)0x000F
#define ENGINE_METHOD_CIPHERS (unsigned int)0x0040
#define ENGINE_METHOD_DIGESTS (unsigned int)0x0080
/* Obvious all-or-nothing cases. */
@ -330,6 +337,10 @@ int ENGINE_register_DSA(ENGINE *e);
void ENGINE_unregister_DSA(ENGINE *e);
void ENGINE_register_all_DSA(void);
int ENGINE_register_ECDSA(ENGINE *e);
void ENGINE_unregister_ECDSA(ENGINE *e);
void ENGINE_register_all_ECDSA(void);
int ENGINE_register_DH(ENGINE *e);
void ENGINE_unregister_DH(ENGINE *e);
void ENGINE_register_all_DH(void);
@ -409,6 +420,7 @@ int ENGINE_set_id(ENGINE *e, const char *id);
int ENGINE_set_name(ENGINE *e, const char *name);
int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth);
int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth);
int ENGINE_set_ECDSA(ENGINE *e, const ECDSA_METHOD *ecdsa_meth);
int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth);
int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth);
int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f);
@ -441,6 +453,7 @@ const char *ENGINE_get_id(const ENGINE *e);
const char *ENGINE_get_name(const ENGINE *e);
const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e);
const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e);
const ECDSA_METHOD *ENGINE_get_ECDSA(const ENGINE *e);
const DH_METHOD *ENGINE_get_DH(const ENGINE *e);
const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e);
ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e);
@ -493,6 +506,7 @@ EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,
ENGINE *ENGINE_get_default_RSA(void);
/* Same for the other "methods" */
ENGINE *ENGINE_get_default_DSA(void);
ENGINE *ENGINE_get_default_ECDSA(void);
ENGINE *ENGINE_get_default_DH(void);
ENGINE *ENGINE_get_default_RAND(void);
/* These functions can be used to get a functional reference to perform
@ -508,6 +522,7 @@ int ENGINE_set_default_RSA(ENGINE *e);
int ENGINE_set_default_string(ENGINE *e, const char *list);
/* Same for the other "methods" */
int ENGINE_set_default_DSA(ENGINE *e);
int ENGINE_set_default_ECDSA(ENGINE *e);
int ENGINE_set_default_DH(ENGINE *e);
int ENGINE_set_default_RAND(ENGINE *e);
int ENGINE_set_default_ciphers(ENGINE *e);

120
crypto/engine/tb_ecdsa.c Normal file
View file

@ -0,0 +1,120 @@
/* ====================================================================
* Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* licensing@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#include <openssl/evp.h>
#include <openssl/engine.h>
#include "eng_int.h"
/* If this symbol is defined then ENGINE_get_default_ECDSA(), the function that is
* used by ECDSA to hook in implementation code and cache defaults (etc), will
* display brief debugging summaries to stderr with the 'nid'. */
/* #define ENGINE_ECDSA_DEBUG */
static ENGINE_TABLE *ecdsa_table = NULL;
static const int dummy_nid = 1;
void ENGINE_unregister_ECDSA(ENGINE *e)
{
engine_table_unregister(&ecdsa_table, e);
}
static void engine_unregister_all_ECDSA()
{
engine_table_cleanup(&ecdsa_table);
}
int ENGINE_register_ECDSA(ENGINE *e)
{
if(e->ecdsa_meth)
return engine_table_register(&ecdsa_table,
&engine_unregister_all_ECDSA, e, &dummy_nid, 1, 0);
return 1;
}
void ENGINE_register_all_ECDSA()
{
ENGINE *e;
for(e=ENGINE_get_first() ; e ; e=ENGINE_get_next(e))
ENGINE_register_ECDSA(e);
}
int ENGINE_set_default_ECDSA(ENGINE *e)
{
if(e->ecdsa_meth)
return engine_table_register(&ecdsa_table,
&engine_unregister_all_ECDSA, e, &dummy_nid, 1, 0);
return 1;
}
/* Exposed API function to get a functional reference from the implementation
* table (ie. try to get a functional reference from the tabled structural
* references). */
ENGINE *ENGINE_get_default_ECDSA(void)
{
return engine_table_select(&ecdsa_table, dummy_nid);
}
/* Obtains an ECDSA implementation from an ENGINE functional reference */
const ECDSA_METHOD *ENGINE_get_ECDSA(const ENGINE *e)
{
return e->ecdsa_meth;
}
/* Sets an ECDSA implementation in an ENGINE structure */
int ENGINE_set_ECDSA(ENGINE *e, const ECDSA_METHOD *ecdsa_meth)
{
e->ecdsa_meth = ecdsa_meth;
return 1;
}

View file

@ -85,12 +85,13 @@ err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
err.o: ../../include/openssl/symhacks.h ../cryptlib.h err.c
err_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
err_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
err_all.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
err_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
err_all.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
err_all.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
err_all.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
err_all.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
err_all.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
err_all.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
err_all.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
err_all.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
err_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
err_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
err_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
err_all.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h

View file

@ -131,6 +131,7 @@ typedef struct err_state_st
#define ERR_LIB_OCSP 39
#define ERR_LIB_UI 40
#define ERR_LIB_COMP 41
#define ERR_LIB_ECDSA 42
#define ERR_LIB_USER 128
@ -159,6 +160,7 @@ typedef struct err_state_st
#define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),__FILE__,__LINE__)
#define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),__FILE__,__LINE__)
#define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),ERR_file_name,__LINE__)
#define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),__FILE__,__LINE__)
/* Borland C seems too stupid to be able to shift and do longs in
* the pre-processor :-( */
@ -210,6 +212,7 @@ typedef struct err_state_st
#define ERR_R_OCSP_LIB ERR_LIB_OCSP /* 39 */
#define ERR_R_UI_LIB ERR_LIB_UI /* 40 */
#define ERR_R_COMP_LIB ERR_LIB_COMP /* 41 */
#define ERR_R_ECDSA_LIB ERR_LIB_ECDSA /* 42 */
#define ERR_R_NESTED_ASN1_ERROR 58
#define ERR_R_BAD_ASN1_OBJECT_HEADER 59

View file

@ -27,10 +27,12 @@ L DSO crypto/dso/dso.h crypto/dso/dso_err.c
L ENGINE crypto/engine/engine.h crypto/engine/eng_err.c
L OCSP crypto/ocsp/ocsp.h crypto/ocsp/ocsp_err.c
L UI crypto/ui/ui.h crypto/ui/ui_err.c
L ECDSA crypto/ecdsa/ecdsa.h crypto/ecdsa/ecs_err.c
# additional header files to be scanned for function names
L NONE crypto/x509/x509_vfy.h NONE
L NONE crypto/ec/ec_lcl.h NONE
L NONE crypto/ecdsa/ecs_locl.h NONE
F RSAREF_F_RSA_BN2BIN

View file

@ -29,7 +29,7 @@ LIBSRC= encode.c digest.c evp_enc.c evp_key.c \
e_rc4.c e_aes.c names.c \
e_xcbc_d.c e_rc2.c e_cast.c e_rc5.c \
m_null.c m_md2.c m_md4.c m_md5.c m_sha.c m_sha1.c \
m_dss.c m_dss1.c m_mdc2.c m_ripemd.c \
m_dss.c m_dss1.c m_mdc2.c m_ripemd.c m_ecdsa.c\
p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c \
bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \
c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \
@ -40,7 +40,7 @@ LIBOBJ= encode.o digest.o evp_enc.o evp_key.o \
e_rc4.o e_aes.o names.o \
e_xcbc_d.o e_rc2.o e_cast.o e_rc5.o \
m_null.o m_md2.o m_md4.o m_md5.o m_sha.o m_sha1.o \
m_dss.o m_dss1.o m_mdc2.o m_ripemd.o \
m_dss.o m_dss1.o m_mdc2.o m_ripemd.o m_ecdsa.o\
p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o \
bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o \
c_all.o c_allc.o c_alld.o evp_lib.o bio_ok.o \
@ -148,10 +148,12 @@ c_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
c_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
c_all.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
c_all.o: ../../include/openssl/symhacks.h ../cryptlib.h c_all.c
c_allc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
c_allc.o: ../../e_os.h ../../include/openssl/asn1.h
c_allc.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
c_allc.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
c_allc.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
c_allc.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
c_allc.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
c_allc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
c_allc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
c_allc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -161,10 +163,12 @@ c_allc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
c_allc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
c_allc.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
c_allc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h c_allc.c
c_alld.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
c_alld.o: ../../e_os.h ../../include/openssl/asn1.h
c_alld.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
c_alld.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
c_alld.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
c_alld.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
c_alld.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
c_alld.o: ../../include/openssl/err.h ../../include/openssl/evp.h
c_alld.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
c_alld.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -174,10 +178,12 @@ c_alld.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
c_alld.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
c_alld.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
c_alld.o: ../../include/openssl/x509_vfy.h ../cryptlib.h c_alld.c
digest.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
digest.o: ../../e_os.h ../../include/openssl/asn1.h
digest.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
digest.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
digest.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
digest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
digest.o: ../../include/openssl/engine.h ../../include/openssl/err.h
digest.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@ -308,18 +314,19 @@ encode.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
encode.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
encode.o: ../../include/openssl/symhacks.h ../cryptlib.h encode.c
evp_enc.o: ../../e_os.h ../../include/openssl/asn1.h
evp_enc.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
evp_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
evp_enc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
evp_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
evp_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
evp_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
evp_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
evp_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
evp_enc.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
evp_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
evp_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
evp_enc.o: ../cryptlib.h evp_enc.c evp_locl.h
evp_enc.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
evp_enc.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
evp_enc.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
evp_enc.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
evp_enc.o: ../../include/openssl/engine.h ../../include/openssl/err.h
evp_enc.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
evp_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
evp_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
evp_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
evp_enc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
evp_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
evp_enc.o: ../../include/openssl/ui.h ../cryptlib.h evp_enc.c evp_locl.h
evp_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
evp_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
evp_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
@ -330,19 +337,20 @@ evp_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
evp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
evp_err.o: evp_err.c
evp_key.o: ../../e_os.h ../../include/openssl/asn1.h
evp_key.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
evp_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
evp_key.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
evp_key.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
evp_key.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
evp_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
evp_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
evp_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
evp_key.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
evp_key.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
evp_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
evp_key.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
evp_key.o: ../cryptlib.h evp_key.c
evp_key.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
evp_key.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
evp_key.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
evp_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
evp_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
evp_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
evp_key.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
evp_key.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
evp_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
evp_key.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
evp_key.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
evp_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
evp_key.o: ../../include/openssl/ui.h ../../include/openssl/x509.h
evp_key.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_key.c
evp_lib.o: ../../e_os.h ../../include/openssl/asn1.h
evp_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
evp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
@ -354,36 +362,41 @@ evp_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
evp_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
evp_lib.o: ../cryptlib.h evp_lib.c
evp_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
evp_pbe.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
evp_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
evp_pbe.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
evp_pbe.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
evp_pbe.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
evp_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
evp_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
evp_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
evp_pbe.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
evp_pbe.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
evp_pbe.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
evp_pbe.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_pbe.c
evp_pbe.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
evp_pbe.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
evp_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
evp_pbe.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
evp_pbe.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
evp_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
evp_pbe.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
evp_pbe.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
evp_pbe.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
evp_pbe.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
evp_pbe.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
evp_pbe.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
evp_pbe.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
evp_pbe.o: ../cryptlib.h evp_pbe.c
evp_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
evp_pkey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
evp_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
evp_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
evp_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
evp_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
evp_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
evp_pkey.o: ../../include/openssl/opensslconf.h
evp_pkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
evp_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
evp_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
evp_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
evp_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
evp_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
evp_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
evp_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
evp_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
evp_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
evp_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
evp_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
evp_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
evp_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_pkey.c
m_dss.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_dss.o: ../../e_os.h ../../include/openssl/asn1.h
m_dss.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_dss.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_dss.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_dss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_dss.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_dss.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_dss.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
m_dss.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -393,10 +406,12 @@ m_dss.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
m_dss.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
m_dss.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
m_dss.o: ../cryptlib.h m_dss.c
m_dss1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_dss1.o: ../../e_os.h ../../include/openssl/asn1.h
m_dss1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_dss1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_dss1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_dss1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_dss1.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_dss1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_dss1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
m_dss1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -406,10 +421,27 @@ m_dss1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
m_dss1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
m_dss1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
m_dss1.o: ../cryptlib.h m_dss1.c
m_md2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h
m_ecdsa.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_ecdsa.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_ecdsa.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_ecdsa.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_ecdsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_ecdsa.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_ecdsa.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
m_ecdsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
m_ecdsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
m_ecdsa.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
m_ecdsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
m_ecdsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
m_ecdsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
m_ecdsa.o: ../cryptlib.h m_ecdsa.c
m_md2.o: ../../e_os.h ../../include/openssl/asn1.h
m_md2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_md2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_md2.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_md2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_md2.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_md2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_md2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
m_md2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@ -419,10 +451,12 @@ m_md2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
m_md2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
m_md2.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
m_md2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_md2.c
m_md4.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_md4.o: ../../e_os.h ../../include/openssl/asn1.h
m_md4.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_md4.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_md4.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_md4.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_md4.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_md4.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_md4.o: ../../include/openssl/lhash.h ../../include/openssl/md4.h
m_md4.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@ -432,10 +466,12 @@ m_md4.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
m_md4.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
m_md4.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
m_md4.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_md4.c
m_md5.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_md5.o: ../../e_os.h ../../include/openssl/asn1.h
m_md5.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_md5.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_md5.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_md5.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_md5.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_md5.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_md5.o: ../../include/openssl/lhash.h ../../include/openssl/md5.h
m_md5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@ -445,11 +481,13 @@ m_md5.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
m_md5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
m_md5.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
m_md5.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_md5.c
m_mdc2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_mdc2.o: ../../e_os.h ../../include/openssl/asn1.h
m_mdc2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_mdc2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_mdc2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
m_mdc2.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
m_mdc2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_mdc2.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_mdc2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_mdc2.o: ../../include/openssl/lhash.h ../../include/openssl/mdc2.h
m_mdc2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@ -460,10 +498,12 @@ m_mdc2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
m_mdc2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
m_mdc2.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
m_mdc2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_mdc2.c
m_null.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_null.o: ../../e_os.h ../../include/openssl/asn1.h
m_null.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_null.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_null.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_null.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_null.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_null.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_null.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
m_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -474,23 +514,26 @@ m_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
m_null.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
m_null.o: ../cryptlib.h m_null.c
m_ripemd.o: ../../e_os.h ../../include/openssl/asn1.h
m_ripemd.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
m_ripemd.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
m_ripemd.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
m_ripemd.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
m_ripemd.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
m_ripemd.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
m_ripemd.o: ../../include/openssl/opensslconf.h
m_ripemd.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_ripemd.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_ripemd.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_ripemd.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_ripemd.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_ripemd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_ripemd.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
m_ripemd.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
m_ripemd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
m_ripemd.o: ../../include/openssl/pkcs7.h ../../include/openssl/ripemd.h
m_ripemd.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
m_ripemd.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
m_ripemd.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
m_ripemd.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_ripemd.c
m_sha.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_sha.o: ../../e_os.h ../../include/openssl/asn1.h
m_sha.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_sha.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_sha.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_sha.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_sha.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_sha.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_sha.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
m_sha.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -500,10 +543,12 @@ m_sha.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
m_sha.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
m_sha.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
m_sha.o: ../cryptlib.h m_sha.c
m_sha1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
m_sha1.o: ../../e_os.h ../../include/openssl/asn1.h
m_sha1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
m_sha1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
m_sha1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
m_sha1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
m_sha1.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
m_sha1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
m_sha1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
m_sha1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -513,10 +558,12 @@ m_sha1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
m_sha1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
m_sha1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
m_sha1.o: ../cryptlib.h m_sha1.c
names.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
names.o: ../../e_os.h ../../include/openssl/asn1.h
names.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
names.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
names.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
names.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
names.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
names.o: ../../include/openssl/err.h ../../include/openssl/evp.h
names.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -527,36 +574,42 @@ names.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
names.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
names.o: ../cryptlib.h names.c
p5_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
p5_crpt.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p5_crpt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p5_crpt.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p5_crpt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p5_crpt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p5_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p5_crpt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
p5_crpt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
p5_crpt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p5_crpt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p5_crpt.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p5_crpt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p5_crpt.c
p5_crpt.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p5_crpt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p5_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p5_crpt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p5_crpt.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p5_crpt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p5_crpt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p5_crpt.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p5_crpt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p5_crpt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p5_crpt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p5_crpt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p5_crpt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p5_crpt.o: ../cryptlib.h p5_crpt.c
p5_crpt2.o: ../../e_os.h ../../include/openssl/asn1.h
p5_crpt2.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p5_crpt2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p5_crpt2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p5_crpt2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p5_crpt2.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
p5_crpt2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p5_crpt2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p5_crpt2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p5_crpt2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p5_crpt2.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p5_crpt2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p5_crpt2.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p5_crpt2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p5_crpt2.o: ../../include/openssl/hmac.h ../../include/openssl/lhash.h
p5_crpt2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p5_crpt2.o: ../../include/openssl/opensslconf.h
p5_crpt2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p5_crpt2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p5_crpt2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p5_crpt2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p5_crpt2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p5_crpt2.o: ../cryptlib.h p5_crpt2.c
p_dec.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
p_dec.o: ../../e_os.h ../../include/openssl/asn1.h
p_dec.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p_dec.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p_dec.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p_dec.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p_dec.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p_dec.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p_dec.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p_dec.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -566,10 +619,12 @@ p_dec.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p_dec.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p_dec.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p_dec.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_dec.c
p_enc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
p_enc.o: ../../e_os.h ../../include/openssl/asn1.h
p_enc.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p_enc.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p_enc.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p_enc.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p_enc.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -580,23 +635,26 @@ p_enc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p_enc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_enc.c
p_lib.o: ../../e_os.h ../../include/openssl/asn1.h
p_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
p_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p_lib.o: ../cryptlib.h p_lib.c
p_open.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
p_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
p_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
p_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
p_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
p_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
p_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_lib.c
p_open.o: ../../e_os.h ../../include/openssl/asn1.h
p_open.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p_open.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p_open.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p_open.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p_open.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p_open.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p_open.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p_open.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -606,10 +664,12 @@ p_open.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p_open.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p_open.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p_open.o: ../cryptlib.h p_open.c
p_seal.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
p_seal.o: ../../e_os.h ../../include/openssl/asn1.h
p_seal.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p_seal.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p_seal.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p_seal.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p_seal.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p_seal.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p_seal.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p_seal.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -619,10 +679,12 @@ p_seal.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_seal.c
p_sign.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
p_sign.o: ../../e_os.h ../../include/openssl/asn1.h
p_sign.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p_sign.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -633,13 +695,14 @@ p_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p_sign.o: ../cryptlib.h p_sign.c
p_verify.o: ../../e_os.h ../../include/openssl/asn1.h
p_verify.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p_verify.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p_verify.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p_verify.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p_verify.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p_verify.o: ../../include/openssl/opensslconf.h
p_verify.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p_verify.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p_verify.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p_verify.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p_verify.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p_verify.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p_verify.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p_verify.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h

View file

@ -91,6 +91,9 @@ void OpenSSL_add_all_digests(void)
EVP_add_digest_alias(SN_dsaWithSHA1,"DSS1");
EVP_add_digest_alias(SN_dsaWithSHA1,"dss1");
#endif
#ifndef OPENSSL_NO_ECDSA
EVP_add_digest(EVP_ecdsa());
#endif
#endif
#if !defined(OPENSSL_NO_MDC2) && !defined(OPENSSL_NO_DES)
EVP_add_digest(EVP_mdc2());

View file

@ -94,11 +94,13 @@
#define EVP_PK_RSA 0x0001
#define EVP_PK_DSA 0x0002
#define EVP_PK_DH 0x0004
#define EVP_PK_ECDSA 0x0008
#define EVP_PKT_SIGN 0x0010
#define EVP_PKT_ENC 0x0020
#define EVP_PKT_EXCH 0x0040
#define EVP_PKS_RSA 0x0100
#define EVP_PKS_DSA 0x0200
#define EVP_PKS_ECDSA 0x0400
#define EVP_PKT_EXP 0x1000 /* <= 512 bit key */
#define EVP_PKEY_NONE NID_undef
@ -110,6 +112,7 @@
#define EVP_PKEY_DSA3 NID_dsaWithSHA1
#define EVP_PKEY_DSA4 NID_dsaWithSHA1_2
#define EVP_PKEY_DH NID_dhKeyAgreement
#define EVP_PKEY_ECDSA NID_X9_62_id_ecPublicKey
#ifdef __cplusplus
extern "C" {
@ -133,6 +136,9 @@ struct evp_pkey_st
#endif
#ifndef OPENSSL_NO_DH
struct dh_st *dh; /* DH */
#endif
#ifndef OPENSSL_NO_ECDSA
struct ecdsa_st *ecdsa; /* ECDSA */
#endif
} pkey;
int save_parameters;
@ -245,6 +251,13 @@ struct env_md_st
#define EVP_PKEY_DSA_method EVP_PKEY_NULL_method
#endif
#ifndef OPENSSL_NO_ECDSA
#define EVP_PKEY_ECDSA_method ECDSA_sign,ECDSA_verify, \
{EVP_PKEY_ECDSA,0,0,0}
#else
#define EVP_PKEY_ECDSA_method EVP_PKEY_NULL_method
#endif
#ifndef OPENSSL_NO_RSA
#define EVP_PKEY_RSA_method RSA_sign,RSA_verify, \
{EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0}
@ -385,6 +398,11 @@ typedef int (EVP_PBE_KEYGEN)(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
(char *)(dh))
#endif
#ifndef OPENSSL_NO_ECDSA
#define EVP_PKEY_assign_ECDSA(pkey,ecdsa) EVP_PKEY_assign((pkey),EVP_PKEY_ECDSA,\
(char *)(ecdsa))
#endif
/* Add some extra combinations */
#define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a))
#define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a))
@ -568,6 +586,7 @@ const EVP_MD *EVP_sha(void);
const EVP_MD *EVP_sha1(void);
const EVP_MD *EVP_dss(void);
const EVP_MD *EVP_dss1(void);
const EVP_MD *EVP_ecdsa(void);
#endif
#ifndef OPENSSL_NO_MDC2
const EVP_MD *EVP_mdc2(void);
@ -683,7 +702,11 @@ struct dh_st;
int EVP_PKEY_set1_DH(EVP_PKEY *pkey,struct dh_st *key);
struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey);
#endif
#ifndef OPENSSL_NO_ECDSA
struct ecdsa_st;
int EVP_PKEY_set1_ECDSA(EVP_PKEY *pkey,struct ecdsa_st *key);
struct ecdsa_st *EVP_PKEY_get1_ECDSA(EVP_PKEY *pkey);
#endif
EVP_PKEY * EVP_PKEY_new(void);
void EVP_PKEY_free(EVP_PKEY *pkey);
@ -741,6 +764,7 @@ void ERR_load_EVP_strings(void);
/* Function codes. */
#define EVP_F_D2I_PKEY 100
#define EVP_F_ECDSA_PKEY2PKCS8 129
#define EVP_F_EVP_CIPHERINIT 123
#define EVP_F_EVP_CIPHER_CTX_CTRL 124
#define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122
@ -759,6 +783,7 @@ void ERR_load_EVP_strings(void);
#define EVP_F_EVP_PKEY_ENCRYPT 105
#define EVP_F_EVP_PKEY_GET1_DH 119
#define EVP_F_EVP_PKEY_GET1_DSA 120
#define EVP_F_EVP_PKEY_GET1_ECDSA 130
#define EVP_F_EVP_PKEY_GET1_RSA 121
#define EVP_F_EVP_PKEY_NEW 106
#define EVP_F_EVP_RIJNDAEL 126
@ -770,6 +795,7 @@ void ERR_load_EVP_strings(void);
#define EVP_F_RC5_CTRL 125
/* Reason codes. */
#define EVP_R_ASN1_LIB 140
#define EVP_R_BAD_BLOCK_LENGTH 136
#define EVP_R_BAD_DECRYPT 100
#define EVP_R_BAD_KEY_LENGTH 137
@ -786,6 +812,7 @@ void ERR_load_EVP_strings(void);
#define EVP_R_EXPECTING_AN_RSA_KEY 127
#define EVP_R_EXPECTING_A_DH_KEY 128
#define EVP_R_EXPECTING_A_DSA_KEY 129
#define EVP_R_EXPECTING_A_ECDSA_KEY 141
#define EVP_R_INITIALIZATION_ERROR 134
#define EVP_R_INPUT_NOT_INITIALIZED 111
#define EVP_R_INVALID_KEY_LENGTH 130

View file

@ -67,6 +67,7 @@
static ERR_STRING_DATA EVP_str_functs[]=
{
{ERR_PACK(0,EVP_F_D2I_PKEY,0), "D2I_PKEY"},
{ERR_PACK(0,EVP_F_ECDSA_PKEY2PKCS8,0), "ECDSA_PKEY2PKCS8"},
{ERR_PACK(0,EVP_F_EVP_CIPHERINIT,0), "EVP_CipherInit"},
{ERR_PACK(0,EVP_F_EVP_CIPHER_CTX_CTRL,0), "EVP_CIPHER_CTX_ctrl"},
{ERR_PACK(0,EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH,0), "EVP_CIPHER_CTX_set_key_length"},
@ -85,6 +86,7 @@ static ERR_STRING_DATA EVP_str_functs[]=
{ERR_PACK(0,EVP_F_EVP_PKEY_ENCRYPT,0), "EVP_PKEY_encrypt"},
{ERR_PACK(0,EVP_F_EVP_PKEY_GET1_DH,0), "EVP_PKEY_get1_DH"},
{ERR_PACK(0,EVP_F_EVP_PKEY_GET1_DSA,0), "EVP_PKEY_get1_DSA"},
{ERR_PACK(0,EVP_F_EVP_PKEY_GET1_ECDSA,0), "EVP_PKEY_get1_ECDSA"},
{ERR_PACK(0,EVP_F_EVP_PKEY_GET1_RSA,0), "EVP_PKEY_get1_RSA"},
{ERR_PACK(0,EVP_F_EVP_PKEY_NEW,0), "EVP_PKEY_new"},
{ERR_PACK(0,EVP_F_EVP_RIJNDAEL,0), "EVP_RIJNDAEL"},
@ -99,6 +101,7 @@ static ERR_STRING_DATA EVP_str_functs[]=
static ERR_STRING_DATA EVP_str_reasons[]=
{
{EVP_R_ASN1_LIB ,"asn1 lib"},
{EVP_R_BAD_BLOCK_LENGTH ,"bad block length"},
{EVP_R_BAD_DECRYPT ,"bad decrypt"},
{EVP_R_BAD_KEY_LENGTH ,"bad key length"},
@ -115,6 +118,7 @@ static ERR_STRING_DATA EVP_str_reasons[]=
{EVP_R_EXPECTING_AN_RSA_KEY ,"expecting an rsa key"},
{EVP_R_EXPECTING_A_DH_KEY ,"expecting a dh key"},
{EVP_R_EXPECTING_A_DSA_KEY ,"expecting a dsa key"},
{EVP_R_EXPECTING_A_ECDSA_KEY ,"expecting a ecdsa key"},
{EVP_R_INITIALIZATION_ERROR ,"initialization error"},
{EVP_R_INPUT_NOT_INITIALIZED ,"input not initialized"},
{EVP_R_INVALID_KEY_LENGTH ,"invalid key length"},

View file

@ -3,7 +3,7 @@
* project 1999.
*/
/* ====================================================================
* Copyright (c) 1999 The OpenSSL Project. All rights reserved.
* Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@ -65,6 +65,9 @@
#ifndef OPENSSL_NO_DSA
static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8inf, EVP_PKEY *pkey);
#endif
#ifndef OPENSSL_NO_ECDSA
static int ecdsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8inf, EVP_PKEY *pkey);
#endif
/* Extract a private key from a PKCS8 structure */
@ -76,9 +79,14 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8)
#endif
#ifndef OPENSSL_NO_DSA
DSA *dsa = NULL;
#endif
#ifndef OPENSSL_NO_ECDSA
ECDSA *ecdsa = NULL;
#endif
#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_ECDSA)
ASN1_INTEGER *privkey;
ASN1_TYPE *t1, *t2, *param = NULL;
STACK_OF(ASN1_TYPE) *ndsa = NULL;
ASN1_TYPE *t1, *t2, *param = NULL;
STACK_OF(ASN1_TYPE) *n_stack = NULL;
BN_CTX *ctx = NULL;
int plen;
#endif
@ -88,6 +96,7 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8)
const unsigned char *cp;
#endif
int pkeylen;
int nid;
char obj_tmp[80];
if(p8->pkey->type == V_ASN1_OCTET_STRING) {
@ -104,7 +113,8 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8)
return NULL;
}
a = p8->pkeyalg;
switch (OBJ_obj2nid(a->algorithm))
nid = OBJ_obj2nid(a->algorithm);
switch(nid)
{
#ifndef OPENSSL_NO_RSA
case NID_rsaEncryption:
@ -116,97 +126,162 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8)
EVP_PKEY_assign_RSA (pkey, rsa);
break;
#endif
#ifndef OPENSSL_NO_DSA
#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_ECDSA)
case NID_ecdsa_with_SHA1:
case NID_dsa:
/* PKCS#8 DSA is weird: you just get a private key integer
/* PKCS#8 DSA/ECDSA is weird: you just get a private key integer
* and parameters in the AlgorithmIdentifier the pubkey must
* be recalculated.
*/
/* Check for broken DSA PKCS#8, UGH! */
if(*p == (V_ASN1_SEQUENCE|V_ASN1_CONSTRUCTED)) {
if(!(ndsa = ASN1_seq_unpack_ASN1_TYPE(p, pkeylen,
/* Check for broken DSA/ECDSA PKCS#8, UGH! */
if(*p == (V_ASN1_SEQUENCE|V_ASN1_CONSTRUCTED))
{
if(!(n_stack = ASN1_seq_unpack_ASN1_TYPE(p, pkeylen,
d2i_ASN1_TYPE,
ASN1_TYPE_free))) {
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto dsaerr;
}
if(sk_ASN1_TYPE_num(ndsa) != 2 ) {
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto dsaerr;
}
ASN1_TYPE_free)))
{
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto err;
}
if(sk_ASN1_TYPE_num(n_stack) != 2 )
{
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto err;
}
/* Handle Two broken types:
* SEQUENCE {parameters, priv_key}
* SEQUENCE {pub_key, priv_key}
*/
t1 = sk_ASN1_TYPE_value(ndsa, 0);
t2 = sk_ASN1_TYPE_value(ndsa, 1);
if(t1->type == V_ASN1_SEQUENCE) {
t1 = sk_ASN1_TYPE_value(n_stack, 0);
t2 = sk_ASN1_TYPE_value(n_stack, 1);
if(t1->type == V_ASN1_SEQUENCE)
{
p8->broken = PKCS8_EMBEDDED_PARAM;
param = t1;
} else if(a->parameter->type == V_ASN1_SEQUENCE) {
}
else if(a->parameter->type == V_ASN1_SEQUENCE)
{
p8->broken = PKCS8_NS_DB;
param = a->parameter;
} else {
}
else
{
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto dsaerr;
goto err;
}
if(t2->type != V_ASN1_INTEGER) {
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto dsaerr;
goto err;
}
privkey = t2->value.integer;
} else {
if (!(privkey=d2i_ASN1_INTEGER (NULL, &p, pkeylen))) {
}
else
{
if (!(privkey=d2i_ASN1_INTEGER (NULL, &p, pkeylen)))
{
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto dsaerr;
goto err;
}
param = p8->pkeyalg->parameter;
}
if (!param || (param->type != V_ASN1_SEQUENCE)) {
if (!param || (param->type != V_ASN1_SEQUENCE))
{
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto dsaerr;
goto err;
}
cp = p = param->value.sequence->data;
plen = param->value.sequence->length;
if (!(dsa = d2i_DSAparams (NULL, &cp, plen))) {
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto dsaerr;
}
/* We have parameters now set private key */
if (!(dsa->priv_key = ASN1_INTEGER_to_BN(privkey, NULL))) {
EVPerr(EVP_F_EVP_PKCS82PKEY,EVP_R_BN_DECODE_ERROR);
goto dsaerr;
}
/* Calculate public key (ouch!) */
if (!(dsa->pub_key = BN_new())) {
if (!(ctx = BN_CTX_new()))
{
EVPerr(EVP_F_EVP_PKCS82PKEY,ERR_R_MALLOC_FAILURE);
goto dsaerr;
goto err;
}
if (!(ctx = BN_CTX_new())) {
EVPerr(EVP_F_EVP_PKCS82PKEY,ERR_R_MALLOC_FAILURE);
goto dsaerr;
if (nid == NID_dsa)
{
#ifndef OPENSSL_NO_DSA
if (!(dsa = d2i_DSAparams (NULL, &cp, plen)))
{
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto err;
}
/* We have parameters now set private key */
if (!(dsa->priv_key = ASN1_INTEGER_to_BN(privkey, NULL)))
{
EVPerr(EVP_F_EVP_PKCS82PKEY,EVP_R_BN_DECODE_ERROR);
goto err;
}
/* Calculate public key (ouch!) */
if (!(dsa->pub_key = BN_new()))
{
EVPerr(EVP_F_EVP_PKCS82PKEY,ERR_R_MALLOC_FAILURE);
goto err;
}
if (!BN_mod_exp(dsa->pub_key, dsa->g,
dsa->priv_key, dsa->p, ctx))
{
EVPerr(EVP_F_EVP_PKCS82PKEY,EVP_R_BN_PUBKEY_ERROR);
goto err;
}
EVP_PKEY_assign_DSA(pkey, dsa);
BN_CTX_free(ctx);
if(n_stack) sk_ASN1_TYPE_pop_free(n_stack, ASN1_TYPE_free);
else ASN1_INTEGER_free(privkey);
#else
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM);
goto err;
#endif
}
else /* nid == NID_ecdsa_with_SHA1 */
{
#ifndef OPENSSL_NO_ECDSA
if ((ecdsa = d2i_ECDSAParameters(NULL, &cp, plen)) == NULL)
{
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto err;
}
if ((ecdsa->priv_key = ASN1_INTEGER_to_BN(privkey, NULL)) == NULL)
{
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR);
goto err;
}
if ((ecdsa->pub_key = EC_POINT_new(ecdsa->group)) == NULL)
{
EVPerr(EVP_F_EVP_PKCS82PKEY, ERR_R_EC_LIB);
goto err;
}
if (!EC_POINT_copy(ecdsa->pub_key, EC_GROUP_get0_generator(ecdsa->group)))
{
EVPerr(EVP_F_EVP_PKCS82PKEY, ERR_R_EC_LIB);
goto err;
}
if (!EC_POINT_mul(ecdsa->group, ecdsa->pub_key, ecdsa->priv_key,
NULL, NULL, ctx))
{
EVPerr(EVP_F_EVP_PKCS82PKEY, ERR_R_EC_LIB);
goto err;
}
if (!BN_mod_exp(dsa->pub_key, dsa->g,
dsa->priv_key, dsa->p, ctx)) {
EVPerr(EVP_F_EVP_PKCS82PKEY,EVP_R_BN_PUBKEY_ERROR);
goto dsaerr;
EVP_PKEY_assign_ECDSA(pkey, ecdsa);
BN_CTX_free(ctx);
if (n_stack) sk_ASN1_TYPE_pop_free(n_stack, ASN1_TYPE_free);
else
ASN1_INTEGER_free(privkey);
#else
EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM);
goto err;
#endif
}
EVP_PKEY_assign_DSA(pkey, dsa);
BN_CTX_free (ctx);
if(ndsa) sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
else ASN1_INTEGER_free(privkey);
break;
dsaerr:
BN_CTX_free (ctx);
sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
DSA_free(dsa);
EVP_PKEY_free(pkey);
err:
if (ctx) BN_CTX_free(ctx);
sk_ASN1_TYPE_pop_free(n_stack, ASN1_TYPE_free);
if (dsa) DSA_free(dsa);
if (ecdsa) ECDSA_free(ecdsa);
if (pkey) EVP_PKEY_free(pkey);
return NULL;
break;
#endif
@ -269,6 +344,15 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken)
break;
#endif
#ifndef OPENSSL_NO_ECDSA
case EVP_PKEY_ECDSA:
if (!ecdsa_pkey2pkcs8(p8, pkey))
{
PKCS8_PRIV_KEY_INFO_free(p8);
return(NULL);
}
break;
#endif
default:
EVPerr(EVP_F_EVP_PKEY2PKCS8, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM);
PKCS8_PRIV_KEY_INFO_free (p8);
@ -412,3 +496,210 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
return 1;
}
#endif
#ifndef OPENSSL_NO_ECDSA
static int ecdsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
{
ASN1_STRING *params=NULL;
ASN1_INTEGER *prkey=NULL;
ASN1_TYPE *ttmp=NULL;
STACK_OF(ASN1_TYPE) *necdsa=NULL;
unsigned char *p=NULL, *q=NULL;
int len=0;
EC_POINT *point=NULL;
if (pkey->pkey.ecdsa == NULL || pkey->pkey.ecdsa->group == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, EVP_R_MISSING_PARAMETERS);
return 0;
}
p8->pkeyalg->algorithm = OBJ_nid2obj(NID_ecdsa_with_SHA1);
len = i2d_ECDSAParameters(pkey->pkey.ecdsa, NULL);
if ((p = OPENSSL_malloc(len)) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
return 0;
}
q = p;
if (!i2d_ECDSAParameters(pkey->pkey.ecdsa, &q))
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_ECDSA_LIB);
OPENSSL_free(p);
return 0;
}
if ((params = ASN1_STRING_new()) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
OPENSSL_free(p);
return 0;
}
if (!ASN1_STRING_set(params, p, len))
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_ASN1_LIB);
OPENSSL_free(p);
return 0;
}
OPENSSL_free(p);
if ((prkey = BN_to_ASN1_INTEGER(pkey->pkey.ecdsa->priv_key, NULL)) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_ASN1_LIB);
return 0;
}
switch(p8->broken) {
case PKCS8_OK:
case PKCS8_NO_OCTET:
if (!ASN1_pack_string((char *)prkey, i2d_ASN1_INTEGER,
&p8->pkey->value.octet_string))
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
M_ASN1_INTEGER_free(prkey);
return 0;
}
ASN1_INTEGER_free(prkey);
p8->pkeyalg->parameter->value.sequence = params;
p8->pkeyalg->parameter->type = V_ASN1_SEQUENCE;
break;
case PKCS8_NS_DB:
p8->pkeyalg->parameter->value.sequence = params;
p8->pkeyalg->parameter->type = V_ASN1_SEQUENCE;
necdsa = sk_ASN1_TYPE_new_null();
if (necdsa == NULL || (ttmp = ASN1_TYPE_new()) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
return 0;
}
if ((point = EC_GROUP_get0_generator(pkey->pkey.ecdsa->group)) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_EC_LIB);
return 0;
}
len = EC_POINT_point2oct(pkey->pkey.ecdsa->group, point, POINT_CONVERSION_COMPRESSED,
NULL, 0, NULL);
p = OPENSSL_malloc(len);
if (!len || !p || !EC_POINT_point2oct(pkey->pkey.ecdsa->group, point,
POINT_CONVERSION_COMPRESSED, p, len, NULL))
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_EC_LIB);
OPENSSL_free(p);
return 0;
}
if ((ttmp->value.octet_string = ASN1_OCTET_STRING_new()) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
return 0;
}
if (!ASN1_OCTET_STRING_set(ttmp->value.octet_string, p, len))
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, EVP_R_ASN1_LIB);
return 0;
}
OPENSSL_free(p);
ttmp->type = V_ASN1_OCTET_STRING;
if (!sk_ASN1_TYPE_push(necdsa, ttmp))
{
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
ASN1_INTEGER_free(prkey);
return 0;
}
if ((ttmp = ASN1_TYPE_new()) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
return 0;
}
ttmp->value.integer = prkey;
ttmp->type = V_ASN1_INTEGER;
if (!sk_ASN1_TYPE_push(necdsa, ttmp))
{
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
ASN1_INTEGER_free(prkey);
return 0;
}
if ((p8->pkey->value.octet_string = ASN1_OCTET_STRING_new()) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
return 0;
}
if (!ASN1_seq_pack_ASN1_TYPE(necdsa, i2d_ASN1_TYPE,
&p8->pkey->value.octet_string->data,
&p8->pkey->value.octet_string->length))
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
return 0;
}
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
break;
case PKCS8_EMBEDDED_PARAM:
p8->pkeyalg->parameter->type = V_ASN1_NULL;
necdsa = sk_ASN1_TYPE_new_null();
if ((ttmp = ASN1_TYPE_new()) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
ASN1_INTEGER_free(prkey);
return 0;
}
ttmp->value.sequence = params;
ttmp->type = V_ASN1_SEQUENCE;
if (!sk_ASN1_TYPE_push(necdsa, ttmp))
{
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
ASN1_INTEGER_free(prkey);
return 0;
}
if ((ttmp = ASN1_TYPE_new()) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
ASN1_INTEGER_free(prkey);
return 0;
}
ttmp->value.integer = prkey;
ttmp->type = V_ASN1_INTEGER;
if (!sk_ASN1_TYPE_push(necdsa, ttmp))
{
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
ASN1_INTEGER_free(prkey);
return 0;
}
if ((p8->pkey->value.octet_string = ASN1_OCTET_STRING_new()) == NULL)
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
return 0;
}
if (!ASN1_seq_pack_ASN1_TYPE(necdsa, i2d_ASN1_TYPE,
&p8->pkey->value.octet_string->data,
&p8->pkey->value.octet_string->length))
{
EVPerr(EVP_F_ECDSA_PKEY2PKCS8, ERR_R_MALLOC_FAILURE);
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
return 0;
}
sk_ASN1_TYPE_pop_free(necdsa, ASN1_TYPE_free);
break;
}
return 1;
}
#endif

95
crypto/evp/m_ecdsa.c Normal file
View file

@ -0,0 +1,95 @@
/* crypto/evp/m_ecdsa.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 "cryptlib.h"
#include <openssl/evp.h>
#include <openssl/objects.h>
#include <openssl/x509.h>
#ifndef OPENSSL_NO_SHA
static int init(EVP_MD_CTX *ctx)
{ return SHA1_Init(ctx->md_data); }
static int update(EVP_MD_CTX *ctx,const void *data,unsigned long count)
{ return SHA1_Update(ctx->md_data,data,count); }
static int final(EVP_MD_CTX *ctx,unsigned char *md)
{ return SHA1_Final(md,ctx->md_data); }
static const EVP_MD ecdsa_md=
{
NID_ecdsa_with_SHA1,
NID_ecdsa_with_SHA1,
SHA_DIGEST_LENGTH,
0,
init,
update,
final,
NULL,
NULL,
EVP_PKEY_ECDSA_method,
SHA_CBLOCK,
sizeof(EVP_MD *)+sizeof(SHA_CTX),
};
const EVP_MD *EVP_ecdsa(void)
{
return(&ecdsa_md);
}
#endif

View file

@ -58,6 +58,8 @@
#include <stdio.h>
#include "cryptlib.h"
#include <openssl/bn.h>
#include <openssl/err.h>
#include <openssl/objects.h>
#include <openssl/evp.h>
#include <openssl/asn1_mac.h>
@ -67,14 +69,37 @@ static void EVP_PKEY_free_it(EVP_PKEY *x);
int EVP_PKEY_bits(EVP_PKEY *pkey)
{
if (0)
return 0;
#ifndef OPENSSL_NO_RSA
if (pkey->type == EVP_PKEY_RSA)
else if (pkey->type == EVP_PKEY_RSA)
return(BN_num_bits(pkey->pkey.rsa->n));
else
#endif
#ifndef OPENSSL_NO_DSA
if (pkey->type == EVP_PKEY_DSA)
else if (pkey->type == EVP_PKEY_DSA)
return(BN_num_bits(pkey->pkey.dsa->p));
#endif
#ifndef OPENSSL_NO_ECDSA
else if (pkey->type == EVP_PKEY_ECDSA)
{
BIGNUM *order = BN_new();
int ret;
if (!order)
{
ERR_clear_error();
return 0;
}
if (!EC_GROUP_get_order(pkey->pkey.ecdsa->group, order, NULL))
{
ERR_clear_error();
return 0;
}
ret = BN_num_bits(order);
BN_free(order);
return ret;
}
#endif
return(0);
}
@ -92,6 +117,11 @@ int EVP_PKEY_size(EVP_PKEY *pkey)
if (pkey->type == EVP_PKEY_DSA)
return(DSA_size(pkey->pkey.dsa));
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA)
return(ECDSA_size(pkey->pkey.ecdsa));
#endif
return(0);
}
@ -106,6 +136,16 @@ int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode)
pkey->save_parameters=mode;
return(ret);
}
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA)
{
int ret = pkey->save_parameters;
if (mode >= 0)
pkey->save_parameters = mode;
return(ret);
}
#endif
return(0);
}
@ -140,6 +180,15 @@ int EVP_PKEY_copy_parameters(EVP_PKEY *to, EVP_PKEY *from)
if (to->pkey.dsa->g != NULL) BN_free(to->pkey.dsa->g);
to->pkey.dsa->g=a;
}
#endif
#ifndef OPENSSL_NO_ECDSA
if (to->type == EVP_PKEY_ECDSA)
{
if (to->pkey.ecdsa->group != NULL)
EC_GROUP_free(to->pkey.ecdsa->group);
if ((to->pkey.ecdsa->group = EC_GROUP_new(EC_GROUP_method_of(from->pkey.ecdsa->group))) == NULL) goto err;
if (!EC_GROUP_copy(to->pkey.ecdsa->group,from->pkey.ecdsa->group)) goto err;
}
#endif
return(1);
err:
@ -158,6 +207,14 @@ int EVP_PKEY_missing_parameters(EVP_PKEY *pkey)
return(1);
}
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA)
{
if (pkey->pkey.ecdsa->group == NULL)
return(1);
}
#endif
return(0);
}
@ -246,6 +303,28 @@ DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey)
}
#endif
#ifndef OPENSSL_NO_ECDSA
int EVP_PKEY_set1_ECDSA(EVP_PKEY *pkey, ECDSA *key)
{
int ret = EVP_PKEY_assign_ECDSA(pkey,key);
if (ret) CRYPTO_add(&key->references, 1,CRYPTO_LOCK_ECDSA);
return ret;
}
ECDSA *EVP_PKEY_get1_ECDSA(EVP_PKEY *pkey)
{
if (pkey->type != EVP_PKEY_ECDSA)
{
EVPerr(EVP_F_EVP_PKEY_GET1_ECDSA, EVP_R_EXPECTING_A_ECDSA_KEY);
return NULL;
}
CRYPTO_add(&pkey->pkey.ecdsa->references, 1, CRYPTO_LOCK_ECDSA);
return pkey->pkey.ecdsa;
}
#endif
#ifndef OPENSSL_NO_DH
int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key)
@ -282,6 +361,8 @@ int EVP_PKEY_type(int type)
return(EVP_PKEY_DSA);
case EVP_PKEY_DH:
return(EVP_PKEY_DH);
case EVP_PKEY_ECDSA:
return(EVP_PKEY_ECDSA);
default:
return(NID_undef);
}
@ -327,6 +408,11 @@ static void EVP_PKEY_free_it(EVP_PKEY *x)
DSA_free(x->pkey.dsa);
break;
#endif
#ifndef OPENSSL_NO_ECDSA
case EVP_PKEY_ECDSA:
ECDSA_free(x->pkey.ecdsa);
break;
#endif
#ifndef OPENSSL_NO_DH
case EVP_PKEY_DH:
DH_free(x->pkey.dh);

View file

@ -87,6 +87,7 @@ ocsp_asn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_asn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_asn.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_asn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_asn.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ocsp_asn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_asn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_asn.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
@ -97,29 +98,33 @@ ocsp_asn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
ocsp_asn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
ocsp_asn.o: ../../include/openssl/x509v3.h ocsp_asn.c
ocsp_cl.o: ../../e_os.h ../../include/openssl/asn1.h
ocsp_cl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_cl.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_cl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_cl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_cl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ocsp_cl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ocsp_cl.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
ocsp_cl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
ocsp_cl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
ocsp_cl.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
ocsp_cl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
ocsp_cl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
ocsp_cl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
ocsp_cl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
ocsp_cl.o: ../../include/openssl/x509v3.h ../cryptlib.h ocsp_cl.c
ocsp_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
ocsp_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ocsp_err.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
ocsp_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
ocsp_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
ocsp_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_err.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
ocsp_cl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ocsp_cl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ocsp_cl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
ocsp_cl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
ocsp_cl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
ocsp_cl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
ocsp_cl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_cl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_cl.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
ocsp_cl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ocsp_cl.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
ocsp_cl.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
ocsp_cl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
ocsp_cl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
ocsp_cl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
ocsp_cl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
ocsp_cl.o: ../cryptlib.h ocsp_cl.c
ocsp_err.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
ocsp_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_err.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ocsp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ocsp_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ocsp_err.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
ocsp_err.o: ../../include/openssl/opensslconf.h
ocsp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ocsp_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
ocsp_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -127,14 +132,15 @@ ocsp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
ocsp_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
ocsp_err.o: ../../include/openssl/x509v3.h ocsp_err.c
ocsp_ext.o: ../../e_os.h ../../include/openssl/asn1.h
ocsp_ext.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_ext.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_ext.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_ext.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_ext.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ocsp_ext.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ocsp_ext.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
ocsp_ext.o: ../../include/openssl/opensslconf.h
ocsp_ext.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ocsp_ext.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ocsp_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
ocsp_ext.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
ocsp_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
ocsp_ext.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
ocsp_ext.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_ext.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_ext.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
ocsp_ext.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ocsp_ext.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
ocsp_ext.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
@ -142,29 +148,32 @@ ocsp_ext.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
ocsp_ext.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
ocsp_ext.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
ocsp_ext.o: ../cryptlib.h ocsp_ext.c
ocsp_ht.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
ocsp_ht.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ocsp_ht.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
ocsp_ht.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
ocsp_ht.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
ocsp_ht.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_ht.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_ht.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
ocsp_ht.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ocsp_ht.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
ocsp_ht.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
ocsp_ht.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
ocsp_ht.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
ocsp_ht.o: ../../include/openssl/x509v3.h ocsp_ht.c
ocsp_ht.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
ocsp_ht.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_ht.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_ht.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_ht.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_ht.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ocsp_ht.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ocsp_ht.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ocsp_ht.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
ocsp_ht.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
ocsp_ht.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
ocsp_ht.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
ocsp_ht.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
ocsp_ht.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
ocsp_ht.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
ocsp_ht.o: ocsp_ht.c
ocsp_lib.o: ../../e_os.h ../../include/openssl/asn1.h
ocsp_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ocsp_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ocsp_lib.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
ocsp_lib.o: ../../include/openssl/opensslconf.h
ocsp_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ocsp_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ocsp_lib.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
ocsp_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
ocsp_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
ocsp_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
ocsp_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_lib.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
ocsp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ocsp_lib.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
ocsp_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
@ -173,14 +182,16 @@ ocsp_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
ocsp_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
ocsp_lib.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
ocsp_lib.o: ../cryptlib.h ocsp_lib.c
ocsp_prn.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
ocsp_prn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ocsp_prn.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
ocsp_prn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
ocsp_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
ocsp_prn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_prn.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
ocsp_prn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
ocsp_prn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_prn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_prn.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_prn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_prn.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ocsp_prn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ocsp_prn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ocsp_prn.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
ocsp_prn.o: ../../include/openssl/opensslconf.h
ocsp_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ocsp_prn.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
ocsp_prn.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
@ -189,14 +200,15 @@ ocsp_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
ocsp_prn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
ocsp_prn.o: ../../include/openssl/x509v3.h ocsp_prn.c
ocsp_srv.o: ../../e_os.h ../../include/openssl/asn1.h
ocsp_srv.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_srv.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_srv.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_srv.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_srv.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ocsp_srv.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ocsp_srv.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
ocsp_srv.o: ../../include/openssl/opensslconf.h
ocsp_srv.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ocsp_srv.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ocsp_srv.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
ocsp_srv.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
ocsp_srv.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
ocsp_srv.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
ocsp_srv.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_srv.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_srv.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
ocsp_srv.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ocsp_srv.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
ocsp_srv.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
@ -205,14 +217,16 @@ ocsp_srv.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
ocsp_srv.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
ocsp_srv.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
ocsp_srv.o: ../cryptlib.h ocsp_srv.c
ocsp_vfy.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
ocsp_vfy.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
ocsp_vfy.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
ocsp_vfy.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
ocsp_vfy.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
ocsp_vfy.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
ocsp_vfy.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ocsp_vfy.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
ocsp_vfy.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
ocsp_vfy.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
ocsp_vfy.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
ocsp_vfy.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
ocsp_vfy.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
ocsp_vfy.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
ocsp_vfy.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ocsp_vfy.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ocsp_vfy.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
ocsp_vfy.o: ../../include/openssl/opensslconf.h
ocsp_vfy.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ocsp_vfy.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
ocsp_vfy.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h

View file

@ -83,41 +83,45 @@ clean:
# DO NOT DELETE THIS LINE -- make depend depends on it.
pem_all.o: ../../e_os.h ../../include/openssl/asn1.h
pem_all.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_all.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_all.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_all.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
pem_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
pem_all.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
pem_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
pem_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pem_all.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pem_all.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_all.c
pem_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
pem_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_err.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
pem_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pem_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pem_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pem_err.o: pem_err.c
pem_all.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_all.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_all.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_all.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
pem_all.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pem_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pem_all.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pem_all.o: ../cryptlib.h pem_all.c
pem_err.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
pem_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
pem_err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
pem_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
pem_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
pem_err.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
pem_err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
pem_err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pem_err.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pem_err.o: ../../include/openssl/x509_vfy.h pem_err.c
pem_info.o: ../../e_os.h ../../include/openssl/asn1.h
pem_info.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_info.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_info.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_info.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_info.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_info.o: ../../include/openssl/opensslconf.h
pem_info.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_info.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_info.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_info.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_info.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_info.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_info.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_info.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
@ -126,60 +130,66 @@ pem_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pem_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pem_info.o: ../cryptlib.h pem_info.c
pem_lib.o: ../../e_os.h ../../include/openssl/asn1.h
pem_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_lib.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
pem_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
pem_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
pem_lib.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
pem_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
pem_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
pem_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pem_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
pem_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
pem_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_lib.c
pem_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
pem_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
pem_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_lib.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_lib.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
pem_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
pem_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pem_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pem_lib.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
pem_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pem_lib.o: ../cryptlib.h pem_lib.c
pem_oth.o: ../../e_os.h ../../include/openssl/asn1.h
pem_oth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_oth.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_oth.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_oth.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_oth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_oth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_oth.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
pem_oth.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
pem_oth.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
pem_oth.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
pem_oth.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pem_oth.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pem_oth.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pem_oth.o: ../cryptlib.h pem_oth.c
pem_oth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_oth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_oth.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_oth.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_oth.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_oth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_oth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_oth.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_oth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_oth.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_oth.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
pem_oth.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
pem_oth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pem_oth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pem_oth.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_oth.c
pem_pk8.o: ../../e_os.h ../../include/openssl/asn1.h
pem_pk8.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_pk8.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_pk8.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_pk8.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_pk8.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_pk8.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_pk8.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
pem_pk8.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
pem_pk8.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
pem_pk8.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
pem_pk8.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
pem_pk8.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pem_pk8.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pem_pk8.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_pk8.c
pem_pk8.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_pk8.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_pk8.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_pk8.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_pk8.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_pk8.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_pk8.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_pk8.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_pk8.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_pk8.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_pk8.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
pem_pk8.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
pem_pk8.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pem_pk8.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pem_pk8.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pem_pk8.o: ../cryptlib.h pem_pk8.c
pem_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
pem_pkey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_pkey.o: ../../include/openssl/opensslconf.h
pem_pkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_pkey.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_pkey.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
@ -189,13 +199,14 @@ pem_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pem_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pem_pkey.o: ../cryptlib.h pem_pkey.c
pem_seal.o: ../../e_os.h ../../include/openssl/asn1.h
pem_seal.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_seal.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_seal.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_seal.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_seal.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_seal.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_seal.o: ../../include/openssl/opensslconf.h
pem_seal.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_seal.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_seal.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_seal.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_seal.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_seal.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_seal.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_seal.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_seal.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_seal.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
@ -204,13 +215,14 @@ pem_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pem_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pem_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_seal.c
pem_sign.o: ../../e_os.h ../../include/openssl/asn1.h
pem_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_sign.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_sign.o: ../../include/openssl/opensslconf.h
pem_sign.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_sign.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_sign.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
@ -219,13 +231,14 @@ pem_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pem_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pem_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_sign.c
pem_x509.o: ../../e_os.h ../../include/openssl/asn1.h
pem_x509.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_x509.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_x509.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_x509.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_x509.o: ../../include/openssl/opensslconf.h
pem_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_x509.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_x509.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_x509.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_x509.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_x509.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_x509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_x509.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
@ -234,13 +247,14 @@ pem_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pem_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pem_x509.o: ../cryptlib.h pem_x509.c
pem_xaux.o: ../../e_os.h ../../include/openssl/asn1.h
pem_xaux.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pem_xaux.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pem_xaux.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pem_xaux.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pem_xaux.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pem_xaux.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pem_xaux.o: ../../include/openssl/opensslconf.h
pem_xaux.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pem_xaux.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pem_xaux.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pem_xaux.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pem_xaux.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pem_xaux.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pem_xaux.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pem_xaux.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_xaux.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_xaux.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_xaux.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h

View file

@ -91,6 +91,9 @@ extern "C" {
#define PEM_OBJ_DHPARAMS 17
#define PEM_OBJ_DSAPARAMS 18
#define PEM_OBJ_PRIV_RSA_PUBLIC 19
#define PEM_OBJ_PRIV_ECDSA 20
#define PEM_OBJ_PUB_ECDSA 21
#define PEM_OBJ_ECDSAPARAMS 22
#define PEM_ERROR 30
#define PEM_DEK_DES_CBC 40
@ -126,6 +129,9 @@ extern "C" {
#define PEM_STRING_DHPARAMS "DH PARAMETERS"
#define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS"
#define PEM_STRING_DSAPARAMS "DSA PARAMETERS"
#define PEM_STRING_ECDSA "ECDSA PRIVATE KEY"
#define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY"
#define PEM_STRING_ECDSAPARAMS "ECDSA PARAMETERS"
/* Note that this structure is initialised by PEM_SealInit and cleaned up
by PEM_SealFinal (at least for now) */
@ -572,6 +578,12 @@ DECLARE_PEM_rw(DSAparams, DSA)
#endif
#ifndef OPENSSL_NO_ECDSA
DECLARE_PEM_rw_cb(ECDSAPrivateKey, ECDSA)
DECLARE_PEM_rw(ECDSA_PUBKEY, ECDSA)
DECLARE_PEM_rw(ECDSAParameters, ECDSA)
#endif
#ifndef OPENSSL_NO_DH
DECLARE_PEM_rw(DHparams, DH)

View file

@ -55,6 +55,59 @@
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
/* ====================================================================
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#include <stdio.h>
#undef SSLEAY_MACROS
@ -72,6 +125,10 @@ static RSA *pkey_get_rsa(EVP_PKEY *key, RSA **rsa);
static DSA *pkey_get_dsa(EVP_PKEY *key, DSA **dsa);
#endif
#ifndef OPENSSL_NO_ECDSA
static ECDSA *pkey_get_ecdsa(EVP_PKEY *key, ECDSA **ecdsa);
#endif
IMPLEMENT_PEM_rw(X509_REQ, X509_REQ, PEM_STRING_X509_REQ, X509_REQ)
IMPLEMENT_PEM_write(X509_REQ_NEW, X509_REQ, PEM_STRING_X509_REQ_OLD, X509_REQ)
@ -177,6 +234,50 @@ IMPLEMENT_PEM_rw(DSAparams, DSA, PEM_STRING_DSAPARAMS, DSAparams)
#endif
#ifndef OPENSSL_NO_ECDSA
static ECDSA *pkey_get_ecdsa(EVP_PKEY *key, ECDSA **ecdsa)
{
ECDSA *dtmp;
if(!key) return NULL;
dtmp = EVP_PKEY_get1_ECDSA(key);
EVP_PKEY_free(key);
if(!dtmp) return NULL;
if(ecdsa)
{
ECDSA_free(*ecdsa);
*ecdsa = dtmp;
}
return dtmp;
}
ECDSA *PEM_read_bio_ECDSAPrivateKey(BIO *bp, ECDSA **ecdsa, pem_password_cb *cb,
void *u)
{
EVP_PKEY *pktmp;
pktmp = PEM_read_bio_PrivateKey(bp, NULL, cb, u);
return pkey_get_ecdsa(pktmp, ecdsa);
}
IMPLEMENT_PEM_write_cb(ECDSAPrivateKey, ECDSA, PEM_STRING_ECDSA, ECDSAPrivateKey)
IMPLEMENT_PEM_rw(ECDSA_PUBKEY, ECDSA, PEM_STRING_PUBLIC, ECDSA_PUBKEY)
#ifndef OPENSSL_NO_FP_API
ECDSA *PEM_read_ECDSAPrivateKey(FILE *fp, ECDSA **ecdsa, pem_password_cb *cb,
void *u)
{
EVP_PKEY *pktmp;
pktmp = PEM_read_PrivateKey(fp, NULL, cb, u);
return pkey_get_ecdsa(pktmp, ecdsa);
}
#endif
IMPLEMENT_PEM_rw(ECDSAParameters, ECDSA, PEM_STRING_ECDSAPARAMS, ECDSAParameters)
#endif
#ifndef OPENSSL_NO_DH
IMPLEMENT_PEM_rw(DHparams, DH, PEM_STRING_DHPARAMS, DHparams)
@ -190,7 +291,8 @@ IMPLEMENT_PEM_rw(DHparams, DH, PEM_STRING_DHPARAMS, DHparams)
* (When reading, parameter PEM_STRING_EVP_PKEY is a wildcard for anything
* appropriate.)
*/
IMPLEMENT_PEM_write_cb(PrivateKey, EVP_PKEY, ((x->type == EVP_PKEY_DSA)?PEM_STRING_DSA:PEM_STRING_RSA), PrivateKey)
IMPLEMENT_PEM_write_cb(PrivateKey, EVP_PKEY, ((x->type == EVP_PKEY_DSA)?PEM_STRING_DSA:\
(x->type == EVP_PKEY_RSA)?PEM_STRING_RSA:PEM_STRING_ECDSA), PrivateKey)
IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY)

View file

@ -202,6 +202,30 @@ start:
raw=1;
}
else
#endif
#ifndef OPENSSL_NO_ECDSA
if (strcmp(name,PEM_STRING_ECDSA) == 0)
{
d2i=(char *(*)())d2i_ECDSAPrivateKey;
if (xi->x_pkey != NULL)
{
if (!sk_X509_INFO_push(ret,xi)) goto err;
if ((xi=X509_INFO_new()) == NULL) goto err;
goto start;
}
xi->enc_data=NULL;
xi->enc_len=0;
xi->x_pkey=X509_PKEY_new();
if ((xi->x_pkey->dec_pkey=EVP_PKEY_new()) == NULL)
goto err;
xi->x_pkey->dec_pkey->type=EVP_PKEY_ECDSA;
pp=(char **)&(xi->x_pkey->dec_pkey->pkey.ecdsa);
if ((int)strlen(header) > 10) /* assume encrypted */
raw=1;
}
else
#endif
{
d2i=NULL;

View file

@ -193,6 +193,8 @@ static int check_pem(const char *nm, const char *name)
if(!strcmp(nm,PEM_STRING_DSA) &&
!strcmp(name,PEM_STRING_EVP_PKEY)) return 1;
if(!strcmp(nm,PEM_STRING_ECDSA) &&
!strcmp(name,PEM_STRING_EVP_PKEY)) return 1;
/* Permit older strings */
if(!strcmp(nm,PEM_STRING_X509_OLD) &&

View file

@ -82,6 +82,8 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, vo
ret=d2i_PrivateKey(EVP_PKEY_RSA,x,&p,len);
else if (strcmp(nm,PEM_STRING_DSA) == 0)
ret=d2i_PrivateKey(EVP_PKEY_DSA,x,&p,len);
else if (strcmp(nm,PEM_STRING_ECDSA) == 0)
ret=d2i_PrivateKey(EVP_PKEY_ECDSA,x,&p,len);
else if (strcmp(nm,PEM_STRING_PKCS8INF) == 0) {
PKCS8_PRIV_KEY_INFO *p8inf;
p8inf=d2i_PKCS8_PRIV_KEY_INFO(NULL, &p, len);

View file

@ -86,24 +86,26 @@ clean:
# DO NOT DELETE THIS LINE -- make depend depends on it.
p12_add.o: ../../e_os.h ../../include/openssl/asn1.h
p12_add.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_add.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_add.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_add.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_add.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_add.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_add.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
p12_add.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
p12_add.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p12_add.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p12_add.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p12_add.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p12_add.o: ../cryptlib.h p12_add.c
p12_add.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_add.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_add.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_add.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_add.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_add.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_add.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_add.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_add.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_add.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_add.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p12_add.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_add.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_add.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_add.c
p12_asn.o: ../../e_os.h ../../include/openssl/asn1.h
p12_asn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_asn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_asn.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_asn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_asn.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_asn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_asn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_asn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -114,13 +116,14 @@ p12_asn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_asn.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_asn.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_asn.c
p12_attr.o: ../../e_os.h ../../include/openssl/asn1.h
p12_attr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_attr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_attr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_attr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_attr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_attr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_attr.o: ../../include/openssl/opensslconf.h
p12_attr.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_attr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_attr.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_attr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_attr.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_attr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_attr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_attr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_attr.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_attr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
@ -128,13 +131,14 @@ p12_attr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_attr.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_attr.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_attr.c
p12_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
p12_crpt.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_crpt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_crpt.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_crpt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_crpt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_crpt.o: ../../include/openssl/opensslconf.h
p12_crpt.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_crpt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_crpt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_crpt.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_crpt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_crpt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_crpt.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_crpt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_crpt.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_crpt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
@ -142,27 +146,29 @@ p12_crpt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_crpt.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_crpt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_crpt.c
p12_crt.o: ../../e_os.h ../../include/openssl/asn1.h
p12_crt.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_crt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_crt.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_crt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_crt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_crt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_crt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
p12_crt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
p12_crt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p12_crt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p12_crt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p12_crt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p12_crt.o: ../cryptlib.h p12_crt.c
p12_crt.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_crt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_crt.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_crt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_crt.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_crt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_crt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_crt.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_crt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_crt.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_crt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p12_crt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_crt.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_crt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_crt.c
p12_decr.o: ../../e_os.h ../../include/openssl/asn1.h
p12_decr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_decr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_decr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_decr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_decr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_decr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_decr.o: ../../include/openssl/opensslconf.h
p12_decr.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_decr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_decr.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_decr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_decr.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_decr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_decr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_decr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_decr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_decr.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_decr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
@ -170,13 +176,14 @@ p12_decr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_decr.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_decr.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_decr.c
p12_init.o: ../../e_os.h ../../include/openssl/asn1.h
p12_init.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_init.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_init.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_init.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_init.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_init.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_init.o: ../../include/openssl/opensslconf.h
p12_init.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_init.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_init.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_init.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_init.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_init.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_init.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_init.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_init.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_init.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
@ -184,27 +191,29 @@ p12_init.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_init.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_init.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_init.c
p12_key.o: ../../e_os.h ../../include/openssl/asn1.h
p12_key.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_key.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_key.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_key.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
p12_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
p12_key.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p12_key.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p12_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p12_key.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p12_key.o: ../cryptlib.h p12_key.c
p12_key.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_key.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_key.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_key.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_key.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_key.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_key.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p12_key.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_key.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_key.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_key.c
p12_kiss.o: ../../e_os.h ../../include/openssl/asn1.h
p12_kiss.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_kiss.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_kiss.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_kiss.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_kiss.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_kiss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_kiss.o: ../../include/openssl/opensslconf.h
p12_kiss.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_kiss.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_kiss.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_kiss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_kiss.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_kiss.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_kiss.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_kiss.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_kiss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_kiss.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_kiss.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
@ -212,13 +221,15 @@ p12_kiss.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_kiss.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_kiss.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_kiss.c
p12_mutl.o: ../../e_os.h ../../include/openssl/asn1.h
p12_mutl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_mutl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_mutl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_mutl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_mutl.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
p12_mutl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_mutl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_mutl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_mutl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_mutl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_mutl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_mutl.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_mutl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_mutl.o: ../../include/openssl/hmac.h ../../include/openssl/lhash.h
p12_mutl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_mutl.o: ../../include/openssl/opensslconf.h
p12_mutl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_mutl.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_mutl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
@ -226,13 +237,15 @@ p12_mutl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p12_mutl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p12_mutl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p12_mutl.o: ../cryptlib.h p12_mutl.c
p12_npas.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
p12_npas.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_npas.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_npas.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_npas.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_npas.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_npas.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_npas.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
p12_npas.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_npas.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_npas.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_npas.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
p12_npas.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
p12_npas.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_npas.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_npas.o: ../../include/openssl/opensslconf.h
p12_npas.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_npas.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
p12_npas.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
@ -241,57 +254,62 @@ p12_npas.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_npas.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_npas.o: ../../include/openssl/x509_vfy.h p12_npas.c
p12_p8d.o: ../../e_os.h ../../include/openssl/asn1.h
p12_p8d.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_p8d.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_p8d.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_p8d.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_p8d.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_p8d.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_p8d.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
p12_p8d.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
p12_p8d.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p12_p8d.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p12_p8d.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p12_p8d.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p12_p8d.o: ../cryptlib.h p12_p8d.c
p12_p8d.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_p8d.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_p8d.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_p8d.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_p8d.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_p8d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_p8d.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_p8d.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_p8d.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_p8d.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_p8d.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p12_p8d.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_p8d.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_p8d.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_p8d.c
p12_p8e.o: ../../e_os.h ../../include/openssl/asn1.h
p12_p8e.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_p8e.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_p8e.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_p8e.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_p8e.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_p8e.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_p8e.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
p12_p8e.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
p12_p8e.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p12_p8e.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p12_p8e.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p12_p8e.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p12_p8e.o: ../cryptlib.h p12_p8e.c
p12_p8e.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_p8e.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_p8e.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_p8e.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_p8e.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_p8e.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_p8e.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_p8e.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_p8e.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_p8e.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_p8e.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p12_p8e.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_p8e.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_p8e.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_p8e.c
p12_utl.o: ../../e_os.h ../../include/openssl/asn1.h
p12_utl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
p12_utl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p12_utl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
p12_utl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
p12_utl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
p12_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
p12_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
p12_utl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
p12_utl.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
p12_utl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
p12_utl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
p12_utl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
p12_utl.o: ../cryptlib.h p12_utl.c
pk12err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
pk12err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pk12err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pk12err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pk12err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pk12err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pk12err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pk12err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pk12err.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
pk12err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
pk12err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pk12err.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pk12err.o: ../../include/openssl/x509_vfy.h pk12err.c
p12_utl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
p12_utl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p12_utl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p12_utl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p12_utl.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
p12_utl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
p12_utl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
p12_utl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
p12_utl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
p12_utl.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
p12_utl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
p12_utl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
p12_utl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
p12_utl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_utl.c
pk12err.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
pk12err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pk12err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pk12err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pk12err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
pk12err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
pk12err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pk12err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pk12err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
pk12err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
pk12err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
pk12err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pk12err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pk12err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pk12err.o: pk12err.c

View file

@ -105,6 +105,7 @@ pk7_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pk7_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pk7_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pk7_asn1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pk7_asn1.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pk7_asn1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pk7_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pk7_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -114,13 +115,15 @@ pk7_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pk7_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pk7_asn1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pk7_asn1.o: ../cryptlib.h pk7_asn1.c
pk7_attr.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
pk7_attr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pk7_attr.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pk7_attr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pk7_attr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pk7_attr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pk7_attr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pk7_attr.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
pk7_attr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pk7_attr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pk7_attr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pk7_attr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
pk7_attr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
pk7_attr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pk7_attr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pk7_attr.o: ../../include/openssl/opensslconf.h
pk7_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pk7_attr.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pk7_attr.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
@ -129,13 +132,15 @@ pk7_attr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pk7_attr.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pk7_attr.o: pk7_attr.c
pk7_doit.o: ../../e_os.h ../../include/openssl/asn1.h
pk7_doit.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pk7_doit.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
pk7_doit.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pk7_doit.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pk7_doit.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pk7_doit.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pk7_doit.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pk7_doit.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pk7_doit.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pk7_doit.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
pk7_doit.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pk7_doit.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
pk7_doit.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
pk7_doit.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pk7_doit.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pk7_doit.o: ../../include/openssl/opensslconf.h
pk7_doit.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pk7_doit.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
pk7_doit.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
@ -144,26 +149,29 @@ pk7_doit.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pk7_doit.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
pk7_doit.o: ../cryptlib.h pk7_doit.c
pk7_lib.o: ../../e_os.h ../../include/openssl/asn1.h
pk7_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pk7_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pk7_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pk7_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pk7_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pk7_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pk7_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
pk7_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
pk7_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
pk7_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pk7_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pk7_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_lib.c
pk7_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pk7_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pk7_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pk7_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pk7_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pk7_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pk7_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pk7_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pk7_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pk7_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
pk7_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pk7_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pk7_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pk7_lib.o: ../cryptlib.h pk7_lib.c
pk7_mime.o: ../../e_os.h ../../include/openssl/asn1.h
pk7_mime.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pk7_mime.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
pk7_mime.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pk7_mime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
pk7_mime.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pk7_mime.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pk7_mime.o: ../../include/openssl/opensslconf.h
pk7_mime.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pk7_mime.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pk7_mime.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pk7_mime.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pk7_mime.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
pk7_mime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pk7_mime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pk7_mime.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pk7_mime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pk7_mime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
pk7_mime.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
@ -171,13 +179,14 @@ pk7_mime.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
pk7_mime.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
pk7_mime.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_mime.c
pk7_smime.o: ../../e_os.h ../../include/openssl/asn1.h
pk7_smime.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
pk7_smime.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
pk7_smime.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
pk7_smime.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
pk7_smime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
pk7_smime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
pk7_smime.o: ../../include/openssl/objects.h
pk7_smime.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
pk7_smime.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
pk7_smime.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
pk7_smime.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
pk7_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
pk7_smime.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
pk7_smime.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
pk7_smime.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
pk7_smime.o: ../../include/openssl/opensslconf.h
pk7_smime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pk7_smime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h

View file

@ -628,6 +628,10 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
if (si->pkey->type == EVP_PKEY_DSA)
ctx_tmp.digest=EVP_dss1();
#endif
#ifndef OPENSSL_NO_ECDSA
if (si->pkey->type == EVP_PKEY_ECDSA)
ctx_tmp.digest=EVP_ecdsa();
#endif
if (!EVP_SignFinal(&ctx_tmp,(unsigned char *)buf->data,
(unsigned int *)&buf->length,si->pkey))
@ -825,6 +829,9 @@ for (ii=0; ii<md_len; ii++) printf("%02X",md_dat[ii]); printf(" calc\n");
#ifndef OPENSSL_NO_DSA
if(pkey->type == EVP_PKEY_DSA) mdc_tmp.digest=EVP_dss1();
#endif
#ifndef OPENSSL_NO_ECDSA
if (pkey->type == EVP_PKEY_ECDSA) mdc_tmp.digest=EVP_ecdsa();
#endif
i=EVP_VerifyFinal(&mdc_tmp,os->data,os->length, pkey);
EVP_PKEY_free(pkey);

View file

@ -308,7 +308,7 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
const EVP_MD *dgst)
{
char is_dsa;
if (pkey->type == EVP_PKEY_DSA) is_dsa = 1;
if (pkey->type == EVP_PKEY_DSA || pkey->type == EVP_PKEY_ECDSA) is_dsa = 1;
else is_dsa = 0;
/* We now need to add another PKCS7_SIGNER_INFO entry */
ASN1_INTEGER_set(p7i->version,1);

View file

@ -102,12 +102,13 @@ rand_err.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
rand_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
rand_err.o: rand_err.c
rand_lib.o: ../../e_os.h ../../include/openssl/asn1.h
rand_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
rand_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
rand_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
rand_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
rand_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
rand_lib.o: ../../include/openssl/opensslconf.h
rand_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
rand_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
rand_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
rand_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
rand_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
rand_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
rand_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
rand_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
rand_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
rand_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h

View file

@ -102,16 +102,18 @@ rsa_chk.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
rsa_chk.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
rsa_chk.o: rsa_chk.c
rsa_eay.o: ../../e_os.h ../../include/openssl/asn1.h
rsa_eay.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
rsa_eay.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
rsa_eay.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
rsa_eay.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
rsa_eay.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
rsa_eay.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
rsa_eay.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
rsa_eay.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
rsa_eay.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
rsa_eay.o: ../../include/openssl/ui.h ../cryptlib.h rsa_eay.c
rsa_eay.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
rsa_eay.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
rsa_eay.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
rsa_eay.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
rsa_eay.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
rsa_eay.o: ../../include/openssl/engine.h ../../include/openssl/err.h
rsa_eay.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
rsa_eay.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
rsa_eay.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
rsa_eay.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
rsa_eay.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
rsa_eay.o: ../cryptlib.h rsa_eay.c
rsa_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
rsa_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
rsa_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
@ -130,16 +132,18 @@ rsa_gen.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
rsa_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
rsa_gen.o: ../cryptlib.h rsa_gen.c
rsa_lib.o: ../../e_os.h ../../include/openssl/asn1.h
rsa_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
rsa_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
rsa_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
rsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
rsa_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
rsa_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
rsa_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
rsa_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
rsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
rsa_lib.o: ../../include/openssl/ui.h ../cryptlib.h rsa_lib.c
rsa_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
rsa_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
rsa_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
rsa_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
rsa_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
rsa_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
rsa_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
rsa_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
rsa_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
rsa_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
rsa_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
rsa_lib.o: ../cryptlib.h rsa_lib.c
rsa_none.o: ../../e_os.h ../../include/openssl/asn1.h
rsa_none.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
rsa_none.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
@ -180,13 +184,14 @@ rsa_pk1.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
rsa_pk1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
rsa_pk1.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_pk1.c
rsa_saos.o: ../../e_os.h ../../include/openssl/asn1.h
rsa_saos.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
rsa_saos.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
rsa_saos.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
rsa_saos.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
rsa_saos.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
rsa_saos.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
rsa_saos.o: ../../include/openssl/opensslconf.h
rsa_saos.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
rsa_saos.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
rsa_saos.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
rsa_saos.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
rsa_saos.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
rsa_saos.o: ../../include/openssl/err.h ../../include/openssl/evp.h
rsa_saos.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
rsa_saos.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
rsa_saos.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
rsa_saos.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
rsa_saos.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -194,13 +199,15 @@ rsa_saos.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
rsa_saos.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
rsa_saos.o: ../cryptlib.h rsa_saos.c
rsa_sign.o: ../../e_os.h ../../include/openssl/asn1.h
rsa_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
rsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
rsa_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
rsa_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
rsa_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
rsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
rsa_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
rsa_sign.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
rsa_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
rsa_sign.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
rsa_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
rsa_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
rsa_sign.o: ../../include/openssl/engine.h ../../include/openssl/err.h
rsa_sign.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
rsa_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
rsa_sign.o: ../../include/openssl/opensslconf.h
rsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
rsa_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
rsa_sign.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h

View file

@ -89,10 +89,12 @@ clean:
# DO NOT DELETE THIS LINE -- make depend depends on it.
by_dir.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
by_dir.o: ../../e_os.h ../../include/openssl/asn1.h
by_dir.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
by_dir.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
by_dir.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
by_dir.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
by_dir.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
by_dir.o: ../../include/openssl/err.h ../../include/openssl/evp.h
by_dir.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
by_dir.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@ -103,27 +105,31 @@ by_dir.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
by_dir.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
by_dir.o: ../cryptlib.h by_dir.c
by_file.o: ../../e_os.h ../../include/openssl/asn1.h
by_file.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
by_file.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
by_file.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
by_file.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
by_file.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
by_file.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
by_file.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
by_file.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
by_file.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
by_file.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
by_file.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
by_file.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
by_file.o: ../../include/openssl/x509_vfy.h ../cryptlib.h by_file.c
by_file.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
by_file.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
by_file.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
by_file.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
by_file.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
by_file.o: ../../include/openssl/err.h ../../include/openssl/evp.h
by_file.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
by_file.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
by_file.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
by_file.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
by_file.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
by_file.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
by_file.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
by_file.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
by_file.o: ../cryptlib.h by_file.c
x509_att.o: ../../e_os.h ../../include/openssl/asn1.h
x509_att.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_att.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
x509_att.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_att.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_att.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_att.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_att.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_att.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_att.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_att.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
x509_att.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_att.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x509_att.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x509_att.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_att.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_att.o: ../../include/openssl/opensslconf.h
x509_att.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_att.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_att.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -131,13 +137,15 @@ x509_att.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_att.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_att.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_att.c
x509_cmp.o: ../../e_os.h ../../include/openssl/asn1.h
x509_cmp.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_cmp.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
x509_cmp.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_cmp.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_cmp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_cmp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_cmp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_cmp.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_cmp.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_cmp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
x509_cmp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_cmp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x509_cmp.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x509_cmp.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_cmp.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_cmp.o: ../../include/openssl/opensslconf.h
x509_cmp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_cmp.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_cmp.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -145,39 +153,44 @@ x509_cmp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_cmp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_cmp.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_cmp.c
x509_d2.o: ../../e_os.h ../../include/openssl/asn1.h
x509_d2.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_d2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509_d2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_d2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509_d2.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_d2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_d2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
x509_d2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
x509_d2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
x509_d2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
x509_d2.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
x509_d2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_d2.c
x509_d2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_d2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_d2.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_d2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_d2.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509_d2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_d2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_d2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_d2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_d2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_d2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
x509_d2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_d2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_d2.o: ../cryptlib.h x509_d2.c
x509_def.o: ../../e_os.h ../../include/openssl/asn1.h
x509_def.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_def.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509_def.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_def.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509_def.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_def.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_def.o: ../../include/openssl/opensslconf.h
x509_def.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_def.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_def.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_def.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_def.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509_def.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_def.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_def.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_def.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_def.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_def.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
x509_def.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_def.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_def.o: ../cryptlib.h x509_def.c
x509_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
x509_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_err.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
x509_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x509_err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x509_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_err.o: ../../include/openssl/opensslconf.h
x509_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -185,13 +198,15 @@ x509_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_err.o: x509_err.c
x509_ext.o: ../../e_os.h ../../include/openssl/asn1.h
x509_ext.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_ext.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
x509_ext.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_ext.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_ext.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_ext.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_ext.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_ext.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_ext.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
x509_ext.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x509_ext.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x509_ext.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_ext.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_ext.o: ../../include/openssl/opensslconf.h
x509_ext.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_ext.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_ext.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -199,27 +214,30 @@ x509_ext.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_ext.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_ext.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_ext.c
x509_lu.o: ../../e_os.h ../../include/openssl/asn1.h
x509_lu.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_lu.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
x509_lu.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_lu.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_lu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_lu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_lu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_lu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_lu.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_lu.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
x509_lu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_lu.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_lu.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_lu.c
x509_lu.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_lu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_lu.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
x509_lu.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_lu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x509_lu.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x509_lu.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_lu.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_lu.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
x509_lu.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
x509_lu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
x509_lu.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
x509_lu.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
x509_lu.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
x509_lu.o: ../cryptlib.h x509_lu.c
x509_obj.o: ../../e_os.h ../../include/openssl/asn1.h
x509_obj.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_obj.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509_obj.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_obj.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509_obj.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_obj.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_obj.o: ../../include/openssl/opensslconf.h
x509_obj.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_obj.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_obj.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_obj.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_obj.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509_obj.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_obj.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_obj.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_obj.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_obj.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_obj.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -227,13 +245,14 @@ x509_obj.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_obj.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_obj.o: ../cryptlib.h x509_obj.c
x509_r2x.o: ../../e_os.h ../../include/openssl/asn1.h
x509_r2x.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_r2x.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509_r2x.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_r2x.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509_r2x.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_r2x.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_r2x.o: ../../include/openssl/opensslconf.h
x509_r2x.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_r2x.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_r2x.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_r2x.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_r2x.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509_r2x.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_r2x.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_r2x.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_r2x.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_r2x.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_r2x.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -241,13 +260,14 @@ x509_r2x.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_r2x.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_r2x.o: ../cryptlib.h x509_r2x.c
x509_req.o: ../../e_os.h ../../include/openssl/asn1.h
x509_req.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_req.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509_req.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_req.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509_req.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_req.o: ../../include/openssl/opensslconf.h
x509_req.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_req.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_req.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_req.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_req.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_req.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_req.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
x509_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
@ -256,13 +276,14 @@ x509_req.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_req.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_req.o: ../cryptlib.h x509_req.c
x509_set.o: ../../e_os.h ../../include/openssl/asn1.h
x509_set.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_set.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509_set.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_set.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509_set.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_set.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_set.o: ../../include/openssl/opensslconf.h
x509_set.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_set.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_set.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_set.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_set.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509_set.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_set.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_set.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_set.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_set.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_set.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -270,13 +291,15 @@ x509_set.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_set.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_set.o: ../cryptlib.h x509_set.c
x509_trs.o: ../../e_os.h ../../include/openssl/asn1.h
x509_trs.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_trs.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
x509_trs.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_trs.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_trs.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_trs.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_trs.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_trs.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_trs.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_trs.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
x509_trs.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_trs.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x509_trs.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x509_trs.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_trs.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_trs.o: ../../include/openssl/opensslconf.h
x509_trs.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_trs.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_trs.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -284,13 +307,14 @@ x509_trs.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_trs.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_trs.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_trs.c
x509_txt.o: ../../e_os.h ../../include/openssl/asn1.h
x509_txt.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_txt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509_txt.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_txt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509_txt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_txt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_txt.o: ../../include/openssl/opensslconf.h
x509_txt.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_txt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_txt.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_txt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_txt.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509_txt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_txt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_txt.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_txt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_txt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_txt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -298,27 +322,31 @@ x509_txt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_txt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_txt.o: ../cryptlib.h x509_txt.c
x509_v3.o: ../../e_os.h ../../include/openssl/asn1.h
x509_v3.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_v3.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
x509_v3.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_v3.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_v3.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_v3.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_v3.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_v3.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_v3.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_v3.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
x509_v3.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_v3.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_v3.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_v3.c
x509_v3.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_v3.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_v3.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
x509_v3.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_v3.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x509_v3.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x509_v3.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_v3.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_v3.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
x509_v3.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
x509_v3.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
x509_v3.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
x509_v3.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
x509_v3.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
x509_v3.o: ../cryptlib.h x509_v3.c
x509_vfy.o: ../../e_os.h ../../include/openssl/asn1.h
x509_vfy.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509_vfy.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
x509_vfy.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509_vfy.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509_vfy.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509_vfy.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509_vfy.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509_vfy.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509_vfy.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509_vfy.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
x509_vfy.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509_vfy.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
x509_vfy.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
x509_vfy.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509_vfy.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509_vfy.o: ../../include/openssl/opensslconf.h
x509_vfy.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509_vfy.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509_vfy.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -326,13 +354,14 @@ x509_vfy.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509_vfy.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509_vfy.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_vfy.c
x509cset.o: ../../e_os.h ../../include/openssl/asn1.h
x509cset.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509cset.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509cset.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509cset.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509cset.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509cset.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509cset.o: ../../include/openssl/opensslconf.h
x509cset.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509cset.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509cset.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509cset.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509cset.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509cset.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509cset.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509cset.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509cset.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509cset.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509cset.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -340,13 +369,14 @@ x509cset.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509cset.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509cset.o: ../cryptlib.h x509cset.c
x509name.o: ../../e_os.h ../../include/openssl/asn1.h
x509name.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509name.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509name.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509name.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509name.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509name.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509name.o: ../../include/openssl/opensslconf.h
x509name.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509name.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509name.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509name.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509name.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509name.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509name.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509name.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509name.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509name.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -354,13 +384,14 @@ x509name.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509name.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509name.o: ../cryptlib.h x509name.c
x509rset.o: ../../e_os.h ../../include/openssl/asn1.h
x509rset.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509rset.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509rset.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509rset.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509rset.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509rset.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509rset.o: ../../include/openssl/opensslconf.h
x509rset.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509rset.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509rset.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509rset.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509rset.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509rset.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509rset.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509rset.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509rset.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509rset.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509rset.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -368,13 +399,14 @@ x509rset.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509rset.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509rset.o: ../cryptlib.h x509rset.c
x509spki.o: ../../e_os.h ../../include/openssl/asn1.h
x509spki.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509spki.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509spki.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509spki.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509spki.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509spki.o: ../../include/openssl/opensslconf.h
x509spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509spki.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509spki.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509spki.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509spki.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -382,23 +414,26 @@ x509spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509spki.o: ../cryptlib.h x509spki.c
x509type.o: ../../e_os.h ../../include/openssl/asn1.h
x509type.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
x509type.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
x509type.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
x509type.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
x509type.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
x509type.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
x509type.o: ../../include/openssl/opensslconf.h
x509type.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x509type.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x509type.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x509type.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x509type.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x509type.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x509type.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x509type.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
x509type.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
x509type.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
x509type.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
x509type.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
x509type.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
x509type.o: ../cryptlib.h x509type.c
x_all.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
x_all.o: ../../e_os.h ../../include/openssl/asn1.h
x_all.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
x_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
x_all.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
x_all.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
x_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
x_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
x_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
x_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h

View file

@ -81,6 +81,10 @@
#include <openssl/dsa.h>
#endif
#ifndef OPENSSL_NO_ECDSA
#include <openssl/ecdsa.h>
#endif
#ifndef OPENSSL_NO_DH
#include <openssl/dh.h>
#endif
@ -652,6 +656,17 @@ extern "C" {
#define i2d_DSAPrivateKey_bio(bp,dsa) ASN1_i2d_bio(i2d_DSAPrivateKey,bp, \
(unsigned char *)dsa)
#define d2i_ECDSAPrivateKey_fp(fp,ecdsa) (ECDSA *)ASN1_d2i_fp((char *(*)())\
ECDSA_new,(char *(*)())d2i_ECDSAPrivateKey, (fp), \
(unsigned char **)(ecdsa))
#define i2d_ECDSAPrivateKey_fp(fp,ecdsa) ASN1_i2d_fp(i2d_ECDSAPrivateKey,fp, \
(unsigned char *)ecdsa)
#define d2i_ECDSAPrivateKey_bio(bp,ecdsa) (ECDSA *)ASN1_d2i_bio((char *(*)())\
ECDSA_new,(char *(*)())d2i_ECDSAPrivateKey, (bp), \
(unsigned char **)(ecdsa))
#define i2d_ECDSAPrivateKey_bio(bp,ecdsa) ASN1_i2d_bio(i2d_ECDSAPrivateKey,bp, \
(unsigned char *)ecdsa)
#define X509_ALGOR_dup(xn) (X509_ALGOR *)ASN1_dup((int (*)())i2d_X509_ALGOR,\
(char *(*)())d2i_X509_ALGOR,(char *)xn)
@ -755,6 +770,12 @@ int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa);
DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa);
int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa);
#endif
#ifndef OPENSSL_NO_ECDSA
ECDSA *d2i_ECDSA_PUBKEY_fp(FILE *fp, ECDSA **ecdsa);
int i2d_ECDSA_PUBKEY_fp(FILE *fp, ECDSA *ecdsa);
ECDSA *d2i_ECDSAPrivateKey_fp(FILE *fp, ECDSA **ecdsa);
int i2d_ECDSAPrivateKey_fp(FILE *fp, ECDSA *ecdsa);
#endif
X509_SIG *d2i_PKCS8_fp(FILE *fp,X509_SIG **p8);
int i2d_PKCS8_fp(FILE *fp,X509_SIG *p8);
PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,
@ -788,6 +809,12 @@ int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa);
DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa);
int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa);
#endif
#ifndef OPENSSL_NO_ECDSA
ECDSA *d2i_ECDSA_PUBKEY_bio(BIO *bp, ECDSA **ecdsa);
int i2d_ECDSA_PUBKEY_bio(BIO *bp, ECDSA *ecdsa);
ECDSA *d2i_ECDSAPrivateKey_bio(BIO *bp, ECDSA **ecdsa);
int i2d_ECDSAPrivateKey_bio(BIO *bp, ECDSA *ecdsa);
#endif
X509_SIG *d2i_PKCS8_bio(BIO *bp,X509_SIG **p8);
int i2d_PKCS8_bio(BIO *bp,X509_SIG *p8);
PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,
@ -852,6 +879,11 @@ int i2d_DSA_PUBKEY(DSA *a,unsigned char **pp);
DSA * d2i_DSA_PUBKEY(DSA **a,unsigned char **pp,
long length);
#endif
#ifndef OPENSSL_NO_ECDSA
int i2d_ECDSA_PUBKEY(ECDSA *a, unsigned char **pp);
ECDSA *d2i_ECDSA_PUBKEY(ECDSA **a, unsigned char **pp,
long length);
#endif
DECLARE_ASN1_FUNCTIONS(X509_SIG)
DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO)

View file

@ -295,6 +295,22 @@ int X509_check_private_key(X509 *x, EVP_PKEY *k)
}
break;
#endif
#ifndef OPENSSL_NO_ECDSA
case EVP_PKEY_ECDSA:
{
int r = EC_POINT_cmp(xk->pkey.ecdsa->group,xk->pkey.ecdsa->pub_key,k->pkey.ecdsa->pub_key,NULL);
if (r != 0)
{
if (r == 1)
X509err(X509_F_X509_CHECK_PRIVATE_KEY, X509_R_KEY_VALUES_MISMATCH);
else
X509err(X509_F_X509_CHECK_PRIVATE_KEY, ERR_R_EC_LIB);
goto err;
}
}
break;
#endif
#ifndef OPENSSL_NO_DH
case EVP_PKEY_DH:
/* No idea */

View file

@ -86,6 +86,9 @@ int X509_certificate_type(X509 *x, EVP_PKEY *pkey)
case EVP_PKEY_DSA:
ret=EVP_PK_DSA|EVP_PKT_SIGN;
break;
case EVP_PKEY_ECDSA:
ret=EVP_PK_ECDSA|EVP_PKT_SIGN;
break;
case EVP_PKEY_DH:
ret=EVP_PK_DH|EVP_PKT_EXCH;
break;
@ -102,6 +105,9 @@ int X509_certificate_type(X509 *x, EVP_PKEY *pkey)
case EVP_PKS_DSA:
ret|=EVP_PKS_DSA;
break;
case EVP_PKS_ECDSA:
ret|=EVP_PKS_ECDSA;
break;
default:
break;
}

View file

@ -325,6 +325,59 @@ int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa)
#endif
#ifndef OPENSSL_NO_ECDSA
#ifndef OPENSSL_NO_FP_API
ECDSA *d2i_ECDSAPrivateKey_fp(FILE *fp, ECDSA **ecdsa)
{
return((ECDSA *)ASN1_d2i_fp((char *(*)())
ECDSA_new,(char *(*)())d2i_ECDSAPrivateKey, (fp),
(unsigned char **)(ecdsa)));
}
int i2d_ECDSAPrivateKey_fp(FILE *fp, ECDSA *ecdsa)
{
return(ASN1_i2d_fp(i2d_ECDSAPrivateKey,fp,(unsigned char *)ecdsa));
}
ECDSA *d2i_ECDSA_PUBKEY_fp(FILE *fp, ECDSA **ecdsa)
{
return((ECDSA *)ASN1_d2i_fp((char *(*)())
ECDSA_new,(char *(*)())d2i_ECDSA_PUBKEY, (fp),
(unsigned char **)(ecdsa)));
}
int i2d_ECDSA_PUBKEY_fp(FILE *fp, ECDSA *ecdsa)
{
return(ASN1_i2d_fp(i2d_ECDSA_PUBKEY,fp,(unsigned char *)ecdsa));
}
#endif
ECDSA *d2i_ECDSAPrivateKey_bio(BIO *bp, ECDSA **ecdsa)
{
return((ECDSA *)ASN1_d2i_bio((char *(*)())
ECDSA_new,(char *(*)())d2i_ECDSAPrivateKey, (bp),
(unsigned char **)(ecdsa)));
}
int i2d_ECDSAPrivateKey_bio(BIO *bp, ECDSA *ecdsa)
{
return(ASN1_i2d_bio(i2d_ECDSAPrivateKey,bp,(unsigned char *)ecdsa));
}
ECDSA *d2i_ECDSA_PUBKEY_bio(BIO *bp, ECDSA **ecdsa)
{
return((ECDSA *)ASN1_d2i_bio((char *(*)())
ECDSA_new,(char *(*)())d2i_ECDSA_PUBKEY, (bp),
(unsigned char **)(ecdsa)));
}
int i2d_ECDSA_PUBKEY_bio(BIO *bp, ECDSA *ecdsa)
{
return(ASN1_i2d_bio(i2d_ECDSA_PUBKEY,bp,(unsigned char *)ecdsa));
}
#endif
int X509_pubkey_digest(const X509 *data, const EVP_MD *type, unsigned char *md,
unsigned int *len)
{

View file

@ -90,7 +90,8 @@ v3_akey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_akey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_akey.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_akey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_akey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_akey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_akey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_akey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_akey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_akey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -105,7 +106,8 @@ v3_akeya.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_akeya.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_akeya.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_akeya.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_akeya.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_akeya.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_akeya.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_akeya.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_akeya.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_akeya.o: ../../include/openssl/opensslconf.h
@ -115,11 +117,13 @@ v3_akeya.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
v3_akeya.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_akeya.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_akeya.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_akeya.c
v3_alt.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
v3_alt.o: ../../e_os.h ../../include/openssl/asn1.h
v3_alt.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_alt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_alt.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_alt.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_alt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_alt.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_alt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_alt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_alt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_alt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -134,7 +138,8 @@ v3_bcons.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_bcons.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_bcons.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_bcons.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_bcons.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_bcons.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_bcons.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_bcons.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_bcons.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_bcons.o: ../../include/openssl/opensslconf.h
@ -145,13 +150,15 @@ v3_bcons.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_bcons.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_bcons.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_bcons.c
v3_bitst.o: ../../e_os.h ../../include/openssl/asn1.h
v3_bitst.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
v3_bitst.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
v3_bitst.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
v3_bitst.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
v3_bitst.o: ../../include/openssl/err.h ../../include/openssl/evp.h
v3_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
v3_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
v3_bitst.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_bitst.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_bitst.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_bitst.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_bitst.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_bitst.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_bitst.o: ../../include/openssl/opensslconf.h
v3_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
v3_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
v3_bitst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
@ -159,25 +166,28 @@ v3_bitst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_bitst.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_bitst.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_bitst.c
v3_conf.o: ../../e_os.h ../../include/openssl/asn1.h
v3_conf.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
v3_conf.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
v3_conf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
v3_conf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
v3_conf.o: ../../include/openssl/err.h ../../include/openssl/evp.h
v3_conf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
v3_conf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
v3_conf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
v3_conf.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
v3_conf.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
v3_conf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_conf.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_conf.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_conf.c
v3_conf.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_conf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_conf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_conf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_conf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_conf.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_conf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_conf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_conf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
v3_conf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
v3_conf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
v3_conf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_conf.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_conf.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_conf.o: ../cryptlib.h v3_conf.c
v3_cpols.o: ../../e_os.h ../../include/openssl/asn1.h
v3_cpols.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_cpols.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_cpols.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_cpols.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_cpols.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_cpols.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_cpols.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_cpols.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_cpols.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_cpols.o: ../../include/openssl/opensslconf.h
@ -192,7 +202,8 @@ v3_crld.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_crld.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_crld.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_crld.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_crld.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_crld.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_crld.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_crld.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_crld.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_crld.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -203,25 +214,28 @@ v3_crld.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_crld.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_crld.o: ../cryptlib.h v3_crld.c
v3_enum.o: ../../e_os.h ../../include/openssl/asn1.h
v3_enum.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
v3_enum.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
v3_enum.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
v3_enum.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
v3_enum.o: ../../include/openssl/err.h ../../include/openssl/evp.h
v3_enum.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
v3_enum.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
v3_enum.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
v3_enum.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
v3_enum.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
v3_enum.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_enum.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_enum.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_enum.c
v3_enum.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_enum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_enum.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_enum.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_enum.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_enum.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_enum.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_enum.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_enum.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
v3_enum.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
v3_enum.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
v3_enum.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_enum.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_enum.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_enum.o: ../cryptlib.h v3_enum.c
v3_extku.o: ../../e_os.h ../../include/openssl/asn1.h
v3_extku.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_extku.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_extku.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_extku.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_extku.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_extku.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_extku.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_extku.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_extku.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_extku.o: ../../include/openssl/opensslconf.h
@ -236,7 +250,8 @@ v3_genn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_genn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_genn.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_genn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_genn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_genn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_genn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_genn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_genn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_genn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -246,11 +261,13 @@ v3_genn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_genn.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_genn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_genn.o: ../cryptlib.h v3_genn.c
v3_ia5.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
v3_ia5.o: ../../e_os.h ../../include/openssl/asn1.h
v3_ia5.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_ia5.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_ia5.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_ia5.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_ia5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_ia5.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_ia5.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_ia5.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_ia5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_ia5.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -265,7 +282,8 @@ v3_info.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_info.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_info.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_info.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_info.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_info.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_info.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_info.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_info.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -275,11 +293,13 @@ v3_info.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_info.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_info.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_info.o: ../cryptlib.h v3_info.c
v3_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
v3_int.o: ../../e_os.h ../../include/openssl/asn1.h
v3_int.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_int.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_int.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_int.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_int.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_int.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_int.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_int.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_int.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -289,11 +309,13 @@ v3_int.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_int.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_int.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_int.o: ../cryptlib.h v3_int.c
v3_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
v3_lib.o: ../../e_os.h ../../include/openssl/asn1.h
v3_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_lib.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -304,26 +326,28 @@ v3_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_lib.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_lib.o: ../cryptlib.h ext_dat.h v3_lib.c
v3_ocsp.o: ../../e_os.h ../../include/openssl/asn1.h
v3_ocsp.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
v3_ocsp.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
v3_ocsp.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
v3_ocsp.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
v3_ocsp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
v3_ocsp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
v3_ocsp.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
v3_ocsp.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
v3_ocsp.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
v3_ocsp.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
v3_ocsp.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_ocsp.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_ocsp.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_ocsp.o: ../cryptlib.h v3_ocsp.c
v3_ocsp.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_ocsp.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_ocsp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_ocsp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_ocsp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_ocsp.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_ocsp.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_ocsp.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_ocsp.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
v3_ocsp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
v3_ocsp.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
v3_ocsp.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
v3_ocsp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_ocsp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_ocsp.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_ocsp.c
v3_pku.o: ../../e_os.h ../../include/openssl/asn1.h
v3_pku.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_pku.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_pku.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_pku.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_pku.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_pku.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_pku.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_pku.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_pku.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_pku.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -333,11 +357,13 @@ v3_pku.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_pku.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_pku.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_pku.o: ../cryptlib.h v3_pku.c
v3_prn.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
v3_prn.o: ../../e_os.h ../../include/openssl/asn1.h
v3_prn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_prn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_prn.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_prn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_prn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_prn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_prn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -348,39 +374,44 @@ v3_prn.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_prn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_prn.o: ../cryptlib.h v3_prn.c
v3_purp.o: ../../e_os.h ../../include/openssl/asn1.h
v3_purp.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
v3_purp.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
v3_purp.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
v3_purp.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
v3_purp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
v3_purp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
v3_purp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
v3_purp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
v3_purp.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
v3_purp.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
v3_purp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_purp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_purp.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_purp.c
v3_purp.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_purp.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_purp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_purp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_purp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_purp.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_purp.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_purp.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_purp.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
v3_purp.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
v3_purp.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
v3_purp.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_purp.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_purp.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_purp.o: ../cryptlib.h v3_purp.c
v3_skey.o: ../../e_os.h ../../include/openssl/asn1.h
v3_skey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
v3_skey.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
v3_skey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
v3_skey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
v3_skey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
v3_skey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
v3_skey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
v3_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
v3_skey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
v3_skey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
v3_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_skey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_skey.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_skey.c
v3_skey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_skey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_skey.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_skey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_skey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_skey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_skey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
v3_skey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
v3_skey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
v3_skey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_skey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_skey.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_skey.o: ../cryptlib.h v3_skey.c
v3_sxnet.o: ../../e_os.h ../../include/openssl/asn1.h
v3_sxnet.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_sxnet.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_sxnet.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_sxnet.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_sxnet.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_sxnet.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_sxnet.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_sxnet.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_sxnet.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_sxnet.o: ../../include/openssl/opensslconf.h
@ -390,11 +421,13 @@ v3_sxnet.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
v3_sxnet.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3_sxnet.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3_sxnet.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_sxnet.c
v3_utl.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
v3_utl.o: ../../e_os.h ../../include/openssl/asn1.h
v3_utl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
v3_utl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3_utl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3_utl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3_utl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3_utl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
v3_utl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
v3_utl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@ -404,17 +437,18 @@ v3_utl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3_utl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3_utl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3_utl.o: ../cryptlib.h v3_utl.c
v3err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
v3err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
v3err.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
v3err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
v3err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
v3err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
v3err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
v3err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
v3err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
v3err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
v3err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
v3err.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
v3err.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
v3err.o: v3err.c
v3err.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
v3err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
v3err.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
v3err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
v3err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
v3err.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
v3err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
v3err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
v3err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
v3err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
v3err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
v3err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
v3err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
v3err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
v3err.o: ../../include/openssl/x509v3.h v3err.c

File diff suppressed because it is too large Load diff

View file

@ -57,6 +57,7 @@ SSLTEST= ssltest
RSATEST= rsa_test
ENGINETEST= enginetest
EVPTEST= evp_test
ECDSATEST= ecdsatest
TESTS= alltests
@ -65,7 +66,7 @@ EXE= $(BNTEST) $(ECTEST) $(IDEATEST) $(MD2TEST) $(MD4TEST) $(MD5TEST) $(HMACTES
$(DESTEST) $(SHATEST) $(SHA1TEST) $(MDC2TEST) $(RMDTEST) \
$(RANDTEST) $(DHTEST) $(ENGINETEST) \
$(BFTEST) $(CASTTEST) $(SSLTEST) $(EXPTEST) $(DSATEST) $(RSATEST) \
$(EVPTEST)
$(EVPTEST) $(ECDSATEST)
# $(METHTEST)
@ -75,14 +76,14 @@ OBJ= $(BNTEST).o $(ECTEST).o $(IDEATEST).o $(MD2TEST).o $(MD4TEST).o $(MD5TEST).
$(DESTEST).o $(SHATEST).o $(SHA1TEST).o $(MDC2TEST).o $(RMDTEST).o \
$(RANDTEST).o $(DHTEST).o $(ENGINETEST).o $(CASTTEST).o \
$(BFTEST).o $(SSLTEST).o $(DSATEST).o $(EXPTEST).o $(RSATEST).o \
$(EVPTEST).o
$(EVPTEST).o $(ECDSATEST).o
SRC= $(BNTEST).c $(ECTEST).c $(IDEATEST).c $(MD2TEST).c $(MD4TEST).c $(MD5TEST).c \
$(HMACTEST).c \
$(RC2TEST).c $(RC4TEST).c $(RC5TEST).c \
$(DESTEST).c $(SHATEST).c $(SHA1TEST).c $(MDC2TEST).c $(RMDTEST).c \
$(RANDTEST).c $(DHTEST).c $(ENGINETEST).c $(CASTTEST).c \
$(BFTEST).c $(SSLTEST).c $(DSATEST).c $(EXPTEST).c $(RSATEST).c \
$(EVPTEST).c
$(EVPTEST).c $(ECDSATEST).c
EXHEADER=
HEADER= $(EXHEADER)
@ -124,7 +125,7 @@ alltests.chooser: \
test_rmd test_rc2 test_rc4 test_rc5 test_bf test_cast test_rd \
test_rand test_bn test_ec test_enc test_x509 test_rsa test_crl test_sid \
test_gen test_req test_pkcs7 test_verify test_dh test_dsa \
test_ss test_ca test_engine test_evp test_ssl
test_ss test_ca test_engine test_evp test_ssl test_ecdsa
test_evp:
./$(EVPTEST) evptests.txt
@ -217,6 +218,10 @@ test_ec:
@echo 'test elliptic curves'
./$(ECTEST)
test_ecdsa:
@echo 'test ecdsa'
./$(ECDSATEST)
test_verify:
@echo "The following command should have some OK's and some failures"
@echo "There are definitly a few expired certificates"
@ -356,6 +361,9 @@ $(ENGINETEST): $(ENGINETEST).o $(DLIBCRYPTO)
$(EVPTEST): $(EVPTEST).o $(DLIBCRYPTO)
$(CC) -o $(EVPTEST) $(CFLAGS) $(EVPTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
$(ECDSATEST): $(ECDSATEST).o $(DLIBCRYPTO)
$(CC) -o $(ECDSATEST) $(CFLAGS) $(ECDSATEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
#$(RDTEST).o: $(RDTEST).c
# $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(RDTEST).c
@ -366,19 +374,20 @@ $(EVPTEST): $(EVPTEST).o $(DLIBCRYPTO)
bftest.o: ../include/openssl/blowfish.h ../include/openssl/e_os2.h
bftest.o: ../include/openssl/opensslconf.h bftest.c
bntest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
bntest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
bntest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
bntest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
bntest.o: ../include/openssl/err.h ../include/openssl/evp.h
bntest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
bntest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
bntest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
bntest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
bntest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
bntest.o: ../include/openssl/sha.h ../include/openssl/stack.h
bntest.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
bntest.o: ../include/openssl/x509_vfy.h bntest.c
bntest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/asn1t.h
bntest.o: ../include/openssl/bio.h ../include/openssl/bn.h
bntest.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
bntest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
bntest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
bntest.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
bntest.o: ../include/openssl/evp.h ../include/openssl/lhash.h
bntest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
bntest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
bntest.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
bntest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
bntest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
bntest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
bntest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h bntest.c
casttest.o: ../include/openssl/cast.h casttest.c
destest.o: ../include/openssl/crypto.h ../include/openssl/des.h
destest.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
@ -393,49 +402,69 @@ dhtest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
dhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
dhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
dhtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h dhtest.c
dsatest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
dsatest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
dsatest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
dsatest.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
dsatest.o: ../include/openssl/err.h ../include/openssl/lhash.h
dsatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
dsatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
dsatest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
dsatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
dsatest.o: ../include/openssl/ui.h dsatest.c
ectest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
ectest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
ectest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
ectest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
dsatest.o: ../include/openssl/asn1.h ../include/openssl/asn1t.h
dsatest.o: ../include/openssl/bio.h ../include/openssl/bn.h
dsatest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
dsatest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
dsatest.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
dsatest.o: ../include/openssl/engine.h ../include/openssl/err.h
dsatest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
dsatest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
dsatest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
dsatest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
dsatest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h dsatest.c
ecdsatest.o: ../include/openssl/asn1.h ../include/openssl/asn1t.h
ecdsatest.o: ../include/openssl/bio.h ../include/openssl/bn.h
ecdsatest.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
ecdsatest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
ecdsatest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
ecdsatest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
ecdsatest.o: ../include/openssl/err.h ../include/openssl/evp.h
ecdsatest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
ecdsatest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
ecdsatest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
ecdsatest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
ecdsatest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
ecdsatest.o: ../include/openssl/sha.h ../include/openssl/stack.h
ecdsatest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
ecdsatest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
ecdsatest.o: ecdsatest.c
ectest.o: ../include/openssl/asn1.h ../include/openssl/asn1t.h
ectest.o: ../include/openssl/bio.h ../include/openssl/bn.h
ectest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
ectest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
ectest.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
ectest.o: ../include/openssl/engine.h ../include/openssl/err.h
ectest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
ectest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
ectest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
ectest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
ectest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h ectest.c
enginetest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
enginetest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
enginetest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
enginetest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
enginetest.o: ../include/openssl/engine.h ../include/openssl/err.h
enginetest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
enginetest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
enginetest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
enginetest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
enginetest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
enginetest.o: enginetest.c
evp_test.o: ../include/openssl/asn1.h ../include/openssl/bio.h
evp_test.o: ../include/openssl/bn.h ../include/openssl/conf.h
evp_test.o: ../include/openssl/crypto.h ../include/openssl/dh.h
evp_test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
evp_test.o: ../include/openssl/engine.h ../include/openssl/err.h
evp_test.o: ../include/openssl/evp.h ../include/openssl/lhash.h
evp_test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
evp_test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
evp_test.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
evp_test.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
evp_test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
evp_test.o: ../include/openssl/ui.h evp_test.c
enginetest.o: ../include/openssl/asn1.h ../include/openssl/asn1t.h
enginetest.o: ../include/openssl/bio.h ../include/openssl/bn.h
enginetest.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
enginetest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
enginetest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
enginetest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
enginetest.o: ../include/openssl/err.h ../include/openssl/lhash.h
enginetest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
enginetest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
enginetest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
enginetest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
enginetest.o: ../include/openssl/ui.h enginetest.c
evp_test.o: ../include/openssl/asn1.h ../include/openssl/asn1t.h
evp_test.o: ../include/openssl/bio.h ../include/openssl/bn.h
evp_test.o: ../include/openssl/conf.h ../include/openssl/crypto.h
evp_test.o: ../include/openssl/dh.h ../include/openssl/dsa.h
evp_test.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
evp_test.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
evp_test.o: ../include/openssl/err.h ../include/openssl/evp.h
evp_test.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
evp_test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
evp_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
evp_test.o: ../include/openssl/rand.h ../include/openssl/rsa.h
evp_test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
evp_test.o: ../include/openssl/symhacks.h ../include/openssl/ui.h evp_test.c
exptest.o: ../include/openssl/bio.h ../include/openssl/bn.h
exptest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
exptest.o: ../include/openssl/err.h ../include/openssl/lhash.h
@ -499,16 +528,17 @@ rmdtest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
rmdtest.o: ../include/openssl/ossl_typ.h ../include/openssl/ripemd.h
rmdtest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
rmdtest.o: ../include/openssl/symhacks.h rmdtest.c
rsa_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
rsa_test.o: ../include/openssl/bn.h ../include/openssl/crypto.h
rsa_test.o: ../include/openssl/dh.h ../include/openssl/dsa.h
rsa_test.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
rsa_test.o: ../include/openssl/err.h ../include/openssl/lhash.h
rsa_test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
rsa_test.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
rsa_test.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
rsa_test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
rsa_test.o: ../include/openssl/ui.h rsa_test.c
rsa_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/asn1t.h
rsa_test.o: ../include/openssl/bio.h ../include/openssl/bn.h
rsa_test.o: ../include/openssl/crypto.h ../include/openssl/dh.h
rsa_test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
rsa_test.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
rsa_test.o: ../include/openssl/engine.h ../include/openssl/err.h
rsa_test.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
rsa_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
rsa_test.o: ../include/openssl/rand.h ../include/openssl/rsa.h
rsa_test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
rsa_test.o: ../include/openssl/symhacks.h ../include/openssl/ui.h rsa_test.c
sha1test.o: ../include/openssl/asn1.h ../include/openssl/bio.h
sha1test.o: ../include/openssl/bn.h ../include/openssl/crypto.h
sha1test.o: ../include/openssl/e_os2.h ../include/openssl/evp.h
@ -525,21 +555,23 @@ shatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
shatest.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
shatest.o: ../include/openssl/sha.h ../include/openssl/stack.h
shatest.o: ../include/openssl/symhacks.h shatest.c
ssltest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
ssltest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
ssltest.o: ../include/openssl/comp.h ../include/openssl/crypto.h
ssltest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
ssltest.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
ssltest.o: ../include/openssl/err.h ../include/openssl/evp.h
ssltest.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
ssltest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
ssltest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
ssltest.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
ssltest.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
ssltest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
ssltest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
ssltest.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
ssltest.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
ssltest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
ssltest.o: ../include/openssl/tls1.h ../include/openssl/ui.h
ssltest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssltest.c
ssltest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/asn1t.h
ssltest.o: ../include/openssl/bio.h ../include/openssl/bn.h
ssltest.o: ../include/openssl/buffer.h ../include/openssl/comp.h
ssltest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
ssltest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
ssltest.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
ssltest.o: ../include/openssl/engine.h ../include/openssl/err.h
ssltest.o: ../include/openssl/evp.h ../include/openssl/kssl.h
ssltest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
ssltest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
ssltest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
ssltest.o: ../include/openssl/pem.h ../include/openssl/pem2.h
ssltest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
ssltest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
ssltest.o: ../include/openssl/sha.h ../include/openssl/ssl.h
ssltest.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
ssltest.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
ssltest.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
ssltest.o: ../include/openssl/ui.h ../include/openssl/x509.h
ssltest.o: ../include/openssl/x509_vfy.h ssltest.c

View file

@ -2760,3 +2760,75 @@ DES_read_2passwords 3206 EXIST::FUNCTION:DES
DES_read_password 3207 EXIST::FUNCTION:DES
UI_UTIL_read_pw 3208 EXIST::FUNCTION:
UI_UTIL_read_pw_string 3209 EXIST::FUNCTION:
EC_GROUP_new_by_name 3210 EXIST::FUNCTION:EC
d2i_ECDSA_PUBKEY 3211 EXIST::FUNCTION:ECDSA
PEM_read_bio_ECDSAPrivateKey 3212 EXIST::FUNCTION:ECDSA
ECDSA_SIG_new 3213 EXIST::FUNCTION:ECDSA
ECDSA_verify 3214 EXIST::FUNCTION:ECDSA
i2d_ECDSAParameters 3215 EXIST::FUNCTION:ECDSA
i2d_ECDSAPrivateKey_bio 3216 EXIST::FUNCTION:BIO,ECDSA
PEM_write_bio_ECDSAParameters 3217 EXIST::FUNCTION:ECDSA
ECDSAParameters_print_fp 3218 EXIST::FUNCTION:ECDSA,FP_API
ENGINE_set_default_ECDSA 3219 EXIST::FUNCTION:
PEM_read_bio_ECDSA_PUBKEY 3220 EXIST::FUNCTION:ECDSA
ECDSA_check_key 3221 EXIST::FUNCTION:ECDSA
ECDSA_new_method 3222 EXIST::FUNCTION:ECDSA
d2i_ECDSAPrivateKey_bio 3223 EXIST::FUNCTION:BIO,ECDSA
i2d_ECDSA_PUBKEY 3224 EXIST::FUNCTION:ECDSA
i2d_ECDSA_PUBKEY_fp 3225 EXIST::FUNCTION:ECDSA,FP_API
ENGINE_unregister_ECDSA 3226 EXIST::FUNCTION:
ECDSA_free 3227 EXIST::FUNCTION:ECDSA
ECDSAParameters_print 3228 EXIST::FUNCTION:BIO,ECDSA
PEM_write_bio_ECDSA_PUBKEY 3229 EXIST::FUNCTION:ECDSA
ECDSA_set_method 3230 EXIST::FUNCTION:ECDSA
ECDSA_print 3231 EXIST::FUNCTION:BIO,ECDSA
EVP_PKEY_get1_ECDSA 3232 EXIST::FUNCTION:ECDSA
ECDSA_SIG_free 3233 EXIST::FUNCTION:ECDSA
ECDSA_get_default_openssl_method 3234 EXIST::FUNCTION:ECDSA
ENGINE_get_default_ECDSA 3235 EXIST::FUNCTION:
PEM_write_ECDSAPrivateKey 3236 EXIST:!WIN16:FUNCTION:ECDSA
ECDSA_sign_setup 3237 EXIST::FUNCTION:ECDSA
ENGINE_get_ECDSA 3238 EXIST::FUNCTION:
d2i_ECDSA_PUBKEY_bio 3239 EXIST::FUNCTION:BIO,ECDSA
ECDSA_sign 3240 EXIST::FUNCTION:ECDSA
ENGINE_register_ECDSA 3241 EXIST::FUNCTION:
d2i_ECDSAPrivateKey_fp 3242 EXIST::FUNCTION:ECDSA,FP_API
ECDSA_print_fp 3243 EXIST::FUNCTION:ECDSA,FP_API
i2d_ECDSAPrivateKey 3244 EXIST::FUNCTION:ECDSA
d2i_ECDSAParameters 3245 EXIST::FUNCTION:ECDSA
d2i_ECDSAPublicKey 3246 EXIST::FUNCTION:ECDSA
PEM_write_bio_ECDSAPrivateKey 3247 EXIST::FUNCTION:ECDSA
d2i_ECDSA_SIG 3248 EXIST::FUNCTION:ECDSA
ECDSA_size 3249 EXIST::FUNCTION:ECDSA
EC_GROUP_set_nid 3250 EXIST::FUNCTION:EC
EVP_PKEY_set1_ECDSA 3251 EXIST::FUNCTION:ECDSA
EC_GROUP_get_nid 3252 EXIST::FUNCTION:EC
d2i_ECDSA_PUBKEY_fp 3253 EXIST::FUNCTION:ECDSA,FP_API
ECDSA_OpenSSL 3254 EXIST::FUNCTION:ECDSA
ECDSA_get_parameter_flags 3255 EXIST::FUNCTION:ECDSA
PEM_read_ECDSAParameters 3256 EXIST:!WIN16:FUNCTION:ECDSA
ECDSA_get_ex_data 3257 EXIST::FUNCTION:ECDSA
ECDSA_do_verify 3258 EXIST::FUNCTION:ECDSA
ECDSA_do_sign 3259 EXIST::FUNCTION:ECDSA
ECDSA_set_parameter_flags 3260 EXIST::FUNCTION:ECDSA
i2d_ECDSA_SIG 3261 EXIST::FUNCTION:ECDSA
PEM_read_bio_ECDSAParameters 3262 EXIST::FUNCTION:ECDSA
ENGINE_load_aep 3263 EXIST::FUNCTION:
EVP_ecdsa 3264 EXIST::FUNCTION:SHA
ECDSA_set_default_method 3265 EXIST::FUNCTION:ECDSA
ENGINE_set_ECDSA 3266 EXIST::FUNCTION:
ECDSA_get_ex_new_index 3267 EXIST::FUNCTION:ECDSA
i2d_ECDSAPublicKey 3268 EXIST::FUNCTION:ECDSA
PEM_write_ECDSA_PUBKEY 3269 EXIST:!WIN16:FUNCTION:ECDSA
ECDSA_set_ex_data 3270 EXIST::FUNCTION:ECDSA
i2d_ECDSA_PUBKEY_bio 3271 EXIST::FUNCTION:BIO,ECDSA
ENGINE_load_sureware 3272 EXIST::FUNCTION:
d2i_ECDSAPrivateKey 3273 EXIST::FUNCTION:ECDSA
EC_GROUP_new_by_nid 3274 EXIST::FUNCTION:EC
PEM_read_ECDSA_PUBKEY 3275 EXIST:!WIN16:FUNCTION:ECDSA
ECDSA_up_ref 3276 EXIST::FUNCTION:ECDSA
ENGINE_register_all_ECDSA 3277 EXIST::FUNCTION:
ECDSA_generate_key 3278 EXIST::FUNCTION:ECDSA
PEM_write_ECDSAParameters 3279 EXIST:!WIN16:FUNCTION:ECDSA
i2d_ECDSAPrivateKey_fp 3280 EXIST::FUNCTION:ECDSA,FP_API
PEM_read_ECDSAPrivateKey 3281 EXIST:!WIN16:FUNCTION:ECDSA

View file

@ -82,7 +82,7 @@ my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT" );
my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
"CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
"RIPEMD",
"MDC2", "RSA", "DSA", "DH", "EC", "HMAC", "AES",
"MDC2", "RSA", "DSA", "DH", "EC", "ECDSA", "HMAC", "AES",
# Envelope "algorithms"
"EVP", "X509", "ASN1_TYPEDEFS",
# Helper "algorithms"
@ -105,7 +105,7 @@ my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf;
my $no_cast;
my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2;
my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;
my $no_ec;
my $no_ec; my $no_ecdsa;
my $no_fp_api;
foreach (@ARGV, split(/ /, $options))
@ -155,6 +155,7 @@ foreach (@ARGV, split(/ /, $options))
elsif (/^no-dsa$/) { $no_dsa=1; }
elsif (/^no-dh$/) { $no_dh=1; }
elsif (/^no-ec$/) { $no_ec=1; }
elsif (/^no-ecdsa$/) { $no_ecdsa=1; }
elsif (/^no-hmac$/) { $no_hmac=1; }
elsif (/^no-aes$/) { $no_aes=1; }
elsif (/^no-evp$/) { $no_evp=1; }
@ -215,6 +216,7 @@ $crypto.=" crypto/rsa/rsa.h" ; # unless $no_rsa;
$crypto.=" crypto/dsa/dsa.h" ; # unless $no_dsa;
$crypto.=" crypto/dh/dh.h" ; # unless $no_dh;
$crypto.=" crypto/ec/ec.h" ; # unless $no_ec;
$crypto.=" crypto/ecdsa/ecdsa.h" ; # unless $no_ecdsa;
$crypto.=" crypto/hmac/hmac.h" ; # unless $no_hmac;
$crypto.=" crypto/engine/engine.h";
@ -1022,6 +1024,7 @@ sub is_valid
if ($keyword eq "DSA" && $no_dsa) { return 0; }
if ($keyword eq "DH" && $no_dh) { return 0; }
if ($keyword eq "EC" && $no_ec) { return 0; }
if ($keyword eq "ECDSA" && $no_ecdsa) { return 0; }
if ($keyword eq "HMAC" && $no_hmac) { return 0; }
if ($keyword eq "AES" && $no_aes) { return 0; }
if ($keyword eq "EVP" && $no_evp) { return 0; }

View file

@ -262,7 +262,7 @@ foreach $lib (keys %csrc)
} else {
push @out,
"/* ====================================================================\n",
" * Copyright (c) 2001 The OpenSSL Project. All rights reserved.\n",
" * Copyright (c) 2001-2002 The OpenSSL Project. All rights reserved.\n",
" *\n",
" * Redistribution and use in source and binary forms, with or without\n",
" * modification, are permitted provided that the following conditions\n",
@ -404,7 +404,7 @@ EOF
print OUT <<"EOF";
/* $cfile */
/* ====================================================================
* Copyright (c) 1999 The OpenSSL Project. All rights reserved.
* Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions