[openssl-commits] [openssl] master update

Dr. Stephen Henson steve at openssl.org
Wed Dec 9 22:11:21 UTC 2015


The branch master has been updated
       via  5e030525606d365f4f14a384d0b67f1cb38f2c6e (commit)
       via  8b8689aefaea14349728e566aa9788c9620393c7 (commit)
       via  970e7b5bf87a323f910584941bad12d28eec4c05 (commit)
       via  91e7bcc26494f1c0060964c90db2660a9e23e37a (commit)
       via  7bb75a5d08fad1cebd8cfc153c92d1f0c9ff03a0 (commit)
       via  77d0d10db7b0069d04a2ef73bb51638382cfcd7d (commit)
       via  3c4e064e784fc96e937d99dba58df2e761d5ba7c (commit)
       via  62690c6acff96ad504241cf459b98993cdc80422 (commit)
       via  f8d7d2d6dfeb64f6747dbf7dfec863cc8a16aee5 (commit)
       via  89313de5cb3536a59fadaccc48cb9fedb256bdbc (commit)
       via  a200a817add039d0515e6ecf94237b634819687d (commit)
       via  7d711cbc335206327d1dbb0389d9ab83b461d4de (commit)
       via  d2ad1c9617defee328e61134df4f2d23aecc590d (commit)
       via  1eb97c3ecd5a9c7faa9436d506735be0bd7c3b4b (commit)
       via  c8bfd40a92795b6cdfa81578719fc39f2c7bb5da (commit)
       via  180eec1666662b1c293cc5b466968021088d140a (commit)
       via  fb29bb5926371ebd4ba94be8dfa99b4f40f4dd7c (commit)
       via  cf517a6d3d2548b1a79155df5c384f4a4b3924d6 (commit)
       via  c535979126bb344420e6ce6654e050f6af6ae599 (commit)
       via  f84f31fc36e1e4e0e647661b8ac410ee97ce77ce (commit)
       via  8c6ef7869aa3ce4bb57b1c88a1d14f119c6e7323 (commit)
       via  6e73d12e766b81c91d255b1d5db8b110f5559544 (commit)
       via  6a774a662569a5f8231b815dd3487f4b1b7bcf07 (commit)
       via  bd3602eb8948dcd3a03cb56fbfa80bb4ac569cdb (commit)
       via  cf70b8f5a6b35375dc00f9a661ad655c774440c5 (commit)
       via  7236e3c8f78fbad0eedf8a78d783ee5d034f1661 (commit)
       via  ef5b2ba6fb112ea1e433952ed81030bfe9dcc3f4 (commit)
       via  8c661f76b6ddc7bd5a0a9355ac317c36896bb08c (commit)
       via  c0efda00e985b63717ff2087e3f2206fbabe764f (commit)
       via  6a47db450201dd7f6418be8177a6cfe5ffde3499 (commit)
       via  714b2abb298552698d19818d42d6cc19ffdb7cf2 (commit)
       via  0a6f1d97330f777f9bcf5fa4f91390b59b737975 (commit)
       via  2d3d00dcd85fcf6dfacebe03e1bf59388849159e (commit)
       via  3475bc9675fd7b575b260c62424d2ac1547dd251 (commit)
       via  ea0392b921598e415c754dcf4b5c61c7fa337a59 (commit)
       via  0d6ff6d3d1a19d491ec9a002b808cec23ca12107 (commit)
       via  5196641617ceef00af51128eb1db0083097d95e7 (commit)
       via  cda302d94fe7dd6357ff89aff3c9cf1dd8854324 (commit)
       via  1e8622297de2da7bcfe738d32ac84a396e7be0c2 (commit)
       via  30243c9523057a4f2d3cf57cc9206d87c2a54dfa (commit)
       via  fe74cc04322077ecf0ed6a24121c5969106ce21b (commit)
       via  d3bcab845e3cae7e97500c9ae5d380ff16f1fedc (commit)
       via  f517ffbb837ea02ac0a3a12d4094253ceb3946e8 (commit)
       via  53e3189d0cd8a849b3d9b6e4037eb6523270cc21 (commit)
       via  a22a7e70899a28fff4719d458e12f8bfcd457f62 (commit)
       via  647b2238755efb4a3dc6a6a6141c0ba1b2e54beb (commit)
       via  168e8374eeb7ae50816efcac23f65e7e1294360a (commit)
       via  768c53e1b615023b7eb4b2b5df2f0ab5fc3f4af8 (commit)
       via  5a6a1029d2a610188d4a3112aae1d7b55ce3f7e6 (commit)
       via  d2fa70d82b6e423baa472f0b3d75ef27d64a99c0 (commit)
       via  28572b577c9a8fa41d85e1d2dce8afb2892464cd (commit)
      from  28cbe2ab4a06058066f6328c6d8654954217c744 (commit)


- Log -----------------------------------------------------------------
commit 5e030525606d365f4f14a384d0b67f1cb38f2c6e
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Dec 9 13:41:44 2015 +0000

    add CHANGES and NEWS entry
    
    Todo: update documentation.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 8b8689aefaea14349728e566aa9788c9620393c7
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Dec 9 16:12:46 2015 +0000

    remove ECDSA error line
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 970e7b5bf87a323f910584941bad12d28eec4c05
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Dec 9 13:49:41 2015 +0000

    add compatibility headers
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 91e7bcc26494f1c0060964c90db2660a9e23e37a
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Dec 9 13:10:36 2015 +0000

    Use NULL comparison
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 7bb75a5d08fad1cebd8cfc153c92d1f0c9ff03a0
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Dec 9 00:27:10 2015 +0000

    add block comment
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 77d0d10db7b0069d04a2ef73bb51638382cfcd7d
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Dec 9 00:12:34 2015 +0000

    set standard EC method in eng_openssl
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 3c4e064e784fc96e937d99dba58df2e761d5ba7c
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Dec 9 00:01:30 2015 +0000

    make update
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 62690c6acff96ad504241cf459b98993cdc80422
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Dec 8 23:59:40 2015 +0000

    remove ecdsa.h header references.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit f8d7d2d6dfeb64f6747dbf7dfec863cc8a16aee5
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Oct 28 21:28:22 2015 +0000

    EC_KEY_METHOD accessors.
    
    Set of accessors to set and get each field.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 89313de5cb3536a59fadaccc48cb9fedb256bdbc
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Oct 28 16:51:47 2015 +0000

    make errors
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit a200a817add039d0515e6ecf94237b634819687d
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Oct 28 16:57:51 2015 +0000

    Top level ECDSA sign/verify redirection.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 7d711cbc335206327d1dbb0389d9ab83b461d4de
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Oct 28 12:29:43 2015 +0000

    Engine EC_KEY_METHOD functionality.
    
    Rename ENGINE _EC_KEY functions to _EC.
    Add support for EC_KEY_METHOD in ENGINE_set_default et al. Copy
    ec_meth.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit d2ad1c9617defee328e61134df4f2d23aecc590d
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 20:18:42 2015 +0000

    remove ecdsa from mkdef.pl
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 1eb97c3ecd5a9c7faa9436d506735be0bd7c3b4b
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 20:02:13 2015 +0000

    remove ECDSA_METHOD from ENGINE
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit c8bfd40a92795b6cdfa81578719fc39f2c7bb5da
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:57:28 2015 +0000

    remove ECDSA_METHOD typedef
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 180eec1666662b1c293cc5b466968021088d140a
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:56:15 2015 +0000

    add missing prototypes
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit fb29bb5926371ebd4ba94be8dfa99b4f40f4dd7c
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:39:32 2015 +0000

    remove ecdsa.h header
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit cf517a6d3d2548b1a79155df5c384f4a4b3924d6
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:34:17 2015 +0000

    add ECDSA_size to ec_asn1.c
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit c535979126bb344420e6ce6654e050f6af6ae599
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:32:46 2015 +0000

    remove errors
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit f84f31fc36e1e4e0e647661b8ac410ee97ce77ce
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:24:54 2015 +0000

    remove crypto/ecdsa
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 8c6ef7869aa3ce4bb57b1c88a1d14f119c6e7323
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:23:29 2015 +0000

    add sign/verify methods
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 6e73d12e766b81c91d255b1d5db8b110f5559544
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:18:59 2015 +0000

    return errors for unsupported operations
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 6a774a662569a5f8231b815dd3487f4b1b7bcf07
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:18:00 2015 +0000

    Remove reference to ECDSA_OpenSSL.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit bd3602eb8948dcd3a03cb56fbfa80bb4ac569cdb
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 19:11:00 2015 +0000

    Move and adapt ECDSA sign and verify functions.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit cf70b8f5a6b35375dc00f9a661ad655c774440c5
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 18:51:37 2015 +0000

    modify ecdsatest to use accessor
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 7236e3c8f78fbad0eedf8a78d783ee5d034f1661
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 18:51:04 2015 +0000

    Add ECDSA_SIG accessor.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit ef5b2ba6fb112ea1e433952ed81030bfe9dcc3f4
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 18:39:07 2015 +0000

    move ECDSA_SIG prototypes
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 8c661f76b6ddc7bd5a0a9355ac317c36896bb08c
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 18:33:42 2015 +0000

    make errors
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit c0efda00e985b63717ff2087e3f2206fbabe764f
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 18:29:41 2015 +0000

    extend EC_KEY_METHOD for signing support
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 6a47db450201dd7f6418be8177a6cfe5ffde3499
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 18:19:32 2015 +0000

    adapt ossl_ecdsa.c to crypto/ec
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 714b2abb298552698d19818d42d6cc19ffdb7cf2
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 18:18:18 2015 +0000

    move ECDSA_SIG definition
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 0a6f1d97330f777f9bcf5fa4f91390b59b737975
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 16:48:36 2015 +0000

    Move ECDSA implementation to crypto/ec
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 2d3d00dcd85fcf6dfacebe03e1bf59388849159e
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Oct 27 16:45:47 2015 +0000

    Move ECDSA_SIG ASN.1 to crypto/ec
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 3475bc9675fd7b575b260c62424d2ac1547dd251
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Sun Oct 25 13:09:50 2015 +0000

    Add set methods.
    
    Add set_group, set_public and set_private methods. An EC_KEY_METHOD can use
    these to perform any appropriate operation when the key components are set,
    such as caching data in some more convenient ENGINE specific format or
    returning an error if the parameters are invalid or the operation is
    not supported.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit ea0392b921598e415c754dcf4b5c61c7fa337a59
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Fri Oct 23 19:19:57 2015 +0100

    EC_KEY_METHOD copy support
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 0d6ff6d3d1a19d491ec9a002b808cec23ca12107
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Fri Oct 23 19:10:24 2015 +0100

    EC_KEY_METHOD init and finish support
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 5196641617ceef00af51128eb1db0083097d95e7
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Fri Oct 23 18:46:58 2015 +0100

    ENGINE fixes
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit cda302d94fe7dd6357ff89aff3c9cf1dd8854324
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 19:22:53 2015 +0100

    remove ECDH from mkdef.pl
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 1e8622297de2da7bcfe738d32ac84a396e7be0c2
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 16:17:50 2015 +0100

    remove ECDH_METHOD typedef
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 30243c9523057a4f2d3cf57cc9206d87c2a54dfa
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 19:02:49 2015 +0100

    remove ecdh.h header
    
    Remove redundant ecdh.h header and any references to it.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit fe74cc04322077ecf0ed6a24121c5969106ce21b
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 18:59:32 2015 +0100

    remove ECDH error loading
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit d3bcab845e3cae7e97500c9ae5d380ff16f1fedc
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 18:54:49 2015 +0100

    Remove crypto/ecdh update Makefile.org
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit f517ffbb837ea02ac0a3a12d4094253ceb3946e8
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 16:17:50 2015 +0100

    remove ECDH_METHOD from ENGINE
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 53e3189d0cd8a849b3d9b6e4037eb6523270cc21
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 18:51:25 2015 +0100

    make errors
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit a22a7e70899a28fff4719d458e12f8bfcd457f62
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 18:48:59 2015 +0100

    Add compute key support to EC_KEY_METHOD
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 647b2238755efb4a3dc6a6a6141c0ba1b2e54beb
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 18:47:11 2015 +0100

    Adapt ecdh_compute_key
    
    Rename ecdh_compute_key into ossl_ecdh_compute_key and modify it
    to use EC error codes. Remove superfluous old ECDH functions.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 168e8374eeb7ae50816efcac23f65e7e1294360a
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 18:35:56 2015 +0100

    move ECDH implementation to crypto/ec
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 768c53e1b615023b7eb4b2b5df2f0ab5fc3f4af8
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 15:47:38 2015 +0100

    Move ECDH_KDF_X9_62 to crypto/ec
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 5a6a1029d2a610188d4a3112aae1d7b55ce3f7e6
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Oct 22 14:53:23 2015 +0100

    EC_KEY_METHOD keygen support.
    
    Add keygen to EC_KEY_METHOD. Redirect EC_KEY_generate_key through
    method and set the current EC key generation function as the default.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit d2fa70d82b6e423baa472f0b3d75ef27d64a99c0
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Wed Oct 21 00:36:54 2015 +0100

    make errors
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

commit 28572b577c9a8fa41d85e1d2dce8afb2892464cd
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Mon Oct 19 14:38:43 2015 +0100

    Support for EC_KEY_METHOD.
    
    Add EC_KEY_METHOD. This is part of the EC revision and will make EC behave
    more like other algorithms. Specifically:
    
    EC_KEY_METHOD is part of EC_KEY.
    It is part of ENGINE.
    Default or key specific implementations can be provided to redirect some
    or all operations.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 CHANGES                                      |  10 +
 Makefile.org                                 |   2 +-
 NEWS                                         |   1 +
 apps/Makefile                                | 118 +++-------
 apps/speed.c                                 |   3 +-
 crypto/asn1/Makefile                         |  48 +---
 crypto/cmac/Makefile                         |   3 +-
 crypto/cms/Makefile                          |  30 +--
 crypto/conf/Makefile                         |   9 +-
 crypto/ct/Makefile                           |   1 -
 crypto/dh/Makefile                           |   6 +-
 crypto/dsa/Makefile                          |   3 -
 crypto/ec/Makefile                           |  92 +++++++-
 crypto/ec/ec_asn1.c                          |  51 ++++
 crypto/ec/ec_err.c                           |   9 +
 crypto/ec/ec_key.c                           |  90 ++++++--
 crypto/ec/ec_kmeth.c                         | 317 +++++++++++++++++++++++++
 crypto/ec/ec_lcl.h                           |  60 +++++
 crypto/ec/ec_pmeth.c                         |   1 -
 crypto/{ecdh/ech_kdf.c => ec/ecdh_kdf.c}     |   4 +-
 crypto/{ecdh/ech_ossl.c => ec/ecdh_ossl.c}   |  53 ++---
 crypto/{ecdsa/ecs_ossl.c => ec/ecdsa_ossl.c} | 189 ++++++++-------
 crypto/{ecdsa/ecs_sign.c => ec/ecdsa_sign.c} |  40 ++--
 crypto/{ecdsa/ecs_vrf.c => ec/ecdsa_vrf.c}   |  37 +--
 crypto/ecdh/Makefile                         | 110 ---------
 crypto/ecdh/ech_err.c                        |  96 --------
 crypto/ecdh/ech_key.c                        |  81 -------
 crypto/ecdh/ech_lib.c                        | 219 ------------------
 crypto/ecdh/ech_locl.h                       | 100 --------
 crypto/ecdsa/Makefile                        | 127 ----------
 crypto/ecdsa/ecs_asn1.c                      |  67 ------
 crypto/ecdsa/ecs_err.c                       | 105 ---------
 crypto/ecdsa/ecs_lib.c                       | 313 -------------------------
 crypto/ecdsa/ecs_locl.h                      | 116 ----------
 crypto/engine/Makefile                       | 102 +++-----
 crypto/engine/eng_fat.c                      |  13 +-
 crypto/engine/eng_int.h                      |   3 +-
 crypto/engine/eng_list.c                     |   3 +-
 crypto/engine/eng_openssl.c                  |   3 +-
 crypto/engine/tb_ecdh.c                      | 139 -----------
 crypto/engine/tb_ecdsa.c                     | 124 ----------
 crypto/engine/{tb_dh.c => tb_eckey.c}        |  40 ++--
 crypto/err/Makefile                          |   1 -
 crypto/err/err_all.c                         |   6 -
 crypto/err/openssl.ec                        |   2 -
 crypto/evp/Makefile                          |  56 ++---
 crypto/hmac/Makefile                         |   1 -
 crypto/ocsp/Makefile                         |  18 +-
 crypto/pem/Makefile                          |  26 +--
 crypto/pkcs12/Makefile                       |  37 +--
 crypto/pkcs7/Makefile                        |  12 +-
 crypto/rand/Makefile                         |   3 +-
 crypto/rsa/Makefile                          |  10 +-
 crypto/ts/Makefile                           |  17 +-
 crypto/x509/Makefile                         |  66 ++----
 crypto/x509v3/Makefile                       |  82 ++-----
 engines/Makefile                             |   9 +-
 engines/ccgost/Makefile                      |  26 +--
 engines/ccgost/gost2001.c                    |   2 +-
 include/openssl/ec.h                         | 276 +++++++++++++++++++++-
 include/openssl/ecdh.h                       | 132 +----------
 include/openssl/ecdsa.h                      | 333 +--------------------------
 include/openssl/engine.h                     |  28 +--
 include/openssl/ossl_typ.h                   |   3 -
 include/openssl/x509.h                       |   2 -
 ssl/Makefile                                 |  90 +++-----
 test/Makefile                                |  41 ++--
 test/ecdhtest.c                              |   1 -
 test/ecdsatest.c                             |  25 +-
 util/libeay.num                              |  98 +++++---
 util/mkdef.pl                                |  10 +-
 71 files changed, 1363 insertions(+), 2988 deletions(-)
 create mode 100644 crypto/ec/ec_kmeth.c
 rename crypto/{ecdh/ech_kdf.c => ec/ecdh_kdf.c} (98%)
 rename crypto/{ecdh/ech_ossl.c => ec/ecdh_ossl.c} (77%)
 rename crypto/{ecdsa/ecs_ossl.c => ec/ecdsa_ossl.c} (71%)
 rename crypto/{ecdsa/ecs_sign.c => ec/ecdsa_sign.c} (82%)
 rename crypto/{ecdsa/ecs_vrf.c => ec/ecdsa_vrf.c} (81%)
 delete mode 100644 crypto/ecdh/Makefile
 delete mode 100644 crypto/ecdh/ech_err.c
 delete mode 100644 crypto/ecdh/ech_key.c
 delete mode 100644 crypto/ecdh/ech_lib.c
 delete mode 100644 crypto/ecdh/ech_locl.h
 delete mode 100644 crypto/ecdsa/Makefile
 delete mode 100644 crypto/ecdsa/ecs_asn1.c
 delete mode 100644 crypto/ecdsa/ecs_err.c
 delete mode 100644 crypto/ecdsa/ecs_lib.c
 delete mode 100644 crypto/ecdsa/ecs_locl.h
 delete mode 100644 crypto/engine/tb_ecdh.c
 delete mode 100644 crypto/engine/tb_ecdsa.c
 copy crypto/engine/{tb_dh.c => tb_eckey.c} (79%)

diff --git a/CHANGES b/CHANGES
index 9ee1731..1b26b7b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,16 @@
 
  Changes between 1.0.2e and 1.1.0  [xx XXX xxxx]
 
+  *) New EC_KEY_METHOD, this replaces the older ECDSA_METHOD and ECDH_METHOD
+     and integrates ECDSA and ECDH functionality into EC. Implementations can
+     now redirect key generation and no longer need to convert to or from
+     ECDSA_SIG format.
+
+     Note: the ecdsa.h and ecdh.h headers are now no longer needed and just
+     include the ec.h header file instead.
+
+     [Steve Henson]
+
   *) Remove support for all 40 and 56 bit ciphers.  This includes all the export
      ciphers who are no longer supported and drops support the ephemeral RSA key
      exchange. The LOW ciphers currently doesn't have any ciphers in it.
diff --git a/Makefile.org b/Makefile.org
index 1c604f1..8f64a98 100644
--- a/Makefile.org
+++ b/Makefile.org
@@ -140,7 +140,7 @@ SDIRS=  \
 	objects \
 	md2 md4 md5 sha mdc2 hmac ripemd whrlpool \
 	des aes rc2 rc4 rc5 idea bf cast camellia seed modes \
-	bn ec rsa dsa ecdsa dh ecdh dso engine \
+	bn ec rsa dsa dh dso engine \
 	buffer bio stack lhash rand err \
 	evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui \
 	cms pqueue ts jpake srp store cmac ct async
diff --git a/NEWS b/NEWS
index 37ff1a5..86a81fa 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,7 @@
       o 40 and 56 bit cipher support removed from libssl
       o All public header files moved to include/openssl, no more symlinking
       o SSL/TLS state machine and record layer rewritten
+      o EC revision: now operations use new EC_KEY_METHOD.
 
   Major changes between OpenSSL 1.0.2d and OpenSSL 1.0.2e [3 Dec 2015]
 
diff --git a/apps/Makefile b/apps/Makefile
index 58c3d00..ab6d646 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -157,8 +157,7 @@ progs.h: progs.pl Makefile
 app_rand.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 app_rand.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 app_rand.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-app_rand.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-app_rand.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+app_rand.o: ../include/openssl/ec.h ../include/openssl/engine.h
 app_rand.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 app_rand.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 app_rand.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
@@ -174,7 +173,6 @@ apps.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 apps.o: ../include/openssl/comp.h ../include/openssl/conf.h
 apps.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
 apps.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-apps.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 apps.o: ../include/openssl/engine.h ../include/openssl/err.h
 apps.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 apps.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
@@ -194,8 +192,7 @@ apps.o: progs.h
 asn1pars.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 asn1pars.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 asn1pars.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-asn1pars.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-asn1pars.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+asn1pars.o: ../include/openssl/ec.h ../include/openssl/engine.h
 asn1pars.o: ../include/openssl/err.h ../include/openssl/evp.h
 asn1pars.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 asn1pars.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -211,7 +208,6 @@ ca.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 ca.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 ca.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 ca.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ca.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 ca.o: ../include/openssl/engine.h ../include/openssl/err.h
 ca.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 ca.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -227,8 +223,7 @@ ciphers.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 ciphers.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ciphers.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 ciphers.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ciphers.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ciphers.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ciphers.o: ../include/openssl/ec.h ../include/openssl/engine.h
 ciphers.o: ../include/openssl/err.h ../include/openssl/evp.h
 ciphers.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ciphers.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -247,7 +242,6 @@ cms.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 cms.o: ../include/openssl/buffer.h ../include/openssl/cms.h
 cms.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 cms.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-cms.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 cms.o: ../include/openssl/engine.h ../include/openssl/err.h
 cms.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 cms.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -262,8 +256,7 @@ cms.o: ../include/openssl/x509v3.h apps.h cms.c progs.h
 crl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 crl.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 crl.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-crl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-crl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+crl.o: ../include/openssl/ec.h ../include/openssl/engine.h
 crl.o: ../include/openssl/err.h ../include/openssl/evp.h
 crl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 crl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -278,8 +271,7 @@ crl.o: progs.h
 crl2p7.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 crl2p7.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 crl2p7.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-crl2p7.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-crl2p7.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+crl2p7.o: ../include/openssl/ec.h ../include/openssl/engine.h
 crl2p7.o: ../include/openssl/err.h ../include/openssl/evp.h
 crl2p7.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 crl2p7.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -294,8 +286,7 @@ crl2p7.o: crl2p7.c progs.h
 dgst.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 dgst.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 dgst.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-dgst.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-dgst.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+dgst.o: ../include/openssl/ec.h ../include/openssl/engine.h
 dgst.o: ../include/openssl/err.h ../include/openssl/evp.h
 dgst.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 dgst.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -312,7 +303,6 @@ dhparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 dhparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 dhparam.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 dhparam.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-dhparam.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 dhparam.o: ../include/openssl/engine.h ../include/openssl/err.h
 dhparam.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 dhparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -328,8 +318,7 @@ dsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 dsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 dsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 dsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
-dsa.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-dsa.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+dsa.o: ../include/openssl/ec.h ../include/openssl/engine.h
 dsa.o: ../include/openssl/err.h ../include/openssl/evp.h
 dsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 dsa.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -345,8 +334,7 @@ dsaparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 dsaparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 dsaparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 dsaparam.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
-dsaparam.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-dsaparam.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+dsaparam.o: ../include/openssl/ec.h ../include/openssl/engine.h
 dsaparam.o: ../include/openssl/err.h ../include/openssl/evp.h
 dsaparam.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 dsaparam.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -361,8 +349,7 @@ dsaparam.o: dsaparam.c progs.h
 ec.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 ec.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 ec.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-ec.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ec.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ec.o: ../include/openssl/ec.h ../include/openssl/engine.h
 ec.o: ../include/openssl/err.h ../include/openssl/evp.h
 ec.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 ec.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -378,7 +365,6 @@ ecparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 ecparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 ecparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 ecparam.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ecparam.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 ecparam.o: ../include/openssl/engine.h ../include/openssl/err.h
 ecparam.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 ecparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -394,7 +380,6 @@ enc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 enc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 enc.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 enc.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-enc.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 enc.o: ../include/openssl/engine.h ../include/openssl/err.h
 enc.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 enc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -411,8 +396,7 @@ engine.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 engine.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 engine.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 engine.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-engine.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-engine.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+engine.o: ../include/openssl/ec.h ../include/openssl/engine.h
 engine.o: ../include/openssl/err.h ../include/openssl/evp.h
 engine.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 engine.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -431,8 +415,7 @@ errstr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 errstr.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 errstr.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 errstr.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-errstr.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-errstr.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+errstr.o: ../include/openssl/ec.h ../include/openssl/engine.h
 errstr.o: ../include/openssl/err.h ../include/openssl/evp.h
 errstr.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 errstr.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -451,8 +434,7 @@ gendsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 gendsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 gendsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 gendsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
-gendsa.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-gendsa.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+gendsa.o: ../include/openssl/ec.h ../include/openssl/engine.h
 gendsa.o: ../include/openssl/err.h ../include/openssl/evp.h
 gendsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 gendsa.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -467,8 +449,7 @@ gendsa.o: gendsa.c progs.h
 genpkey.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 genpkey.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 genpkey.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-genpkey.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-genpkey.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+genpkey.o: ../include/openssl/ec.h ../include/openssl/engine.h
 genpkey.o: ../include/openssl/err.h ../include/openssl/evp.h
 genpkey.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 genpkey.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -484,7 +465,6 @@ genrsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 genrsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 genrsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 genrsa.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-genrsa.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 genrsa.o: ../include/openssl/engine.h ../include/openssl/err.h
 genrsa.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 genrsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -500,8 +480,7 @@ genrsa.o: ../include/openssl/x509v3.h apps.h genrsa.c progs.h
 nseq.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 nseq.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 nseq.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-nseq.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-nseq.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+nseq.o: ../include/openssl/ec.h ../include/openssl/engine.h
 nseq.o: ../include/openssl/err.h ../include/openssl/evp.h
 nseq.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 nseq.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -518,7 +497,6 @@ ocsp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 ocsp.o: ../include/openssl/comp.h ../include/openssl/conf.h
 ocsp.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
 ocsp.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ocsp.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 ocsp.o: ../include/openssl/engine.h ../include/openssl/err.h
 ocsp.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 ocsp.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
@@ -537,8 +515,7 @@ openssl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 openssl.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 openssl.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 openssl.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-openssl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-openssl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+openssl.o: ../include/openssl/ec.h ../include/openssl/engine.h
 openssl.o: ../include/openssl/err.h ../include/openssl/evp.h
 openssl.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 openssl.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -556,8 +533,7 @@ openssl.o: ../include/openssl/x509v3.h apps.h openssl.c progs.h s_apps.h
 opt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 opt.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 opt.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-opt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-opt.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+opt.o: ../include/openssl/ec.h ../include/openssl/engine.h
 opt.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 opt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 opt.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
@@ -571,7 +547,6 @@ passwd.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 passwd.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 passwd.o: ../include/openssl/crypto.h ../include/openssl/des.h
 passwd.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-passwd.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 passwd.o: ../include/openssl/engine.h ../include/openssl/err.h
 passwd.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 passwd.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
@@ -586,8 +561,7 @@ passwd.o: ../include/openssl/x509v3.h apps.h passwd.c progs.h
 pkcs12.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 pkcs12.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 pkcs12.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-pkcs12.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-pkcs12.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkcs12.o: ../include/openssl/ec.h ../include/openssl/engine.h
 pkcs12.o: ../include/openssl/err.h ../include/openssl/evp.h
 pkcs12.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 pkcs12.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -602,8 +576,7 @@ pkcs12.o: ../include/openssl/x509v3.h apps.h pkcs12.c progs.h
 pkcs7.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 pkcs7.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 pkcs7.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-pkcs7.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-pkcs7.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkcs7.o: ../include/openssl/ec.h ../include/openssl/engine.h
 pkcs7.o: ../include/openssl/err.h ../include/openssl/evp.h
 pkcs7.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 pkcs7.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -618,8 +591,7 @@ pkcs7.o: pkcs7.c progs.h
 pkcs8.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 pkcs8.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 pkcs8.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-pkcs8.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-pkcs8.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkcs8.o: ../include/openssl/ec.h ../include/openssl/engine.h
 pkcs8.o: ../include/openssl/err.h ../include/openssl/evp.h
 pkcs8.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 pkcs8.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -634,8 +606,7 @@ pkcs8.o: ../include/openssl/x509v3.h apps.h pkcs8.c progs.h
 pkey.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 pkey.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 pkey.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-pkey.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-pkey.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkey.o: ../include/openssl/ec.h ../include/openssl/engine.h
 pkey.o: ../include/openssl/err.h ../include/openssl/evp.h
 pkey.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 pkey.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -650,8 +621,7 @@ pkey.o: progs.h
 pkeyparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 pkeyparam.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 pkeyparam.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-pkeyparam.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-pkeyparam.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkeyparam.o: ../include/openssl/ec.h ../include/openssl/engine.h
 pkeyparam.o: ../include/openssl/err.h ../include/openssl/evp.h
 pkeyparam.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 pkeyparam.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -666,8 +636,7 @@ pkeyparam.o: pkeyparam.c progs.h
 pkeyutl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 pkeyutl.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 pkeyutl.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-pkeyutl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-pkeyutl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkeyutl.o: ../include/openssl/ec.h ../include/openssl/engine.h
 pkeyutl.o: ../include/openssl/err.h ../include/openssl/evp.h
 pkeyutl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 pkeyutl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -683,7 +652,6 @@ prime.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 prime.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 prime.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 prime.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-prime.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 prime.o: ../include/openssl/engine.h ../include/openssl/evp.h
 prime.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 prime.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -697,8 +665,7 @@ prime.o: prime.c progs.h
 rand.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 rand.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 rand.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-rand.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-rand.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+rand.o: ../include/openssl/ec.h ../include/openssl/engine.h
 rand.o: ../include/openssl/err.h ../include/openssl/evp.h
 rand.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 rand.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -713,8 +680,7 @@ req.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 req.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 req.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 req.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
-req.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-req.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+req.o: ../include/openssl/ec.h ../include/openssl/engine.h
 req.o: ../include/openssl/err.h ../include/openssl/evp.h
 req.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 req.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -730,7 +696,6 @@ rsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 rsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 rsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 rsa.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-rsa.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 rsa.o: ../include/openssl/engine.h ../include/openssl/err.h
 rsa.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 rsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -746,8 +711,7 @@ rsa.o: rsa.c
 rsautl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 rsautl.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 rsautl.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-rsautl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-rsautl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+rsautl.o: ../include/openssl/ec.h ../include/openssl/engine.h
 rsautl.o: ../include/openssl/err.h ../include/openssl/evp.h
 rsautl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 rsautl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -764,8 +728,7 @@ s_cb.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 s_cb.o: ../include/openssl/comp.h ../include/openssl/conf.h
 s_cb.o: ../include/openssl/crypto.h ../include/openssl/dh.h
 s_cb.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-s_cb.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-s_cb.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+s_cb.o: ../include/openssl/ec.h ../include/openssl/engine.h
 s_cb.o: ../include/openssl/err.h ../include/openssl/evp.h
 s_cb.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 s_cb.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -785,8 +748,7 @@ s_client.o: ../include/openssl/bio.h ../include/openssl/bn.h
 s_client.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 s_client.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 s_client.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-s_client.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-s_client.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+s_client.o: ../include/openssl/ec.h ../include/openssl/engine.h
 s_client.o: ../include/openssl/err.h ../include/openssl/evp.h
 s_client.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 s_client.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -808,7 +770,6 @@ s_server.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 s_server.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 s_server.o: ../include/openssl/dh.h ../include/openssl/dtls1.h
 s_server.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-s_server.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 s_server.o: ../include/openssl/engine.h ../include/openssl/err.h
 s_server.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 s_server.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
@@ -829,8 +790,7 @@ s_socket.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 s_socket.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 s_socket.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 s_socket.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-s_socket.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-s_socket.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+s_socket.o: ../include/openssl/ec.h ../include/openssl/engine.h
 s_socket.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 s_socket.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 s_socket.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -848,8 +808,7 @@ s_time.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 s_time.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 s_time.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 s_time.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-s_time.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-s_time.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+s_time.o: ../include/openssl/ec.h ../include/openssl/engine.h
 s_time.o: ../include/openssl/err.h ../include/openssl/evp.h
 s_time.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 s_time.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -868,8 +827,7 @@ sess_id.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 sess_id.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 sess_id.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 sess_id.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-sess_id.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-sess_id.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+sess_id.o: ../include/openssl/ec.h ../include/openssl/engine.h
 sess_id.o: ../include/openssl/err.h ../include/openssl/evp.h
 sess_id.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 sess_id.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -887,8 +845,7 @@ sess_id.o: progs.h sess_id.c
 smime.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 smime.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 smime.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-smime.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-smime.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+smime.o: ../include/openssl/ec.h ../include/openssl/engine.h
 smime.o: ../include/openssl/err.h ../include/openssl/evp.h
 smime.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 smime.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -907,7 +864,6 @@ speed.o: ../include/openssl/camellia.h ../include/openssl/cast.h
 speed.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 speed.o: ../include/openssl/des.h ../include/openssl/dsa.h
 speed.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-speed.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 speed.o: ../include/openssl/engine.h ../include/openssl/err.h
 speed.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 speed.o: ../include/openssl/idea.h ../include/openssl/lhash.h
@@ -928,8 +884,7 @@ speed.o: progs.h speed.c testdsa.h testrsa.h
 spkac.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 spkac.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 spkac.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-spkac.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-spkac.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+spkac.o: ../include/openssl/ec.h ../include/openssl/engine.h
 spkac.o: ../include/openssl/err.h ../include/openssl/evp.h
 spkac.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 spkac.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -945,7 +900,6 @@ srp.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 srp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 srp.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 srp.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-srp.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 srp.o: ../include/openssl/engine.h ../include/openssl/err.h
 srp.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 srp.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -962,7 +916,6 @@ ts.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 ts.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 ts.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 ts.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ts.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 ts.o: ../include/openssl/engine.h ../include/openssl/err.h
 ts.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 ts.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -979,8 +932,7 @@ ts.o: ts.c
 verify.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 verify.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 verify.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-verify.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-verify.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+verify.o: ../include/openssl/ec.h ../include/openssl/engine.h
 verify.o: ../include/openssl/err.h ../include/openssl/evp.h
 verify.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 verify.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -997,7 +949,6 @@ version.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
 version.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 version.o: ../include/openssl/crypto.h ../include/openssl/des.h
 version.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-version.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 version.o: ../include/openssl/engine.h ../include/openssl/evp.h
 version.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 version.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -1013,8 +964,7 @@ x509.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 x509.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 x509.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 x509.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
-x509.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-x509.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+x509.o: ../include/openssl/ec.h ../include/openssl/engine.h
 x509.o: ../include/openssl/err.h ../include/openssl/evp.h
 x509.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 x509.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
diff --git a/apps/speed.c b/apps/speed.c
index 8e1fe84..c63ea0a 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -168,8 +168,7 @@
 # include "./testdsa.h"
 #endif
 #ifndef OPENSSL_NO_EC
-# include <openssl/ecdsa.h>
-# include <openssl/ecdh.h>
+# include <openssl/ec.h>
 #endif
 #include <openssl/modes.h>
 
diff --git a/crypto/asn1/Makefile b/crypto/asn1/Makefile
index 3f59adc..d67c4cf 100644
--- a/crypto/asn1/Makefile
+++ b/crypto/asn1/Makefile
@@ -116,8 +116,7 @@ a_d2i_fp.o: a_d2i_fp.c
 a_digest.o: ../../e_os.h ../../include/openssl/asn1.h
 a_digest.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 a_digest.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-a_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-a_digest.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+a_digest.o: ../../include/openssl/ec.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
@@ -198,8 +197,7 @@ a_print.o: ../include/internal/cryptlib.h a_print.c
 a_sign.o: ../../e_os.h ../../include/openssl/asn1.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/e_os2.h
-a_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-a_sign.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+a_sign.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 a_sign.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 a_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 a_sign.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -212,8 +210,7 @@ a_sign.o: ../include/internal/evp_int.h a_sign.c
 a_strex.o: ../../e_os.h ../../include/openssl/asn1.h
 a_strex.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 a_strex.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-a_strex.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-a_strex.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+a_strex.o: ../../include/openssl/ec.h ../../include/openssl/err.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
@@ -271,7 +268,6 @@ 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/e_os2.h ../../include/openssl/ec.h
-a_verify.o: ../../include/openssl/ecdh.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
@@ -285,7 +281,6 @@ ameth_lib.o: ../../e_os.h ../../include/openssl/asn1.h
 ameth_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 ameth_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 ameth_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ameth_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ameth_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 ameth_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 ameth_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -307,7 +302,6 @@ asn1_gen.o: ../../e_os.h ../../include/openssl/asn1.h
 asn1_gen.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 asn1_gen.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 asn1_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-asn1_gen.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 asn1_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 asn1_gen.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 asn1_gen.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -340,7 +334,6 @@ asn_mime.o: ../../e_os.h ../../include/openssl/asn1.h
 asn_mime.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 asn_mime.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 asn_mime.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-asn_mime.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 asn_mime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 asn_mime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 asn_mime.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -355,8 +348,7 @@ asn_moid.o: ../../e_os.h ../../include/openssl/asn1.h
 asn_moid.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 asn_moid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 asn_moid.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
-asn_moid.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-asn_moid.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+asn_moid.o: ../../include/openssl/ec.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
@@ -370,7 +362,6 @@ asn_mstbl.o: ../../e_os.h ../../include/openssl/asn1.h
 asn_mstbl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 asn_mstbl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 asn_mstbl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-asn_mstbl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 asn_mstbl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 asn_mstbl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 asn_mstbl.o: ../../include/openssl/objects.h
@@ -406,8 +397,7 @@ bio_ndef.o: ../../include/openssl/symhacks.h bio_ndef.c
 d2i_pr.o: ../../e_os.h ../../include/openssl/asn1.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/e_os2.h
-d2i_pr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-d2i_pr.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+d2i_pr.o: ../../include/openssl/ec.h ../../include/openssl/engine.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
@@ -457,7 +447,6 @@ f_string.o: f_string.c
 i2d_pr.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 i2d_pr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 i2d_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-i2d_pr.o: ../../include/openssl/ecdh.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
@@ -482,7 +471,6 @@ n_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
 n_pkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 n_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 n_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-n_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 n_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 n_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 n_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -495,8 +483,7 @@ n_pkey.o: ../include/internal/cryptlib.h n_pkey.c
 nsseq.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 nsseq.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 nsseq.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-nsseq.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-nsseq.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+nsseq.o: ../../include/openssl/ec.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
@@ -508,7 +495,6 @@ p5_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
 p5_pbe.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 p5_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p5_pbe.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p5_pbe.o: ../../include/openssl/ecdh.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
@@ -522,7 +508,6 @@ p5_pbev2.o: ../../e_os.h ../../include/openssl/asn1.h
 p5_pbev2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 p5_pbev2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p5_pbev2.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p5_pbev2.o: ../../include/openssl/ecdh.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
@@ -536,7 +521,6 @@ p5_scrypt.o: ../../e_os.h ../../include/openssl/asn1.h
 p5_scrypt.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 p5_scrypt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p5_scrypt.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p5_scrypt.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 p5_scrypt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 p5_scrypt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 p5_scrypt.o: ../../include/openssl/objects.h
@@ -551,7 +535,6 @@ p8_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
 p8_pkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 p8_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p8_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p8_pkey.o: ../../include/openssl/ecdh.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
@@ -565,7 +548,6 @@ t_bitst.o: ../../e_os.h ../../include/openssl/asn1.h
 t_bitst.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 t_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 t_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-t_bitst.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -588,7 +570,6 @@ t_spki.o: ../../e_os.h ../../include/openssl/asn1.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/dsa.h
 t_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-t_spki.o: ../../include/openssl/ecdh.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
@@ -636,8 +617,7 @@ tasn_prn.o: ../../e_os.h ../../include/openssl/asn1.h
 tasn_prn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 tasn_prn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 tasn_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tasn_prn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tasn_prn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+tasn_prn.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 tasn_prn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 tasn_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 tasn_prn.o: ../../include/openssl/opensslconf.h
@@ -652,8 +632,7 @@ tasn_scn.o: ../../e_os.h ../../include/openssl/asn1.h
 tasn_scn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 tasn_scn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 tasn_scn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tasn_scn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tasn_scn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+tasn_scn.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 tasn_scn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 tasn_scn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 tasn_scn.o: ../../include/openssl/opensslconf.h
@@ -682,8 +661,7 @@ tasn_utl.o: asn1_locl.h tasn_utl.c
 x_algor.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 x_algor.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x_algor.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x_algor.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x_algor.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+x_algor.o: ../../include/openssl/ec.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
@@ -705,7 +683,6 @@ x_bignum.o: x_bignum.c
 x_info.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 x_info.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_info.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_info.o: ../../include/openssl/ecdh.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
@@ -727,7 +704,6 @@ x_long.o: ../include/internal/cryptlib.h x_long.c
 x_pkey.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 x_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -741,8 +717,7 @@ 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/buffer.h ../../include/openssl/crypto.h
 x_pubkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-x_pubkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x_pubkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x_pubkey.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 x_pubkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 x_pubkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 x_pubkey.o: ../../include/openssl/opensslconf.h
@@ -757,7 +732,6 @@ x_sig.o: ../../e_os.h ../../include/openssl/asn1.h
 x_sig.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_sig.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_sig.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_sig.o: ../../include/openssl/ecdh.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
@@ -771,7 +745,6 @@ x_spki.o: ../../e_os.h ../../include/openssl/asn1.h
 x_spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_spki.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_spki.o: ../../include/openssl/ecdh.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
@@ -785,7 +758,6 @@ x_val.o: ../../e_os.h ../../include/openssl/asn1.h
 x_val.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_val.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_val.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_val.o: ../../include/openssl/ecdh.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
diff --git a/crypto/cmac/Makefile b/crypto/cmac/Makefile
index 0c770c4..80b5910 100644
--- a/crypto/cmac/Makefile
+++ b/crypto/cmac/Makefile
@@ -75,8 +75,7 @@ cm_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
 cm_pmeth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 cm_pmeth.o: ../../include/openssl/cmac.h ../../include/openssl/conf.h
 cm_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cm_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cm_pmeth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cm_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 cm_pmeth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 cm_pmeth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 cm_pmeth.o: ../../include/openssl/opensslconf.h
diff --git a/crypto/cms/Makefile b/crypto/cms/Makefile
index 4924fcf..832c731 100644
--- a/crypto/cms/Makefile
+++ b/crypto/cms/Makefile
@@ -70,8 +70,7 @@ cms_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 cms_asn1.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 cms_asn1.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
 cms_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cms_asn1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cms_asn1.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+cms_asn1.o: ../../include/openssl/ec.h ../../include/openssl/evp.h
 cms_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 cms_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 cms_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
@@ -85,8 +84,7 @@ cms_att.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 cms_att.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 cms_att.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
 cms_att.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cms_att.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cms_att.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_att.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 cms_att.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 cms_att.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 cms_att.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -101,8 +99,7 @@ cms_cd.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 cms_cd.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 cms_cd.o: ../../include/openssl/comp.h ../../include/openssl/conf.h
 cms_cd.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cms_cd.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cms_cd.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_cd.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 cms_cd.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 cms_cd.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 cms_cd.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -118,7 +115,6 @@ cms_dd.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 cms_dd.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 cms_dd.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 cms_dd.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-cms_dd.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 cms_dd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 cms_dd.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 cms_dd.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -134,7 +130,6 @@ cms_enc.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 cms_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 cms_enc.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 cms_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-cms_enc.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 cms_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 cms_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 cms_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -151,8 +146,7 @@ cms_env.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 cms_env.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 cms_env.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
 cms_env.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cms_env.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cms_env.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_env.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 cms_env.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 cms_env.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 cms_env.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -167,8 +161,7 @@ cms_env.o: cms_env.c cms_lcl.h
 cms_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 cms_err.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 cms_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cms_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cms_err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_err.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 cms_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 cms_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 cms_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -182,7 +175,6 @@ cms_ess.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 cms_ess.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 cms_ess.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 cms_ess.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-cms_ess.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 cms_ess.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 cms_ess.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 cms_ess.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -198,7 +190,6 @@ cms_io.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 cms_io.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 cms_io.o: ../../include/openssl/cms.h ../../include/openssl/crypto.h
 cms_io.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-cms_io.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 cms_io.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 cms_io.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 cms_io.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -213,8 +204,7 @@ cms_kari.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 cms_kari.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 cms_kari.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
 cms_kari.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cms_kari.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cms_kari.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_kari.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 cms_kari.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 cms_kari.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 cms_kari.o: ../../include/openssl/opensslconf.h
@@ -230,8 +220,7 @@ cms_lib.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 cms_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 cms_lib.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
 cms_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cms_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cms_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_lib.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 cms_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 cms_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 cms_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -246,8 +235,7 @@ cms_pwri.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 cms_pwri.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 cms_pwri.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
 cms_pwri.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-cms_pwri.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-cms_pwri.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_pwri.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 cms_pwri.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 cms_pwri.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 cms_pwri.o: ../../include/openssl/opensslconf.h
@@ -264,7 +252,6 @@ cms_sd.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 cms_sd.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 cms_sd.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 cms_sd.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-cms_sd.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 cms_sd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 cms_sd.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 cms_sd.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -281,7 +268,6 @@ cms_smime.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 cms_smime.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 cms_smime.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 cms_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-cms_smime.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 cms_smime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 cms_smime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 cms_smime.o: ../../include/openssl/objects.h
diff --git a/crypto/conf/Makefile b/crypto/conf/Makefile
index 2df0a98..ff24072 100644
--- a/crypto/conf/Makefile
+++ b/crypto/conf/Makefile
@@ -97,8 +97,7 @@ conf_mall.o: ../../e_os.h ../../include/openssl/asn1.h
 conf_mall.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 conf_mall.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 conf_mall.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
-conf_mall.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-conf_mall.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+conf_mall.o: ../../include/openssl/ec.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
@@ -113,8 +112,7 @@ conf_mod.o: ../../e_os.h ../../include/openssl/asn1.h
 conf_mod.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 conf_mod.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 conf_mod.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
-conf_mod.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-conf_mod.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+conf_mod.o: ../../include/openssl/ec.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
@@ -128,8 +126,7 @@ conf_sap.o: ../../e_os.h ../../include/openssl/asn1.h
 conf_sap.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 conf_sap.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 conf_sap.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
-conf_sap.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-conf_sap.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+conf_sap.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 conf_sap.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 conf_sap.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 conf_sap.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
diff --git a/crypto/ct/Makefile b/crypto/ct/Makefile
index dd04b04..49771d9 100644
--- a/crypto/ct/Makefile
+++ b/crypto/ct/Makefile
@@ -76,7 +76,6 @@ ct_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 ct_lib.o: ../../include/openssl/comp.h ../../include/openssl/crypto.h
 ct_lib.o: ../../include/openssl/dsa.h ../../include/openssl/dtls1.h
 ct_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ct_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ct_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ct_lib.o: ../../include/openssl/hmac.h ../../include/openssl/lhash.h
 ct_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
diff --git a/crypto/dh/Makefile b/crypto/dh/Makefile
index 6beecef..757ccf0 100644
--- a/crypto/dh/Makefile
+++ b/crypto/dh/Makefile
@@ -67,7 +67,6 @@ dh_ameth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 dh_ameth.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 dh_ameth.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 dh_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-dh_ameth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 dh_ameth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 dh_ameth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 dh_ameth.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -124,7 +123,6 @@ dh_kdf.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 dh_kdf.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 dh_kdf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 dh_kdf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-dh_kdf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 dh_kdf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 dh_kdf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 dh_kdf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -146,7 +144,6 @@ dh_lib.o: ../../e_os.h ../../include/openssl/asn1.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/e_os2.h ../../include/openssl/ec.h
-dh_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 dh_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 dh_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 dh_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -161,8 +158,7 @@ dh_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 dh_pmeth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 dh_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 dh_pmeth.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-dh_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-dh_pmeth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+dh_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 dh_pmeth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 dh_pmeth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 dh_pmeth.o: ../../include/openssl/opensslconf.h
diff --git a/crypto/dsa/Makefile b/crypto/dsa/Makefile
index aa2b785..5f4fb52 100644
--- a/crypto/dsa/Makefile
+++ b/crypto/dsa/Makefile
@@ -67,7 +67,6 @@ dsa_ameth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 dsa_ameth.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 dsa_ameth.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 dsa_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-dsa_ameth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 dsa_ameth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 dsa_ameth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 dsa_ameth.o: ../../include/openssl/objects.h
@@ -133,7 +132,6 @@ 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/ec.h
-dsa_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 dsa_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 dsa_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 dsa_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -159,7 +157,6 @@ dsa_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 dsa_pmeth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 dsa_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 dsa_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-dsa_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 dsa_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 dsa_pmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 dsa_pmeth.o: ../../include/openssl/objects.h
diff --git a/crypto/ec/Makefile b/crypto/ec/Makefile
index 18e9610..7933898 100644
--- a/crypto/ec/Makefile
+++ b/crypto/ec/Makefile
@@ -21,13 +21,15 @@ LIBSRC=	ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c\
 	ec_err.c ec_curve.c ec_check.c ec_print.c ec_asn1.c ec_key.c\
 	ec2_smpl.c ec2_mult.c ec_ameth.c ec_pmeth.c eck_prn.c \
 	ecp_nistp224.c ecp_nistp256.c ecp_nistp521.c ecp_nistputil.c \
-	ecp_oct.c ec2_oct.c ec_oct.c
+	ecp_oct.c ec2_oct.c ec_oct.c ec_kmeth.c ecdh_ossl.c ecdh_kdf.c \
+	ecdsa_ossl.c ecdsa_sign.c ecdsa_vrf.c
 
 LIBOBJ=	ec_lib.o ecp_smpl.o ecp_mont.o ecp_nist.o ec_cvt.o ec_mult.o\
 	ec_err.o ec_curve.o ec_check.o ec_print.o ec_asn1.o ec_key.o\
 	ec2_smpl.o ec2_mult.o ec_ameth.o ec_pmeth.o eck_prn.o \
 	ecp_nistp224.o ecp_nistp256.o ecp_nistp521.o ecp_nistputil.o \
-	ecp_oct.o ec2_oct.o ec_oct.o $(EC_ASM)
+	ecp_oct.o ec2_oct.o ec_oct.o ec_kmeth.o ecdh_ossl.o ecdh_kdf.o \
+	ecdsa_ossl.o ecdsa_sign.o ecdsa_vrf.o $(EC_ASM)
 
 SRC= $(LIBSRC)
 
@@ -118,7 +120,6 @@ ec_ameth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 ec_ameth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 ec_ameth.o: ../../include/openssl/cms.h ../../include/openssl/crypto.h
 ec_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ec_ameth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ec_ameth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ec_ameth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 ec_ameth.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -172,12 +173,28 @@ ec_err.o: ../../include/openssl/symhacks.h ec_err.c
 ec_key.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 ec_key.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 ec_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ec_key.o: ../../include/openssl/ec.h ../../include/openssl/err.h
+ec_key.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
+ec_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ec_key.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-ec_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-ec_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-ec_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-ec_key.o: ../include/internal/cryptlib.h ec_key.c ec_lcl.h
+ec_key.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ec_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_key.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ec_key.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ec_key.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ec_key.o: ../../include/openssl/x509_vfy.h ../include/internal/cryptlib.h
+ec_key.o: ec_key.c ec_lcl.h
+ec_kmeth.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_kmeth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+ec_kmeth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ec_kmeth.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
+ec_kmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ec_kmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ec_kmeth.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ec_kmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_kmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ec_kmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ec_kmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ec_kmeth.o: ../../include/openssl/x509_vfy.h ec_kmeth.c ec_lcl.h
 ec_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 ec_lib.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
 ec_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
@@ -207,8 +224,7 @@ ec_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
 ec_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 ec_pmeth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 ec_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ec_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ec_pmeth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ec_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 ec_pmeth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 ec_pmeth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 ec_pmeth.o: ../../include/openssl/opensslconf.h
@@ -225,6 +241,62 @@ ec_print.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
 ec_print.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 ec_print.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
 ec_print.o: ../../include/openssl/symhacks.h ec_lcl.h ec_print.c
+ecdh_kdf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecdh_kdf.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ecdh_kdf.o: ../../include/openssl/ec.h ../../include/openssl/evp.h
+ecdh_kdf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ecdh_kdf.o: ../../include/openssl/opensslconf.h
+ecdh_kdf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecdh_kdf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecdh_kdf.o: ../../include/openssl/symhacks.h ecdh_kdf.c
+ecdh_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
+ecdh_ossl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+ecdh_ossl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ecdh_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecdh_ossl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ecdh_ossl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ecdh_ossl.o: ../../include/openssl/opensslconf.h
+ecdh_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecdh_ossl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecdh_ossl.o: ../../include/openssl/symhacks.h ../include/internal/cryptlib.h
+ecdh_ossl.o: ec_lcl.h ecdh_ossl.c
+ecdsa_ossl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecdsa_ossl.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ecdsa_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecdsa_ossl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ecdsa_ossl.o: ../../include/openssl/obj_mac.h
+ecdsa_ossl.o: ../../include/openssl/opensslconf.h
+ecdsa_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecdsa_ossl.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+ecdsa_ossl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ecdsa_ossl.o: ec_lcl.h ecdsa_ossl.c
+ecdsa_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecdsa_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+ecdsa_sign.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ecdsa_sign.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
+ecdsa_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ecdsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ecdsa_sign.o: ../../include/openssl/objects.h
+ecdsa_sign.o: ../../include/openssl/opensslconf.h
+ecdsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecdsa_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+ecdsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ecdsa_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ecdsa_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ecdsa_sign.o: ec_lcl.h ecdsa_sign.c
+ecdsa_vrf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecdsa_vrf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+ecdsa_vrf.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ecdsa_vrf.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
+ecdsa_vrf.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ecdsa_vrf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ecdsa_vrf.o: ../../include/openssl/objects.h
+ecdsa_vrf.o: ../../include/openssl/opensslconf.h
+ecdsa_vrf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecdsa_vrf.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ecdsa_vrf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ecdsa_vrf.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ecdsa_vrf.o: ../../include/openssl/x509_vfy.h ec_lcl.h ecdsa_vrf.c
 eck_prn.o: ../../e_os.h ../../include/openssl/asn1.h
 eck_prn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 eck_prn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
diff --git a/crypto/ec/ec_asn1.c b/crypto/ec/ec_asn1.c
index dacbdbf..4206d77 100644
--- a/crypto/ec/ec_asn1.c
+++ b/crypto/ec/ec_asn1.c
@@ -1302,3 +1302,54 @@ int i2o_ECPublicKey(EC_KEY *a, unsigned char **out)
         *out += buf_len;
     return buf_len;
 }
+
+ASN1_SEQUENCE(ECDSA_SIG) = {
+        ASN1_SIMPLE(ECDSA_SIG, r, CBIGNUM),
+        ASN1_SIMPLE(ECDSA_SIG, s, CBIGNUM)
+} static_ASN1_SEQUENCE_END(ECDSA_SIG)
+
+DECLARE_ASN1_FUNCTIONS_const(ECDSA_SIG)
+DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECDSA_SIG, ECDSA_SIG)
+IMPLEMENT_ASN1_FUNCTIONS_const(ECDSA_SIG)
+
+void ECDSA_SIG_get0(BIGNUM **pr, BIGNUM **ps, ECDSA_SIG *sig)
+{
+    if (pr != NULL)
+        *pr = sig->r;
+    if (ps != NULL)
+        *ps = sig->s;
+}
+
+int ECDSA_size(const EC_KEY *r)
+{
+    int ret, i;
+    ASN1_INTEGER bs;
+    BIGNUM *order = NULL;
+    unsigned char buf[4];
+    const EC_GROUP *group;
+
+    if (r == NULL)
+        return 0;
+    group = EC_KEY_get0_group(r);
+    if (group == NULL)
+        return 0;
+
+    if ((order = BN_new()) == NULL)
+        return 0;
+    if (!EC_GROUP_get_order(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);
+}
diff --git a/crypto/ec/ec_err.c b/crypto/ec/ec_err.c
index b55db79..a826109 100644
--- a/crypto/ec/ec_err.c
+++ b/crypto/ec/ec_err.c
@@ -200,6 +200,7 @@ static ERR_STRING_DATA EC_str_functs[] = {
     {ERR_FUNC(EC_F_EC_KEY_COPY), "EC_KEY_copy"},
     {ERR_FUNC(EC_F_EC_KEY_GENERATE_KEY), "EC_KEY_generate_key"},
     {ERR_FUNC(EC_F_EC_KEY_NEW), "EC_KEY_new"},
+    {ERR_FUNC(EC_F_EC_KEY_NEW_METHOD), "EC_KEY_new_method"},
     {ERR_FUNC(EC_F_EC_KEY_PRINT), "EC_KEY_print"},
     {ERR_FUNC(EC_F_EC_KEY_PRINT_FP), "EC_KEY_print_fp"},
     {ERR_FUNC(EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES),
@@ -259,6 +260,7 @@ static ERR_STRING_DATA EC_str_functs[] = {
 static ERR_STRING_DATA EC_str_reasons[] = {
     {ERR_REASON(EC_R_ASN1_ERROR), "asn1 error"},
     {ERR_REASON(EC_R_ASN1_UNKNOWN_FIELD), "asn1 unknown field"},
+    {ERR_REASON(EC_R_BAD_SIGNATURE), "bad signature"},
     {ERR_REASON(EC_R_BIGNUM_OUT_OF_RANGE), "bignum out of range"},
     {ERR_REASON(EC_R_BUFFER_TOO_SMALL), "buffer too small"},
     {ERR_REASON(EC_R_COORDINATES_OUT_OF_RANGE), "coordinates out of range"},
@@ -288,10 +290,12 @@ static ERR_STRING_DATA EC_str_reasons[] = {
     {ERR_REASON(EC_R_INVALID_PENTANOMIAL_BASIS), "invalid pentanomial basis"},
     {ERR_REASON(EC_R_INVALID_PRIVATE_KEY), "invalid private key"},
     {ERR_REASON(EC_R_INVALID_TRINOMIAL_BASIS), "invalid trinomial basis"},
+    {ERR_REASON(EC_R_KDF_FAILED), "kdf failed"},
     {ERR_REASON(EC_R_KDF_PARAMETER_ERROR), "kdf parameter error"},
     {ERR_REASON(EC_R_KEYS_NOT_SET), "keys not set"},
     {ERR_REASON(EC_R_MISSING_PARAMETERS), "missing parameters"},
     {ERR_REASON(EC_R_MISSING_PRIVATE_KEY), "missing private key"},
+    {ERR_REASON(EC_R_NEED_NEW_SETUP_VALUES), "need new setup values"},
     {ERR_REASON(EC_R_NOT_A_NIST_PRIME), "not a NIST prime"},
     {ERR_REASON(EC_R_NOT_A_SUPPORTED_NIST_PRIME),
      "not a supported NIST prime"},
@@ -299,12 +303,17 @@ static ERR_STRING_DATA EC_str_reasons[] = {
     {ERR_REASON(EC_R_NOT_INITIALIZED), "not initialized"},
     {ERR_REASON(EC_R_NO_FIELD_MOD), "no field mod"},
     {ERR_REASON(EC_R_NO_PARAMETERS_SET), "no parameters set"},
+    {ERR_REASON(EC_R_NO_PRIVATE_VALUE), "no private value"},
+    {ERR_REASON(EC_R_OPERATION_NOT_SUPPORTED), "operation not supported"},
     {ERR_REASON(EC_R_PASSED_NULL_PARAMETER), "passed null parameter"},
     {ERR_REASON(EC_R_PEER_KEY_ERROR), "peer key error"},
     {ERR_REASON(EC_R_PKPARAMETERS2GROUP_FAILURE),
      "pkparameters2group failure"},
+    {ERR_REASON(EC_R_POINT_ARITHMETIC_FAILURE), "point arithmetic failure"},
     {ERR_REASON(EC_R_POINT_AT_INFINITY), "point at infinity"},
     {ERR_REASON(EC_R_POINT_IS_NOT_ON_CURVE), "point is not on curve"},
+    {ERR_REASON(EC_R_RANDOM_NUMBER_GENERATION_FAILED),
+     "random number generation failed"},
     {ERR_REASON(EC_R_SHARED_INFO_ERROR), "shared info error"},
     {ERR_REASON(EC_R_SLOT_FULL), "slot full"},
     {ERR_REASON(EC_R_UNDEFINED_GENERATOR), "undefined generator"},
diff --git a/crypto/ec/ec_key.c b/crypto/ec/ec_key.c
index d570601..ac661ed 100644
--- a/crypto/ec/ec_key.c
+++ b/crypto/ec/ec_key.c
@@ -65,20 +65,13 @@
 #include <string.h>
 #include "ec_lcl.h"
 #include <openssl/err.h>
+#ifndef OPENSSSL_NO_ENGINE
+# include <openssl/engine.h>
+#endif
 
 EC_KEY *EC_KEY_new(void)
 {
-    EC_KEY *ret = OPENSSL_zalloc(sizeof(*ret));
-
-    if (ret == NULL) {
-        ECerr(EC_F_EC_KEY_NEW, ERR_R_MALLOC_FAILURE);
-        return (NULL);
-    }
-
-    ret->version = 1;
-    ret->conv_form = POINT_CONVERSION_UNCOMPRESSED;
-    ret->references = 1;
-    return (ret);
+    return EC_KEY_new_method(NULL);
 }
 
 EC_KEY *EC_KEY_new_by_curve_name(int nid)
@@ -91,6 +84,11 @@ EC_KEY *EC_KEY_new_by_curve_name(int nid)
         EC_KEY_free(ret);
         return NULL;
     }
+    if (ret->meth->set_group != NULL
+        && ret->meth->set_group(ret, ret->group) == 0) {
+        EC_KEY_free(ret);
+        return NULL;
+    }
     return ret;
 }
 
@@ -114,6 +112,14 @@ void EC_KEY_free(EC_KEY *r)
     }
 #endif
 
+    if (r->meth->finish != NULL)
+        r->meth->finish(r);
+
+#ifndef OPENSSL_NO_ENGINE
+    if (r->engine != NULL)
+        ENGINE_finish(r->engine);
+#endif
+
     EC_GROUP_free(r->group);
     EC_POINT_free(r->pub_key);
     BN_clear_free(r->priv_key);
@@ -131,8 +137,17 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
         ECerr(EC_F_EC_KEY_COPY, ERR_R_PASSED_NULL_PARAMETER);
         return NULL;
     }
+    if (src->meth != dest->meth) {
+        if (dest->meth->finish != NULL)
+            dest->meth->finish(dest);
+#ifndef OPENSSL_NO_ENGINE
+        if (dest->engine != NULL && ENGINE_finish(dest->engine) == 0)
+            return 0;
+        dest->engine = NULL;
+#endif
+    }
     /* copy the parameters */
-    if (src->group) {
+    if (src->group != NULL) {
         const EC_METHOD *meth = EC_GROUP_method_of(src->group);
         /* clear the old group */
         EC_GROUP_free(dest->group);
@@ -143,7 +158,7 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
             return NULL;
     }
     /*  copy the public key */
-    if (src->pub_key && src->group) {
+    if (src->pub_key != NULL && src->group != NULL) {
         EC_POINT_free(dest->pub_key);
         dest->pub_key = EC_POINT_new(src->group);
         if (dest->pub_key == NULL)
@@ -152,7 +167,7 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
             return NULL;
     }
     /* copy the private key */
-    if (src->priv_key) {
+    if (src->priv_key != NULL) {
         if (dest->priv_key == NULL) {
             dest->priv_key = BN_new();
             if (dest->priv_key == NULL)
@@ -172,7 +187,7 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
         if (!EC_EX_DATA_set_data
             (&dest->method_data, t, d->dup_func, d->free_func,
              d->clear_free_func))
-            return 0;
+            return NULL;
     }
 
     /* copy the rest */
@@ -181,12 +196,24 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
     dest->version = src->version;
     dest->flags = src->flags;
 
+    if (src->meth != dest->meth) {
+#ifndef OPENSSL_NO_ENGINE
+        if (src->engine != NULL && ENGINE_init(src->engine) == 0)
+            return NULL;
+        dest->engine = src->engine;
+#endif
+        dest->meth = src->meth;
+    }
+
+    if (src->meth->copy != NULL && src->meth->copy(dest, src) == 0)
+        return NULL;
+
     return dest;
 }
 
 EC_KEY *EC_KEY_dup(const EC_KEY *ec_key)
 {
-    EC_KEY *ret = EC_KEY_new();
+    EC_KEY *ret = EC_KEY_new_method(ec_key->engine);
     if (ret == NULL)
         return NULL;
     if (EC_KEY_copy(ret, ec_key) == NULL) {
@@ -213,16 +240,23 @@ int EC_KEY_up_ref(EC_KEY *r)
 
 int EC_KEY_generate_key(EC_KEY *eckey)
 {
+    if (eckey == NULL || eckey->group == NULL) {
+        ECerr(EC_F_EC_KEY_GENERATE_KEY, ERR_R_PASSED_NULL_PARAMETER);
+        return 0;
+    }
+    if (eckey->meth->keygen != NULL)
+        return eckey->meth->keygen(eckey);
+    ECerr(EC_F_EC_KEY_GENERATE_KEY, EC_R_OPERATION_NOT_SUPPORTED);
+    return 0;
+}
+
+int ossl_ec_key_gen(EC_KEY *eckey)
+{
     int ok = 0;
     BN_CTX *ctx = NULL;
     BIGNUM *priv_key = NULL, *order = NULL;
     EC_POINT *pub_key = NULL;
 
-    if (!eckey || !eckey->group) {
-        ECerr(EC_F_EC_KEY_GENERATE_KEY, ERR_R_PASSED_NULL_PARAMETER);
-        return 0;
-    }
-
     if ((order = BN_new()) == NULL)
         goto err;
     if ((ctx = BN_CTX_new()) == NULL)
@@ -275,7 +309,7 @@ int EC_KEY_check_key(const EC_KEY *eckey)
     const BIGNUM *order = NULL;
     EC_POINT *point = NULL;
 
-    if (!eckey || !eckey->group || !eckey->pub_key) {
+    if (eckey == NULL || eckey->group == NULL || eckey->pub_key == NULL) {
         ECerr(EC_F_EC_KEY_CHECK_KEY, ERR_R_PASSED_NULL_PARAMETER);
         return 0;
     }
@@ -313,7 +347,7 @@ int EC_KEY_check_key(const EC_KEY *eckey)
      * in case the priv_key is present : check if generator * priv_key ==
      * pub_key
      */
-    if (eckey->priv_key) {
+    if (eckey->priv_key != NULL) {
         if (BN_cmp(eckey->priv_key, order) >= 0) {
             ECerr(EC_F_EC_KEY_CHECK_KEY, EC_R_WRONG_ORDER);
             goto err;
@@ -346,7 +380,7 @@ int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x,
     int tmp_nid, is_char_two = 0;
 #endif
 
-    if (!key || !key->group || !x || !y) {
+    if (key == NULL || key->group == NULL || x == NULL || y == NULL) {
         ECerr(EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES,
               ERR_R_PASSED_NULL_PARAMETER);
         return 0;
@@ -420,6 +454,8 @@ const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key)
 
 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group)
 {
+    if (key->meth->set_group != NULL && key->meth->set_group(key, group) == 0)
+        return 0;
     EC_GROUP_free(key->group);
     key->group = EC_GROUP_dup(group);
     return (key->group == NULL) ? 0 : 1;
@@ -432,6 +468,9 @@ const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key)
 
 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *priv_key)
 {
+    if (key->meth->set_private != NULL
+        && key->meth->set_private(key, priv_key) == 0)
+        return 0;
     BN_clear_free(key->priv_key);
     key->priv_key = BN_dup(priv_key);
     return (key->priv_key == NULL) ? 0 : 1;
@@ -444,6 +483,9 @@ const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key)
 
 int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub_key)
 {
+    if (key->meth->set_public != NULL
+        && key->meth->set_public(key, pub_key) == 0)
+        return 0;
     EC_POINT_free(key->pub_key);
     key->pub_key = EC_POINT_dup(pub_key, key->group);
     return (key->pub_key == NULL) ? 0 : 1;
diff --git a/crypto/ec/ec_kmeth.c b/crypto/ec/ec_kmeth.c
new file mode 100644
index 0000000..20db4c3
--- /dev/null
+++ b/crypto/ec/ec_kmeth.c
@@ -0,0 +1,317 @@
+/* crypto/ec/ec_kmeth.c */
+/*
+ * Written by Dr Stephen N Henson (steve at openssl.org) for the OpenSSL
+ * project.
+ */
+/* ====================================================================
+ * Copyright (c) 2015 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 at 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.
+ * ====================================================================
+ */
+
+#include <openssl/ec.h>
+#ifndef OPENSSL_NO_ENGINE
+# include <openssl/engine.h>
+#endif
+#include <openssl/err.h>
+#include "ec_lcl.h"
+
+
+static const EC_KEY_METHOD openssl_ec_key_method = {
+    "OpenSSL EC_KEY method",
+    0,
+    0,0,0,0,0,0,
+    ossl_ec_key_gen,
+    ossl_ecdh_compute_key,
+    ossl_ecdsa_sign,
+    ossl_ecdsa_sign_setup,
+    ossl_ecdsa_sign_sig,
+    ossl_ecdsa_verify,
+    ossl_ecdsa_verify_sig
+};
+
+const EC_KEY_METHOD *default_ec_key_meth = &openssl_ec_key_method;
+
+const EC_KEY_METHOD *EC_KEY_OpenSSL(void)
+{
+    return &openssl_ec_key_method;
+}
+
+const EC_KEY_METHOD *EC_KEY_get_default_method(void)
+{
+    return default_ec_key_meth;
+}
+
+void EC_KEY_set_default_method(const EC_KEY_METHOD *meth)
+{
+    if (meth == NULL)
+        default_ec_key_meth = &openssl_ec_key_method;
+    else
+        default_ec_key_meth = meth;
+}
+
+EC_KEY *EC_KEY_new_method(ENGINE *engine)
+{
+    EC_KEY *ret = OPENSSL_zalloc(sizeof(*ret));
+
+    if (ret == NULL) {
+        ECerr(EC_F_EC_KEY_NEW_METHOD, ERR_R_MALLOC_FAILURE);
+        return (NULL);
+    }
+    ret->meth = EC_KEY_get_default_method();
+#ifndef OPENSSL_NO_ENGINE
+    if (engine != NULL) {
+        if (!ENGINE_init(engine)) {
+            ECerr(EC_F_EC_KEY_NEW_METHOD, ERR_R_ENGINE_LIB);
+            OPENSSL_free(ret);
+            return NULL;
+        }
+        ret->engine = engine;
+    } else
+        ret->engine = ENGINE_get_default_EC();
+    if (ret->engine != NULL) {
+        ret->meth = ENGINE_get_EC(ret->engine);
+        if (ret->meth == NULL) {
+            ECerr(EC_F_EC_KEY_NEW_METHOD, ERR_R_ENGINE_LIB);
+            ENGINE_finish(ret->engine);
+            OPENSSL_free(ret);
+            return NULL;
+        }
+    }
+#endif
+
+    ret->version = 1;
+    ret->conv_form = POINT_CONVERSION_UNCOMPRESSED;
+    ret->references = 1;
+    if (ret->meth->init != NULL && ret->meth->init(ret) == 0) {
+        EC_KEY_free(ret);
+        return NULL;
+    }
+    return ret;
+}
+
+int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
+                     EC_KEY *eckey,
+                     void *(*KDF) (const void *in, size_t inlen, void *out,
+                                   size_t *outlen))
+{
+    if (eckey->meth->compute_key != NULL)
+        return eckey->meth->compute_key(out, outlen, pub_key, eckey, KDF);
+    ECerr(EC_F_ECDH_COMPUTE_KEY, EC_R_OPERATION_NOT_SUPPORTED);
+    return 0;
+}
+
+EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth)
+{
+    EC_KEY_METHOD *ret;
+    ret = OPENSSL_zalloc(sizeof(*meth));
+    if (ret == NULL)
+        return NULL;
+    if (meth != NULL)
+        *ret = *meth;
+    ret->flags |= EC_KEY_METHOD_DYNAMIC;
+    return ret;
+}
+
+void EC_KEY_METHOD_free(EC_KEY_METHOD *meth)
+{
+    if (meth->flags & EC_KEY_METHOD_DYNAMIC)
+        OPENSSL_free(meth);
+}
+
+void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth,
+                            int (*init)(EC_KEY *key),
+                            void (*finish)(EC_KEY *key),
+                            int (*copy)(EC_KEY *dest, const EC_KEY *src),
+                            int (*set_group)(EC_KEY *key, const EC_GROUP *grp),
+                            int (*set_private)(EC_KEY *key,
+                                               const BIGNUM *priv_key),
+                            int (*set_public)(EC_KEY *key,
+                                              const EC_POINT *pub_key))
+{
+    meth->init = init;
+    meth->finish = finish;
+    meth->copy = copy;
+    meth->set_group = set_group;
+    meth->set_private = set_private;
+    meth->set_public = set_public;
+}
+
+void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth,
+                              int (*keygen)(EC_KEY *key))
+{
+    meth->keygen = keygen;
+}
+
+void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth,
+                                   int (*ckey)(void *out,
+                                               size_t outlen,
+                                               const EC_POINT *pub_key,
+                                               EC_KEY *ecdh,
+                                               void *(*KDF) (const void *in,
+                                                             size_t inlen,
+                                                             void *out,
+                                                             size_t *outlen)))
+{
+    meth->compute_key = ckey;
+}
+
+void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth,
+                            int (*sign)(int type, const unsigned char *dgst,
+                                        int dlen, unsigned char *sig,
+                                        unsigned int *siglen,
+                                        const BIGNUM *kinv, const BIGNUM *r,
+                                        EC_KEY *eckey),
+                            int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in,
+                                              BIGNUM **kinvp, BIGNUM **rp),
+                            ECDSA_SIG *(*sign_sig)(const unsigned char *dgst,
+                                                   int dgst_len,
+                                                   const BIGNUM *in_kinv,
+                                                   const BIGNUM *in_r,
+                                                   EC_KEY *eckey))
+{
+    meth->sign = sign;
+    meth->sign_setup = sign_setup;
+    meth->sign_sig = sign_sig;
+}
+
+void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth,
+                              int (*verify)(int type, const unsigned
+                                            char *dgst, int dgst_len,
+                                            const unsigned char *sigbuf,
+                                            int sig_len, EC_KEY *eckey),
+                              int (*verify_sig)(const unsigned char *dgst,
+                                                int dgst_len,
+                                                const ECDSA_SIG *sig,
+                                                EC_KEY *eckey))
+{
+    meth->verify = verify;
+    meth->verify_sig = verify_sig;
+}
+
+void EC_KEY_METHOD_get_init(EC_KEY_METHOD *meth,
+                            int (**pinit)(EC_KEY *key),
+                            void (**pfinish)(EC_KEY *key),
+                            int (**pcopy)(EC_KEY *dest, const EC_KEY *src),
+                            int (**pset_group)(EC_KEY *key,
+                                               const EC_GROUP *grp),
+                            int (**pset_private)(EC_KEY *key,
+                                                 const BIGNUM *priv_key),
+                            int (**pset_public)(EC_KEY *key,
+                                                const EC_POINT *pub_key))
+{
+    if (pinit != NULL)
+        *pinit = meth->init;
+    if (pfinish != NULL)
+        *pfinish = meth->finish;
+    if (pcopy != NULL)
+        *pcopy = meth->copy;
+    if (pset_group != NULL)
+        *pset_group = meth->set_group;
+    if (pset_private != NULL)
+        *pset_private = meth->set_private;
+    if (pset_public != NULL)
+        *pset_public = meth->set_public;
+}
+
+void EC_KEY_METHOD_get_keygen(EC_KEY_METHOD *meth,
+                              int (**pkeygen)(EC_KEY *key))
+{
+    if (pkeygen != NULL)
+        *pkeygen = meth->keygen;
+}
+
+void EC_KEY_METHOD_get_compute_key(EC_KEY_METHOD *meth,
+                                   int (**pck)(void *out,
+                                               size_t outlen,
+                                               const EC_POINT *pub_key,
+                                               EC_KEY *ecdh,
+                                               void *(*KDF) (const void *in,
+                                                             size_t inlen,
+                                                             void *out,
+                                                             size_t *outlen)))
+{
+    if (pck != NULL)
+        *pck = meth->compute_key;
+}
+
+void EC_KEY_METHOD_get_sign(EC_KEY_METHOD *meth,
+                            int (**psign)(int type, const unsigned char *dgst,
+                                          int dlen, unsigned char *sig,
+                                          unsigned int *siglen,
+                                          const BIGNUM *kinv, const BIGNUM *r,
+                                          EC_KEY *eckey),
+                            int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in,
+                                                BIGNUM **kinvp, BIGNUM **rp),
+                            ECDSA_SIG *(**psign_sig)(const unsigned char *dgst,
+                                                     int dgst_len,
+                                                     const BIGNUM *in_kinv,
+                                                     const BIGNUM *in_r,
+                                                     EC_KEY *eckey))
+{
+    if (psign != NULL)
+        *psign = meth->sign;
+    if (psign_setup != NULL)
+        *psign_setup = meth->sign_setup;
+    if (psign_sig != NULL)
+        *psign_sig = meth->sign_sig;
+}
+
+void EC_KEY_METHOD_get_verify(EC_KEY_METHOD *meth,
+                              int (**pverify)(int type, const unsigned
+                                              char *dgst, int dgst_len,
+                                              const unsigned char *sigbuf,
+                                              int sig_len, EC_KEY *eckey),
+                              int (**pverify_sig)(const unsigned char *dgst,
+                                                  int dgst_len,
+                                                  const ECDSA_SIG *sig,
+                                                  EC_KEY *eckey))
+{
+    if (pverify != NULL)
+        *pverify = meth->verify;
+    if (pverify_sig != NULL)
+        *pverify_sig = meth->verify_sig;
+}
diff --git a/crypto/ec/ec_lcl.h b/crypto/ec/ec_lcl.h
index 3bf64c6..3cd2345 100644
--- a/crypto/ec/ec_lcl.h
+++ b/crypto/ec/ec_lcl.h
@@ -257,6 +257,8 @@ struct ec_group_st {
 } /* EC_GROUP */ ;
 
 struct ec_key_st {
+    const EC_KEY_METHOD *meth;
+    ENGINE *engine;
     int version;
     EC_GROUP *group;
     EC_POINT *pub_key;
@@ -552,3 +554,61 @@ int ec_precompute_mont_data(EC_GROUP *);
  */
 const EC_METHOD *EC_GFp_nistz256_method(void);
 #endif
+
+/* EC_METHOD definitions */
+
+struct ec_key_method_st {
+    const char *name;
+    int32_t flags;
+    int (*init)(EC_KEY *key);
+    void (*finish)(EC_KEY *key);
+    int (*copy)(EC_KEY *dest, const EC_KEY *src);
+    int (*set_group)(EC_KEY *key, const EC_GROUP *grp);
+    int (*set_private)(EC_KEY *key, const BIGNUM *priv_key);
+    int (*set_public)(EC_KEY *key, const EC_POINT *pub_key);
+    int (*keygen)(EC_KEY *key);
+    int (*compute_key)(void *out, size_t outlen, const EC_POINT *pub_key,
+                       EC_KEY *ecdh,
+                       void *(*KDF) (const void *in, size_t inlen,
+                                     void *out, size_t *outlen));
+
+    int (*sign)(int type, const unsigned char *dgst, int dlen, unsigned char
+                *sig, unsigned int *siglen, const BIGNUM *kinv,
+                const BIGNUM *r, EC_KEY *eckey);
+    int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,
+                      BIGNUM **rp);
+    ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, int dgst_len,
+                           const BIGNUM *in_kinv, const BIGNUM *in_r,
+                           EC_KEY *eckey);
+
+    int (*verify)(int type, const unsigned char *dgst, int dgst_len,
+                  const unsigned char *sigbuf, int sig_len, EC_KEY *eckey);
+    int (*verify_sig)(const unsigned char *dgst, int dgst_len,
+                      const ECDSA_SIG *sig, EC_KEY *eckey);
+} /* EC_KEY_METHOD */ ;
+
+#define EC_KEY_METHOD_DYNAMIC   1
+
+int ossl_ec_key_gen(EC_KEY *eckey);
+int ossl_ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
+                          EC_KEY *ecdh,
+                          void *(*KDF) (const void *in, size_t inlen,
+                                        void *out, size_t *outlen));
+
+struct ECDSA_SIG_st {
+    BIGNUM *r;
+    BIGNUM *s;
+};
+
+int ossl_ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,
+                          BIGNUM **rp);
+int ossl_ecdsa_sign(int type, const unsigned char *dgst, int dlen,
+                    unsigned char *sig, unsigned int *siglen,
+                    const BIGNUM *kinv, const BIGNUM *r, EC_KEY *eckey);
+ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,
+                               const BIGNUM *in_kinv, const BIGNUM *in_r,
+                               EC_KEY *eckey);
+int ossl_ecdsa_verify(int type, const unsigned char *dgst, int dgst_len,
+                      const unsigned char *sigbuf, int sig_len, EC_KEY *eckey);
+int ossl_ecdsa_verify_sig(const unsigned char *dgst, int dgst_len,
+                          const ECDSA_SIG *sig, EC_KEY *eckey);
diff --git a/crypto/ec/ec_pmeth.c b/crypto/ec/ec_pmeth.c
index ecae0bf..cbdf4e2 100644
--- a/crypto/ec/ec_pmeth.c
+++ b/crypto/ec/ec_pmeth.c
@@ -62,7 +62,6 @@
 #include <openssl/x509.h>
 #include <openssl/ec.h>
 #include "ec_lcl.h"
-#include <openssl/ecdsa.h>
 #include <openssl/evp.h>
 #include "internal/evp_int.h"
 
diff --git a/crypto/ecdh/ech_kdf.c b/crypto/ec/ecdh_kdf.c
similarity index 98%
rename from crypto/ecdh/ech_kdf.c
rename to crypto/ec/ecdh_kdf.c
index cbcbfd9..8bb141e 100644
--- a/crypto/ecdh/ech_kdf.c
+++ b/crypto/ec/ecdh_kdf.c
@@ -1,4 +1,4 @@
-/* crypto/ecdh/ec_kdf.c */
+/* crypto/ec/ecdh_kdf.c */
 /*
  * Written by Stephen Henson for the OpenSSL project.
  */
@@ -52,7 +52,7 @@
  */
 
 #include <string.h>
-#include <openssl/ecdh.h>
+#include <openssl/ec.h>
 #include <openssl/evp.h>
 
 /* Key derivation function from X9.62/SECG */
diff --git a/crypto/ecdh/ech_ossl.c b/crypto/ec/ecdh_ossl.c
similarity index 77%
rename from crypto/ecdh/ech_ossl.c
rename to crypto/ec/ecdh_ossl.c
index ba66bd5..94339e4 100644
--- a/crypto/ecdh/ech_ossl.c
+++ b/crypto/ec/ecdh_ossl.c
@@ -72,28 +72,11 @@
 
 #include "internal/cryptlib.h"
 
-#include "ech_locl.h"
 #include <openssl/err.h>
-#include <openssl/sha.h>
-#include <openssl/obj_mac.h>
 #include <openssl/bn.h>
-
-static int ecdh_compute_key(void *out, size_t len, const EC_POINT *pub_key,
-                            EC_KEY *ecdh,
-                            void *(*KDF) (const void *in, size_t inlen,
-                                          void *out, size_t *outlen));
-
-static ECDH_METHOD openssl_ecdh_meth = {
-    "OpenSSL ECDH method",
-    ecdh_compute_key,
-    ECDH_FLAG_FIPS_METHOD,      /* flags */
-    NULL                        /* app_data */
-};
-
-const ECDH_METHOD *ECDH_OpenSSL(void)
-{
-    return &openssl_ecdh_meth;
-}
+#include <openssl/objects.h>
+#include <openssl/ec.h>
+#include "ec_lcl.h"
 
 /*-
  * This implementation is based on the following primitives in the IEEE 1363 standard:
@@ -101,10 +84,10 @@ const ECDH_METHOD *ECDH_OpenSSL(void)
  *  - ECSVDP-DH
  * Finally an optional KDF is applied.
  */
-static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
-                            EC_KEY *ecdh,
-                            void *(*KDF) (const void *in, size_t inlen,
-                                          void *out, size_t *outlen))
+int ossl_ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
+                          EC_KEY *ecdh,
+                          void *(*KDF) (const void *in, size_t inlen,
+                                        void *out, size_t *outlen))
 {
     BN_CTX *ctx;
     EC_POINT *tmp = NULL;
@@ -116,7 +99,7 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
     unsigned char *buf = NULL;
 
     if (outlen > INT_MAX) {
-        ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); /* sort of,
+        ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); /* sort of,
                                                                  * anyway */
         return -1;
     }
@@ -129,7 +112,7 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
 
     priv_key = EC_KEY_get0_private_key(ecdh);
     if (priv_key == NULL) {
-        ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_NO_PRIVATE_VALUE);
+        ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, EC_R_NO_PRIVATE_VALUE);
         goto err;
     }
 
@@ -138,33 +121,33 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
     if (EC_KEY_get_flags(ecdh) & EC_FLAG_COFACTOR_ECDH) {
         if (!EC_GROUP_get_cofactor(group, x, ctx) ||
             !BN_mul(x, x, priv_key, ctx)) {
-            ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE);
+            ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE);
             goto err;
         }
         priv_key = x;
     }
 
     if ((tmp = EC_POINT_new(group)) == NULL) {
-        ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE);
+        ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE);
         goto err;
     }
 
     if (!EC_POINT_mul(group, tmp, NULL, pub_key, priv_key, ctx)) {
-        ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_POINT_ARITHMETIC_FAILURE);
+        ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, EC_R_POINT_ARITHMETIC_FAILURE);
         goto err;
     }
 
     if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) ==
         NID_X9_62_prime_field) {
         if (!EC_POINT_get_affine_coordinates_GFp(group, tmp, x, y, ctx)) {
-            ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_POINT_ARITHMETIC_FAILURE);
+            ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, EC_R_POINT_ARITHMETIC_FAILURE);
             goto err;
         }
     }
 #ifndef OPENSSL_NO_EC2M
     else {
         if (!EC_POINT_get_affine_coordinates_GF2m(group, tmp, x, y, ctx)) {
-            ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_POINT_ARITHMETIC_FAILURE);
+            ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, EC_R_POINT_ARITHMETIC_FAILURE);
             goto err;
         }
     }
@@ -173,23 +156,23 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
     buflen = (EC_GROUP_get_degree(group) + 7) / 8;
     len = BN_num_bytes(x);
     if (len > buflen) {
-        ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_INTERNAL_ERROR);
+        ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, ERR_R_INTERNAL_ERROR);
         goto err;
     }
     if ((buf = OPENSSL_malloc(buflen)) == NULL) {
-        ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE);
+        ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE);
         goto err;
     }
 
     memset(buf, 0, buflen - len);
     if (len != (size_t)BN_bn2bin(x, buf + buflen - len)) {
-        ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, ERR_R_BN_LIB);
         goto err;
     }
 
     if (KDF != 0) {
         if (KDF(buf, buflen, out, &outlen) == NULL) {
-            ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_KDF_FAILED);
+            ECerr(EC_F_OSSL_ECDH_COMPUTE_KEY, EC_R_KDF_FAILED);
             goto err;
         }
         ret = outlen;
diff --git a/crypto/ecdsa/ecs_ossl.c b/crypto/ec/ecdsa_ossl.c
similarity index 71%
rename from crypto/ecdsa/ecs_ossl.c
rename to crypto/ec/ecdsa_ossl.c
index bff80f9..e48d100 100644
--- a/crypto/ecdsa/ecs_ossl.c
+++ b/crypto/ec/ecdsa_ossl.c
@@ -1,4 +1,4 @@
-/* crypto/ecdsa/ecs_ossl.c */
+/* crypto/ec/ecdsa_ossl.c */
 /*
  * Written by Nils Larsch for the OpenSSL project
  */
@@ -56,41 +56,28 @@
  *
  */
 
-#include "ecs_locl.h"
+#include <string.h>
 #include <openssl/err.h>
 #include <openssl/obj_mac.h>
 #include <openssl/bn.h>
 #include <openssl/rand.h>
+#include <openssl/ec.h>
+#include "ec_lcl.h"
 
-static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dlen,
-                                const BIGNUM *, const BIGNUM *,
-                                EC_KEY *eckey);
-static int ecdsa_sign_setup_no_digest(EC_KEY *eckey, BN_CTX *ctx_in,
-                                      BIGNUM **kinvp, BIGNUM **rp);
-static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,
-                            BIGNUM **rp, const unsigned char *dgst, int dlen);
-static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len,
-                           const ECDSA_SIG *sig, EC_KEY *eckey);
-
-static ECDSA_METHOD openssl_ecdsa_meth = {
-    "OpenSSL ECDSA method",
-    ecdsa_do_sign,
-    ecdsa_sign_setup_no_digest,
-    ecdsa_do_verify,
-    ECDSA_FLAG_FIPS_METHOD,     /* flags */
-    NULL                        /* app_data */
-};
-
-const ECDSA_METHOD *ECDSA_OpenSSL(void)
-{
-    return &openssl_ecdsa_meth;
-}
-
-static int ecdsa_sign_setup_no_digest(EC_KEY *eckey,
-                                      BN_CTX *ctx_in, BIGNUM **kinvp,
-                                      BIGNUM **rp)
+int ossl_ecdsa_sign(int type, const unsigned char *dgst, int dlen,
+                    unsigned char *sig, unsigned int *siglen,
+                    const BIGNUM *kinv, const BIGNUM *r, EC_KEY *eckey)
 {
-    return ecdsa_sign_setup(eckey, ctx_in, kinvp, rp, NULL, 0);
+    ECDSA_SIG *s;
+    RAND_seed(dgst, dlen);
+    s = ECDSA_do_sign_ex(dgst, dlen, kinv, r, eckey);
+    if (s == NULL) {
+        *siglen = 0;
+        return 0;
+    }
+    *siglen = i2d_ECDSA_SIG(s, &sig);
+    ECDSA_SIG_free(s);
+    return 1;
 }
 
 static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
@@ -104,13 +91,13 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
     int ret = 0;
 
     if (eckey == NULL || (group = EC_KEY_get0_group(eckey)) == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_PASSED_NULL_PARAMETER);
+        ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_PASSED_NULL_PARAMETER);
         return 0;
     }
 
     if (ctx_in == NULL) {
         if ((ctx = BN_CTX_new()) == NULL) {
-            ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_MALLOC_FAILURE);
+            ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_MALLOC_FAILURE);
             return 0;
         }
     } else
@@ -121,15 +108,15 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
     order = BN_new();
     X = BN_new();
     if (k == NULL || r == NULL || order == NULL || X == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_MALLOC_FAILURE);
+        ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_MALLOC_FAILURE);
         goto err;
     }
     if ((tmp_point = EC_POINT_new(group)) == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
+        ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
         goto err;
     }
     if (!EC_GROUP_get_order(group, order, ctx)) {
-        ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
+        ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
         goto err;
     }
 
@@ -140,14 +127,14 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
                 if (!BN_generate_dsa_nonce
                     (k, order, EC_KEY_get0_private_key(eckey), dgst, dlen,
                      ctx)) {
-                    ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP,
-                             ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED);
+                    ECerr(EC_F_ECDSA_SIGN_SETUP,
+                             EC_R_RANDOM_NUMBER_GENERATION_FAILED);
                     goto err;
                 }
             } else {
                 if (!BN_rand_range(k, order)) {
-                    ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP,
-                             ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED);
+                    ECerr(EC_F_ECDSA_SIGN_SETUP,
+                             EC_R_RANDOM_NUMBER_GENERATION_FAILED);
                     goto err;
                 }
             }
@@ -166,14 +153,14 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
 
         /* compute r the x-coordinate of generator * k */
         if (!EC_POINT_mul(group, tmp_point, k, NULL, NULL, ctx)) {
-            ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
+            ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
             goto err;
         }
         if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) ==
             NID_X9_62_prime_field) {
             if (!EC_POINT_get_affine_coordinates_GFp
                 (group, tmp_point, X, NULL, ctx)) {
-                ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
+                ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
                 goto err;
             }
         }
@@ -183,13 +170,13 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
             if (!EC_POINT_get_affine_coordinates_GF2m(group,
                                                       tmp_point, X, NULL,
                                                       ctx)) {
-                ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
+                ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB);
                 goto err;
             }
         }
 #endif
         if (!BN_nnmod(r, X, order, ctx)) {
-            ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
+            ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
             goto err;
         }
     }
@@ -202,22 +189,22 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
          * order must be prime and use Fermats Little Theorem instead.
          */
         if (!BN_set_word(X, 2)) {
-            ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
+            ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
             goto err;
         }
         if (!BN_mod_sub(X, order, X, order, ctx)) {
-            ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
+            ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
             goto err;
         }
         BN_set_flags(X, BN_FLG_CONSTTIME);
         if (!BN_mod_exp_mont_consttime
             (k, k, X, order, ctx, EC_GROUP_get_mont_data(group))) {
-            ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
+            ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
             goto err;
         }
     } else {
         if (!BN_mod_inverse(k, k, order, ctx)) {
-            ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
+            ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB);
             goto err;
         }
     }
@@ -242,9 +229,15 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
     return (ret);
 }
 
-static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dgst_len,
-                                const BIGNUM *in_kinv, const BIGNUM *in_r,
-                                EC_KEY *eckey)
+int ossl_ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,
+                          BIGNUM **rp)
+{
+    return ecdsa_sign_setup(eckey, ctx_in, kinvp, rp, NULL, 0);
+}
+
+ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,
+                               const BIGNUM *in_kinv, const BIGNUM *in_r,
+                               EC_KEY *eckey)
 {
     int ok = 0, i;
     BIGNUM *kinv = NULL, *s, *m = NULL, *tmp = NULL, *order = NULL;
@@ -252,33 +245,31 @@ static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dgst_len,
     BN_CTX *ctx = NULL;
     const EC_GROUP *group;
     ECDSA_SIG *ret;
-    ECDSA_DATA *ecdsa;
     const BIGNUM *priv_key;
 
-    ecdsa = ecdsa_check(eckey);
     group = EC_KEY_get0_group(eckey);
     priv_key = EC_KEY_get0_private_key(eckey);
 
-    if (group == NULL || priv_key == NULL || ecdsa == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_PASSED_NULL_PARAMETER);
+    if (group == NULL || priv_key == NULL) {
+        ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_PASSED_NULL_PARAMETER);
         return NULL;
     }
 
     ret = ECDSA_SIG_new();
     if (ret == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_MALLOC_FAILURE);
+        ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_MALLOC_FAILURE);
         return NULL;
     }
     s = ret->s;
 
     if ((ctx = BN_CTX_new()) == NULL || (order = BN_new()) == NULL ||
         (tmp = BN_new()) == NULL || (m = BN_new()) == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_MALLOC_FAILURE);
+        ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_MALLOC_FAILURE);
         goto err;
     }
 
     if (!EC_GROUP_get_order(group, order, ctx)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_EC_LIB);
+        ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_EC_LIB);
         goto err;
     }
     i = BN_num_bits(order);
@@ -288,39 +279,39 @@ static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dgst_len,
     if (8 * dgst_len > i)
         dgst_len = (i + 7) / 8;
     if (!BN_bin2bn(dgst, dgst_len, m)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
         goto err;
     }
     /* If still too long truncate remaining bits with a shift */
     if ((8 * dgst_len > i) && !BN_rshift(m, m, 8 - (i & 0x7))) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
         goto err;
     }
     do {
         if (in_kinv == NULL || in_r == NULL) {
             if (!ecdsa_sign_setup(eckey, ctx, &kinv, &ret->r, dgst, dgst_len)) {
-                ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_ECDSA_LIB);
+                ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_ECDSA_LIB);
                 goto err;
             }
             ckinv = kinv;
         } else {
             ckinv = in_kinv;
             if (BN_copy(ret->r, in_r) == NULL) {
-                ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_MALLOC_FAILURE);
+                ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_MALLOC_FAILURE);
                 goto err;
             }
         }
 
         if (!BN_mod_mul(tmp, priv_key, ret->r, order, ctx)) {
-            ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_BN_LIB);
+            ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
             goto err;
         }
         if (!BN_mod_add_quick(s, tmp, m, order)) {
-            ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_BN_LIB);
+            ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
             goto err;
         }
         if (!BN_mod_mul(s, s, ckinv, order, ctx)) {
-            ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ERR_R_BN_LIB);
+            ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
             goto err;
         }
         if (BN_is_zero(s)) {
@@ -329,8 +320,7 @@ static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dgst_len,
              * generate new kinv and r values
              */
             if (in_kinv != NULL && in_r != NULL) {
-                ECDSAerr(ECDSA_F_ECDSA_DO_SIGN,
-                         ECDSA_R_NEED_NEW_SETUP_VALUES);
+                ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, EC_R_NEED_NEW_SETUP_VALUES);
                 goto err;
             }
         } else
@@ -353,8 +343,39 @@ static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dgst_len,
     return ret;
 }
 
-static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len,
-                           const ECDSA_SIG *sig, EC_KEY *eckey)
+/*-
+ * returns
+ *      1: correct signature
+ *      0: incorrect signature
+ *     -1: error
+ */
+int ossl_ecdsa_verify(int type, const unsigned char *dgst, int dgst_len,
+                      const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)
+{
+    ECDSA_SIG *s;
+    const unsigned char *p = sigbuf;
+    unsigned char *der = NULL;
+    int derlen = -1;
+    int ret = -1;
+
+    s = ECDSA_SIG_new();
+    if (s == NULL)
+        return (ret);
+    if (d2i_ECDSA_SIG(&s, &p, sig_len) == NULL)
+        goto err;
+    /* Ensure signature uses DER and doesn't have trailing garbage */
+    derlen = i2d_ECDSA_SIG(s, &der);
+    if (derlen != sig_len || memcmp(sigbuf, der, derlen) != 0)
+        goto err;
+    ret = ECDSA_do_verify(dgst, dgst_len, s, eckey);
+ err:
+    OPENSSL_clear_free(der, derlen);
+    ECDSA_SIG_free(s);
+    return (ret);
+}
+
+int ossl_ecdsa_verify_sig(const unsigned char *dgst, int dgst_len,
+                          const ECDSA_SIG *sig, EC_KEY *eckey)
 {
     int ret = -1, i;
     BN_CTX *ctx;
@@ -366,13 +387,13 @@ static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len,
     /* check input values */
     if (eckey == NULL || (group = EC_KEY_get0_group(eckey)) == NULL ||
         (pub_key = EC_KEY_get0_public_key(eckey)) == NULL || sig == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ECDSA_R_MISSING_PARAMETERS);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, EC_R_MISSING_PARAMETERS);
         return -1;
     }
 
     ctx = BN_CTX_new();
     if (ctx == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_MALLOC_FAILURE);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_MALLOC_FAILURE);
         return -1;
     }
     BN_CTX_start(ctx);
@@ -381,26 +402,26 @@ static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len,
     u2 = BN_CTX_get(ctx);
     m = BN_CTX_get(ctx);
     X = BN_CTX_get(ctx);
-    if (!X) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_BN_LIB);
+    if (X == NULL) {
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_BN_LIB);
         goto err;
     }
 
     if (!EC_GROUP_get_order(group, order, ctx)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_EC_LIB);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_EC_LIB);
         goto err;
     }
 
     if (BN_is_zero(sig->r) || BN_is_negative(sig->r) ||
         BN_ucmp(sig->r, order) >= 0 || BN_is_zero(sig->s) ||
         BN_is_negative(sig->s) || BN_ucmp(sig->s, order) >= 0) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ECDSA_R_BAD_SIGNATURE);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, EC_R_BAD_SIGNATURE);
         ret = 0;                /* signature is invalid */
         goto err;
     }
     /* calculate tmp1 = inv(S) mod order */
     if (!BN_mod_inverse(u2, sig->s, order, ctx)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_BN_LIB);
         goto err;
     }
     /* digest -> m */
@@ -411,37 +432,37 @@ static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len,
     if (8 * dgst_len > i)
         dgst_len = (i + 7) / 8;
     if (!BN_bin2bn(dgst, dgst_len, m)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_BN_LIB);
         goto err;
     }
     /* If still too long truncate remaining bits with a shift */
     if ((8 * dgst_len > i) && !BN_rshift(m, m, 8 - (i & 0x7))) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_BN_LIB);
         goto err;
     }
     /* u1 = m * tmp mod order */
     if (!BN_mod_mul(u1, m, u2, order, ctx)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_BN_LIB);
         goto err;
     }
     /* u2 = r * w mod q */
     if (!BN_mod_mul(u2, sig->r, u2, order, ctx)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_BN_LIB);
         goto err;
     }
 
     if ((point = EC_POINT_new(group)) == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_MALLOC_FAILURE);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_MALLOC_FAILURE);
         goto err;
     }
     if (!EC_POINT_mul(group, point, u1, pub_key, u2, ctx)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_EC_LIB);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_EC_LIB);
         goto err;
     }
     if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) ==
         NID_X9_62_prime_field) {
         if (!EC_POINT_get_affine_coordinates_GFp(group, point, X, NULL, ctx)) {
-            ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_EC_LIB);
+            ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_EC_LIB);
             goto err;
         }
     }
@@ -449,13 +470,13 @@ static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len,
     else {                      /* NID_X9_62_characteristic_two_field */
 
         if (!EC_POINT_get_affine_coordinates_GF2m(group, point, X, NULL, ctx)) {
-            ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_EC_LIB);
+            ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_EC_LIB);
             goto err;
         }
     }
 #endif
     if (!BN_nnmod(u1, X, order, ctx)) {
-        ECDSAerr(ECDSA_F_ECDSA_DO_VERIFY, ERR_R_BN_LIB);
+        ECerr(EC_F_OSSL_ECDSA_VERIFY_SIG, ERR_R_BN_LIB);
         goto err;
     }
     /*  if the signature is correct u1 is equal to sig->r */
diff --git a/crypto/ecdsa/ecs_sign.c b/crypto/ec/ecdsa_sign.c
similarity index 82%
rename from crypto/ecdsa/ecs_sign.c
rename to crypto/ec/ecdsa_sign.c
index 28652d4..ebef4a1 100644
--- a/crypto/ecdsa/ecs_sign.c
+++ b/crypto/ec/ecdsa_sign.c
@@ -1,4 +1,4 @@
-/* crypto/ecdsa/ecdsa_sign.c */
+/* crypto/ec/ecdsa_sign.c */
 /* ====================================================================
  * Copyright (c) 1998-2002 The OpenSSL Project.  All rights reserved.
  *
@@ -53,11 +53,13 @@
  *
  */
 
-#include "ecs_locl.h"
+#include <openssl/ec.h>
+#include "ec_lcl.h"
 #ifndef OPENSSL_NO_ENGINE
 # include <openssl/engine.h>
 #endif
 #include <openssl/rand.h>
+#include <openssl/err.h>
 
 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey)
 {
@@ -68,10 +70,10 @@ ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dlen,
                             const BIGNUM *kinv, const BIGNUM *rp,
                             EC_KEY *eckey)
 {
-    ECDSA_DATA *ecdsa = ecdsa_check(eckey);
-    if (ecdsa == NULL)
-        return NULL;
-    return ecdsa->meth->ecdsa_do_sign(dgst, dlen, kinv, rp, eckey);
+    if (eckey->meth->sign_sig != NULL)
+        return eckey->meth->sign_sig(dgst, dlen, kinv, rp, eckey);
+    ECerr(EC_F_ECDSA_DO_SIGN_EX, EC_R_OPERATION_NOT_SUPPORTED);
+    return NULL;
 }
 
 int ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char
@@ -80,27 +82,21 @@ int ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char
     return ECDSA_sign_ex(type, dgst, dlen, sig, siglen, NULL, NULL, eckey);
 }
 
-int ECDSA_sign_ex(int type, const unsigned char *dgst, int dlen, unsigned char
-                  *sig, unsigned int *siglen, const BIGNUM *kinv,
+int ECDSA_sign_ex(int type, const unsigned char *dgst, int dlen,
+                  unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv,
                   const BIGNUM *r, EC_KEY *eckey)
 {
-    ECDSA_SIG *s;
-    RAND_seed(dgst, dlen);
-    s = ECDSA_do_sign_ex(dgst, dlen, kinv, r, eckey);
-    if (s == NULL) {
-        *siglen = 0;
-        return 0;
-    }
-    *siglen = i2d_ECDSA_SIG(s, &sig);
-    ECDSA_SIG_free(s);
-    return 1;
+    if (eckey->meth->sign != NULL)
+        return eckey->meth->sign(type, dgst, dlen, sig, siglen, kinv, r, eckey);
+    ECerr(EC_F_ECDSA_SIGN_EX, EC_R_OPERATION_NOT_SUPPORTED);
+    return 0;
 }
 
 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,
                      BIGNUM **rp)
 {
-    ECDSA_DATA *ecdsa = ecdsa_check(eckey);
-    if (ecdsa == NULL)
-        return 0;
-    return ecdsa->meth->ecdsa_sign_setup(eckey, ctx_in, kinvp, rp);
+    if (eckey->meth->sign_setup != NULL)
+        return eckey->meth->sign_setup(eckey, ctx_in, kinvp, rp);
+    ECerr(EC_F_ECDSA_SIGN_SETUP, EC_R_OPERATION_NOT_SUPPORTED);
+    return 0;
 }
diff --git a/crypto/ecdsa/ecs_vrf.c b/crypto/ec/ecdsa_vrf.c
similarity index 81%
rename from crypto/ecdsa/ecs_vrf.c
rename to crypto/ec/ecdsa_vrf.c
index b9bd32f..8a550bc 100644
--- a/crypto/ecdsa/ecs_vrf.c
+++ b/crypto/ec/ecdsa_vrf.c
@@ -56,11 +56,13 @@
  *
  */
 
-#include "ecs_locl.h"
+#include <openssl/ec.h>
+#include "ec_lcl.h"
 #include <string.h>
 #ifndef OPENSSL_NO_ENGINE
 # include <openssl/engine.h>
 #endif
+#include <openssl/err.h>
 
 /*-
  * returns
@@ -71,10 +73,10 @@
 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
                     const ECDSA_SIG *sig, EC_KEY *eckey)
 {
-    ECDSA_DATA *ecdsa = ecdsa_check(eckey);
-    if (ecdsa == NULL)
-        return 0;
-    return ecdsa->meth->ecdsa_do_verify(dgst, dgst_len, sig, eckey);
+    if (eckey->meth->verify_sig != NULL)
+        return eckey->meth->verify_sig(dgst, dgst_len, sig, eckey);
+    ECerr(EC_F_ECDSA_DO_VERIFY, EC_R_OPERATION_NOT_SUPPORTED);
+    return 0;
 }
 
 /*-
@@ -86,24 +88,9 @@ int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
 int ECDSA_verify(int type, const unsigned char *dgst, int dgst_len,
                  const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)
 {
-    ECDSA_SIG *s;
-    const unsigned char *p = sigbuf;
-    unsigned char *der = NULL;
-    int derlen = -1;
-    int ret = -1;
-
-    s = ECDSA_SIG_new();
-    if (s == NULL)
-        return (ret);
-    if (d2i_ECDSA_SIG(&s, &p, sig_len) == NULL)
-        goto err;
-    /* Ensure signature uses DER and doesn't have trailing garbage */
-    derlen = i2d_ECDSA_SIG(s, &der);
-    if (derlen != sig_len || memcmp(sigbuf, der, derlen))
-        goto err;
-    ret = ECDSA_do_verify(dgst, dgst_len, s, eckey);
- err:
-    OPENSSL_clear_free(der, derlen);
-    ECDSA_SIG_free(s);
-    return (ret);
+    if (eckey->meth->verify != NULL)
+        return eckey->meth->verify(type, dgst, dgst_len, sigbuf, sig_len,
+                                   eckey);
+    ECerr(EC_F_ECDSA_VERIFY, EC_R_OPERATION_NOT_SUPPORTED);
+    return 0;
 }
diff --git a/crypto/ecdh/Makefile b/crypto/ecdh/Makefile
deleted file mode 100644
index e980a1c..0000000
--- a/crypto/ecdh/Makefile
+++ /dev/null
@@ -1,110 +0,0 @@
-#
-# crypto/ecdh/Makefile
-#
-
-DIR=	ecdh
-TOP=	../..
-CC=	cc
-INCLUDES= -I.. -I$(TOP) -I../../include
-CFLAG=-g -Wall
-MAKEFILE=	Makefile
-AR=		ar r
-
-CFLAGS= $(INCLUDES) $(CFLAG)
-
-GENERAL=Makefile
-
-LIB=$(TOP)/libcrypto.a
-LIBSRC=	ech_lib.c ech_ossl.c ech_key.c ech_err.c ech_kdf.c
-
-LIBOBJ=	ech_lib.o ech_ossl.o ech_key.o ech_err.o ech_kdf.o
-
-SRC= $(LIBSRC)
-
-HEADER=	ech_locl.h
-
-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 >> $(TOP)/MINFO
-
-tags:
-	ctags $(SRC)
-
-tests:
-
-lint:
-	lint -DLINT $(INCLUDES) $(SRC)>fluff
-
-update: depend
-
-depend:
-	@[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
-	$(MAKEDEPEND) -- $(CFLAG) $(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.
-
-ech_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
-ech_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ech_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ech_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
-ech_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-ech_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-ech_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-ech_err.o: ech_err.c
-ech_kdf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
-ech_kdf.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ech_kdf.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ech_kdf.o: ../../include/openssl/evp.h ../../include/openssl/obj_mac.h
-ech_kdf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-ech_kdf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-ech_kdf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-ech_kdf.o: ../../include/openssl/symhacks.h ech_kdf.c
-ech_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
-ech_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ech_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ech_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-ech_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-ech_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-ech_key.o: ech_key.c ech_locl.h
-ech_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
-ech_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
-ech_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ech_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
-ech_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
-ech_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-ech_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-ech_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-ech_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-ech_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
-ech_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-ech_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
-ech_lib.o: ech_lib.c ech_locl.h
-ech_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
-ech_ossl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
-ech_ossl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
-ech_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ech_ossl.o: ../../include/openssl/ecdh.h ../../include/openssl/err.h
-ech_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-ech_ossl.o: ../../include/openssl/opensslconf.h
-ech_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-ech_ossl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
-ech_ossl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-ech_ossl.o: ../include/internal/cryptlib.h ech_locl.h ech_ossl.c
diff --git a/crypto/ecdh/ech_err.c b/crypto/ecdh/ech_err.c
deleted file mode 100644
index 5b1f274..0000000
--- a/crypto/ecdh/ech_err.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* crypto/ecdh/ech_err.c */
-/* ====================================================================
- * Copyright (c) 1999-2015 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at 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/ecdh.h>
-
-/* BEGIN ERROR CODES */
-#ifndef OPENSSL_NO_ERR
-
-# define ERR_FUNC(func) ERR_PACK(ERR_LIB_ECDH,func,0)
-# define ERR_REASON(reason) ERR_PACK(ERR_LIB_ECDH,0,reason)
-
-static ERR_STRING_DATA ECDH_str_functs[] = {
-    {ERR_FUNC(ECDH_F_ECDH_COMPUTE_KEY), "ECDH_compute_key"},
-    {ERR_FUNC(ECDH_F_ECDH_DATA_NEW_METHOD), "ECDH_DATA_new_method"},
-    {0, NULL}
-};
-
-static ERR_STRING_DATA ECDH_str_reasons[] = {
-    {ERR_REASON(ECDH_R_KDF_FAILED), "KDF failed"},
-    {ERR_REASON(ECDH_R_NO_PRIVATE_VALUE), "no private value"},
-    {ERR_REASON(ECDH_R_POINT_ARITHMETIC_FAILURE), "point arithmetic failure"},
-    {0, NULL}
-};
-
-#endif
-
-void ERR_load_ECDH_strings(void)
-{
-#ifndef OPENSSL_NO_ERR
-
-    if (ERR_func_error_string(ECDH_str_functs[0].error) == NULL) {
-        ERR_load_strings(0, ECDH_str_functs);
-        ERR_load_strings(0, ECDH_str_reasons);
-    }
-#endif
-}
diff --git a/crypto/ecdh/ech_key.c b/crypto/ecdh/ech_key.c
deleted file mode 100644
index 4f14498..0000000
--- a/crypto/ecdh/ech_key.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* crypto/ecdh/ecdh_key.c */
-/* ====================================================================
- * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
- *
- * The Elliptic Curve Public-Key Crypto Library (ECC Code) included
- * herein is developed by SUN MICROSYSTEMS, INC., and is contributed
- * to the OpenSSL project.
- *
- * The ECC Code is licensed pursuant to the OpenSSL open source
- * license provided below.
- *
- * The ECDH software is originally written by Douglas Stebila of
- * Sun Microsystems Laboratories.
- *
- */
-/* ====================================================================
- * Copyright (c) 1998-2003 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
-#include "ech_locl.h"
-
-int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
-                     EC_KEY *eckey,
-                     void *(*KDF) (const void *in, size_t inlen, void *out,
-                                   size_t *outlen))
-{
-    ECDH_DATA *ecdh = ecdh_check(eckey);
-    if (ecdh == NULL)
-        return 0;
-    return ecdh->meth->compute_key(out, outlen, pub_key, eckey, KDF);
-}
diff --git a/crypto/ecdh/ech_lib.c b/crypto/ecdh/ech_lib.c
deleted file mode 100644
index f402caf..0000000
--- a/crypto/ecdh/ech_lib.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* crypto/ecdh/ech_lib.c */
-/* ====================================================================
- * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
- *
- * The Elliptic Curve Public-Key Crypto Library (ECC Code) included
- * herein is developed by SUN MICROSYSTEMS, INC., and is contributed
- * to the OpenSSL project.
- *
- * The ECC Code is licensed pursuant to the OpenSSL open source
- * license provided below.
- *
- * The ECDH software is originally written by Douglas Stebila of
- * Sun Microsystems Laboratories.
- *
- */
-/* ====================================================================
- * Copyright (c) 1998-2003 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
-#include "ech_locl.h"
-#include <string.h>
-#ifndef OPENSSL_NO_ENGINE
-# include <openssl/engine.h>
-#endif
-#include <openssl/err.h>
-
-static const ECDH_METHOD *default_ECDH_method = NULL;
-
-static void *ecdh_data_new(void);
-static void *ecdh_data_dup(void *);
-static void ecdh_data_free(void *);
-
-void ECDH_set_default_method(const ECDH_METHOD *meth)
-{
-    default_ECDH_method = meth;
-}
-
-const ECDH_METHOD *ECDH_get_default_method(void)
-{
-    if (!default_ECDH_method)
-        default_ECDH_method = ECDH_OpenSSL();
-    return default_ECDH_method;
-}
-
-int ECDH_set_method(EC_KEY *eckey, const ECDH_METHOD *meth)
-{
-    ECDH_DATA *ecdh;
-
-    ecdh = ecdh_check(eckey);
-
-    if (ecdh == NULL)
-        return 0;
-
-#ifndef OPENSSL_NO_ENGINE
-    if (ecdh->engine) {
-        ENGINE_finish(ecdh->engine);
-        ecdh->engine = NULL;
-    }
-#endif
-    ecdh->meth = meth;
-    return 1;
-}
-
-static ECDH_DATA *ECDH_DATA_new_method(ENGINE *engine)
-{
-    ECDH_DATA *ret;
-
-    ret = OPENSSL_malloc(sizeof(*ret));
-    if (ret == NULL) {
-        ECDHerr(ECDH_F_ECDH_DATA_NEW_METHOD, ERR_R_MALLOC_FAILURE);
-        return (NULL);
-    }
-
-    ret->init = NULL;
-
-    ret->meth = ECDH_get_default_method();
-    ret->engine = engine;
-#ifndef OPENSSL_NO_ENGINE
-    if (!ret->engine)
-        ret->engine = ENGINE_get_default_ECDH();
-    if (ret->engine) {
-        ret->meth = ENGINE_get_ECDH(ret->engine);
-        if (!ret->meth) {
-            ECDHerr(ECDH_F_ECDH_DATA_NEW_METHOD, ERR_R_ENGINE_LIB);
-            ENGINE_finish(ret->engine);
-            OPENSSL_free(ret);
-            return NULL;
-        }
-    }
-#endif
-
-    ret->flags = ret->meth->flags;
-    CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ECDH, ret, &ret->ex_data);
-    return (ret);
-}
-
-static void *ecdh_data_new(void)
-{
-    return (void *)ECDH_DATA_new_method(NULL);
-}
-
-static void *ecdh_data_dup(void *data)
-{
-    ECDH_DATA *r = (ECDH_DATA *)data;
-
-    /* XXX: dummy operation */
-    if (r == NULL)
-        return NULL;
-
-    return (void *)ecdh_data_new();
-}
-
-void ecdh_data_free(void *data)
-{
-    ECDH_DATA *r = (ECDH_DATA *)data;
-
-#ifndef OPENSSL_NO_ENGINE
-    if (r->engine)
-        ENGINE_finish(r->engine);
-#endif
-
-    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_ECDH, r, &r->ex_data);
-    OPENSSL_clear_free((void *)r, sizeof(ECDH_DATA));
-}
-
-ECDH_DATA *ecdh_check(EC_KEY *key)
-{
-    ECDH_DATA *ecdh_data;
-
-    void *data = EC_KEY_get_key_method_data(key, ecdh_data_dup,
-                                            ecdh_data_free, ecdh_data_free);
-    if (data == NULL) {
-        ecdh_data = (ECDH_DATA *)ecdh_data_new();
-        if (ecdh_data == NULL)
-            return NULL;
-        data = EC_KEY_insert_key_method_data(key, (void *)ecdh_data,
-                                             ecdh_data_dup, ecdh_data_free,
-                                             ecdh_data_free);
-        if (data != NULL) {
-            /*
-             * Another thread raced us to install the key_method data and
-             * won.
-             */
-            ecdh_data_free(ecdh_data);
-            ecdh_data = (ECDH_DATA *)data;
-        }
-    } else
-        ecdh_data = (ECDH_DATA *)data;
-
-    return ecdh_data;
-}
-
-int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg)
-{
-    ECDH_DATA *ecdh;
-    ecdh = ecdh_check(d);
-    if (ecdh == NULL)
-        return 0;
-    return (CRYPTO_set_ex_data(&ecdh->ex_data, idx, arg));
-}
-
-void *ECDH_get_ex_data(EC_KEY *d, int idx)
-{
-    ECDH_DATA *ecdh;
-    ecdh = ecdh_check(d);
-    if (ecdh == NULL)
-        return NULL;
-    return (CRYPTO_get_ex_data(&ecdh->ex_data, idx));
-}
diff --git a/crypto/ecdh/ech_locl.h b/crypto/ecdh/ech_locl.h
deleted file mode 100644
index d61ef80..0000000
--- a/crypto/ecdh/ech_locl.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* crypto/ecdh/ech_locl.h */
-/* ====================================================================
- * Copyright (c) 2000-2005 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
-#ifndef HEADER_ECH_LOCL_H
-# define HEADER_ECH_LOCL_H
-
-# include <openssl/ecdh.h>
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-struct ecdh_method {
-    const char *name;
-    int (*compute_key) (void *key, size_t outlen, const EC_POINT *pub_key,
-                        EC_KEY *ecdh, void *(*KDF) (const void *in,
-                                                    size_t inlen, void *out,
-                                                    size_t *outlen));
-    int flags;
-    char *app_data;
-};
-
-/*
- * If this flag is set the ECDH method is FIPS compliant and can be used in
- * FIPS mode. This is set in the validated module method. If an application
- * sets this flag in its own methods it is its responsibility to ensure the
- * result is compliant.
- */
-
-# define ECDH_FLAG_FIPS_METHOD   0x1
-
-typedef struct ecdh_data_st {
-    /* EC_KEY_METH_DATA part */
-    int (*init) (EC_KEY *);
-    /* method specific part */
-    ENGINE *engine;
-    int flags;
-    const ECDH_METHOD *meth;
-    CRYPTO_EX_DATA ex_data;
-} ECDH_DATA;
-
-ECDH_DATA *ecdh_check(EC_KEY *);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif                          /* HEADER_ECH_LOCL_H */
diff --git a/crypto/ecdsa/Makefile b/crypto/ecdsa/Makefile
deleted file mode 100644
index 01a7c34..0000000
--- a/crypto/ecdsa/Makefile
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# crypto/ecdsa/Makefile
-#
-
-DIR=	ecdsa
-TOP=	../..
-CC=	cc
-INCLUDES= -I.. -I$(TOP) -I../../include
-CFLAG=-g -Wall
-MAKEFILE=	Makefile
-AR=		ar r
-
-CFLAGS= $(INCLUDES) $(CFLAG)
-
-GENERAL=Makefile
-
-LIB=$(TOP)/libcrypto.a
-LIBSRC=	ecs_lib.c ecs_asn1.c ecs_ossl.c ecs_sign.c ecs_vrf.c ecs_err.c
-
-LIBOBJ=	ecs_lib.o ecs_asn1.o ecs_ossl.o ecs_sign.o ecs_vrf.o ecs_err.o
-
-SRC= $(LIBSRC)
-
-HEADER=	ecs_locl.h
-
-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 >> $(TOP)/MINFO
-
-tags:
-	ctags $(SRC)
-
-tests:
-
-lint:
-	lint -DLINT $(INCLUDES) $(SRC)>fluff
-
-update: depend
-
-depend:
-	@[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
-	$(MAKEDEPEND) -- $(CFLAG) $(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: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
-ecs_asn1.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
-ecs_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ecs_asn1.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
-ecs_asn1.o: ../../include/openssl/lhash.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 ecs_asn1.c ecs_locl.h
-ecs_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.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_lib.o: ../../include/openssl/asn1.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/e_os2.h
-ecs_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ecs_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
-ecs_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-ecs_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-ecs_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-ecs_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-ecs_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
-ecs_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
-ecs_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
-ecs_lib.o: ../../include/openssl/x509_vfy.h ecs_lib.c ecs_locl.h
-ecs_ossl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
-ecs_ossl.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
-ecs_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ecs_ossl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
-ecs_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.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/rand.h ../../include/openssl/safestack.h
-ecs_ossl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-ecs_ossl.o: ecs_locl.h ecs_ossl.c
-ecs_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
-ecs_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
-ecs_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ecs_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
-ecs_sign.o: ../../include/openssl/engine.h ../../include/openssl/evp.h
-ecs_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-ecs_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-ecs_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-ecs_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
-ecs_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
-ecs_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-ecs_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
-ecs_sign.o: ecs_locl.h ecs_sign.c
-ecs_vrf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
-ecs_vrf.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
-ecs_vrf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ecs_vrf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
-ecs_vrf.o: ../../include/openssl/engine.h ../../include/openssl/evp.h
-ecs_vrf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-ecs_vrf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-ecs_vrf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-ecs_vrf.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
-ecs_vrf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
-ecs_vrf.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
-ecs_vrf.o: ../../include/openssl/x509_vfy.h ecs_locl.h ecs_vrf.c
diff --git a/crypto/ecdsa/ecs_asn1.c b/crypto/ecdsa/ecs_asn1.c
deleted file mode 100644
index 0767d3e..0000000
--- a/crypto/ecdsa/ecs_asn1.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
-#include "ecs_locl.h"
-#include <openssl/err.h>
-#include <openssl/asn1t.h>
-
-ASN1_SEQUENCE(ECDSA_SIG) = {
-        ASN1_SIMPLE(ECDSA_SIG, r, CBIGNUM),
-        ASN1_SIMPLE(ECDSA_SIG, s, CBIGNUM)
-} static_ASN1_SEQUENCE_END(ECDSA_SIG)
-
-DECLARE_ASN1_FUNCTIONS_const(ECDSA_SIG)
-DECLARE_ASN1_ENCODE_FUNCTIONS_const(ECDSA_SIG, ECDSA_SIG)
-IMPLEMENT_ASN1_FUNCTIONS_const(ECDSA_SIG)
diff --git a/crypto/ecdsa/ecs_err.c b/crypto/ecdsa/ecs_err.c
deleted file mode 100644
index 0a932f3..0000000
--- a/crypto/ecdsa/ecs_err.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* crypto/ecdsa/ecs_err.c */
-/* ====================================================================
- * Copyright (c) 1999-2015 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at 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
-
-# define ERR_FUNC(func) ERR_PACK(ERR_LIB_ECDSA,func,0)
-# define ERR_REASON(reason) ERR_PACK(ERR_LIB_ECDSA,0,reason)
-
-static ERR_STRING_DATA ECDSA_str_functs[] = {
-    {ERR_FUNC(ECDSA_F_ECDSA_DATA_NEW_METHOD), "ECDSA_DATA_new_method"},
-    {ERR_FUNC(ECDSA_F_ECDSA_DO_SIGN), "ECDSA_do_sign"},
-    {ERR_FUNC(ECDSA_F_ECDSA_DO_VERIFY), "ECDSA_do_verify"},
-    {ERR_FUNC(ECDSA_F_ECDSA_METHOD_NEW), "ECDSA_METHOD_new"},
-    {ERR_FUNC(ECDSA_F_ECDSA_SIGN_SETUP), "ECDSA_sign_setup"},
-    {0, NULL}
-};
-
-static ERR_STRING_DATA ECDSA_str_reasons[] = {
-    {ERR_REASON(ECDSA_R_BAD_SIGNATURE), "bad signature"},
-    {ERR_REASON(ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE),
-     "data too large for key size"},
-    {ERR_REASON(ECDSA_R_ERR_EC_LIB), "err ec lib"},
-    {ERR_REASON(ECDSA_R_MISSING_PARAMETERS), "missing parameters"},
-    {ERR_REASON(ECDSA_R_NEED_NEW_SETUP_VALUES), "need new setup values"},
-    {ERR_REASON(ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED),
-     "random number generation failed"},
-    {ERR_REASON(ECDSA_R_SIGNATURE_MALLOC_FAILED), "signature malloc failed"},
-    {0, NULL}
-};
-
-#endif
-
-void ERR_load_ECDSA_strings(void)
-{
-#ifndef OPENSSL_NO_ERR
-
-    if (ERR_func_error_string(ECDSA_str_functs[0].error) == NULL) {
-        ERR_load_strings(0, ECDSA_str_functs);
-        ERR_load_strings(0, ECDSA_str_reasons);
-    }
-#endif
-}
diff --git a/crypto/ecdsa/ecs_lib.c b/crypto/ecdsa/ecs_lib.c
deleted file mode 100644
index ae516e7..0000000
--- a/crypto/ecdsa/ecs_lib.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* crypto/ecdsa/ecs_lib.c */
-/* ====================================================================
- * Copyright (c) 1998-2005 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
-#include <string.h>
-#include "ecs_locl.h"
-#ifndef OPENSSL_NO_ENGINE
-# include <openssl/engine.h>
-#endif
-#include <openssl/err.h>
-#include <openssl/bn.h>
-
-static const ECDSA_METHOD *default_ECDSA_method = NULL;
-
-static void *ecdsa_data_new(void);
-static void *ecdsa_data_dup(void *);
-static void ecdsa_data_free(void *);
-
-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;
-}
-
-int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth)
-{
-    ECDSA_DATA *ecdsa;
-
-    ecdsa = ecdsa_check(eckey);
-
-    if (ecdsa == NULL)
-        return 0;
-
-#ifndef OPENSSL_NO_ENGINE
-    if (ecdsa->engine) {
-        ENGINE_finish(ecdsa->engine);
-        ecdsa->engine = NULL;
-    }
-#endif
-    ecdsa->meth = meth;
-
-    return 1;
-}
-
-static ECDSA_DATA *ECDSA_DATA_new_method(ENGINE *engine)
-{
-    ECDSA_DATA *ret;
-
-    ret = OPENSSL_malloc(sizeof(*ret));
-    if (ret == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_DATA_NEW_METHOD, ERR_R_MALLOC_FAILURE);
-        return (NULL);
-    }
-
-    ret->init = NULL;
-
-    ret->meth = ECDSA_get_default_method();
-    ret->engine = engine;
-#ifndef OPENSSL_NO_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_F_ECDSA_DATA_NEW_METHOD, ERR_R_ENGINE_LIB);
-            ENGINE_finish(ret->engine);
-            OPENSSL_free(ret);
-            return NULL;
-        }
-    }
-#endif
-
-    ret->flags = ret->meth->flags;
-    CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ECDSA, ret, &ret->ex_data);
-    return (ret);
-}
-
-static void *ecdsa_data_new(void)
-{
-    return (void *)ECDSA_DATA_new_method(NULL);
-}
-
-static void *ecdsa_data_dup(void *data)
-{
-    ECDSA_DATA *r = (ECDSA_DATA *)data;
-
-    /* XXX: dummy operation */
-    if (r == NULL)
-        return NULL;
-
-    return ecdsa_data_new();
-}
-
-static void ecdsa_data_free(void *data)
-{
-    ECDSA_DATA *r = (ECDSA_DATA *)data;
-
-#ifndef OPENSSL_NO_ENGINE
-    if (r->engine)
-        ENGINE_finish(r->engine);
-#endif
-    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_ECDSA, r, &r->ex_data);
-
-    OPENSSL_clear_free((void *)r, sizeof(ECDSA_DATA));
-}
-
-ECDSA_DATA *ecdsa_check(EC_KEY *key)
-{
-    ECDSA_DATA *ecdsa_data;
-
-    void *data = EC_KEY_get_key_method_data(key, ecdsa_data_dup,
-                                            ecdsa_data_free, ecdsa_data_free);
-    if (data == NULL) {
-        ecdsa_data = (ECDSA_DATA *)ecdsa_data_new();
-        if (ecdsa_data == NULL)
-            return NULL;
-        data = EC_KEY_insert_key_method_data(key, (void *)ecdsa_data,
-                                             ecdsa_data_dup, ecdsa_data_free,
-                                             ecdsa_data_free);
-        if (data != NULL) {
-            /*
-             * Another thread raced us to install the key_method data and
-             * won.
-             */
-            ecdsa_data_free(ecdsa_data);
-            ecdsa_data = (ECDSA_DATA *)data;
-        }
-    } else
-        ecdsa_data = (ECDSA_DATA *)data;
-
-    return ecdsa_data;
-}
-
-int ECDSA_size(const EC_KEY *r)
-{
-    int ret, i;
-    ASN1_INTEGER bs;
-    BIGNUM *order = NULL;
-    unsigned char buf[4];
-    const EC_GROUP *group;
-
-    if (r == NULL)
-        return 0;
-    group = EC_KEY_get0_group(r);
-    if (group == NULL)
-        return 0;
-
-    if ((order = BN_new()) == NULL)
-        return 0;
-    if (!EC_GROUP_get_order(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_set_ex_data(EC_KEY *d, int idx, void *arg)
-{
-    ECDSA_DATA *ecdsa;
-    ecdsa = ecdsa_check(d);
-    if (ecdsa == NULL)
-        return 0;
-    return (CRYPTO_set_ex_data(&ecdsa->ex_data, idx, arg));
-}
-
-void *ECDSA_get_ex_data(EC_KEY *d, int idx)
-{
-    ECDSA_DATA *ecdsa;
-    ecdsa = ecdsa_check(d);
-    if (ecdsa == NULL)
-        return NULL;
-    return (CRYPTO_get_ex_data(&ecdsa->ex_data, idx));
-}
-
-ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_meth)
-{
-    ECDSA_METHOD *ret;
-
-    ret = OPENSSL_zalloc(sizeof(*ret));
-    if (ret == NULL) {
-        ECDSAerr(ECDSA_F_ECDSA_METHOD_NEW, ERR_R_MALLOC_FAILURE);
-        return NULL;
-    }
-
-    if (ecdsa_meth)
-        *ret = *ecdsa_meth;
-    ret->flags |= ECDSA_METHOD_FLAG_ALLOCATED;
-    return ret;
-}
-
-void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method,
-                           ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char
-                                                        *dgst, int dgst_len,
-                                                        const BIGNUM *inv,
-                                                        const BIGNUM *rp,
-                                                        EC_KEY *eckey))
-{
-    ecdsa_method->ecdsa_do_sign = ecdsa_do_sign;
-}
-
-void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method,
-                                 int (*ecdsa_sign_setup) (EC_KEY *eckey,
-                                                          BN_CTX *ctx,
-                                                          BIGNUM **kinv,
-                                                          BIGNUM **r))
-{
-    ecdsa_method->ecdsa_sign_setup = ecdsa_sign_setup;
-}
-
-void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method,
-                             int (*ecdsa_do_verify) (const unsigned char
-                                                     *dgst, int dgst_len,
-                                                     const ECDSA_SIG *sig,
-                                                     EC_KEY *eckey))
-{
-    ecdsa_method->ecdsa_do_verify = ecdsa_do_verify;
-}
-
-void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags)
-{
-    ecdsa_method->flags = flags | ECDSA_METHOD_FLAG_ALLOCATED;
-}
-
-void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name)
-{
-    ecdsa_method->name = name;
-}
-
-void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method)
-{
-    if (!ecdsa_method)
-        return;
-    if (ecdsa_method->flags & ECDSA_METHOD_FLAG_ALLOCATED)
-        OPENSSL_free(ecdsa_method);
-}
-
-void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app)
-{
-    ecdsa_method->app_data = app;
-}
-
-void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method)
-{
-    return ecdsa_method->app_data;
-}
diff --git a/crypto/ecdsa/ecs_locl.h b/crypto/ecdsa/ecs_locl.h
deleted file mode 100644
index 9a0666e..0000000
--- a/crypto/ecdsa/ecs_locl.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* crypto/ecdsa/ecs_locl.h */
-/*
- * Written by Nils Larsch for the OpenSSL project
- */
-/* ====================================================================
- * Copyright (c) 2000-2005 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
-#ifndef HEADER_ECS_LOCL_H
-# define HEADER_ECS_LOCL_H
-
-# include <openssl/ecdsa.h>
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-struct ecdsa_method {
-    const char *name;
-    ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char *dgst, int dgst_len,
-                                 const BIGNUM *inv, const BIGNUM *rp,
-                                 EC_KEY *eckey);
-    int (*ecdsa_sign_setup) (EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv,
-                             BIGNUM **r);
-    int (*ecdsa_do_verify) (const unsigned char *dgst, int dgst_len,
-                            const ECDSA_SIG *sig, EC_KEY *eckey);
-    int flags;
-    void *app_data;
-};
-
-/* The ECDSA_METHOD was allocated and can be freed */
-
-# define ECDSA_METHOD_FLAG_ALLOCATED 0x2
-
-/*
- * If this flag is set the ECDSA method is FIPS compliant and can be used in
- * FIPS mode. This is set in the validated module method. If an application
- * sets this flag in its own methods it is its responsibility to ensure the
- * result is compliant.
- */
-
-# define ECDSA_FLAG_FIPS_METHOD  0x1
-
-typedef struct ecdsa_data_st {
-    /* EC_KEY_METH_DATA part */
-    int (*init) (EC_KEY *);
-    /* method (ECDSA) specific part */
-    ENGINE *engine;
-    int flags;
-    const ECDSA_METHOD *meth;
-    CRYPTO_EX_DATA ex_data;
-} ECDSA_DATA;
-
-/** ecdsa_check
- * checks whether ECKEY->meth_data is a pointer to a ECDSA_DATA structure
- * and if not it removes the old meth_data and creates a ECDSA_DATA structure.
- * \param  eckey pointer to a EC_KEY object
- * \return pointer to a ECDSA_DATA structure
- */
-ECDSA_DATA *ecdsa_check(EC_KEY *eckey);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif                          /* HEADER_ECS_LOCL_H */
diff --git a/crypto/engine/Makefile b/crypto/engine/Makefile
index dae2926..cfe6b57 100644
--- a/crypto/engine/Makefile
+++ b/crypto/engine/Makefile
@@ -17,14 +17,14 @@ GENERAL=Makefile
 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_ecdsa.c tb_dh.c tb_ecdh.c tb_rand.c tb_store.c \
-	tb_cipher.c tb_digest.c tb_pkmeth.c tb_asnmth.c \
+	tb_rsa.c tb_dsa.c tb_dh.c tb_rand.c tb_store.c \
+	tb_cipher.c tb_digest.c tb_pkmeth.c tb_asnmth.c tb_eckey.c \
 	eng_openssl.c eng_cnf.c eng_dyn.c eng_cryptodev.c \
 	eng_rdrand.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_ecdsa.o tb_dh.o tb_ecdh.o tb_rand.o tb_store.o \
-	tb_cipher.o tb_digest.o tb_pkmeth.o tb_asnmth.o \
+	tb_rsa.o tb_dsa.o tb_dh.o tb_rand.o tb_store.o \
+	tb_cipher.o tb_digest.o tb_pkmeth.o tb_asnmth.o tb_eckey.o \
 	eng_openssl.o eng_cnf.o eng_dyn.o eng_cryptodev.o \
 	eng_rdrand.o
 
@@ -73,8 +73,7 @@ clean:
 eng_all.o: ../../e_os.h ../../include/openssl/asn1.h
 eng_all.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 eng_all.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-eng_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-eng_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_all.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 eng_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 eng_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 eng_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -88,7 +87,6 @@ eng_cnf.o: ../../e_os.h ../../include/openssl/asn1.h
 eng_cnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 eng_cnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 eng_cnf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-eng_cnf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 eng_cnf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 eng_cnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 eng_cnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -102,8 +100,7 @@ eng_cryptodev.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 eng_cryptodev.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 eng_cryptodev.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 eng_cryptodev.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-eng_cryptodev.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-eng_cryptodev.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_cryptodev.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 eng_cryptodev.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 eng_cryptodev.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 eng_cryptodev.o: ../../include/openssl/objects.h
@@ -117,8 +114,7 @@ eng_cryptodev.o: ../../include/openssl/x509_vfy.h eng_cryptodev.c
 eng_ctrl.o: ../../e_os.h ../../include/openssl/asn1.h
 eng_ctrl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 eng_ctrl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-eng_ctrl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-eng_ctrl.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_ctrl.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 eng_ctrl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 eng_ctrl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 eng_ctrl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -132,7 +128,6 @@ eng_dyn.o: ../../e_os.h ../../include/openssl/asn1.h
 eng_dyn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 eng_dyn.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
 eng_dyn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-eng_dyn.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 eng_dyn.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 eng_dyn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 eng_dyn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -145,7 +140,6 @@ eng_dyn.o: ../include/internal/cryptlib.h eng_dyn.c eng_int.h
 eng_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 eng_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 eng_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-eng_err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 eng_err.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 eng_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 eng_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -159,7 +153,6 @@ eng_fat.o: ../../e_os.h ../../include/openssl/asn1.h
 eng_fat.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 eng_fat.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 eng_fat.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-eng_fat.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 eng_fat.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 eng_fat.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 eng_fat.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -172,8 +165,7 @@ eng_fat.o: ../include/internal/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/buffer.h
 eng_init.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-eng_init.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-eng_init.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_init.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 eng_init.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 eng_init.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 eng_init.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -186,8 +178,7 @@ eng_init.o: 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/buffer.h
 eng_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-eng_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-eng_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_lib.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 eng_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 eng_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 eng_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -200,8 +191,7 @@ eng_lib.o: ../include/internal/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/buffer.h
 eng_list.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-eng_list.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-eng_list.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_list.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 eng_list.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 eng_list.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 eng_list.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -216,8 +206,7 @@ eng_openssl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 eng_openssl.o: ../../include/openssl/conf.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/ec.h ../../include/openssl/ecdh.h
-eng_openssl.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_openssl.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 eng_openssl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 eng_openssl.o: ../../include/openssl/hmac.h ../../include/openssl/lhash.h
 eng_openssl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -234,8 +223,7 @@ eng_openssl.o: ../include/internal/cryptlib.h eng_openssl.c
 eng_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
 eng_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 eng_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-eng_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-eng_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_pkey.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 eng_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 eng_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 eng_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -248,7 +236,6 @@ eng_pkey.o: eng_int.h eng_pkey.c
 eng_rdrand.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 eng_rdrand.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 eng_rdrand.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-eng_rdrand.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 eng_rdrand.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 eng_rdrand.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 eng_rdrand.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -262,8 +249,7 @@ eng_rdrand.o: eng_rdrand.c
 eng_table.o: ../../e_os.h ../../include/openssl/asn1.h
 eng_table.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 eng_table.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-eng_table.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-eng_table.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_table.o: ../../include/openssl/ec.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
@@ -277,8 +263,7 @@ eng_table.o: eng_int.h eng_table.c
 tb_asnmth.o: ../../e_os.h ../../include/openssl/asn1.h
 tb_asnmth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 tb_asnmth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tb_asnmth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tb_asnmth.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_asnmth.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 tb_asnmth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 tb_asnmth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 tb_asnmth.o: ../../include/openssl/objects.h
@@ -292,8 +277,7 @@ tb_asnmth.o: ../include/internal/cryptlib.h eng_int.h tb_asnmth.c
 tb_cipher.o: ../../e_os.h ../../include/openssl/asn1.h
 tb_cipher.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 tb_cipher.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tb_cipher.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tb_cipher.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_cipher.o: ../../include/openssl/ec.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
@@ -307,7 +291,6 @@ tb_cipher.o: eng_int.h tb_cipher.c
 tb_dh.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 tb_dh.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 tb_dh.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-tb_dh.o: ../../include/openssl/ecdh.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
@@ -320,8 +303,7 @@ tb_dh.o: ../include/internal/cryptlib.h eng_int.h tb_dh.c
 tb_digest.o: ../../e_os.h ../../include/openssl/asn1.h
 tb_digest.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 tb_digest.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tb_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tb_digest.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_digest.o: ../../include/openssl/ec.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
@@ -335,7 +317,6 @@ tb_digest.o: eng_int.h tb_digest.c
 tb_dsa.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 tb_dsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 tb_dsa.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-tb_dsa.o: ../../include/openssl/ecdh.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
@@ -345,39 +326,23 @@ tb_dsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 tb_dsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 tb_dsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 tb_dsa.o: ../include/internal/cryptlib.h eng_int.h tb_dsa.c
-tb_ecdh.o: ../../e_os.h ../../include/openssl/asn1.h
-tb_ecdh.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
-tb_ecdh.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tb_ecdh.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tb_ecdh.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
-tb_ecdh.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-tb_ecdh.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-tb_ecdh.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-tb_ecdh.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-tb_ecdh.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
-tb_ecdh.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
-tb_ecdh.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
-tb_ecdh.o: ../../include/openssl/x509_vfy.h ../include/internal/cryptlib.h
-tb_ecdh.o: eng_int.h tb_ecdh.c
-tb_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h
-tb_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
-tb_ecdsa.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tb_ecdsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tb_ecdsa.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
-tb_ecdsa.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-tb_ecdsa.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-tb_ecdsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-tb_ecdsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-tb_ecdsa.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
-tb_ecdsa.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
-tb_ecdsa.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
-tb_ecdsa.o: ../../include/openssl/x509_vfy.h ../include/internal/cryptlib.h
-tb_ecdsa.o: eng_int.h tb_ecdsa.c
+tb_eckey.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_eckey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_eckey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_eckey.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
+tb_eckey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_eckey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_eckey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tb_eckey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_eckey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_eckey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_eckey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_eckey.o: ../../include/openssl/x509_vfy.h ../include/internal/cryptlib.h
+tb_eckey.o: eng_int.h tb_eckey.c
 tb_pkmeth.o: ../../e_os.h ../../include/openssl/asn1.h
 tb_pkmeth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 tb_pkmeth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tb_pkmeth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tb_pkmeth.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_pkmeth.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 tb_pkmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 tb_pkmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 tb_pkmeth.o: ../../include/openssl/objects.h
@@ -391,8 +356,7 @@ tb_pkmeth.o: eng_int.h tb_pkmeth.c
 tb_rand.o: ../../e_os.h ../../include/openssl/asn1.h
 tb_rand.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 tb_rand.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tb_rand.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tb_rand.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_rand.o: ../../include/openssl/ec.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
@@ -405,7 +369,6 @@ tb_rand.o: eng_int.h tb_rand.c
 tb_rsa.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 tb_rsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 tb_rsa.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-tb_rsa.o: ../../include/openssl/ecdh.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
@@ -418,8 +381,7 @@ tb_rsa.o: ../include/internal/cryptlib.h eng_int.h tb_rsa.c
 tb_store.o: ../../e_os.h ../../include/openssl/asn1.h
 tb_store.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 tb_store.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-tb_store.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-tb_store.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_store.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 tb_store.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 tb_store.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 tb_store.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
diff --git a/crypto/engine/eng_fat.c b/crypto/engine/eng_fat.c
index e0c8f96..79d30bc 100644
--- a/crypto/engine/eng_fat.c
+++ b/crypto/engine/eng_fat.c
@@ -80,9 +80,7 @@ int ENGINE_set_default(ENGINE *e, unsigned int flags)
         return 0;
 #endif
 #ifndef OPENSSL_NO_EC
-    if ((flags & ENGINE_METHOD_ECDH) && !ENGINE_set_default_ECDH(e))
-        return 0;
-    if ((flags & ENGINE_METHOD_ECDSA) && !ENGINE_set_default_ECDSA(e))
+    if ((flags & ENGINE_METHOD_EC) && !ENGINE_set_default_EC(e))
         return 0;
 #endif
     if ((flags & ENGINE_METHOD_RAND) && !ENGINE_set_default_RAND(e))
@@ -109,12 +107,10 @@ static int int_def_cb(const char *alg, int len, void *arg)
         *pflags |= ENGINE_METHOD_RSA;
     else if (strncmp(alg, "DSA", len) == 0)
         *pflags |= ENGINE_METHOD_DSA;
-    else if (strncmp(alg, "ECDH", len) == 0)
-        *pflags |= ENGINE_METHOD_ECDH;
-    else if (strncmp(alg, "ECDSA", len) == 0)
-        *pflags |= ENGINE_METHOD_ECDSA;
     else if (strncmp(alg, "DH", len) == 0)
         *pflags |= ENGINE_METHOD_DH;
+    else if (strncmp(alg, "EC", len) == 0)
+        *pflags |= ENGINE_METHOD_EC;
     else if (strncmp(alg, "RAND", len) == 0)
         *pflags |= ENGINE_METHOD_RAND;
     else if (strncmp(alg, "CIPHERS", len) == 0)
@@ -158,8 +154,7 @@ int ENGINE_register_complete(ENGINE *e)
     ENGINE_register_DH(e);
 #endif
 #ifndef OPENSSL_NO_EC
-    ENGINE_register_ECDH(e);
-    ENGINE_register_ECDSA(e);
+    ENGINE_register_EC(e);
 #endif
     ENGINE_register_RAND(e);
     ENGINE_register_pkey_meths(e);
diff --git a/crypto/engine/eng_int.h b/crypto/engine/eng_int.h
index 42674e1..2a0a9d4 100644
--- a/crypto/engine/eng_int.h
+++ b/crypto/engine/eng_int.h
@@ -179,8 +179,7 @@ struct engine_st {
     const RSA_METHOD *rsa_meth;
     const DSA_METHOD *dsa_meth;
     const DH_METHOD *dh_meth;
-    const ECDH_METHOD *ecdh_meth;
-    const ECDSA_METHOD *ecdsa_meth;
+    const EC_KEY_METHOD *ec_meth;
     const RAND_METHOD *rand_meth;
     const STORE_METHOD *store_meth;
     /* Cipher handling is via this callback */
diff --git a/crypto/engine/eng_list.c b/crypto/engine/eng_list.c
index cfd4f7e..f7739ba 100644
--- a/crypto/engine/eng_list.c
+++ b/crypto/engine/eng_list.c
@@ -302,8 +302,7 @@ static void engine_cpy(ENGINE *dest, const ENGINE *src)
     dest->dh_meth = src->dh_meth;
 #endif
 #ifndef OPENSSL_NO_EC
-    dest->ecdh_meth = src->ecdh_meth;
-    dest->ecdsa_meth = src->ecdsa_meth;
+    dest->ec_meth = src->ec_meth;
 #endif
     dest->rand_meth = src->rand_meth;
     dest->store_meth = src->store_meth;
diff --git a/crypto/engine/eng_openssl.c b/crypto/engine/eng_openssl.c
index b81f9c6..ba26567 100644
--- a/crypto/engine/eng_openssl.c
+++ b/crypto/engine/eng_openssl.c
@@ -155,8 +155,7 @@ static int bind_helper(ENGINE *e)
         || !ENGINE_set_DSA(e, DSA_get_default_method())
 # endif
 # ifndef OPENSSL_NO_EC
-        || !ENGINE_set_ECDH(e, ECDH_OpenSSL())
-        || !ENGINE_set_ECDSA(e, ECDSA_OpenSSL())
+        || !ENGINE_set_EC(e, EC_KEY_OpenSSL())
 # endif
 # ifndef OPENSSL_NO_DH
         || !ENGINE_set_DH(e, DH_get_default_method())
diff --git a/crypto/engine/tb_ecdh.c b/crypto/engine/tb_ecdh.c
deleted file mode 100644
index c51441b..0000000
--- a/crypto/engine/tb_ecdh.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* crypto/engine/tb_ecdh.c */
-/* ====================================================================
- * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
- *
- * The Elliptic Curve Public-Key Crypto Library (ECC Code) included
- * herein is developed by SUN MICROSYSTEMS, INC., and is contributed
- * to the OpenSSL project.
- *
- * The ECC Code is licensed pursuant to the OpenSSL open source
- * license provided below.
- *
- * The ECDH engine software is originally written by Nils Gura and
- * Douglas Stebila of Sun Microsystems Laboratories.
- *
- */
-/* ====================================================================
- * 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
-#include "eng_int.h"
-
-/*
- * If this symbol is defined then ENGINE_get_default_ECDH(), the function
- * that is used by ECDH to hook in implementation code and cache defaults
- * (etc), will display brief debugging summaries to stderr with the 'nid'.
- */
-/* #define ENGINE_ECDH_DEBUG */
-
-static ENGINE_TABLE *ecdh_table = NULL;
-static const int dummy_nid = 1;
-
-void ENGINE_unregister_ECDH(ENGINE *e)
-{
-    engine_table_unregister(&ecdh_table, e);
-}
-
-static void engine_unregister_all_ECDH(void)
-{
-    engine_table_cleanup(&ecdh_table);
-}
-
-int ENGINE_register_ECDH(ENGINE *e)
-{
-    if (e->ecdh_meth)
-        return engine_table_register(&ecdh_table,
-                                     engine_unregister_all_ECDH, e,
-                                     &dummy_nid, 1, 0);
-    return 1;
-}
-
-void ENGINE_register_all_ECDH()
-{
-    ENGINE *e;
-
-    for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e))
-        ENGINE_register_ECDH(e);
-}
-
-int ENGINE_set_default_ECDH(ENGINE *e)
-{
-    if (e->ecdh_meth)
-        return engine_table_register(&ecdh_table,
-                                     engine_unregister_all_ECDH, e,
-                                     &dummy_nid, 1, 1);
-    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_ECDH(void)
-{
-    return engine_table_select(&ecdh_table, dummy_nid);
-}
-
-/* Obtains an ECDH implementation from an ENGINE functional reference */
-const ECDH_METHOD *ENGINE_get_ECDH(const ENGINE *e)
-{
-    return e->ecdh_meth;
-}
-
-/* Sets an ECDH implementation in an ENGINE structure */
-int ENGINE_set_ECDH(ENGINE *e, const ECDH_METHOD *ecdh_meth)
-{
-    e->ecdh_meth = ecdh_meth;
-    return 1;
-}
diff --git a/crypto/engine/tb_ecdsa.c b/crypto/engine/tb_ecdsa.c
deleted file mode 100644
index a8b9be6..0000000
--- a/crypto/engine/tb_ecdsa.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* ====================================================================
- * 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
-#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(void)
-{
-    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, 1);
-    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;
-}
diff --git a/crypto/engine/tb_dh.c b/crypto/engine/tb_eckey.c
similarity index 79%
copy from crypto/engine/tb_dh.c
copy to crypto/engine/tb_eckey.c
index 8114afa..dbb4139 100644
--- a/crypto/engine/tb_dh.c
+++ b/crypto/engine/tb_eckey.c
@@ -55,47 +55,47 @@
 #include "eng_int.h"
 
 /*
- * If this symbol is defined then ENGINE_get_default_DH(), the function that
- * is used by DH to hook in implementation code and cache defaults (etc),
+ * If this symbol is defined then ENGINE_get_default_EC_KEY(), the function that
+ * is used by EC_KEY to hook in implementation code and cache defaults (etc),
  * will display brief debugging summaries to stderr with the 'nid'.
  */
-/* #define ENGINE_DH_DEBUG */
+/* #define ENGINE_EC_KEY_DEBUG */
 
 static ENGINE_TABLE *dh_table = NULL;
 static const int dummy_nid = 1;
 
-void ENGINE_unregister_DH(ENGINE *e)
+void ENGINE_unregister_EC(ENGINE *e)
 {
     engine_table_unregister(&dh_table, e);
 }
 
-static void engine_unregister_all_DH(void)
+static void engine_unregister_all_EC(void)
 {
     engine_table_cleanup(&dh_table);
 }
 
-int ENGINE_register_DH(ENGINE *e)
+int ENGINE_register_EC(ENGINE *e)
 {
-    if (e->dh_meth)
+    if (e->ec_meth != NULL)
         return engine_table_register(&dh_table,
-                                     engine_unregister_all_DH, e, &dummy_nid,
+                                     engine_unregister_all_EC, e, &dummy_nid,
                                      1, 0);
     return 1;
 }
 
-void ENGINE_register_all_DH()
+void ENGINE_register_all_EC()
 {
     ENGINE *e;
 
     for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e))
-        ENGINE_register_DH(e);
+        ENGINE_register_EC(e);
 }
 
-int ENGINE_set_default_DH(ENGINE *e)
+int ENGINE_set_default_EC(ENGINE *e)
 {
-    if (e->dh_meth)
+    if (e->ec_meth != NULL)
         return engine_table_register(&dh_table,
-                                     engine_unregister_all_DH, e, &dummy_nid,
+                                     engine_unregister_all_EC, e, &dummy_nid,
                                      1, 1);
     return 1;
 }
@@ -105,20 +105,20 @@ int ENGINE_set_default_DH(ENGINE *e)
  * table (ie. try to get a functional reference from the tabled structural
  * references).
  */
-ENGINE *ENGINE_get_default_DH(void)
+ENGINE *ENGINE_get_default_EC(void)
 {
     return engine_table_select(&dh_table, dummy_nid);
 }
 
-/* Obtains an DH implementation from an ENGINE functional reference */
-const DH_METHOD *ENGINE_get_DH(const ENGINE *e)
+/* Obtains an EC_KEY implementation from an ENGINE functional reference */
+const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e)
 {
-    return e->dh_meth;
+    return e->ec_meth;
 }
 
-/* Sets an DH implementation in an ENGINE structure */
-int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth)
+/* Sets an EC_KEY implementation in an ENGINE structure */
+int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ec_meth)
 {
-    e->dh_meth = dh_meth;
+    e->ec_meth = ec_meth;
     return 1;
 }
diff --git a/crypto/err/Makefile b/crypto/err/Makefile
index 398b3b9..a49e37b 100644
--- a/crypto/err/Makefile
+++ b/crypto/err/Makefile
@@ -74,7 +74,6 @@ err_all.o: ../../include/openssl/comp.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/ecdh.h ../../include/openssl/ecdsa.h
 err_all.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 err_all.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 err_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
diff --git a/crypto/err/err_all.c b/crypto/err/err_all.c
index baf76e7..6de9c21 100644
--- a/crypto/err/err_all.c
+++ b/crypto/err/err_all.c
@@ -76,10 +76,6 @@
 #ifndef OPENSSL_NO_DSA
 # include <openssl/dsa.h>
 #endif
-#ifndef OPENSSL_NO_EC
-# include <openssl/ecdsa.h>
-# include <openssl/ecdh.h>
-#endif
 #include <openssl/evp.h>
 #include <openssl/objects.h>
 #include <openssl/pem2.h>
@@ -138,8 +134,6 @@ void ERR_load_crypto_strings(void)
 # endif
 # ifndef OPENSSL_NO_EC
     ERR_load_EC_strings();
-    ERR_load_ECDSA_strings();
-    ERR_load_ECDH_strings();
 # endif
     /* skip ERR_load_SSL_strings() because it is not in this library */
     ERR_load_BIO_strings();
diff --git a/crypto/err/openssl.ec b/crypto/err/openssl.ec
index 0d308a9..4f63d2f 100644
--- a/crypto/err/openssl.ec
+++ b/crypto/err/openssl.ec
@@ -28,8 +28,6 @@ L ENGINE	include/openssl/engine.h	crypto/engine/eng_err.c
 L OCSP		include/openssl/ocsp.h		crypto/ocsp/ocsp_err.c
 L UI		include/openssl/ui.h		crypto/ui/ui_err.c
 L COMP		include/openssl/comp.h		crypto/comp/comp_err.c
-L ECDSA		include/openssl/ecdsa.h		crypto/ecdsa/ecs_err.c
-L ECDH		include/openssl/ecdh.h		crypto/ecdh/ech_err.c
 L STORE		include/openssl/store.h		crypto/store/str_err.c
 L TS		include/openssl/ts.h		crypto/ts/ts_err.c
 L HMAC		include/openssl/hmac.h		crypto/hmac/hmac_err.c
diff --git a/crypto/evp/Makefile b/crypto/evp/Makefile
index 3972dc8..dbaf58a 100644
--- a/crypto/evp/Makefile
+++ b/crypto/evp/Makefile
@@ -126,7 +126,6 @@ bio_ok.o: ../include/internal/evp_int.h bio_ok.c
 c_all.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 c_all.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 c_all.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-c_all.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 c_all.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 c_all.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 c_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -139,7 +138,6 @@ c_all.o: ../include/internal/cryptlib.h c_all.c
 c_allc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 c_allc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 c_allc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-c_allc.o: ../../include/openssl/ecdh.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
@@ -152,7 +150,6 @@ c_allc.o: ../include/internal/cryptlib.h c_allc.c
 c_alld.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 c_alld.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 c_alld.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-c_alld.o: ../../include/openssl/ecdh.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
@@ -165,7 +162,6 @@ c_alld.o: ../include/internal/cryptlib.h c_alld.c
 digest.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 digest.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 digest.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-digest.o: ../../include/openssl/ecdh.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
@@ -376,8 +372,7 @@ evp_cnf.o: ../../e_os.h ../../include/openssl/asn1.h
 evp_cnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 evp_cnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 evp_cnf.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
-evp_cnf.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-evp_cnf.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+evp_cnf.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 evp_cnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 evp_cnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 evp_cnf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -390,8 +385,7 @@ evp_cnf.o: evp_cnf.c
 evp_enc.o: ../../e_os.h ../../include/openssl/asn1.h
 evp_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-evp_enc.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-evp_enc.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+evp_enc.o: ../../include/openssl/ec.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
@@ -412,8 +406,7 @@ evp_err.o: ../../include/openssl/symhacks.h evp_err.c
 evp_key.o: ../../e_os.h ../../include/openssl/asn1.h
 evp_key.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 evp_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-evp_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-evp_key.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+evp_key.o: ../../include/openssl/ec.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
@@ -436,8 +429,7 @@ evp_lib.o: ../include/internal/evp_int.h evp_lib.c evp_locl.h
 evp_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
 evp_pbe.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 evp_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-evp_pbe.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-evp_pbe.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+evp_pbe.o: ../../include/openssl/ec.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
@@ -450,8 +442,7 @@ evp_pbe.o: evp_locl.h evp_pbe.c
 evp_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
 evp_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 evp_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-evp_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-evp_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+evp_pkey.o: ../../include/openssl/ec.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
@@ -473,7 +464,6 @@ m_md2.o: m_md2.c
 m_md4.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 m_md4.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 m_md4.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-m_md4.o: ../../include/openssl/ecdh.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
@@ -487,7 +477,6 @@ m_md4.o: ../include/internal/evp_int.h m_md4.c
 m_md5.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 m_md5.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 m_md5.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-m_md5.o: ../../include/openssl/ecdh.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
@@ -501,8 +490,7 @@ m_md5.o: ../include/internal/evp_int.h m_md5.c
 m_md5_sha1.o: ../../e_os.h ../../include/openssl/asn1.h
 m_md5_sha1.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 m_md5_sha1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-m_md5_sha1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-m_md5_sha1.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+m_md5_sha1.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 m_md5_sha1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 m_md5_sha1.o: ../../include/openssl/md5.h ../../include/openssl/obj_mac.h
 m_md5_sha1.o: ../../include/openssl/objects.h
@@ -517,8 +505,7 @@ m_md5_sha1.o: m_md5_sha1.c
 m_mdc2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 m_mdc2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 m_mdc2.o: ../../include/openssl/des.h ../../include/openssl/e_os2.h
-m_mdc2.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-m_mdc2.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+m_mdc2.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 m_mdc2.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 m_mdc2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
 m_mdc2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -531,7 +518,6 @@ m_mdc2.o: ../include/internal/cryptlib.h ../include/internal/evp_int.h m_mdc2.c
 m_null.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 m_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 m_null.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-m_null.o: ../../include/openssl/ecdh.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
@@ -544,8 +530,7 @@ m_null.o: ../include/internal/evp_int.h m_null.c
 m_ripemd.o: ../../e_os.h ../../include/openssl/asn1.h
 m_ripemd.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 m_ripemd.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-m_ripemd.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-m_ripemd.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+m_ripemd.o: ../../include/openssl/ec.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
@@ -569,8 +554,7 @@ m_sha1.o: ../include/internal/cryptlib.h ../include/internal/evp_int.h m_sha1.c
 m_sigver.o: ../../e_os.h ../../include/openssl/asn1.h
 m_sigver.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 m_sigver.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-m_sigver.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-m_sigver.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+m_sigver.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 m_sigver.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 m_sigver.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 m_sigver.o: ../../include/openssl/opensslconf.h
@@ -583,7 +567,6 @@ m_sigver.o: ../include/internal/evp_int.h evp_locl.h m_sigver.c
 m_wp.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 m_wp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 m_wp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-m_wp.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 m_wp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 m_wp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 m_wp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -596,7 +579,6 @@ m_wp.o: ../include/internal/cryptlib.h ../include/internal/evp_int.h m_wp.c
 names.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 names.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 names.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-names.o: ../../include/openssl/ecdh.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
@@ -609,8 +591,7 @@ names.o: ../include/internal/evp_int.h names.c
 p5_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
 p5_crpt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p5_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p5_crpt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p5_crpt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p5_crpt.o: ../../include/openssl/ec.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
@@ -622,8 +603,7 @@ p5_crpt.o: ../include/internal/cryptlib.h p5_crpt.c
 p5_crpt2.o: ../../e_os.h ../../include/openssl/asn1.h
 p5_crpt2.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p5_crpt2.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p5_crpt2.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p5_crpt2.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p5_crpt2.o: ../../include/openssl/ec.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
@@ -636,7 +616,6 @@ p5_crpt2.o: evp_locl.h p5_crpt2.c
 p_dec.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 p_dec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p_dec.o: ../../include/openssl/ecdh.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
@@ -650,7 +629,6 @@ p_dec.o: p_dec.c
 p_enc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 p_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p_enc.o: ../../include/openssl/ecdh.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
@@ -665,8 +643,7 @@ p_lib.o: ../../e_os.h ../../include/openssl/asn1.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/ec.h ../../include/openssl/ecdh.h
-p_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+p_lib.o: ../../include/openssl/ec.h ../../include/openssl/engine.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
@@ -679,7 +656,6 @@ p_lib.o: ../include/internal/asn1_int.h ../include/internal/cryptlib.h p_lib.c
 p_open.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 p_open.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p_open.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p_open.o: ../../include/openssl/ecdh.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
@@ -692,7 +668,6 @@ p_open.o: ../include/internal/cryptlib.h p_open.c
 p_seal.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 p_seal.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p_seal.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p_seal.o: ../../include/openssl/ecdh.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
@@ -706,7 +681,6 @@ p_seal.o: p_seal.c
 p_sign.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 p_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p_sign.o: ../../include/openssl/ecdh.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
@@ -719,8 +693,7 @@ p_sign.o: ../include/internal/evp_int.h p_sign.c
 p_verify.o: ../../e_os.h ../../include/openssl/asn1.h
 p_verify.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p_verify.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p_verify.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p_verify.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p_verify.o: ../../include/openssl/ec.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
@@ -755,8 +728,7 @@ pmeth_gn.o: pmeth_gn.c
 pmeth_lib.o: ../../e_os.h ../../include/openssl/asn1.h
 pmeth_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pmeth_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pmeth_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pmeth_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+pmeth_lib.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 pmeth_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 pmeth_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 pmeth_lib.o: ../../include/openssl/objects.h
diff --git a/crypto/hmac/Makefile b/crypto/hmac/Makefile
index a16e620..c29b979 100644
--- a/crypto/hmac/Makefile
+++ b/crypto/hmac/Makefile
@@ -74,7 +74,6 @@ hm_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
 hm_pmeth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 hm_pmeth.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 hm_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-hm_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 hm_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 hm_pmeth.o: ../../include/openssl/hmac.h ../../include/openssl/lhash.h
 hm_pmeth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
diff --git a/crypto/ocsp/Makefile b/crypto/ocsp/Makefile
index 20437cc..4a98524 100644
--- a/crypto/ocsp/Makefile
+++ b/crypto/ocsp/Makefile
@@ -67,7 +67,6 @@ ocsp_asn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 ocsp_asn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ocsp_asn.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ocsp_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ocsp_asn.o: ../../include/openssl/ecdh.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
@@ -81,7 +80,6 @@ ocsp_cl.o: ../../e_os.h ../../include/openssl/asn1.h
 ocsp_cl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ocsp_cl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ocsp_cl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ocsp_cl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -96,8 +94,7 @@ ocsp_cl.o: ../include/internal/cryptlib.h ocsp_cl.c ocsp_lcl.h
 ocsp_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 ocsp_err.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 ocsp_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ocsp_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ocsp_err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ocsp_err.o: ../../include/openssl/ec.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
@@ -111,7 +108,6 @@ ocsp_ext.o: ../../e_os.h ../../include/openssl/asn1.h
 ocsp_ext.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ocsp_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ocsp_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ocsp_ext.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -127,7 +123,6 @@ ocsp_ht.o: ../../e_os.h ../../include/openssl/asn1.h
 ocsp_ht.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ocsp_ht.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ocsp_ht.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ocsp_ht.o: ../../include/openssl/ecdh.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
@@ -141,8 +136,7 @@ ocsp_lib.o: ../../e_os.h ../../include/openssl/asn1.h
 ocsp_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 ocsp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 ocsp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ocsp_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ocsp_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ocsp_lib.o: ../../include/openssl/ec.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
@@ -157,8 +151,7 @@ ocsp_lib.o: ocsp_lcl.h ocsp_lib.c
 ocsp_prn.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 ocsp_prn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 ocsp_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ocsp_prn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ocsp_prn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ocsp_prn.o: ../../include/openssl/ec.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
@@ -173,7 +166,6 @@ ocsp_srv.o: ../../e_os.h ../../include/openssl/asn1.h
 ocsp_srv.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ocsp_srv.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ocsp_srv.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ocsp_srv.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -189,8 +181,7 @@ ocsp_srv.o: ocsp_lcl.h ocsp_srv.c
 ocsp_vfy.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 ocsp_vfy.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 ocsp_vfy.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-ocsp_vfy.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ocsp_vfy.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ocsp_vfy.o: ../../include/openssl/ec.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
@@ -204,7 +195,6 @@ v3_ocsp.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_ocsp.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 v3_ocsp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 v3_ocsp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-v3_ocsp.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
diff --git a/crypto/pem/Makefile b/crypto/pem/Makefile
index ce112c0..3eeafb8 100644
--- a/crypto/pem/Makefile
+++ b/crypto/pem/Makefile
@@ -67,8 +67,7 @@ pem_all.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_all.o: ../../include/openssl/bio.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/ecdh.h
-pem_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_all.o: ../../include/openssl/ec.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
@@ -82,7 +81,6 @@ pem_all.o: pem_all.c
 pem_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 pem_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 pem_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pem_err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -96,7 +94,6 @@ pem_info.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_info.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_info.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 pem_info.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pem_info.o: ../../include/openssl/ecdh.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
@@ -111,7 +108,6 @@ pem_lib.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
 pem_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pem_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 pem_lib.o: ../../include/openssl/engine.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
@@ -127,8 +123,7 @@ pem_lib.o: pem_lib.c
 pem_oth.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_oth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_oth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pem_oth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pem_oth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_oth.o: ../../include/openssl/ec.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
@@ -142,8 +137,7 @@ pem_oth.o: pem_oth.c
 pem_pk8.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_pk8.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_pk8.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pem_pk8.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pem_pk8.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_pk8.o: ../../include/openssl/ec.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
@@ -158,7 +152,6 @@ pem_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 pem_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pem_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 pem_pkey.o: ../../include/openssl/engine.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
@@ -174,8 +167,7 @@ pem_pkey.o: ../include/internal/cryptlib.h pem_pkey.c
 pem_seal.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_seal.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_seal.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pem_seal.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pem_seal.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_seal.o: ../../include/openssl/ec.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
@@ -190,8 +182,7 @@ pem_seal.o: pem_seal.c
 pem_sign.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_sign.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_sign.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pem_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pem_sign.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_sign.o: ../../include/openssl/ec.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
@@ -205,8 +196,7 @@ pem_sign.o: ../include/internal/cryptlib.h pem_sign.c
 pem_x509.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_x509.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_x509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pem_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pem_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_x509.o: ../../include/openssl/ec.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
@@ -220,8 +210,7 @@ pem_x509.o: pem_x509.c
 pem_xaux.o: ../../e_os.h ../../include/openssl/asn1.h
 pem_xaux.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pem_xaux.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pem_xaux.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pem_xaux.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_xaux.o: ../../include/openssl/ec.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
@@ -236,7 +225,6 @@ pvkfmt.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 pvkfmt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 pvkfmt.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 pvkfmt.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pvkfmt.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 pvkfmt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 pvkfmt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 pvkfmt.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
diff --git a/crypto/pkcs12/Makefile b/crypto/pkcs12/Makefile
index 98ec4bf..0225b83 100644
--- a/crypto/pkcs12/Makefile
+++ b/crypto/pkcs12/Makefile
@@ -69,8 +69,7 @@ clean:
 p12_add.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_add.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_add.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_add.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_add.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_add.o: ../../include/openssl/ec.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
@@ -84,7 +83,6 @@ 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/buffer.h ../../include/openssl/crypto.h
 p12_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p12_asn.o: ../../include/openssl/ecdh.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
@@ -97,8 +95,7 @@ p12_asn.o: ../include/internal/cryptlib.h p12_asn.c
 p12_attr.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_attr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_attr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_attr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_attr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_attr.o: ../../include/openssl/ec.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
@@ -111,8 +108,7 @@ p12_attr.o: ../include/internal/cryptlib.h p12_attr.c
 p12_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_crpt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_crpt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_crpt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_crpt.o: ../../include/openssl/ec.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
@@ -125,8 +121,7 @@ p12_crpt.o: ../include/internal/cryptlib.h p12_crpt.c
 p12_crt.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_crt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_crt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_crt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_crt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_crt.o: ../../include/openssl/ec.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
@@ -139,8 +134,7 @@ p12_crt.o: p12_crt.c
 p12_decr.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_decr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_decr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_decr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_decr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_decr.o: ../../include/openssl/ec.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
@@ -153,8 +147,7 @@ p12_decr.o: ../include/internal/cryptlib.h p12_decr.c
 p12_init.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_init.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_init.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_init.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_init.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_init.o: ../../include/openssl/ec.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
@@ -168,7 +161,6 @@ 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/e_os2.h ../../include/openssl/ec.h
-p12_key.o: ../../include/openssl/ecdh.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
@@ -181,8 +173,7 @@ p12_key.o: ../include/internal/cryptlib.h p12_key.c
 p12_kiss.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_kiss.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_kiss.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_kiss.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_kiss.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_kiss.o: ../../include/openssl/ec.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
@@ -195,8 +186,7 @@ p12_kiss.o: ../include/internal/cryptlib.h p12_kiss.c
 p12_mutl.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_mutl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_mutl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_mutl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_mutl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_mutl.o: ../../include/openssl/ec.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
@@ -210,7 +200,6 @@ p12_mutl.o: p12_mutl.c
 p12_npas.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 p12_npas.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 p12_npas.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-p12_npas.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -224,8 +213,7 @@ p12_npas.o: p12_npas.c
 p12_p8d.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_p8d.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_p8d.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_p8d.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_p8d.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_p8d.o: ../../include/openssl/ec.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
@@ -238,8 +226,7 @@ p12_p8d.o: p12_p8d.c
 p12_p8e.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_p8e.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_p8e.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_p8e.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_p8e.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_p8e.o: ../../include/openssl/ec.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
@@ -252,8 +239,7 @@ p12_p8e.o: p12_p8e.c
 p12_utl.o: ../../e_os.h ../../include/openssl/asn1.h
 p12_utl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 p12_utl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-p12_utl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p12_utl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_utl.o: ../../include/openssl/ec.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
@@ -266,7 +252,6 @@ p12_utl.o: p12_utl.c
 pk12err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 pk12err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 pk12err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pk12err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
diff --git a/crypto/pkcs7/Makefile b/crypto/pkcs7/Makefile
index 96e5a07..bfe2195 100644
--- a/crypto/pkcs7/Makefile
+++ b/crypto/pkcs7/Makefile
@@ -77,7 +77,6 @@ pk7_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
 pk7_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 pk7_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 pk7_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pk7_asn1.o: ../../include/openssl/ecdh.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
@@ -90,8 +89,7 @@ pk7_asn1.o: pk7_asn1.c
 pk7_attr.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 pk7_attr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pk7_attr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pk7_attr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pk7_attr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pk7_attr.o: ../../include/openssl/ec.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
@@ -105,7 +103,6 @@ pk7_doit.o: ../../e_os.h ../../include/openssl/asn1.h
 pk7_doit.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pk7_doit.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 pk7_doit.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pk7_doit.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -119,8 +116,7 @@ pk7_doit.o: pk7_doit.c
 pk7_lib.o: ../../e_os.h ../../include/openssl/asn1.h
 pk7_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pk7_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pk7_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pk7_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pk7_lib.o: ../../include/openssl/ec.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
@@ -133,8 +129,7 @@ pk7_lib.o: pk7_lib.c
 pk7_mime.o: ../../e_os.h ../../include/openssl/asn1.h
 pk7_mime.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pk7_mime.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pk7_mime.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pk7_mime.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pk7_mime.o: ../../include/openssl/ec.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
@@ -148,7 +143,6 @@ pk7_smime.o: ../../e_os.h ../../include/openssl/asn1.h
 pk7_smime.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pk7_smime.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 pk7_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pk7_smime.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
diff --git a/crypto/rand/Makefile b/crypto/rand/Makefile
index 782be92..adcbb82 100644
--- a/crypto/rand/Makefile
+++ b/crypto/rand/Makefile
@@ -86,8 +86,7 @@ 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/buffer.h
 rand_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-rand_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-rand_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+rand_lib.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 rand_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 rand_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 rand_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
diff --git a/crypto/rsa/Makefile b/crypto/rsa/Makefile
index 92c4d36..d5a4c96 100644
--- a/crypto/rsa/Makefile
+++ b/crypto/rsa/Makefile
@@ -71,7 +71,6 @@ rsa_ameth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 rsa_ameth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 rsa_ameth.o: ../../include/openssl/cms.h ../../include/openssl/crypto.h
 rsa_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-rsa_ameth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 rsa_ameth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 rsa_ameth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 rsa_ameth.o: ../../include/openssl/objects.h
@@ -87,8 +86,7 @@ rsa_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
 rsa_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 rsa_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 rsa_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-rsa_asn1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-rsa_asn1.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+rsa_asn1.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 rsa_asn1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 rsa_asn1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 rsa_asn1.o: ../../include/openssl/opensslconf.h
@@ -145,7 +143,6 @@ 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/e_os2.h ../../include/openssl/ec.h
-rsa_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 rsa_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 rsa_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 rsa_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -214,8 +211,7 @@ rsa_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 rsa_pmeth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 rsa_pmeth.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
 rsa_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-rsa_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-rsa_pmeth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+rsa_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 rsa_pmeth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 rsa_pmeth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 rsa_pmeth.o: ../../include/openssl/opensslconf.h
@@ -252,7 +248,6 @@ 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/e_os2.h ../../include/openssl/ec.h
-rsa_saos.o: ../../include/openssl/ecdh.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
@@ -266,7 +261,6 @@ 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/e_os2.h ../../include/openssl/ec.h
-rsa_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
diff --git a/crypto/ts/Makefile b/crypto/ts/Makefile
index 76d1aea..127044e 100644
--- a/crypto/ts/Makefile
+++ b/crypto/ts/Makefile
@@ -76,7 +76,6 @@ ts_asn1.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ts_asn1.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ts_asn1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
 ts_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ts_asn1.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ts_asn1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ts_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 ts_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -92,7 +91,6 @@ ts_conf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ts_conf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ts_conf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
 ts_conf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ts_conf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ts_conf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 ts_conf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 ts_conf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -109,8 +107,7 @@ ts_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 ts_err.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 ts_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 ts_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-ts_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ts_err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ts_err.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 ts_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 ts_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 ts_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -125,7 +122,6 @@ ts_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 ts_lib.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ts_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
 ts_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ts_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ts_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ts_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 ts_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -141,8 +137,7 @@ ts_req_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 ts_req_print.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 ts_req_print.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 ts_req_print.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-ts_req_print.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ts_req_print.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ts_req_print.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 ts_req_print.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 ts_req_print.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 ts_req_print.o: ../../include/openssl/opensslconf.h
@@ -159,7 +154,6 @@ ts_req_utils.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ts_req_utils.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ts_req_utils.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
 ts_req_utils.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ts_req_utils.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ts_req_utils.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ts_req_utils.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 ts_req_utils.o: ../../include/openssl/objects.h
@@ -177,8 +171,7 @@ ts_rsp_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 ts_rsp_print.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 ts_rsp_print.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 ts_rsp_print.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-ts_rsp_print.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-ts_rsp_print.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ts_rsp_print.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 ts_rsp_print.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 ts_rsp_print.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 ts_rsp_print.o: ../../include/openssl/opensslconf.h
@@ -195,7 +188,6 @@ ts_rsp_sign.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ts_rsp_sign.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ts_rsp_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
 ts_rsp_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ts_rsp_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ts_rsp_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ts_rsp_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 ts_rsp_sign.o: ../../include/openssl/objects.h
@@ -213,7 +205,6 @@ ts_rsp_utils.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ts_rsp_utils.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ts_rsp_utils.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
 ts_rsp_utils.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ts_rsp_utils.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ts_rsp_utils.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ts_rsp_utils.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 ts_rsp_utils.o: ../../include/openssl/objects.h
@@ -231,7 +222,6 @@ ts_rsp_verify.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ts_rsp_verify.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ts_rsp_verify.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
 ts_rsp_verify.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ts_rsp_verify.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ts_rsp_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ts_rsp_verify.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 ts_rsp_verify.o: ../../include/openssl/objects.h
@@ -249,7 +239,6 @@ ts_verify_ctx.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 ts_verify_ctx.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 ts_verify_ctx.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
 ts_verify_ctx.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-ts_verify_ctx.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 ts_verify_ctx.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 ts_verify_ctx.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 ts_verify_ctx.o: ../../include/openssl/objects.h
diff --git a/crypto/x509/Makefile b/crypto/x509/Makefile
index a728701..766c72a 100644
--- a/crypto/x509/Makefile
+++ b/crypto/x509/Makefile
@@ -77,7 +77,6 @@ clean:
 by_dir.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 by_dir.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 by_dir.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-by_dir.o: ../../include/openssl/ecdh.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
@@ -90,8 +89,7 @@ by_dir.o: ../include/internal/x509_int.h by_dir.c
 by_file.o: ../../e_os.h ../../include/openssl/asn1.h
 by_file.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 by_file.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-by_file.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-by_file.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+by_file.o: ../../include/openssl/ec.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
@@ -105,7 +103,6 @@ t_crl.o: ../../e_os.h ../../include/openssl/asn1.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/e_os2.h ../../include/openssl/ec.h
-t_crl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 t_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 t_crl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 t_crl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -119,8 +116,7 @@ t_req.o: ../../e_os.h ../../include/openssl/asn1.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/dsa.h ../../include/openssl/e_os2.h
-t_req.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-t_req.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+t_req.o: ../../include/openssl/ec.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
@@ -134,7 +130,6 @@ t_x509.o: ../../e_os.h ../../include/openssl/asn1.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/e_os2.h ../../include/openssl/ec.h
-t_x509.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 t_x509.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 t_x509.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 t_x509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -149,7 +144,6 @@ x509_att.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_att.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_att.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 x509_att.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_att.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -163,7 +157,6 @@ x509_cmp.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_cmp.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_cmp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 x509_cmp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_cmp.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -177,8 +170,7 @@ x509_cmp.o: x509_cmp.c
 x509_d2.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_d2.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_d2.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509_d2.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509_d2.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_d2.o: ../../include/openssl/ec.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
@@ -190,8 +182,7 @@ x509_d2.o: ../include/internal/cryptlib.h x509_d2.c
 x509_def.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_def.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_def.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509_def.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509_def.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_def.o: ../../include/openssl/ec.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
@@ -204,7 +195,6 @@ x509_def.o: x509_def.c
 x509_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 x509_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x509_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -217,7 +207,6 @@ x509_ext.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_ext.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 x509_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_ext.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -232,7 +221,6 @@ x509_lu.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_lu.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_lu.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 x509_lu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_lu.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -246,8 +234,7 @@ x509_lu.o: x509_lcl.h x509_lu.c
 x509_obj.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_obj.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_obj.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509_obj.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509_obj.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_obj.o: ../../include/openssl/ec.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
@@ -261,7 +248,6 @@ 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/e_os2.h ../../include/openssl/ec.h
-x509_r2x.o: ../../include/openssl/ecdh.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
@@ -275,8 +261,7 @@ x509_req.o: ../../e_os.h ../../include/openssl/asn1.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/e_os2.h
-x509_req.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509_req.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_req.o: ../../include/openssl/ec.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
@@ -290,8 +275,7 @@ x509_req.o: ../include/internal/x509_int.h x509_req.c
 x509_set.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_set.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_set.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509_set.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509_set.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_set.o: ../../include/openssl/ec.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
@@ -305,7 +289,6 @@ x509_trs.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_trs.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_trs.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 x509_trs.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_trs.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -319,8 +302,7 @@ x509_trs.o: x509_trs.c
 x509_txt.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_txt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_txt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509_txt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509_txt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_txt.o: ../../include/openssl/ec.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
@@ -334,7 +316,6 @@ x509_v3.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_v3.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_v3.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 x509_v3.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_v3.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -348,7 +329,6 @@ x509_vfy.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_vfy.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_vfy.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 x509_vfy.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_vfy.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -363,7 +343,6 @@ x509_vpm.o: ../../e_os.h ../../include/openssl/asn1.h
 x509_vpm.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509_vpm.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 x509_vpm.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x509_vpm.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 x509_vpm.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 x509_vpm.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 x509_vpm.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -376,8 +355,7 @@ x509_vpm.o: ../include/internal/cryptlib.h x509_lcl.h x509_vpm.c
 x509cset.o: ../../e_os.h ../../include/openssl/asn1.h
 x509cset.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509cset.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509cset.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509cset.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509cset.o: ../../include/openssl/ec.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
@@ -390,8 +368,7 @@ x509cset.o: ../include/internal/x509_int.h x509cset.c
 x509name.o: ../../e_os.h ../../include/openssl/asn1.h
 x509name.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509name.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509name.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509name.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509name.o: ../../include/openssl/ec.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
@@ -404,8 +381,7 @@ x509name.o: ../include/internal/x509_int.h x509name.c
 x509rset.o: ../../e_os.h ../../include/openssl/asn1.h
 x509rset.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509rset.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509rset.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509rset.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509rset.o: ../../include/openssl/ec.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
@@ -418,8 +394,7 @@ x509rset.o: ../include/internal/x509_int.h x509rset.c
 x509spki.o: ../../e_os.h ../../include/openssl/asn1.h
 x509spki.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509spki.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509spki.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509spki.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509spki.o: ../../include/openssl/ec.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
@@ -432,8 +407,7 @@ x509spki.o: x509spki.c
 x509type.o: ../../e_os.h ../../include/openssl/asn1.h
 x509type.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x509type.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x509type.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x509type.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509type.o: ../../include/openssl/ec.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
@@ -447,7 +421,6 @@ x_all.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 x_all.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 x_all.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 x_all.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_all.o: ../../include/openssl/ecdh.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/ocsp.h
@@ -462,7 +435,6 @@ x_attrib.o: ../../e_os.h ../../include/openssl/asn1.h
 x_attrib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_attrib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_attrib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_attrib.o: ../../include/openssl/ecdh.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
@@ -476,8 +448,7 @@ x_crl.o: ../../e_os.h ../../include/openssl/asn1.h
 x_crl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_crl.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 x_crl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x_crl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x_crl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x_crl.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 x_crl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 x_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 x_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -490,8 +461,7 @@ x_crl.o: ../include/internal/x509_int.h x509_lcl.h x_crl.c
 x_exten.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 x_exten.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 x_exten.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x_exten.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x_exten.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+x_exten.o: ../../include/openssl/ec.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
@@ -503,7 +473,6 @@ x_name.o: ../../e_os.h ../../include/openssl/asn1.h
 x_name.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_name.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_name.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_name.o: ../../include/openssl/ecdh.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
@@ -518,7 +487,6 @@ x_req.o: ../../e_os.h ../../include/openssl/asn1.h
 x_req.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_req.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_req.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_req.o: ../../include/openssl/ecdh.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
@@ -532,8 +500,7 @@ x_x509.o: ../../e_os.h ../../include/openssl/asn1.h
 x_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_x509.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 x_x509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-x_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-x_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x_x509.o: ../../include/openssl/ec.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
@@ -547,7 +514,6 @@ x_x509a.o: ../../e_os.h ../../include/openssl/asn1.h
 x_x509a.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 x_x509a.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 x_x509a.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-x_x509a.o: ../../include/openssl/ecdh.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
diff --git a/crypto/x509v3/Makefile b/crypto/x509v3/Makefile
index 2188041..cd490ed 100644
--- a/crypto/x509v3/Makefile
+++ b/crypto/x509v3/Makefile
@@ -74,7 +74,6 @@ pcy_cache.o: ../../e_os.h ../../include/openssl/asn1.h
 pcy_cache.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pcy_cache.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 pcy_cache.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pcy_cache.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 pcy_cache.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 pcy_cache.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 pcy_cache.o: ../../include/openssl/objects.h
@@ -90,7 +89,6 @@ pcy_data.o: ../../e_os.h ../../include/openssl/asn1.h
 pcy_data.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pcy_data.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 pcy_data.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pcy_data.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 pcy_data.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 pcy_data.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 pcy_data.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -104,7 +102,6 @@ pcy_lib.o: ../../e_os.h ../../include/openssl/asn1.h
 pcy_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pcy_lib.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 pcy_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pcy_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 pcy_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 pcy_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 pcy_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -118,7 +115,6 @@ pcy_map.o: ../../e_os.h ../../include/openssl/asn1.h
 pcy_map.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pcy_map.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 pcy_map.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pcy_map.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 pcy_map.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 pcy_map.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 pcy_map.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -132,8 +128,7 @@ pcy_map.o: pcy_int.h pcy_map.c
 pcy_node.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 pcy_node.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 pcy_node.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-pcy_node.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pcy_node.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+pcy_node.o: ../../include/openssl/ec.h ../../include/openssl/evp.h
 pcy_node.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 pcy_node.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 pcy_node.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
@@ -146,7 +141,6 @@ pcy_tree.o: ../../e_os.h ../../include/openssl/asn1.h
 pcy_tree.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 pcy_tree.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 pcy_tree.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-pcy_tree.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 pcy_tree.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 pcy_tree.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 pcy_tree.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -160,8 +154,7 @@ v3_addr.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_addr.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_addr.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_addr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_addr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_addr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_addr.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 v3_addr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 v3_addr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 v3_addr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -175,8 +168,7 @@ v3_akey.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_akey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_akey.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_akey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_akey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_akey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_akey.o: ../../include/openssl/ec.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
@@ -190,8 +182,7 @@ v3_akeya.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_akeya.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_akeya.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_akeya.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_akeya.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_akeya.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_akeya.o: ../../include/openssl/ec.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
@@ -204,8 +195,7 @@ v3_akeya.o: ../include/internal/cryptlib.h v3_akeya.c
 v3_alt.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 v3_alt.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_alt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_alt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_alt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_alt.o: ../../include/openssl/ec.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
@@ -220,7 +210,6 @@ v3_asid.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_asid.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 v3_asid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 v3_asid.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-v3_asid.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 v3_asid.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 v3_asid.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 v3_asid.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -235,8 +224,7 @@ v3_bcons.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_bcons.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_bcons.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_bcons.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_bcons.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_bcons.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_bcons.o: ../../include/openssl/ec.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
@@ -250,7 +238,6 @@ v3_bitst.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_bitst.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 v3_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 v3_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-v3_bitst.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -264,7 +251,6 @@ v3_conf.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_conf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 v3_conf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 v3_conf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-v3_conf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -279,8 +265,7 @@ 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/buffer.h ../../include/openssl/conf.h
 v3_cpols.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_cpols.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_cpols.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_cpols.o: ../../include/openssl/ec.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
@@ -294,8 +279,7 @@ v3_crld.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_crld.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_crld.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_crld.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_crld.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_crld.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_crld.o: ../../include/openssl/ec.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
@@ -309,7 +293,6 @@ v3_enum.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_enum.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 v3_enum.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 v3_enum.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-v3_enum.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -323,8 +306,7 @@ 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/buffer.h ../../include/openssl/conf.h
 v3_extku.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_extku.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_extku.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_extku.o: ../../include/openssl/ec.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
@@ -338,8 +320,7 @@ v3_genn.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_genn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_genn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_genn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_genn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_genn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_genn.o: ../../include/openssl/ec.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
@@ -352,8 +333,7 @@ v3_genn.o: v3_genn.c
 v3_ia5.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 v3_ia5.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_ia5.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_ia5.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_ia5.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_ia5.o: ../../include/openssl/ec.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
@@ -367,8 +347,7 @@ v3_info.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_info.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_info.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_info.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_info.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_info.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_info.o: ../../include/openssl/ec.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
@@ -381,8 +360,7 @@ v3_info.o: ext_dat.h v3_info.c
 v3_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 v3_int.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_int.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_int.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_int.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_int.o: ../../include/openssl/ec.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
@@ -395,8 +373,7 @@ v3_int.o: ext_dat.h v3_int.c
 v3_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 v3_lib.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_lib.o: ../../include/openssl/ec.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
@@ -410,8 +387,7 @@ v3_ncons.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_ncons.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_ncons.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_ncons.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_ncons.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_ncons.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_ncons.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 v3_ncons.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 v3_ncons.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 v3_ncons.o: ../../include/openssl/opensslconf.h
@@ -425,8 +401,7 @@ v3_ncons.o: ext_dat.h v3_ncons.c
 v3_pci.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 v3_pci.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_pci.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_pci.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_pci.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_pci.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 v3_pci.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 v3_pci.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 v3_pci.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -440,7 +415,6 @@ v3_pcia.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 v3_pcia.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 v3_pcia.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 v3_pcia.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-v3_pcia.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 v3_pcia.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 v3_pcia.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 v3_pcia.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -453,8 +427,7 @@ v3_pcons.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_pcons.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_pcons.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_pcons.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_pcons.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_pcons.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_pcons.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 v3_pcons.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 v3_pcons.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 v3_pcons.o: ../../include/openssl/opensslconf.h
@@ -468,8 +441,7 @@ 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/buffer.h ../../include/openssl/conf.h
 v3_pku.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_pku.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_pku.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_pku.o: ../../include/openssl/ec.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
@@ -483,8 +455,7 @@ v3_pmaps.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_pmaps.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 v3_pmaps.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_pmaps.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_pmaps.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_pmaps.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_pmaps.o: ../../include/openssl/ec.h ../../include/openssl/err.h
 v3_pmaps.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 v3_pmaps.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 v3_pmaps.o: ../../include/openssl/opensslconf.h
@@ -497,8 +468,7 @@ v3_pmaps.o: ../include/internal/cryptlib.h ext_dat.h v3_pmaps.c
 v3_prn.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 v3_prn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_prn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_prn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_prn.o: ../../include/openssl/ec.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
@@ -512,8 +482,7 @@ v3_purp.o: ../../e_os.h ../../include/internal/numbers.h
 v3_purp.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 v3_purp.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3_purp.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_purp.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_purp.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_purp.o: ../../include/openssl/ec.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
@@ -527,7 +496,6 @@ v3_scts.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_scts.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 v3_scts.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 v3_scts.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-v3_scts.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 v3_scts.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 v3_scts.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 v3_scts.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -542,7 +510,6 @@ v3_skey.o: ../../e_os.h ../../include/openssl/asn1.h
 v3_skey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 v3_skey.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 v3_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-v3_skey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.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
@@ -557,8 +524,7 @@ 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/buffer.h ../../include/openssl/conf.h
 v3_sxnet.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3_sxnet.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3_sxnet.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_sxnet.o: ../../include/openssl/ec.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
@@ -572,7 +538,6 @@ v3_utl.o: ../../e_os.h ../../include/openssl/asn1.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/e_os2.h ../../include/openssl/ec.h
-v3_utl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 v3_utl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 v3_utl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 v3_utl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -586,8 +551,7 @@ v3_utl.o: v3_utl.c
 v3err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
 v3err.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 v3err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-v3err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-v3err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3err.o: ../../include/openssl/ec.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
diff --git a/engines/Makefile b/engines/Makefile
index de0dafa..32f9a92 100644
--- a/engines/Makefile
+++ b/engines/Makefile
@@ -160,7 +160,6 @@ clean:
 e_capi.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 e_capi.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
 e_capi.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-e_capi.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 e_capi.o: ../include/openssl/engine.h ../include/openssl/evp.h
 e_capi.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 e_capi.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -173,7 +172,6 @@ e_dasync.o: ../include/openssl/asn1.h ../include/openssl/async.h
 e_dasync.o: ../include/openssl/bio.h ../include/openssl/bn.h
 e_dasync.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
 e_dasync.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-e_dasync.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 e_dasync.o: ../include/openssl/engine.h ../include/openssl/err.h
 e_dasync.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 e_dasync.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -187,8 +185,7 @@ e_dasync.o: e_dasync_err.h
 e_gmp.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 e_gmp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 e_gmp.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-e_gmp.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-e_gmp.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+e_gmp.o: ../include/openssl/ec.h ../include/openssl/engine.h
 e_gmp.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 e_gmp.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 e_gmp.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
@@ -200,8 +197,7 @@ e_gmp.o: ../include/openssl/x509_vfy.h e_gmp.c
 e_ossltest.o: ../include/openssl/aes.h ../include/openssl/asn1.h
 e_ossltest.o: ../include/openssl/bio.h ../include/openssl/buffer.h
 e_ossltest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-e_ossltest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-e_ossltest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+e_ossltest.o: ../include/openssl/ec.h ../include/openssl/engine.h
 e_ossltest.o: ../include/openssl/err.h ../include/openssl/evp.h
 e_ossltest.o: ../include/openssl/lhash.h ../include/openssl/md5.h
 e_ossltest.o: ../include/openssl/modes.h ../include/openssl/obj_mac.h
@@ -216,7 +212,6 @@ e_padlock.o: ../include/openssl/aes.h ../include/openssl/asn1.h
 e_padlock.o: ../include/openssl/bio.h ../include/openssl/buffer.h
 e_padlock.o: ../include/openssl/crypto.h ../include/openssl/dso.h
 e_padlock.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-e_padlock.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 e_padlock.o: ../include/openssl/engine.h ../include/openssl/err.h
 e_padlock.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 e_padlock.o: ../include/openssl/modes.h ../include/openssl/obj_mac.h
diff --git a/engines/ccgost/Makefile b/engines/ccgost/Makefile
index 3c1e4f9..eec407a 100644
--- a/engines/ccgost/Makefile
+++ b/engines/ccgost/Makefile
@@ -90,8 +90,7 @@ gost2001.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 gost2001.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost2001.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 gost2001.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-gost2001.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-gost2001.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost2001.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 gost2001.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 gost2001.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 gost2001.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -105,8 +104,7 @@ gost2001_keyx.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 gost2001_keyx.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost2001_keyx.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 gost2001_keyx.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-gost2001_keyx.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-gost2001_keyx.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost2001_keyx.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 gost2001_keyx.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 gost2001_keyx.o: ../../include/openssl/obj_mac.h
 gost2001_keyx.o: ../../include/openssl/objects.h
@@ -124,7 +122,6 @@ gost_ameth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost_ameth.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
 gost_ameth.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 gost_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-gost_ameth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 gost_ameth.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 gost_ameth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 gost_ameth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
@@ -139,8 +136,7 @@ gost_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 gost_asn1.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 gost_asn1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-gost_asn1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-gost_asn1.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_asn1.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 gost_asn1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 gost_asn1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 gost_asn1.o: ../../include/openssl/opensslconf.h
@@ -154,8 +150,7 @@ gost_crypt.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 gost_crypt.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost_crypt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 gost_crypt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-gost_crypt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-gost_crypt.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_crypt.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 gost_crypt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 gost_crypt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 gost_crypt.o: ../../include/openssl/objects.h
@@ -170,8 +165,7 @@ gost_ctl.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 gost_ctl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost_ctl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 gost_ctl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-gost_ctl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-gost_ctl.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_ctl.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 gost_ctl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 gost_ctl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 gost_ctl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -185,8 +179,7 @@ gost_eng.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 gost_eng.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost_eng.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 gost_eng.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-gost_eng.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-gost_eng.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_eng.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 gost_eng.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 gost_eng.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 gost_eng.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
@@ -201,8 +194,7 @@ gost_md.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 gost_md.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost_md.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 gost_md.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-gost_md.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-gost_md.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_md.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 gost_md.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 gost_md.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 gost_md.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
@@ -215,8 +207,7 @@ gost_params.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 gost_params.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost_params.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 gost_params.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
-gost_params.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-gost_params.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_params.o: ../../include/openssl/ec.h ../../include/openssl/engine.h
 gost_params.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 gost_params.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 gost_params.o: ../../include/openssl/opensslconf.h
@@ -231,7 +222,6 @@ gost_pmeth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 gost_pmeth.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 gost_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 gost_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
-gost_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 gost_pmeth.o: ../../include/openssl/engine.h ../../include/openssl/err.h
 gost_pmeth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 gost_pmeth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
diff --git a/engines/ccgost/gost2001.c b/engines/ccgost/gost2001.c
index 985795e..b47d832 100644
--- a/engines/ccgost/gost2001.c
+++ b/engines/ccgost/gost2001.c
@@ -9,7 +9,7 @@
 #include "gost_lcl.h"
 #include <string.h>
 #include <openssl/rand.h>
-#include <openssl/ecdsa.h>
+#include <openssl/ec.h>
 #include <openssl/err.h>
 #include "e_gost_err.h"
 #ifdef DEBUG_SIGN
diff --git a/include/openssl/ec.h b/include/openssl/ec.h
index 6ea4e41..9f0a009 100644
--- a/include/openssl/ec.h
+++ b/include/openssl/ec.h
@@ -1,3 +1,4 @@
+
 /* crypto/ec/ec.h */
 /*
  * Originally written by Bodo Moeller for the OpenSSL project.
@@ -740,6 +741,7 @@ int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off);
 /********************************************************************/
 
 typedef struct ec_key_st EC_KEY;
+typedef struct ec_key_method_st EC_KEY_METHOD;
 
 /* some values for the encoding_flag */
 # define EC_PKEY_NO_PARAMETERS   0x001
@@ -748,6 +750,7 @@ typedef struct ec_key_st EC_KEY;
 /* some values for the flags field */
 # define EC_FLAG_NON_FIPS_ALLOW  0x1
 # define EC_FLAG_FIPS_CHECKED    0x2
+# define EC_FLAG_COFACTOR_ECDH   0x1000
 
 /** Creates a new EC_KEY object.
  *  \return EC_KEY object or NULL if an error occurred.
@@ -983,6 +986,252 @@ int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off);
 
 # endif
 
+const EC_KEY_METHOD *EC_KEY_OpenSSL(void);
+const EC_KEY_METHOD *EC_KEY_get_default_method(void);
+void EC_KEY_set_default_method(const EC_KEY_METHOD *meth);
+EC_KEY *EC_KEY_new_method(ENGINE *engine);
+
+int ECDH_KDF_X9_62(unsigned char *out, size_t outlen,
+                   const unsigned char *Z, size_t Zlen,
+                   const unsigned char *sinfo, size_t sinfolen,
+                   const EVP_MD *md);
+
+int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
+                     EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen,
+                                                 void *out, size_t *outlen));
+
+typedef struct ECDSA_SIG_st ECDSA_SIG;
+
+/** Allocates and initialize a ECDSA_SIG structure
+ *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
+ */
+ECDSA_SIG *ECDSA_SIG_new(void);
+
+/** frees a ECDSA_SIG structure
+ *  \param  sig  pointer to the ECDSA_SIG structure
+ */
+void ECDSA_SIG_free(ECDSA_SIG *sig);
+
+/** DER encode content of ECDSA_SIG object (note: this function modifies *pp
+ *  (*pp += length of the DER encoded signature)).
+ *  \param  sig  pointer to the ECDSA_SIG object
+ *  \param  pp   pointer to a unsigned char pointer for the output or NULL
+ *  \return the length of the DER encoded ECDSA_SIG object or 0
+ */
+int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp);
+
+/** Decodes a DER encoded ECDSA signature (note: this function changes *pp
+ *  (*pp += len)).
+ *  \param  sig  pointer to ECDSA_SIG pointer (may be NULL)
+ *  \param  pp   memory buffer with the DER encoded signature
+ *  \param  len  length of the buffer
+ *  \return pointer to the decoded ECDSA_SIG structure (or NULL)
+ */
+ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len);
+
+/** Accessor for r and s fields of ECDSA_SIG
+ *  \param  sig  pointer to ECDSA_SIG pointer
+ *  \param  pr   pointer to BIGNUM pointer for r (may be NULL)
+ *  \param  ps   pointer to BIGNUM pointer for s (may be NULL)
+ */
+void ECDSA_SIG_get0(BIGNUM **pr, BIGNUM **ps, ECDSA_SIG *sig);
+
+/** Computes the ECDSA signature of the given hash value using
+ *  the supplied private key and returns the created signature.
+ *  \param  dgst      pointer to the hash value
+ *  \param  dgst_len  length of the hash value
+ *  \param  eckey     EC_KEY object containing a private EC key
+ *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
+ */
+ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len,
+                         EC_KEY *eckey);
+
+/** Computes ECDSA signature of a given hash value using the supplied
+ *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
+ *  \param  dgst     pointer to the hash value to sign
+ *  \param  dgstlen  length of the hash value
+ *  \param  kinv     BIGNUM with a pre-computed inverse k (optional)
+ *  \param  rp       BIGNUM with a pre-computed rp value (optioanl),
+ *                   see ECDSA_sign_setup
+ *  \param  eckey    EC_KEY object containing a private EC key
+ *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
+ */
+ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen,
+                            const BIGNUM *kinv, const BIGNUM *rp,
+                            EC_KEY *eckey);
+
+/** Verifies that the supplied signature is a valid ECDSA
+ *  signature of the supplied hash value using the supplied public key.
+ *  \param  dgst      pointer to the hash value
+ *  \param  dgst_len  length of the hash value
+ *  \param  sig       ECDSA_SIG structure
+ *  \param  eckey     EC_KEY object containing a public EC key
+ *  \return 1 if the signature is valid, 0 if the signature is invalid
+ *          and -1 on error
+ */
+int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
+                    const ECDSA_SIG *sig, EC_KEY *eckey);
+
+/** Precompute parts of the signing operation
+ *  \param  eckey  EC_KEY object containing a private EC key
+ *  \param  ctx    BN_CTX object (optional)
+ *  \param  kinv   BIGNUM pointer for the inverse of k
+ *  \param  rp     BIGNUM pointer for x coordinate of k * generator
+ *  \return 1 on success and 0 otherwise
+ */
+int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp);
+
+/** Computes ECDSA signature of a given hash value using the supplied
+ *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
+ *  \param  type     this parameter is ignored
+ *  \param  dgst     pointer to the hash value to sign
+ *  \param  dgstlen  length of the hash value
+ *  \param  sig      memory for the DER encoded created signature
+ *  \param  siglen   pointer to the length of the returned signature
+ *  \param  eckey    EC_KEY object containing a private EC key
+ *  \return 1 on success and 0 otherwise
+ */
+int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen,
+               unsigned char *sig, unsigned int *siglen, EC_KEY *eckey);
+
+/** Computes ECDSA signature of a given hash value using the supplied
+ *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
+ *  \param  type     this parameter is ignored
+ *  \param  dgst     pointer to the hash value to sign
+ *  \param  dgstlen  length of the hash value
+ *  \param  sig      buffer to hold the DER encoded signature
+ *  \param  siglen   pointer to the length of the returned signature
+ *  \param  kinv     BIGNUM with a pre-computed inverse k (optional)
+ *  \param  rp       BIGNUM with a pre-computed rp value (optioanl),
+ *                   see ECDSA_sign_setup
+ *  \param  eckey    EC_KEY object containing a private EC key
+ *  \return 1 on success and 0 otherwise
+ */
+int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen,
+                  unsigned char *sig, unsigned int *siglen,
+                  const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey);
+
+/** Verifies that the given signature is valid ECDSA signature
+ *  of the supplied hash value using the specified public key.
+ *  \param  type     this parameter is ignored
+ *  \param  dgst     pointer to the hash value
+ *  \param  dgstlen  length of the hash value
+ *  \param  sig      pointer to the DER encoded signature
+ *  \param  siglen   length of the DER encoded signature
+ *  \param  eckey    EC_KEY object containing a public EC key
+ *  \return 1 if the signature is valid, 0 if the signature is invalid
+ *          and -1 on error
+ */
+int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen,
+                 const unsigned char *sig, int siglen, EC_KEY *eckey);
+
+/** Returns the maximum length of the DER encoded signature
+ *  \param  eckey  EC_KEY object
+ *  \return numbers of bytes required for the DER encoded signature
+ */
+int ECDSA_size(const EC_KEY *eckey);
+
+/********************************************************************/
+/*  EC_KEY_METHOD constructors, destructors, writers and accessors  */
+/********************************************************************/
+
+EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth);
+void EC_KEY_METHOD_free(EC_KEY_METHOD *meth);
+void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth,
+                            int (*init)(EC_KEY *key),
+                            void (*finish)(EC_KEY *key),
+                            int (*copy)(EC_KEY *dest, const EC_KEY *src),
+                            int (*set_group)(EC_KEY *key, const EC_GROUP *grp),
+                            int (*set_private)(EC_KEY *key,
+                                               const BIGNUM *priv_key),
+                            int (*set_public)(EC_KEY *key,
+                                              const EC_POINT *pub_key));
+
+void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth,
+                              int (*keygen)(EC_KEY *key));
+
+void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth,
+                                   int (*ckey)(void *out,
+                                               size_t outlen,
+                                               const EC_POINT *pub_key,
+                                               EC_KEY *ecdh,
+                                               void *(*KDF) (const void *in,
+                                                             size_t inlen,
+                                                             void *out,
+                                                             size_t *outlen)));
+
+void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth,
+                            int (*sign)(int type, const unsigned char *dgst,
+                                        int dlen, unsigned char *sig,
+                                        unsigned int *siglen,
+                                        const BIGNUM *kinv, const BIGNUM *r,
+                                        EC_KEY *eckey),
+                            int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in,
+                                              BIGNUM **kinvp, BIGNUM **rp),
+                            ECDSA_SIG *(*sign_sig)(const unsigned char *dgst,
+                                                   int dgst_len,
+                                                   const BIGNUM *in_kinv,
+                                                   const BIGNUM *in_r,
+                                                   EC_KEY *eckey));
+
+void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth,
+                              int (*verify)(int type, const unsigned
+                                            char *dgst, int dgst_len,
+                                            const unsigned char *sigbuf,
+                                            int sig_len, EC_KEY *eckey),
+                              int (*verify_sig)(const unsigned char *dgst,
+                                                int dgst_len,
+                                                const ECDSA_SIG *sig,
+                                                EC_KEY *eckey));
+
+void EC_KEY_METHOD_get_init(EC_KEY_METHOD *meth,
+                            int (**pinit)(EC_KEY *key),
+                            void (**pfinish)(EC_KEY *key),
+                            int (**pcopy)(EC_KEY *dest, const EC_KEY *src),
+                            int (**pset_group)(EC_KEY *key,
+                                               const EC_GROUP *grp),
+                            int (**pset_private)(EC_KEY *key,
+                                                 const BIGNUM *priv_key),
+                            int (**pset_public)(EC_KEY *key,
+                                                const EC_POINT *pub_key));
+
+void EC_KEY_METHOD_get_keygen(EC_KEY_METHOD *meth,
+                              int (**pkeygen)(EC_KEY *key));
+
+void EC_KEY_METHOD_get_compute_key(EC_KEY_METHOD *meth,
+                                   int (**pck)(void *out,
+                                               size_t outlen,
+                                               const EC_POINT *pub_key,
+                                               EC_KEY *ecdh,
+                                               void *(*KDF) (const void *in,
+                                                             size_t inlen,
+                                                             void *out,
+                                                             size_t *outlen)));
+
+void EC_KEY_METHOD_get_sign(EC_KEY_METHOD *meth,
+                            int (**psign)(int type, const unsigned char *dgst,
+                                          int dlen, unsigned char *sig,
+                                          unsigned int *siglen,
+                                          const BIGNUM *kinv, const BIGNUM *r,
+                                          EC_KEY *eckey),
+                            int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in,
+                                                BIGNUM **kinvp, BIGNUM **rp),
+                            ECDSA_SIG *(**psign_sig)(const unsigned char *dgst,
+                                                     int dgst_len,
+                                                     const BIGNUM *in_kinv,
+                                                     const BIGNUM *in_r,
+                                                     EC_KEY *eckey));
+
+void EC_KEY_METHOD_get_verify(EC_KEY_METHOD *meth,
+                              int (**pverify)(int type, const unsigned
+                                              char *dgst, int dgst_len,
+                                              const unsigned char *sigbuf,
+                                              int sig_len, EC_KEY *eckey),
+                              int (**pverify_sig)(const unsigned char *dgst,
+                                                  int dgst_len,
+                                                  const ECDSA_SIG *sig,
+                                                  EC_KEY *eckey));
+
 # define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x)
 
 # ifndef __cplusplus
@@ -1085,6 +1334,12 @@ void ERR_load_EC_strings(void);
 # define EC_F_DO_EC_KEY_PRINT                             221
 # define EC_F_ECDH_CMS_DECRYPT                            238
 # define EC_F_ECDH_CMS_SET_SHARED_INFO                    239
+# define EC_F_ECDH_COMPUTE_KEY                            246
+# define EC_F_ECDSA_DO_SIGN_EX                            251
+# define EC_F_ECDSA_DO_VERIFY                             252
+# define EC_F_ECDSA_SIGN_EX                               254
+# define EC_F_ECDSA_SIGN_SETUP                            248
+# define EC_F_ECDSA_VERIFY                                253
 # define EC_F_ECKEY_PARAM2TYPE                            223
 # define EC_F_ECKEY_PARAM_DECODE                          212
 # define EC_F_ECKEY_PRIV_DECODE                           213
@@ -1096,6 +1351,11 @@ void ERR_load_EC_strings(void);
 # define EC_F_ECPARAMETERS_PRINT_FP                       148
 # define EC_F_ECPKPARAMETERS_PRINT                        149
 # define EC_F_ECPKPARAMETERS_PRINT_FP                     150
+# define EC_F_ECP_NISTZ256_GET_AFFINE                     240
+# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE                243
+# define EC_F_ECP_NISTZ256_POINTS_MUL                     241
+# define EC_F_ECP_NISTZ256_PRE_COMP_NEW                   244
+# define EC_F_ECP_NISTZ256_WINDOWED_MUL                   242
 # define EC_F_ECP_NIST_MOD_192                            203
 # define EC_F_ECP_NIST_MOD_224                            204
 # define EC_F_ECP_NIST_MOD_256                            205
@@ -1171,6 +1431,7 @@ void ERR_load_EC_strings(void);
 # define EC_F_EC_KEY_COPY                                 178
 # define EC_F_EC_KEY_GENERATE_KEY                         179
 # define EC_F_EC_KEY_NEW                                  182
+# define EC_F_EC_KEY_NEW_METHOD                           245
 # define EC_F_EC_KEY_PRINT                                180
 # define EC_F_EC_KEY_PRINT_FP                             181
 # define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES    229
@@ -1207,13 +1468,11 @@ void ERR_load_EC_strings(void);
 # define EC_F_NISTP224_PRE_COMP_NEW                       227
 # define EC_F_NISTP256_PRE_COMP_NEW                       236
 # define EC_F_NISTP521_PRE_COMP_NEW                       237
-# define EC_F_ECP_NISTZ256_GET_AFFINE                     240
-# define EC_F_ECP_NISTZ256_POINTS_MUL                     241
-# define EC_F_ECP_NISTZ256_WINDOWED_MUL                   242
-# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE                243
-# define EC_F_ECP_NISTZ256_PRE_COMP_NEW                   244
 # define EC_F_O2I_ECPUBLICKEY                             152
 # define EC_F_OLD_EC_PRIV_DECODE                          222
+# define EC_F_OSSL_ECDH_COMPUTE_KEY                       247
+# define EC_F_OSSL_ECDSA_SIGN_SIG                         249
+# define EC_F_OSSL_ECDSA_VERIFY_SIG                       250
 # define EC_F_PKEY_EC_CTRL                                197
 # define EC_F_PKEY_EC_CTRL_STR                            198
 # define EC_F_PKEY_EC_DERIVE                              217
@@ -1224,6 +1483,7 @@ void ERR_load_EC_strings(void);
 /* Reason codes. */
 # define EC_R_ASN1_ERROR                                  115
 # define EC_R_ASN1_UNKNOWN_FIELD                          116
+# define EC_R_BAD_SIGNATURE                               156
 # define EC_R_BIGNUM_OUT_OF_RANGE                         144
 # define EC_R_BUFFER_TOO_SMALL                            100
 # define EC_R_COORDINATES_OUT_OF_RANGE                    146
@@ -1249,21 +1509,27 @@ void ERR_load_EC_strings(void);
 # define EC_R_INVALID_PENTANOMIAL_BASIS                   132
 # define EC_R_INVALID_PRIVATE_KEY                         123
 # define EC_R_INVALID_TRINOMIAL_BASIS                     137
+# define EC_R_KDF_FAILED                                  153
 # define EC_R_KDF_PARAMETER_ERROR                         148
 # define EC_R_KEYS_NOT_SET                                140
 # define EC_R_MISSING_PARAMETERS                          124
 # define EC_R_MISSING_PRIVATE_KEY                         125
+# define EC_R_NEED_NEW_SETUP_VALUES                       157
 # define EC_R_NOT_A_NIST_PRIME                            135
 # define EC_R_NOT_A_SUPPORTED_NIST_PRIME                  136
 # define EC_R_NOT_IMPLEMENTED                             126
 # define EC_R_NOT_INITIALIZED                             111
 # define EC_R_NO_FIELD_MOD                                133
 # define EC_R_NO_PARAMETERS_SET                           139
+# define EC_R_NO_PRIVATE_VALUE                            154
+# define EC_R_OPERATION_NOT_SUPPORTED                     152
 # define EC_R_PASSED_NULL_PARAMETER                       134
 # define EC_R_PEER_KEY_ERROR                              149
 # define EC_R_PKPARAMETERS2GROUP_FAILURE                  127
+# define EC_R_POINT_ARITHMETIC_FAILURE                    155
 # define EC_R_POINT_AT_INFINITY                           106
 # define EC_R_POINT_IS_NOT_ON_CURVE                       107
+# define EC_R_RANDOM_NUMBER_GENERATION_FAILED             158
 # define EC_R_SHARED_INFO_ERROR                           150
 # define EC_R_SLOT_FULL                                   108
 # define EC_R_UNDEFINED_GENERATOR                         113
diff --git a/include/openssl/ecdh.h b/include/openssl/ecdh.h
index ca4e653..6a4a7b1 100644
--- a/include/openssl/ecdh.h
+++ b/include/openssl/ecdh.h
@@ -1,131 +1 @@
-/* crypto/ecdh/ecdh.h */
-/* ====================================================================
- * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
- *
- * The Elliptic Curve Public-Key Crypto Library (ECC Code) included
- * herein is developed by SUN MICROSYSTEMS, INC., and is contributed
- * to the OpenSSL project.
- *
- * The ECC Code is licensed pursuant to the OpenSSL open source
- * license provided below.
- *
- * The ECDH software is originally written by Douglas Stebila of
- * Sun Microsystems Laboratories.
- *
- */
-/* ====================================================================
- * 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-#ifndef HEADER_ECDH_H
-# define HEADER_ECDH_H
-
-# include <openssl/opensslconf.h>
-
-# ifdef OPENSSL_NO_EC
-#  error EC is disabled.
-# endif
-
-# include <openssl/ec.h>
-# include <openssl/ossl_typ.h>
-# ifdef OPENSSL_USE_DEPRECATED
-#  include <openssl/bn.h>
-# endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-# define EC_FLAG_COFACTOR_ECDH   0x1000
-
-const ECDH_METHOD *ECDH_OpenSSL(void);
-
-void ECDH_set_default_method(const ECDH_METHOD *);
-const ECDH_METHOD *ECDH_get_default_method(void);
-int ECDH_set_method(EC_KEY *, const ECDH_METHOD *);
-
-int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
-                     EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen,
-                                                 void *out, size_t *outlen));
-
-#define ECDH_get_ex_new_index(l, p, newf, dupf, freef) \
-    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ECDH, l, p, newf, dupf, freef)
-int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg);
-void *ECDH_get_ex_data(EC_KEY *d, int idx);
-
-int ECDH_KDF_X9_62(unsigned char *out, size_t outlen,
-                   const unsigned char *Z, size_t Zlen,
-                   const unsigned char *sinfo, size_t sinfolen,
-                   const EVP_MD *md);
-
-/* 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.
- */
-void ERR_load_ECDH_strings(void);
-
-/* Error codes for the ECDH functions. */
-
-/* Function codes. */
-# define ECDH_F_ECDH_COMPUTE_KEY                          100
-# define ECDH_F_ECDH_DATA_NEW_METHOD                      101
-
-/* Reason codes. */
-# define ECDH_R_KDF_FAILED                                102
-# define ECDH_R_NO_PRIVATE_VALUE                          100
-# define ECDH_R_POINT_ARITHMETIC_FAILURE                  101
-
-#ifdef  __cplusplus
-}
-#endif
-#endif
+#include <openssl/ec.h>
diff --git a/include/openssl/ecdsa.h b/include/openssl/ecdsa.h
index bb84236..6a4a7b1 100644
--- a/include/openssl/ecdsa.h
+++ b/include/openssl/ecdsa.h
@@ -1,332 +1 @@
-/* crypto/ecdsa/ecdsa.h */
-/**
- * \file   crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions
- * \author Written by Nils Larsch for the OpenSSL project
- */
-/* ====================================================================
- * Copyright (c) 2000-2005 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-#ifndef HEADER_ECDSA_H
-# define HEADER_ECDSA_H
-
-# include <openssl/opensslconf.h>
-
-# ifdef OPENSSL_NO_EC
-#  error EC is disabled.
-# endif
-
-# include <openssl/ec.h>
-# include <openssl/ossl_typ.h>
-# ifdef OPENSSL_USE_DEPRECATED
-#  include <openssl/bn.h>
-# endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct ECDSA_SIG_st {
-    BIGNUM *r;
-    BIGNUM *s;
-} ECDSA_SIG;
-
-/** Allocates and initialize a ECDSA_SIG structure
- *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
- */
-ECDSA_SIG *ECDSA_SIG_new(void);
-
-/** frees a ECDSA_SIG structure
- *  \param  sig  pointer to the ECDSA_SIG structure
- */
-void ECDSA_SIG_free(ECDSA_SIG *sig);
-
-/** DER encode content of ECDSA_SIG object (note: this function modifies *pp
- *  (*pp += length of the DER encoded signature)).
- *  \param  sig  pointer to the ECDSA_SIG object
- *  \param  pp   pointer to a unsigned char pointer for the output or NULL
- *  \return the length of the DER encoded ECDSA_SIG object or 0
- */
-int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp);
-
-/** Decodes a DER encoded ECDSA signature (note: this function changes *pp
- *  (*pp += len)).
- *  \param  sig  pointer to ECDSA_SIG pointer (may be NULL)
- *  \param  pp   memory buffer with the DER encoded signature
- *  \param  len  length of the buffer
- *  \return pointer to the decoded ECDSA_SIG structure (or NULL)
- */
-ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len);
-
-/** Computes the ECDSA signature of the given hash value using
- *  the supplied private key and returns the created signature.
- *  \param  dgst      pointer to the hash value
- *  \param  dgst_len  length of the hash value
- *  \param  eckey     EC_KEY object containing a private EC key
- *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
- */
-ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len,
-                         EC_KEY *eckey);
-
-/** Computes ECDSA signature of a given hash value using the supplied
- *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
- *  \param  dgst     pointer to the hash value to sign
- *  \param  dgstlen  length of the hash value
- *  \param  kinv     BIGNUM with a pre-computed inverse k (optional)
- *  \param  rp       BIGNUM with a pre-computed rp value (optioanl),
- *                   see ECDSA_sign_setup
- *  \param  eckey    EC_KEY object containing a private EC key
- *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
- */
-ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen,
-                            const BIGNUM *kinv, const BIGNUM *rp,
-                            EC_KEY *eckey);
-
-/** Verifies that the supplied signature is a valid ECDSA
- *  signature of the supplied hash value using the supplied public key.
- *  \param  dgst      pointer to the hash value
- *  \param  dgst_len  length of the hash value
- *  \param  sig       ECDSA_SIG structure
- *  \param  eckey     EC_KEY object containing a public EC key
- *  \return 1 if the signature is valid, 0 if the signature is invalid
- *          and -1 on error
- */
-int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
-                    const ECDSA_SIG *sig, EC_KEY *eckey);
-
-const ECDSA_METHOD *ECDSA_OpenSSL(void);
-
-/** Sets the default ECDSA method
- *  \param  meth  new default ECDSA_METHOD
- */
-void ECDSA_set_default_method(const ECDSA_METHOD *meth);
-
-/** Returns the default ECDSA method
- *  \return pointer to ECDSA_METHOD structure containing the default method
- */
-const ECDSA_METHOD *ECDSA_get_default_method(void);
-
-/** Sets method to be used for the ECDSA operations
- *  \param  eckey  EC_KEY object
- *  \param  meth   new method
- *  \return 1 on success and 0 otherwise
- */
-int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth);
-
-/** Returns the maximum length of the DER encoded signature
- *  \param  eckey  EC_KEY object
- *  \return numbers of bytes required for the DER encoded signature
- */
-int ECDSA_size(const EC_KEY *eckey);
-
-/** Precompute parts of the signing operation
- *  \param  eckey  EC_KEY object containing a private EC key
- *  \param  ctx    BN_CTX object (optional)
- *  \param  kinv   BIGNUM pointer for the inverse of k
- *  \param  rp     BIGNUM pointer for x coordinate of k * generator
- *  \return 1 on success and 0 otherwise
- */
-int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp);
-
-/** Computes ECDSA signature of a given hash value using the supplied
- *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
- *  \param  type     this parameter is ignored
- *  \param  dgst     pointer to the hash value to sign
- *  \param  dgstlen  length of the hash value
- *  \param  sig      memory for the DER encoded created signature
- *  \param  siglen   pointer to the length of the returned signature
- *  \param  eckey    EC_KEY object containing a private EC key
- *  \return 1 on success and 0 otherwise
- */
-int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen,
-               unsigned char *sig, unsigned int *siglen, EC_KEY *eckey);
-
-/** Computes ECDSA signature of a given hash value using the supplied
- *  private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
- *  \param  type     this parameter is ignored
- *  \param  dgst     pointer to the hash value to sign
- *  \param  dgstlen  length of the hash value
- *  \param  sig      buffer to hold the DER encoded signature
- *  \param  siglen   pointer to the length of the returned signature
- *  \param  kinv     BIGNUM with a pre-computed inverse k (optional)
- *  \param  rp       BIGNUM with a pre-computed rp value (optioanl),
- *                   see ECDSA_sign_setup
- *  \param  eckey    EC_KEY object containing a private EC key
- *  \return 1 on success and 0 otherwise
- */
-int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen,
-                  unsigned char *sig, unsigned int *siglen,
-                  const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey);
-
-/** Verifies that the given signature is valid ECDSA signature
- *  of the supplied hash value using the specified public key.
- *  \param  type     this parameter is ignored
- *  \param  dgst     pointer to the hash value
- *  \param  dgstlen  length of the hash value
- *  \param  sig      pointer to the DER encoded signature
- *  \param  siglen   length of the DER encoded signature
- *  \param  eckey    EC_KEY object containing a public EC key
- *  \return 1 if the signature is valid, 0 if the signature is invalid
- *          and -1 on error
- */
-int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen,
-                 const unsigned char *sig, int siglen, EC_KEY *eckey);
-
-/* the standard ex_data functions */
-#define ECDSA_get_ex_new_index(l, p, newf, dupf, freef) \
-    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ECDSA, l, p, newf, dupf, freef)
-int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg);
-void *ECDSA_get_ex_data(EC_KEY *d, int idx);
-
-/** Allocates and initialize a ECDSA_METHOD structure
- *  \param ecdsa_method pointer to ECDSA_METHOD to copy.  (May be NULL)
- *  \return pointer to a ECDSA_METHOD structure or NULL if an error occurred
- */
-
-ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method);
-
-/** frees a ECDSA_METHOD structure
- *  \param  ecdsa_method  pointer to the ECDSA_METHOD structure
- */
-void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method);
-
-/**  Sets application specific data in the ECDSA_METHOD
- *   \param  ecdsa_method pointer to existing ECDSA_METHOD
- *   \param  app application specific data to set
- */
-
-void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app);
-
-/** Returns application specific data from a ECDSA_METHOD structure
- *  \param ecdsa_method pointer to ECDSA_METHOD structure
- *  \return pointer to application specific data.
- */
-
-void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method);
-
-/**  Set the ECDSA_do_sign function in the ECDSA_METHOD
- *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
- *   \param  ecdsa_do_sign a funtion of type ECDSA_do_sign
- */
-
-void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method,
-                           ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char
-                                                        *dgst, int dgst_len,
-                                                        const BIGNUM *inv,
-                                                        const BIGNUM *rp,
-                                                        EC_KEY *eckey));
-
-/**  Set the  ECDSA_sign_setup function in the ECDSA_METHOD
- *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
- *   \param  ecdsa_sign_setup a funtion of type ECDSA_sign_setup
- */
-
-void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method,
-                                 int (*ecdsa_sign_setup) (EC_KEY *eckey,
-                                                          BN_CTX *ctx,
-                                                          BIGNUM **kinv,
-                                                          BIGNUM **r));
-
-/**  Set the ECDSA_do_verify function in the ECDSA_METHOD
- *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
- *   \param  ecdsa_do_verify a funtion of type ECDSA_do_verify
- */
-
-void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method,
-                             int (*ecdsa_do_verify) (const unsigned char
-                                                     *dgst, int dgst_len,
-                                                     const ECDSA_SIG *sig,
-                                                     EC_KEY *eckey));
-
-void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags);
-
-/**  Set the flags field in the ECDSA_METHOD
- *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
- *   \param  flags flags value to set
- */
-
-void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name);
-
-/**  Set the name field in the ECDSA_METHOD
- *   \param  ecdsa_method  pointer to existing ECDSA_METHOD
- *   \param  name name to set
- */
-
-/* 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.
- */
-void ERR_load_ECDSA_strings(void);
-
-/* Error codes for the ECDSA functions. */
-
-/* Function codes. */
-# define ECDSA_F_ECDSA_DATA_NEW_METHOD                    100
-# define ECDSA_F_ECDSA_DO_SIGN                            101
-# define ECDSA_F_ECDSA_DO_VERIFY                          102
-# define ECDSA_F_ECDSA_METHOD_NEW                         105
-# define ECDSA_F_ECDSA_SIGN_SETUP                         103
-
-/* Reason codes. */
-# define ECDSA_R_BAD_SIGNATURE                            100
-# define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE              101
-# define ECDSA_R_ERR_EC_LIB                               102
-# define ECDSA_R_MISSING_PARAMETERS                       103
-# define ECDSA_R_NEED_NEW_SETUP_VALUES                    106
-# define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED          104
-# define ECDSA_R_SIGNATURE_MALLOC_FAILED                  105
-
-#ifdef  __cplusplus
-}
-#endif
-#endif
+#include <openssl/ec.h>
diff --git a/include/openssl/engine.h b/include/openssl/engine.h
index 1b11e3e..0ab687c 100644
--- a/include/openssl/engine.h
+++ b/include/openssl/engine.h
@@ -83,8 +83,7 @@
 #   include <openssl/dh.h>
 #  endif
 #  ifndef OPENSSL_NO_EC
-#   include <openssl/ecdh.h>
-#   include <openssl/ecdsa.h>
+#   include <openssl/ec.h>
 #  endif
 #  include <openssl/rand.h>
 #  include <openssl/ui.h>
@@ -108,13 +107,12 @@ extern "C" {
 # define ENGINE_METHOD_DSA               (unsigned int)0x0002
 # define ENGINE_METHOD_DH                (unsigned int)0x0004
 # define ENGINE_METHOD_RAND              (unsigned int)0x0008
-# define ENGINE_METHOD_ECDH              (unsigned int)0x0010
-# define ENGINE_METHOD_ECDSA             (unsigned int)0x0020
 # define ENGINE_METHOD_CIPHERS           (unsigned int)0x0040
 # define ENGINE_METHOD_DIGESTS           (unsigned int)0x0080
 # define ENGINE_METHOD_STORE             (unsigned int)0x0100
 # define ENGINE_METHOD_PKEY_METHS        (unsigned int)0x0200
 # define ENGINE_METHOD_PKEY_ASN1_METHS   (unsigned int)0x0400
+# define ENGINE_METHOD_EC                (unsigned int)0x0800
 /* Obvious all-or-nothing cases. */
 # define ENGINE_METHOD_ALL               (unsigned int)0xFFFF
 # define ENGINE_METHOD_NONE              (unsigned int)0x0000
@@ -439,13 +437,9 @@ int ENGINE_register_DSA(ENGINE *e);
 void ENGINE_unregister_DSA(ENGINE *e);
 void ENGINE_register_all_DSA(void);
 
-int ENGINE_register_ECDH(ENGINE *e);
-void ENGINE_unregister_ECDH(ENGINE *e);
-void ENGINE_register_all_ECDH(void);
-
-int ENGINE_register_ECDSA(ENGINE *e);
-void ENGINE_unregister_ECDSA(ENGINE *e);
-void ENGINE_register_all_ECDSA(void);
+int ENGINE_register_EC(ENGINE *e);
+void ENGINE_unregister_EC(ENGINE *e);
+void ENGINE_register_all_EC(void);
 
 int ENGINE_register_DH(ENGINE *e);
 void ENGINE_unregister_DH(ENGINE *e);
@@ -553,8 +547,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_ECDH(ENGINE *e, const ECDH_METHOD *ecdh_meth);
-int ENGINE_set_ECDSA(ENGINE *e, const ECDSA_METHOD *ecdsa_meth);
+int ENGINE_set_EC(ENGINE *e, const EC_KEY_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_STORE(ENGINE *e, const STORE_METHOD *store_meth);
@@ -598,8 +591,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 ECDH_METHOD *ENGINE_get_ECDH(const ENGINE *e);
-const ECDSA_METHOD *ENGINE_get_ECDSA(const ENGINE *e);
+const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e);
 const DH_METHOD *ENGINE_get_DH(const ENGINE *e);
 const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e);
 const STORE_METHOD *ENGINE_get_STORE(const ENGINE *e);
@@ -677,8 +669,7 @@ int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s,
 ENGINE *ENGINE_get_default_RSA(void);
 /* Same for the other "methods" */
 ENGINE *ENGINE_get_default_DSA(void);
-ENGINE *ENGINE_get_default_ECDH(void);
-ENGINE *ENGINE_get_default_ECDSA(void);
+ENGINE *ENGINE_get_default_EC(void);
 ENGINE *ENGINE_get_default_DH(void);
 ENGINE *ENGINE_get_default_RAND(void);
 /*
@@ -700,8 +691,7 @@ int ENGINE_set_default_RSA(ENGINE *e);
 int ENGINE_set_default_string(ENGINE *e, const char *def_list);
 /* Same for the other "methods" */
 int ENGINE_set_default_DSA(ENGINE *e);
-int ENGINE_set_default_ECDH(ENGINE *e);
-int ENGINE_set_default_ECDSA(ENGINE *e);
+int ENGINE_set_default_EC(ENGINE *e);
 int ENGINE_set_default_DH(ENGINE *e);
 int ENGINE_set_default_RAND(ENGINE *e);
 int ENGINE_set_default_ciphers(ENGINE *e);
diff --git a/include/openssl/ossl_typ.h b/include/openssl/ossl_typ.h
index e56bf80..167974b 100644
--- a/include/openssl/ossl_typ.h
+++ b/include/openssl/ossl_typ.h
@@ -150,9 +150,6 @@ typedef struct rsa_meth_st RSA_METHOD;
 
 typedef struct rand_meth_st RAND_METHOD;
 
-typedef struct ecdh_method ECDH_METHOD;
-typedef struct ecdsa_method ECDSA_METHOD;
-
 typedef struct x509_st X509;
 typedef struct X509_algor_st X509_ALGOR;
 typedef struct X509_crl_st X509_CRL;
diff --git a/include/openssl/x509.h b/include/openssl/x509.h
index cdf392a..d33bcec 100644
--- a/include/openssl/x509.h
+++ b/include/openssl/x509.h
@@ -75,8 +75,6 @@
 
 # ifndef OPENSSL_NO_EC
 #  include <openssl/ec.h>
-#  include <openssl/ecdsa.h>
-#  include <openssl/ecdh.h>
 # endif
 
 # ifdef OPENSSL_USE_DEPRECATED
diff --git a/ssl/Makefile b/ssl/Makefile
index 10f75b7..e197fb0 100644
--- a/ssl/Makefile
+++ b/ssl/Makefile
@@ -103,8 +103,7 @@ bio_ssl.o: ../include/openssl/bio.h ../include/openssl/bn.h
 bio_ssl.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 bio_ssl.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 bio_ssl.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-bio_ssl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-bio_ssl.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+bio_ssl.o: ../include/openssl/ec.h ../include/openssl/err.h
 bio_ssl.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 bio_ssl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 bio_ssl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -123,8 +122,7 @@ d1_lib.o: ../include/openssl/bio.h ../include/openssl/bn.h
 d1_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 d1_lib.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 d1_lib.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-d1_lib.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-d1_lib.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_lib.o: ../include/openssl/ec.h ../include/openssl/err.h
 d1_lib.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 d1_lib.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 d1_lib.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -144,8 +142,7 @@ d1_msg.o: ../include/openssl/bio.h ../include/openssl/bn.h
 d1_msg.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 d1_msg.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 d1_msg.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-d1_msg.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-d1_msg.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_msg.o: ../include/openssl/ec.h ../include/openssl/err.h
 d1_msg.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 d1_msg.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 d1_msg.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -164,8 +161,7 @@ d1_srtp.o: ../include/openssl/bio.h ../include/openssl/bn.h
 d1_srtp.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 d1_srtp.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 d1_srtp.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-d1_srtp.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-d1_srtp.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_srtp.o: ../include/openssl/ec.h ../include/openssl/err.h
 d1_srtp.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 d1_srtp.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 d1_srtp.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -184,8 +180,7 @@ methods.o: ../include/openssl/bio.h ../include/openssl/bn.h
 methods.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 methods.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 methods.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-methods.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-methods.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+methods.o: ../include/openssl/ec.h ../include/openssl/err.h
 methods.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 methods.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 methods.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -205,7 +200,6 @@ record/dtls1_bitmap.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 record/dtls1_bitmap.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 record/dtls1_bitmap.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 record/dtls1_bitmap.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-record/dtls1_bitmap.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 record/dtls1_bitmap.o: ../include/openssl/err.h ../include/openssl/evp.h
 record/dtls1_bitmap.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 record/dtls1_bitmap.o: ../include/openssl/obj_mac.h
@@ -230,7 +224,6 @@ record/rec_layer_d1.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 record/rec_layer_d1.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 record/rec_layer_d1.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 record/rec_layer_d1.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-record/rec_layer_d1.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 record/rec_layer_d1.o: ../include/openssl/err.h ../include/openssl/evp.h
 record/rec_layer_d1.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 record/rec_layer_d1.o: ../include/openssl/obj_mac.h
@@ -255,7 +248,6 @@ record/rec_layer_s3.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 record/rec_layer_s3.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 record/rec_layer_s3.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 record/rec_layer_s3.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-record/rec_layer_s3.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 record/rec_layer_s3.o: ../include/openssl/err.h ../include/openssl/evp.h
 record/rec_layer_s3.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 record/rec_layer_s3.o: ../include/openssl/obj_mac.h
@@ -280,7 +272,6 @@ record/ssl3_buffer.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 record/ssl3_buffer.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 record/ssl3_buffer.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 record/ssl3_buffer.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-record/ssl3_buffer.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 record/ssl3_buffer.o: ../include/openssl/err.h ../include/openssl/evp.h
 record/ssl3_buffer.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 record/ssl3_buffer.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -304,8 +295,7 @@ record/ssl3_record.o: ../include/openssl/bio.h ../include/openssl/bn.h
 record/ssl3_record.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 record/ssl3_record.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 record/ssl3_record.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-record/ssl3_record.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-record/ssl3_record.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+record/ssl3_record.o: ../include/openssl/ec.h ../include/openssl/err.h
 record/ssl3_record.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 record/ssl3_record.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 record/ssl3_record.o: ../include/openssl/objects.h
@@ -329,8 +319,7 @@ s3_cbc.o: ../include/openssl/bio.h ../include/openssl/bn.h
 s3_cbc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 s3_cbc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 s3_cbc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-s3_cbc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-s3_cbc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_cbc.o: ../include/openssl/ec.h ../include/openssl/err.h
 s3_cbc.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 s3_cbc.o: ../include/openssl/lhash.h ../include/openssl/md5.h
 s3_cbc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -350,8 +339,7 @@ s3_enc.o: ../include/openssl/bio.h ../include/openssl/bn.h
 s3_enc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 s3_enc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 s3_enc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-s3_enc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-s3_enc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_enc.o: ../include/openssl/ec.h ../include/openssl/err.h
 s3_enc.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 s3_enc.o: ../include/openssl/lhash.h ../include/openssl/md5.h
 s3_enc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -372,7 +360,6 @@ s3_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 s3_lib.o: ../include/openssl/crypto.h ../include/openssl/dh.h
 s3_lib.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 s3_lib.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-s3_lib.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 s3_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
 s3_lib.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 s3_lib.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
@@ -393,8 +380,7 @@ s3_msg.o: ../include/openssl/bio.h ../include/openssl/bn.h
 s3_msg.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 s3_msg.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 s3_msg.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-s3_msg.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-s3_msg.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_msg.o: ../include/openssl/ec.h ../include/openssl/err.h
 s3_msg.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 s3_msg.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 s3_msg.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -413,8 +399,7 @@ ssl_algs.o: ../include/openssl/bio.h ../include/openssl/bn.h
 ssl_algs.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_algs.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 ssl_algs.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_algs.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_algs.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_algs.o: ../include/openssl/ec.h ../include/openssl/err.h
 ssl_algs.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 ssl_algs.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 ssl_algs.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -434,7 +419,6 @@ ssl_asn1.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 ssl_asn1.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 ssl_asn1.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 ssl_asn1.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ssl_asn1.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 ssl_asn1.o: ../include/openssl/err.h ../include/openssl/evp.h
 ssl_asn1.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ssl_asn1.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -456,7 +440,6 @@ ssl_cert.o: ../include/openssl/comp.h ../include/openssl/conf.h
 ssl_cert.o: ../include/openssl/crypto.h ../include/openssl/dh.h
 ssl_cert.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 ssl_cert.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ssl_cert.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 ssl_cert.o: ../include/openssl/err.h ../include/openssl/evp.h
 ssl_cert.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ssl_cert.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -476,8 +459,7 @@ ssl_ciph.o: ../include/openssl/bio.h ../include/openssl/bn.h
 ssl_ciph.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_ciph.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 ssl_ciph.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_ciph.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_ciph.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ssl_ciph.o: ../include/openssl/ec.h ../include/openssl/engine.h
 ssl_ciph.o: ../include/openssl/err.h ../include/openssl/evp.h
 ssl_ciph.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ssl_ciph.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -498,8 +480,7 @@ ssl_conf.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_conf.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 ssl_conf.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 ssl_conf.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_conf.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_conf.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_conf.o: ../include/openssl/ec.h ../include/openssl/err.h
 ssl_conf.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 ssl_conf.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 ssl_conf.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -517,7 +498,6 @@ ssl_err.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 ssl_err.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_err.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
 ssl_err.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ssl_err.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 ssl_err.o: ../include/openssl/err.h ../include/openssl/evp.h
 ssl_err.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ssl_err.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -534,7 +514,6 @@ ssl_err2.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 ssl_err2.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_err2.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
 ssl_err2.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ssl_err2.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 ssl_err2.o: ../include/openssl/err.h ../include/openssl/evp.h
 ssl_err2.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ssl_err2.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -553,8 +532,7 @@ ssl_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_lib.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 ssl_lib.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 ssl_lib.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_lib.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_lib.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ssl_lib.o: ../include/openssl/ec.h ../include/openssl/engine.h
 ssl_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
 ssl_lib.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ssl_lib.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -575,8 +553,7 @@ ssl_rsa.o: ../include/openssl/bio.h ../include/openssl/bn.h
 ssl_rsa.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_rsa.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 ssl_rsa.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_rsa.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_rsa.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_rsa.o: ../include/openssl/ec.h ../include/openssl/err.h
 ssl_rsa.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 ssl_rsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 ssl_rsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -595,8 +572,7 @@ ssl_sess.o: ../include/openssl/bio.h ../include/openssl/bn.h
 ssl_sess.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_sess.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 ssl_sess.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_sess.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_sess.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ssl_sess.o: ../include/openssl/ec.h ../include/openssl/engine.h
 ssl_sess.o: ../include/openssl/err.h ../include/openssl/evp.h
 ssl_sess.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ssl_sess.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -616,8 +592,7 @@ ssl_stat.o: ../include/openssl/bio.h ../include/openssl/bn.h
 ssl_stat.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_stat.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 ssl_stat.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_stat.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_stat.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_stat.o: ../include/openssl/ec.h ../include/openssl/err.h
 ssl_stat.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 ssl_stat.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 ssl_stat.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -636,8 +611,7 @@ ssl_txt.o: ../include/openssl/bio.h ../include/openssl/bn.h
 ssl_txt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_txt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 ssl_txt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_txt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_txt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_txt.o: ../include/openssl/ec.h ../include/openssl/err.h
 ssl_txt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 ssl_txt.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 ssl_txt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -656,8 +630,7 @@ ssl_utst.o: ../include/openssl/bio.h ../include/openssl/bn.h
 ssl_utst.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssl_utst.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 ssl_utst.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssl_utst.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_utst.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_utst.o: ../include/openssl/ec.h ../include/openssl/err.h
 ssl_utst.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 ssl_utst.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 ssl_utst.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -676,8 +649,7 @@ statem/statem.o: ../include/openssl/bio.h ../include/openssl/bn.h
 statem/statem.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 statem/statem.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 statem/statem.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-statem/statem.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-statem/statem.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+statem/statem.o: ../include/openssl/ec.h ../include/openssl/err.h
 statem/statem.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 statem/statem.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 statem/statem.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -699,8 +671,7 @@ statem/statem_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 statem/statem_clnt.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 statem/statem_clnt.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 statem/statem_clnt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-statem/statem_clnt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-statem/statem_clnt.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+statem/statem_clnt.o: ../include/openssl/ec.h ../include/openssl/engine.h
 statem/statem_clnt.o: ../include/openssl/err.h ../include/openssl/evp.h
 statem/statem_clnt.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 statem/statem_clnt.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
@@ -725,7 +696,6 @@ statem/statem_dtls.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 statem/statem_dtls.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 statem/statem_dtls.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 statem/statem_dtls.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-statem/statem_dtls.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 statem/statem_dtls.o: ../include/openssl/err.h ../include/openssl/evp.h
 statem/statem_dtls.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 statem/statem_dtls.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -749,7 +719,6 @@ statem/statem_lib.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 statem/statem_lib.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 statem/statem_lib.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 statem/statem_lib.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-statem/statem_lib.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 statem/statem_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
 statem/statem_lib.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 statem/statem_lib.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -774,7 +743,6 @@ statem/statem_srvr.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 statem/statem_srvr.o: ../include/openssl/crypto.h ../include/openssl/dh.h
 statem/statem_srvr.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 statem/statem_srvr.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-statem/statem_srvr.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 statem/statem_srvr.o: ../include/openssl/err.h ../include/openssl/evp.h
 statem/statem_srvr.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 statem/statem_srvr.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
@@ -798,8 +766,7 @@ t1_enc.o: ../include/openssl/bio.h ../include/openssl/bn.h
 t1_enc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 t1_enc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 t1_enc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-t1_enc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-t1_enc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_enc.o: ../include/openssl/ec.h ../include/openssl/err.h
 t1_enc.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 t1_enc.o: ../include/openssl/lhash.h ../include/openssl/md5.h
 t1_enc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -819,8 +786,7 @@ t1_ext.o: ../include/openssl/bio.h ../include/openssl/bn.h
 t1_ext.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 t1_ext.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 t1_ext.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-t1_ext.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-t1_ext.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_ext.o: ../include/openssl/ec.h ../include/openssl/err.h
 t1_ext.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 t1_ext.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 t1_ext.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -840,8 +806,7 @@ t1_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 t1_lib.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 t1_lib.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 t1_lib.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-t1_lib.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-t1_lib.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_lib.o: ../include/openssl/ec.h ../include/openssl/err.h
 t1_lib.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 t1_lib.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 t1_lib.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -862,8 +827,7 @@ t1_reneg.o: ../include/openssl/bio.h ../include/openssl/bn.h
 t1_reneg.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 t1_reneg.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 t1_reneg.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-t1_reneg.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-t1_reneg.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_reneg.o: ../include/openssl/ec.h ../include/openssl/err.h
 t1_reneg.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 t1_reneg.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 t1_reneg.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -882,8 +846,7 @@ t1_trce.o: ../include/openssl/bio.h ../include/openssl/bn.h
 t1_trce.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 t1_trce.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 t1_trce.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-t1_trce.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-t1_trce.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_trce.o: ../include/openssl/ec.h ../include/openssl/err.h
 t1_trce.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 t1_trce.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 t1_trce.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -902,8 +865,7 @@ tls_srp.o: ../include/openssl/bio.h ../include/openssl/bn.h
 tls_srp.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 tls_srp.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
 tls_srp.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-tls_srp.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-tls_srp.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+tls_srp.o: ../include/openssl/ec.h ../include/openssl/err.h
 tls_srp.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 tls_srp.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 tls_srp.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
diff --git a/test/Makefile b/test/Makefile
index efab366..d57cc29 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -388,7 +388,6 @@ asynctest.o: ../include/openssl/asn1.h ../include/openssl/async.h
 asynctest.o: ../include/openssl/bio.h ../include/openssl/buffer.h
 asynctest.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 asynctest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-asynctest.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 asynctest.o: ../include/openssl/engine.h ../include/openssl/evp.h
 asynctest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 asynctest.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
@@ -405,8 +404,7 @@ bntest.o: ../crypto/bn/bn_lcl.h ../crypto/include/internal/bn_int.h ../e_os.h
 bntest.o: ../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/e_os2.h
-bntest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-bntest.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+bntest.o: ../include/openssl/ec.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
@@ -421,7 +419,6 @@ clienthellotest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 clienthellotest.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 clienthellotest.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
 clienthellotest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-clienthellotest.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 clienthellotest.o: ../include/openssl/err.h ../include/openssl/evp.h
 clienthellotest.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 clienthellotest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -457,18 +454,16 @@ dsatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h dsatest.c
 ecdhtest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 ecdhtest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
 ecdhtest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-ecdhtest.o: ../include/openssl/ecdh.h ../include/openssl/err.h
-ecdhtest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
-ecdhtest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
-ecdhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
-ecdhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
-ecdhtest.o: ../include/openssl/sha.h ../include/openssl/stack.h
-ecdhtest.o: ../include/openssl/symhacks.h ecdhtest.c
+ecdhtest.o: ../include/openssl/err.h ../include/openssl/lhash.h
+ecdhtest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ecdhtest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ecdhtest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
+ecdhtest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ecdhtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h ecdhtest.c
 ecdsatest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 ecdsatest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 ecdsatest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-ecdsatest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ecdsatest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ecdsatest.o: ../include/openssl/ec.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
@@ -481,8 +476,7 @@ ecdsatest.o: ecdsatest.c
 ectest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 ectest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 ectest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-ectest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ectest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ectest.o: ../include/openssl/ec.h ../include/openssl/engine.h
 ectest.o: ../include/openssl/err.h ../include/openssl/evp.h
 ectest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 ectest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -494,7 +488,6 @@ ectest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ectest.c
 enginetest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 enginetest.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
 enginetest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-enginetest.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 enginetest.o: ../include/openssl/engine.h ../include/openssl/err.h
 enginetest.o: ../include/openssl/evp.h ../include/openssl/lhash.h
 enginetest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -507,7 +500,6 @@ enginetest.o: enginetest.c
 evp_extra_test.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 evp_extra_test.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
 evp_extra_test.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-evp_extra_test.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 evp_extra_test.o: ../include/openssl/err.h ../include/openssl/evp.h
 evp_extra_test.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 evp_extra_test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -521,7 +513,6 @@ evp_test.o: ../include/internal/numbers.h ../include/openssl/asn1.h
 evp_test.o: ../include/openssl/bio.h ../include/openssl/buffer.h
 evp_test.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 evp_test.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-evp_test.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.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
@@ -548,8 +539,7 @@ gost2814789test.o: ../e_os.h ../engines/ccgost/gost89.h
 gost2814789test.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 gost2814789test.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 gost2814789test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-gost2814789test.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-gost2814789test.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+gost2814789test.o: ../include/openssl/ec.h ../include/openssl/engine.h
 gost2814789test.o: ../include/openssl/err.h ../include/openssl/evp.h
 gost2814789test.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 gost2814789test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -565,7 +555,6 @@ heartbeat_test.o: ../include/openssl/bn.h ../include/openssl/buffer.h
 heartbeat_test.o: ../include/openssl/comp.h ../include/openssl/crypto.h
 heartbeat_test.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
 heartbeat_test.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-heartbeat_test.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 heartbeat_test.o: ../include/openssl/err.h ../include/openssl/evp.h
 heartbeat_test.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 heartbeat_test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -625,8 +614,7 @@ nptest.o: nptest.c
 p5_crpt2_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 p5_crpt2_test.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 p5_crpt2_test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-p5_crpt2_test.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-p5_crpt2_test.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+p5_crpt2_test.o: ../include/openssl/ec.h ../include/openssl/engine.h
 p5_crpt2_test.o: ../include/openssl/err.h ../include/openssl/evp.h
 p5_crpt2_test.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 p5_crpt2_test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
@@ -686,8 +674,7 @@ ssltest.o: ../include/openssl/buffer.h ../include/openssl/comp.h
 ssltest.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 ssltest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 ssltest.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
-ssltest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssltest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ssltest.o: ../include/openssl/ec.h ../include/openssl/engine.h
 ssltest.o: ../include/openssl/err.h ../include/openssl/evp.h
 ssltest.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
 ssltest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
@@ -709,8 +696,7 @@ testutil.o: ../include/openssl/opensslconf.h testutil.c testutil.h
 v3nametest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 v3nametest.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 v3nametest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
-v3nametest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-v3nametest.o: ../include/openssl/ecdsa.h ../include/openssl/evp.h
+v3nametest.o: ../include/openssl/ec.h ../include/openssl/evp.h
 v3nametest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 v3nametest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 v3nametest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
@@ -722,7 +708,6 @@ v3nametest.o: v3nametest.c
 verify_extra_test.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 verify_extra_test.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
 verify_extra_test.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-verify_extra_test.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
 verify_extra_test.o: ../include/openssl/err.h ../include/openssl/evp.h
 verify_extra_test.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
 verify_extra_test.o: ../include/openssl/objects.h
diff --git a/test/ecdhtest.c b/test/ecdhtest.c
index 0145b36..d77e007 100644
--- a/test/ecdhtest.c
+++ b/test/ecdhtest.c
@@ -90,7 +90,6 @@ int main(int argc, char *argv[])
 }
 #else
 # include <openssl/ec.h>
-# include <openssl/ecdh.h>
 
 static const char rnd_seed[] =
     "string to make the random number generator think it has entropy";
diff --git a/test/ecdsatest.c b/test/ecdsatest.c
index a55a553..023eb12 100644
--- a/test/ecdsatest.c
+++ b/test/ecdsatest.c
@@ -87,7 +87,7 @@ int main(int argc, char *argv[])
 # include <openssl/bio.h>
 # include <openssl/evp.h>
 # include <openssl/bn.h>
-# include <openssl/ecdsa.h>
+# include <openssl/ec.h>
 # ifndef OPENSSL_NO_ENGINE
 #  include <openssl/engine.h>
 # endif
@@ -193,6 +193,7 @@ int x9_62_test_internal(BIO *out, int nid, const char *r_in, const char *s_in)
     ECDSA_SIG *signature = NULL;
     BIGNUM *r = NULL, *s = NULL;
     BIGNUM *kinv = NULL, *rp = NULL;
+    BIGNUM *sig_r, *sig_s;
 
     if (md_ctx == NULL)
         goto x962_int_err;
@@ -227,7 +228,8 @@ int x9_62_test_internal(BIO *out, int nid, const char *r_in, const char *s_in)
         goto x962_int_err;
     if (!BN_dec2bn(&r, r_in) || !BN_dec2bn(&s, s_in))
         goto x962_int_err;
-    if (BN_cmp(signature->r, r) || BN_cmp(signature->s, s))
+    ECDSA_SIG_get0(&sig_r, &sig_s, signature);
+    if (BN_cmp(sig_r, r) || BN_cmp(sig_s, s))
         goto x962_int_err;
     BIO_printf(out, ".");
     (void)BIO_flush(out);
@@ -303,6 +305,7 @@ int test_builtin(BIO *out)
     const unsigned char *sig_ptr;
     unsigned char *sig_ptr2;
     unsigned char *raw_buf = NULL;
+    BIGNUM *sig_r, *sig_s;
     unsigned int sig_len, degree, r_len, s_len, bn_len, buf_len;
     int nid, ret = 0;
 
@@ -433,9 +436,11 @@ int test_builtin(BIO *out)
             goto builtin_err;
         }
 
+        ECDSA_SIG_get0(&sig_r, &sig_s, ecdsa_sig);
+
         /* Store the two BIGNUMs in raw_buf. */
-        r_len = BN_num_bytes(ecdsa_sig->r);
-        s_len = BN_num_bytes(ecdsa_sig->s);
+        r_len = BN_num_bytes(sig_r);
+        s_len = BN_num_bytes(sig_s);
         bn_len = (degree + 7) / 8;
         if ((r_len > bn_len) || (s_len > bn_len)) {
             BIO_printf(out, " failed\n");
@@ -444,16 +449,16 @@ int test_builtin(BIO *out)
         buf_len = 2 * bn_len;
         if ((raw_buf = OPENSSL_zalloc(buf_len)) == NULL)
             goto builtin_err;
-        BN_bn2bin(ecdsa_sig->r, raw_buf + bn_len - r_len);
-        BN_bn2bin(ecdsa_sig->s, raw_buf + buf_len - s_len);
+        BN_bn2bin(sig_r, raw_buf + bn_len - r_len);
+        BN_bn2bin(sig_s, raw_buf + buf_len - s_len);
 
         /* Modify a single byte in the buffer. */
         offset = raw_buf[10] % buf_len;
         dirt = raw_buf[11] ? raw_buf[11] : 1;
         raw_buf[offset] ^= dirt;
         /* Now read the BIGNUMs back in from raw_buf. */
-        if ((BN_bin2bn(raw_buf, bn_len, ecdsa_sig->r) == NULL) ||
-            (BN_bin2bn(raw_buf + bn_len, bn_len, ecdsa_sig->s) == NULL))
+        if ((BN_bin2bn(raw_buf, bn_len, sig_r) == NULL) ||
+            (BN_bin2bn(raw_buf + bn_len, bn_len, sig_s) == NULL))
             goto builtin_err;
 
         sig_ptr2 = signature;
@@ -466,8 +471,8 @@ int test_builtin(BIO *out)
          * Sanity check: undo the modification and verify signature.
          */
         raw_buf[offset] ^= dirt;
-        if ((BN_bin2bn(raw_buf, bn_len, ecdsa_sig->r) == NULL) ||
-            (BN_bin2bn(raw_buf + bn_len, bn_len, ecdsa_sig->s) == NULL))
+        if ((BN_bin2bn(raw_buf, bn_len, sig_r) == NULL) ||
+            (BN_bin2bn(raw_buf + bn_len, bn_len, sig_s) == NULL))
             goto builtin_err;
 
         sig_ptr2 = signature;
diff --git a/util/libeay.num b/util/libeay.num
index 8b7f296..cd13ea0 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -2894,7 +2894,7 @@ BN_get0_nist_prime_384                  3331	EXIST::FUNCTION:
 ERR_set_mark                            3332	EXIST::FUNCTION:
 X509_STORE_CTX_set0_crls                3333	EXIST::FUNCTION:
 ENGINE_set_STORE                        3334	EXIST::FUNCTION:ENGINE
-ENGINE_register_ECDSA                   3335	EXIST::FUNCTION:ENGINE
+ENGINE_register_ECDSA                   3335	NOEXIST::FUNCTION:
 STORE_meth_set_list_start_fn            3336	NOEXIST::FUNCTION:
 STORE_method_set_list_start_function    3336	NOEXIST::FUNCTION:
 BN_BLINDING_invert_ex                   3337	EXIST::FUNCTION:
@@ -2913,12 +2913,12 @@ STORE_set_method                        3348	NOEXIST::FUNCTION:
 GENERAL_SUBTREE_free                    3349	EXIST::FUNCTION:
 NAME_CONSTRAINTS_it                     3350	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
 NAME_CONSTRAINTS_it                     3350	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-ECDH_get_default_method                 3351	EXIST::FUNCTION:EC
+ECDH_get_default_method                 3351	NOEXIST::FUNCTION:
 PKCS12_add_safe                         3352	EXIST::FUNCTION:
 EC_KEY_new_by_curve_name                3353	EXIST::FUNCTION:EC
 STORE_meth_get_update_store_fn          3354	NOEXIST::FUNCTION:
 STORE_method_get_update_store_function  3354	NOEXIST::FUNCTION:
-ENGINE_register_ECDH                    3355	EXIST::FUNCTION:ENGINE
+ENGINE_register_ECDH                    3355	NOEXIST::FUNCTION:
 SHA512_Update                           3356	EXIST:!VMSVAX:FUNCTION:
 i2d_ECPrivateKey                        3357	EXIST::FUNCTION:EC
 BN_get0_nist_prime_192                  3358	EXIST::FUNCTION:
@@ -2952,7 +2952,7 @@ STORE_destroy_method                    3383	NOEXIST::FUNCTION:
 ENGINE_unregister_STORE                 3384	EXIST::FUNCTION:ENGINE
 EVP_PKEY_get1_EC_KEY                    3385	EXIST::FUNCTION:EC
 STORE_ATTR_INFO_get0_number             3386	NOEXIST::FUNCTION:
-ENGINE_get_default_ECDH                 3387	EXIST::FUNCTION:ENGINE
+ENGINE_get_default_ECDH                 3387	NOEXIST::FUNCTION:
 EC_KEY_get_conv_form                    3388	EXIST::FUNCTION:EC
 ASN1_OCTET_STRING_NDEF_it               3389	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
 ASN1_OCTET_STRING_NDEF_it               3389	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
@@ -3008,11 +3008,11 @@ X509_policy_level_node_count            3434	EXIST::FUNCTION:
 STORE_new_engine                        3435	NOEXIST::FUNCTION:
 STORE_list_public_key_start             3436	NOEXIST::FUNCTION:
 X509_VERIFY_PARAM_new                   3437	EXIST::FUNCTION:
-ECDH_get_ex_data                        3438	EXIST::FUNCTION:EC
+ECDH_get_ex_data                        3438	NOEXIST::FUNCTION:
 EVP_PKEY_get_attr                       3439	EXIST::FUNCTION:
 ECDSA_do_sign                           3440	EXIST::FUNCTION:EC
-ENGINE_unregister_ECDH                  3441	EXIST::FUNCTION:ENGINE
-ECDH_OpenSSL                            3442	EXIST::FUNCTION:EC
+ENGINE_unregister_ECDH                  3441	NOEXIST::FUNCTION:
+ECDH_OpenSSL                            3442	NOEXIST::FUNCTION:
 EC_KEY_set_conv_form                    3443	EXIST::FUNCTION:EC
 EC_POINT_dup                            3444	EXIST::FUNCTION:EC
 GENERAL_SUBTREE_new                     3445	EXIST::FUNCTION:
@@ -3049,7 +3049,7 @@ BN_GENCB_call                           3474	EXIST::FUNCTION:
 d2i_ECPKParameters                      3475	EXIST::FUNCTION:EC
 STORE_meth_set_generate_fn              3476	NOEXIST::FUNCTION:
 STORE_method_set_generate_function      3476	NOEXIST::FUNCTION:
-ENGINE_set_ECDH                         3477	EXIST::FUNCTION:ENGINE
+ENGINE_set_ECDH                         3477	NOEXIST::FUNCTION:
 NAME_CONSTRAINTS_new                    3478	EXIST::FUNCTION:
 SHA256_Init                             3479	EXIST::FUNCTION:
 EC_KEY_get0_public_key                  3480	EXIST::FUNCTION:EC
@@ -3084,7 +3084,7 @@ X509_STORE_CTX_get0_param               3505	EXIST::FUNCTION:
 STORE_delete_arbitrary                  3506	NOEXIST::FUNCTION:
 PEM_read_X509_CERT_PAIR                 3507	NOEXIST::FUNCTION:
 X509_STORE_set_depth                    3508	EXIST::FUNCTION:
-ECDSA_get_ex_data                       3509	EXIST::FUNCTION:EC
+ECDSA_get_ex_data                       3509	NOEXIST::FUNCTION:
 SHA224                                  3510	EXIST::FUNCTION:
 BIO_dump_indent_fp                      3511	EXIST::FUNCTION:STDIO
 EC_KEY_set_group                        3512	EXIST::FUNCTION:EC
@@ -3097,7 +3097,7 @@ ERR_load_STORE_strings                  3518	NOEXIST::FUNCTION:
 PEM_read_bio_EC_PUBKEY                  3519	EXIST::FUNCTION:EC
 STORE_list_private_key_end              3520	NOEXIST::FUNCTION:
 i2d_EC_PUBKEY                           3521	EXIST::FUNCTION:EC
-ECDSA_get_default_method                3522	EXIST::FUNCTION:EC
+ECDSA_get_default_method                3522	NOEXIST::FUNCTION:
 ASN1_put_eoc                            3523	EXIST::FUNCTION:
 X509_STORE_CTX_get_explicit_policy      3524	EXIST:!VMS:FUNCTION:
 X509_STORE_CTX_get_expl_policy          3524	EXIST:VMS:FUNCTION:
@@ -3125,10 +3125,10 @@ BIO_s_datagram                          3542	EXIST::FUNCTION:DGRAM
 STORE_Memory                            3543	NOEXIST::FUNCTION:
 sk_find_ex                              3544	EXIST::FUNCTION:
 EC_GROUP_set_curve_GF2m                 3545	EXIST::FUNCTION:EC,EC2M
-ENGINE_set_default_ECDSA                3546	EXIST::FUNCTION:ENGINE
+ENGINE_set_default_ECDSA                3546	NOEXIST::FUNCTION:
 POLICY_CONSTRAINTS_new                  3547	EXIST::FUNCTION:
 BN_GF2m_mod_sqrt                        3548	EXIST::FUNCTION:EC2M
-ECDH_set_default_method                 3549	EXIST::FUNCTION:EC
+ECDH_set_default_method                 3549	NOEXIST::FUNCTION:
 EC_KEY_generate_key                     3550	EXIST::FUNCTION:EC
 SHA384_Update                           3551	EXIST:!VMSVAX:FUNCTION:
 BN_GF2m_arr2poly                        3552	EXIST::FUNCTION:EC2M
@@ -3191,15 +3191,15 @@ STORE_store_arbitrary                   3602	NOEXIST::FUNCTION:
 STORE_meth_set_unlock_store_fn          3603	NOEXIST::FUNCTION:
 STORE_method_set_unlock_store_function  3603	NOEXIST::FUNCTION:
 BN_GF2m_mod_div_arr                     3604	EXIST::FUNCTION:EC2M
-ENGINE_set_ECDSA                        3605	EXIST::FUNCTION:ENGINE
+ENGINE_set_ECDSA                        3605	NOEXIST::FUNCTION:
 STORE_create_method                     3606	NOEXIST::FUNCTION:
 ECPKParameters_print                    3607	EXIST::FUNCTION:EC
 EC_KEY_get0_private_key                 3608	EXIST::FUNCTION:EC
 PEM_write_EC_PUBKEY                     3609	EXIST::FUNCTION:EC
 X509_VERIFY_PARAM_set1                  3610	EXIST::FUNCTION:
-ECDH_set_method                         3611	EXIST::FUNCTION:EC
+ECDH_set_method                         3611	NOEXIST::FUNCTION:
 v2i_GENERAL_NAME_ex                     3612	EXIST::FUNCTION:
-ECDH_set_ex_data                        3613	EXIST::FUNCTION:EC
+ECDH_set_ex_data                        3613	NOEXIST::FUNCTION:
 STORE_generate_key                      3614	NOEXIST::FUNCTION:
 BN_nist_mod_521                         3615	EXIST::FUNCTION:
 X509_policy_tree_get0_level             3616	EXIST::FUNCTION:
@@ -3207,12 +3207,12 @@ EC_GROUP_set_point_conversion_form      3617	EXIST:!VMS:FUNCTION:EC
 EC_GROUP_set_point_conv_form            3617	EXIST:VMS:FUNCTION:EC
 PEM_read_EC_PUBKEY                      3618	EXIST::FUNCTION:EC
 i2d_ECDSA_SIG                           3619	EXIST::FUNCTION:EC
-ECDSA_OpenSSL                           3620	EXIST::FUNCTION:EC
+ECDSA_OpenSSL                           3620	NOEXIST::FUNCTION:
 STORE_delete_crl                        3621	NOEXIST::FUNCTION:
 EC_KEY_get_enc_flags                    3622	EXIST::FUNCTION:EC
 ASN1_const_check_infinite_end           3623	EXIST::FUNCTION:
 EVP_PKEY_delete_attr                    3624	EXIST::FUNCTION:
-ECDSA_set_default_method                3625	EXIST::FUNCTION:EC
+ECDSA_set_default_method                3625	NOEXIST::FUNCTION:
 EC_POINT_set_compressed_coordinates_GF2m 3626	EXIST:!VMS:FUNCTION:EC,EC2M
 EC_POINT_set_compr_coords_GF2m          3626	EXIST:VMS:FUNCTION:EC,EC2M
 EC_GROUP_cmp                            3627	EXIST::FUNCTION:EC
@@ -3225,7 +3225,7 @@ PEM_read_ECPrivateKey                   3632	EXIST::FUNCTION:EC
 SHA512_Init                             3633	EXIST:!VMSVAX:FUNCTION:
 STORE_parse_attrs_endp                  3634	NOEXIST::FUNCTION:
 BN_set_negative                         3635	EXIST::FUNCTION:
-ERR_load_ECDSA_strings                  3636	EXIST::FUNCTION:EC
+ERR_load_ECDSA_strings                  3636	NOEXIST::FUNCTION:
 EC_GROUP_get_basis_type                 3637	EXIST::FUNCTION:EC
 STORE_list_public_key_next              3638	NOEXIST::FUNCTION:
 i2v_ASN1_BIT_STRING                     3639	EXIST::FUNCTION:
@@ -3235,7 +3235,7 @@ i2d_X509_CERT_PAIR                      3642	NOEXIST::FUNCTION:
 PEM_write_ECPKParameters                3643	EXIST::FUNCTION:EC
 ECDH_compute_key                        3644	EXIST::FUNCTION:EC
 STORE_ATTR_INFO_get0_sha1str            3645	NOEXIST::FUNCTION:
-ENGINE_register_all_ECDH                3646	EXIST::FUNCTION:ENGINE
+ENGINE_register_all_ECDH                3646	NOEXIST::FUNCTION:
 pqueue_pop                              3647	EXIST::FUNCTION:
 STORE_ATTR_INFO_get0_cstr               3648	NOEXIST::FUNCTION:
 POLICY_CONSTRAINTS_it                   3649	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
@@ -3249,12 +3249,12 @@ i2d_ECPrivateKey_fp                     3655	EXIST::FUNCTION:EC,STDIO
 X509_policy_tree_get0_user_policies     3656	EXIST:!VMS:FUNCTION:
 X509_pcy_tree_get0_usr_policies         3656	EXIST:VMS:FUNCTION:
 OPENSSL_DIR_read                        3657	EXIST::FUNCTION:
-ENGINE_register_all_ECDSA               3658	EXIST::FUNCTION:ENGINE
+ENGINE_register_all_ECDSA               3658	NOEXIST::FUNCTION:
 X509_VERIFY_PARAM_lookup                3659	EXIST::FUNCTION:
 EC_POINT_get_affine_coordinates_GF2m    3660	EXIST:!VMS:FUNCTION:EC,EC2M
 EC_POINT_get_affine_coords_GF2m         3660	EXIST:VMS:FUNCTION:EC,EC2M
 EC_GROUP_dup                            3661	EXIST::FUNCTION:EC
-ENGINE_get_default_ECDSA                3662	EXIST::FUNCTION:ENGINE
+ENGINE_get_default_ECDSA                3662	NOEXIST::FUNCTION:
 EC_KEY_new                              3663	EXIST::FUNCTION:EC
 SHA256_Transform                        3664	EXIST::FUNCTION:
 EC_KEY_set_enc_flags                    3665	EXIST::FUNCTION:EC
@@ -3312,22 +3312,22 @@ DH_generate_parameters_ex               3713	EXIST::FUNCTION:DH
 PEM_read_bio_ECPrivateKey               3714	EXIST::FUNCTION:EC
 STORE_meth_get_cleanup_fn               3715	NOEXIST::FUNCTION:
 STORE_method_get_cleanup_function       3715	NOEXIST::FUNCTION:
-ENGINE_get_ECDH                         3716	EXIST::FUNCTION:ENGINE
+ENGINE_get_ECDH                         3716	NOEXIST::FUNCTION:
 d2i_ECDSA_SIG                           3717	EXIST::FUNCTION:EC
 BN_is_prime_fasttest_ex                 3718	EXIST::FUNCTION:
 ECDSA_sign                              3719	EXIST::FUNCTION:EC
 X509_policy_check                       3720	EXIST::FUNCTION:
 EVP_PKEY_get_attr_by_NID                3721	EXIST::FUNCTION:
 STORE_set_ex_data                       3722	NOEXIST::FUNCTION:
-ENGINE_get_ECDSA                        3723	EXIST::FUNCTION:ENGINE
+ENGINE_get_ECDSA                        3723	NOEXIST::FUNCTION:
 EVP_ecdsa                               3724	NOEXIST::FUNCTION:
 BN_BLINDING_get_flags                   3725	EXIST::FUNCTION:
 PKCS12_add_cert                         3726	EXIST::FUNCTION:
 STORE_OBJECT_new                        3727	NOEXIST::FUNCTION:
-ERR_load_ECDH_strings                   3728	EXIST::FUNCTION:EC
+ERR_load_ECDH_strings                   3728	NOEXIST::FUNCTION:
 EC_KEY_dup                              3729	EXIST::FUNCTION:EC
 EVP_CIPHER_CTX_rand_key                 3730	EXIST::FUNCTION:
-ECDSA_set_method                        3731	EXIST::FUNCTION:EC
+ECDSA_set_method                        3731	NOEXIST::FUNCTION:
 a2i_IPADDRESS_NC                        3732	EXIST::FUNCTION:
 d2i_ECParameters                        3733	EXIST::FUNCTION:EC
 STORE_list_certificate_end              3734	NOEXIST::FUNCTION:
@@ -3335,7 +3335,7 @@ STORE_get_crl                           3735	NOEXIST::FUNCTION:
 X509_POLICY_NODE_print                  3736	EXIST::FUNCTION:
 SHA384_Init                             3737	EXIST:!VMSVAX:FUNCTION:
 EC_GF2m_simple_method                   3738	EXIST::FUNCTION:EC,EC2M
-ECDSA_set_ex_data                       3739	EXIST::FUNCTION:EC
+ECDSA_set_ex_data                       3739	NOEXIST::FUNCTION:
 SHA384_Final                            3740	EXIST:!VMSVAX:FUNCTION:
 PKCS7_set_digest                        3741	EXIST::FUNCTION:
 EC_KEY_print                            3742	EXIST::FUNCTION:EC
@@ -3357,7 +3357,7 @@ STORE_method_get_list_end_function      3755	NOEXIST::FUNCTION:
 EVP_PKEY_add1_attr_by_OBJ               3756	EXIST::FUNCTION:
 X509_VERIFY_PARAM_set_time              3757	EXIST::FUNCTION:
 pqueue_new                              3758	EXIST::FUNCTION:
-ENGINE_set_default_ECDH                 3759	EXIST::FUNCTION:ENGINE
+ENGINE_set_default_ECDH                 3759	NOEXIST::FUNCTION:
 STORE_new_method                        3760	NOEXIST::FUNCTION:
 PKCS12_add_key                          3761	EXIST::FUNCTION:
 DSO_merge                               3762	EXIST::FUNCTION:
@@ -3367,7 +3367,7 @@ SHA256_Update                           3765	EXIST::FUNCTION:
 pqueue_insert                           3766	EXIST::FUNCTION:
 pitem_free                              3767	EXIST::FUNCTION:
 BN_GF2m_mod_inv_arr                     3768	EXIST::FUNCTION:EC2M
-ENGINE_unregister_ECDSA                 3769	EXIST::FUNCTION:ENGINE
+ENGINE_unregister_ECDSA                 3769	NOEXIST::FUNCTION:
 BN_BLINDING_set_thread_id               3770	EXIST::FUNCTION:DEPRECATED
 get_rfc3526_prime_8192                  3771	EXIST::FUNCTION:
 X509_VERIFY_PARAM_clear_flags           3772	EXIST::FUNCTION:
@@ -4354,18 +4354,18 @@ EVP_aes_256_wrap                        4719	EXIST::FUNCTION:AES
 CRYPTO_128_wrap                         4720	EXIST::FUNCTION:
 RSA_OAEP_PARAMS_new                     4721	EXIST::FUNCTION:RSA
 CRYPTO_128_unwrap                       4722	EXIST::FUNCTION:
-ECDSA_METHOD_set_name                   4723	EXIST::FUNCTION:EC
+ECDSA_METHOD_set_name                   4723	NOEXIST::FUNCTION:
 CMS_RecipientInfo_kari_decrypt          4724	EXIST::FUNCTION:CMS
 CMS_SignerInfo_get0_pkey_ctx            4725	EXIST::FUNCTION:CMS
-ECDSA_METHOD_set_flags                  4726	EXIST::FUNCTION:EC
-ECDSA_METHOD_set_sign_setup             4727	EXIST::FUNCTION:EC
+ECDSA_METHOD_set_flags                  4726	NOEXIST::FUNCTION:
+ECDSA_METHOD_set_sign_setup             4727	NOEXIST::FUNCTION:
 CMS_RecipientInfo_kari_orig_id_cmp      4728	EXIST:!VMS:FUNCTION:CMS
 CMS_RecipInfo_kari_orig_id_cmp          4728	EXIST:VMS:FUNCTION:CMS
 CMS_RecipientInfo_kari_get0_alg         4729	EXIST::FUNCTION:CMS
 EVP_aes_192_wrap                        4730	EXIST::FUNCTION:AES
 EVP_aes_128_cbc_hmac_sha256             4731	EXIST::FUNCTION:AES
 DH_compute_key_padded                   4732	EXIST::FUNCTION:DH
-ECDSA_METHOD_set_sign                   4733	EXIST::FUNCTION:EC
+ECDSA_METHOD_set_sign                   4733	NOEXIST::FUNCTION:
 CMS_RecipientEncryptedKey_cert_cmp      4734	EXIST:!VMS:FUNCTION:CMS
 CMS_RecipEncryptedKey_cert_cmp          4734	EXIST:VMS:FUNCTION:CMS
 DH_KDF_X9_42                            4735	EXIST::FUNCTION:CMS,DH
@@ -4387,19 +4387,19 @@ i2d_RSA_OAEP_PARAMS                     4747	EXIST::FUNCTION:RSA
 d2i_RSA_OAEP_PARAMS                     4748	EXIST::FUNCTION:RSA
 ECDH_KDF_X9_62                          4749	EXIST::FUNCTION:EC
 CMS_RecipientInfo_kari_get0_ctx         4750	EXIST::FUNCTION:CMS
-ECDSA_METHOD_new                        4751	EXIST::FUNCTION:EC
+ECDSA_METHOD_new                        4751	NOEXIST::FUNCTION:
 CMS_RecipientInfo_get0_pkey_ctx         4752	EXIST::FUNCTION:CMS
 CMS_RecipientEncryptedKey_get0_id       4753	EXIST:!VMS:FUNCTION:CMS
 CMS_RecipEncryptedKey_get0_id           4753	EXIST:VMS:FUNCTION:CMS
 RSA_pad_check_PKCS1_OAEP_mgf1           4754	NOEXIST::FUNCTION:
 RSA_padding_check_PKCS1_OAEP_mgf1       4754	EXIST:!VMS:FUNCTION:RSA
 RSA_padding_chk_PKCS1_OAEP_mgf1         4754	EXIST:VMS:FUNCTION:RSA
-ECDSA_METHOD_set_verify                 4755	EXIST::FUNCTION:EC
+ECDSA_METHOD_set_verify                 4755	NOEXIST::FUNCTION:
 CMS_SharedInfo_encode                   4756	EXIST::FUNCTION:CMS
 RSA_padding_add_PKCS1_OAEP_mgf1         4757	EXIST::FUNCTION:RSA
 CMS_RecipientInfo_kari_get0_orig_id     4758	EXIST:!VMS:FUNCTION:CMS
 CMS_RecipInfo_kari_get0_orig_id         4758	EXIST:VMS:FUNCTION:CMS
-ECDSA_METHOD_free                       4759	EXIST::FUNCTION:EC
+ECDSA_METHOD_free                       4759	NOEXIST::FUNCTION:
 X509_VERIFY_PARAM_get_count             4760	EXIST::FUNCTION:
 X509_VERIFY_PARAM_get0_name             4761	EXIST::FUNCTION:
 X509_VERIFY_PARAM_get0                  4762	EXIST::FUNCTION:
@@ -4408,9 +4408,9 @@ BIO_hex_string                          4764	EXIST::FUNCTION:
 X509_VERIFY_PARAM_set_hostflags         4765	EXIST::FUNCTION:
 BUF_strnlen                             4766	EXIST::FUNCTION:
 X509_VERIFY_PARAM_get0_peername         4767	EXIST::FUNCTION:
-ECDSA_METHOD_set_app_data               4768	EXIST::FUNCTION:EC
+ECDSA_METHOD_set_app_data               4768	NOEXIST::FUNCTION:
 sk_deep_copy                            4769	EXIST::FUNCTION:
-ECDSA_METHOD_get_app_data               4770	EXIST::FUNCTION:EC
+ECDSA_METHOD_get_app_data               4770	NOEXIST::FUNCTION:
 X509_VERIFY_PARAM_add1_host             4771	EXIST::FUNCTION:
 EC_GROUP_get_mont_data                  4772	EXIST::FUNCTION:EC
 i2d_re_X509_tbs                         4773	EXIST::FUNCTION:
@@ -4696,3 +4696,27 @@ EVP_MD_meth_dup                         5055	EXIST::FUNCTION:
 HMAC_size                               5056	EXIST::FUNCTION:
 HMAC_CTX_new                            5057	EXIST::FUNCTION:
 HMAC_CTX_free                           5058	EXIST::FUNCTION:
+EC_KEY_OpenSSL                          5059	EXIST::FUNCTION:EC
+EC_KEY_METHOD_set_compute_key           5060	EXIST::FUNCTION:EC
+ENGINE_register_EC                      5061	EXIST::FUNCTION:ENGINE
+EC_KEY_set_default_method               5062	EXIST::FUNCTION:EC
+ENGINE_set_default_EC                   5063	EXIST::FUNCTION:ENGINE
+EC_KEY_METHOD_set_verify                5064	EXIST::FUNCTION:EC
+EC_KEY_METHOD_set_init                  5065	EXIST::FUNCTION:EC
+ENGINE_get_default_EC                   5066	EXIST::FUNCTION:ENGINE
+ENGINE_set_EC                           5067	EXIST::FUNCTION:ENGINE
+EC_KEY_new_method                       5068	EXIST::FUNCTION:EC
+ENGINE_register_all_EC                  5069	EXIST::FUNCTION:ENGINE
+ENGINE_get_EC                           5070	EXIST::FUNCTION:ENGINE
+EC_KEY_METHOD_get_init                  5071	EXIST::FUNCTION:EC
+EC_KEY_METHOD_get_keygen                5072	EXIST::FUNCTION:EC
+EC_KEY_METHOD_free                      5073	EXIST::FUNCTION:EC
+EC_KEY_METHOD_new                       5074	EXIST::FUNCTION:EC
+ECDSA_SIG_get0                          5075	EXIST::FUNCTION:EC
+EC_KEY_METHOD_set_sign                  5076	EXIST::FUNCTION:EC
+EC_KEY_get_default_method               5077	EXIST::FUNCTION:EC
+EC_KEY_METHOD_set_keygen                5078	EXIST::FUNCTION:EC
+EC_KEY_METHOD_get_verify                5079	EXIST::FUNCTION:EC
+ENGINE_unregister_EC                    5080	EXIST::FUNCTION:ENGINE
+EC_KEY_METHOD_get_sign                  5081	EXIST::FUNCTION:EC
+EC_KEY_METHOD_get_compute_key           5082	EXIST::FUNCTION:EC
diff --git a/util/mkdef.pl b/util/mkdef.pl
index 43b2c2b..6a8a096 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -67,7 +67,7 @@ my @known_ossl_platforms = ( "VMS", "WIN32", "WINNT", "OS2" );
 my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
 			 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
 			 "SHA256", "SHA512", "RMD160",
-			 "MDC2", "WHIRLPOOL", "RSA", "DSA", "DH", "EC", "ECDH", "ECDSA", "EC2M",
+			 "MDC2", "WHIRLPOOL", "RSA", "DSA", "DH", "EC", "EC2M",
 			 "HMAC", "AES", "CAMELLIA", "SEED", "GOST",
                          "SCRYPT",
 			 # EC_NISTP_64_GCC_128
@@ -127,7 +127,7 @@ my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf;
 my $no_cast; my $no_whirlpool; my $no_camellia; my $no_seed;
 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_aes; my $no_scrypt;
-my $no_ec; my $no_ecdsa; my $no_ecdh; my $no_engine; my $no_hw;
+my $no_ec; my $no_engine; my $no_hw;
 my $no_fp_api; my $no_static_engine=1; my $no_gmp; my $no_deprecated;
 my $no_sct; my $no_rfc3779; my $no_psk; my $no_cms; my $no_capieng;
 my $no_jpake; my $no_srp; my $no_ec2m; my $no_nistp_gcc; 
@@ -201,8 +201,6 @@ 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-ecdh$/) 	{ $no_ecdh=1; }
 	elsif (/^no-aes$/)	{ $no_aes=1; }
 	elsif (/^no-camellia$/)	{ $no_camellia=1; }
 	elsif (/^no-seed$/)     { $no_seed=1; }
@@ -294,8 +292,6 @@ $crypto.=" include/openssl/rsa.h" ; # unless $no_rsa;
 $crypto.=" include/openssl/dsa.h" ; # unless $no_dsa;
 $crypto.=" include/openssl/dh.h" ; # unless $no_dh;
 $crypto.=" include/openssl/ec.h" ; # unless $no_ec;
-$crypto.=" include/openssl/ecdsa.h" ; # unless $no_ecdsa;
-$crypto.=" include/openssl/ecdh.h" ; # unless $no_ecdh;
 $crypto.=" include/openssl/hmac.h" ; # unless $no_hmac;
 $crypto.=" include/openssl/cmac.h" ;
 
@@ -1188,8 +1184,6 @@ 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 "ECDH" && $no_ecdh) { return 0; }
 			if ($keyword eq "AES" && $no_aes) { return 0; }
 			if ($keyword eq "CAMELLIA" && $no_camellia) { return 0; }
 			if ($keyword eq "SEED" && $no_seed) { return 0; }


More information about the openssl-commits mailing list