Commit af6c3947 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Gtz Babin-Ebell's OpenSSL ENGINE patch

parent 558d12d7
Loading
Loading
Loading
Loading
+37 −1
Original line number Diff line number Diff line
@@ -6,10 +6,46 @@

                               History of Changes

Daniel (17 December 2001)
- Götz Babin-Ebell dove into the dark dungeons of the OpenSSL ENGINE stuff and
  made libcurl support it! This allows libcurl to do SSL connections with the
  private key stored in external hardware.

  To make this good, he had to add a bunch of new library options that'll be
  useful to others as well:

   CURLOPT_SSLCERTTYPE  set SSL cert type (PEM/DER)
   CURLOPT_SSLKEY       set SSL private key (file)
   CURLOPT_SSLKEYTYPE:  set SSL key type (PEM/DER/ENG)
   CURLOPT_SSLKEYPASSWD: set the passphrase for your private key
                          (CURLOPT_SSLCERTPASSWD is an alias)
   CURLOPT_SSLENGINE:   set the name of the crypto engine
                        (returns CURLE_SSL_ENGINE_NOTFOUND on error)
   CURLOPT_SSLENGINE_DEFAULT: set the default engine

  There are two new failure codes:

   CURLE_SSL_ENGINE_NOTFOUND
   CURLE_SSL_ENGINE_SETFAILED

Daniel (14 December 2001)
- We have "branched" the source-tree at a few places. Checkout the CVS sources
  with the 'multi-dev' label to get the latest multi interface development
  tree. The idea is to only branch affected files and to restrict the branch
  to the v8 multi interface development only.

  *NOTE* that if we get bug reports and patches etc, we might need to apply
  them in both branches!

  The multi-dev branch is what we are gonna use as main branch in the future
  if it turns out successful. Thus, we must maintain both now in case we need
  them. The current main branch will be used if we want to release a 7.9.3 or
  perhaps a 7.10 release before version 8. Which is very likely.

- Marcus Webster provided code for the new CURLFORM_CONTENTHEADER option for
  curl_formadd(), that lets an application add a set of headers for that
  particular part in a multipart/form-post. We need to add 
  particular part in a multipart/form-post. He also provided a section to the
  man page that describes the new option.

Daniel (11 December 2001)
- Ben Greear made me aware of the fact that the Curl_failf() usage internally
+4 −0
Original line number Diff line number Diff line
@@ -392,6 +392,10 @@ else
        OPENSSL_ENABLED=1)
    fi

    dnl Check for the OpenSSL engine header, it is kind of "separated"
    dnl from the main SSL check
    AC_CHECK_HEADERS(openssl/engine.h)

    AC_SUBST(OPENSSL_ENABLED)

  fi
+1 −0
Original line number Diff line number Diff line
@@ -78,3 +78,4 @@ that have contributed with non-trivial parts:
 - John Lask <johnlask@hotmail.com>
 - Eric Lavigne <erlavigne@wanadoo.fr>
 - Marcus Webster <marcus.webster@phocis.com>
 - Gtz Babin-Ebell <babinebell@trustcenter.de>
+24 −3
Original line number Diff line number Diff line
@@ -156,6 +156,8 @@ typedef enum {
  CURLE_OBSOLETE,	         /* 50 - removed after 7.7.3 */
  CURLE_SSL_PEER_CERTIFICATE,    /* 51 - peer's certificate wasn't ok */
  CURLE_GOT_NOTHING,             /* 52 - when this is a specific error */
  CURLE_SSL_ENGINE_NOTFOUND,     /* 53 - SSL crypto engine not found */
  CURLE_SSL_ENGINE_SETFAILED,    /* 54 - can not set SSL crypto engine as default */

  CURL_LAST /* never use! */
} CURLcode;
@@ -279,8 +281,10 @@ typedef enum {
  /* name of the file keeping your private SSL-certificate */
  CINIT(SSLCERT, OBJECTPOINT, 25),

  /* password for the SSL-certificate */
  /* password for the SSL-private key, keep this for compatibility */
  CINIT(SSLCERTPASSWD, OBJECTPOINT, 26),
  /* password for the SSL private key */
  CINIT(SSLKEYPASSWD, OBJECTPOINT, 26),
  
  /* send TYPE parameter? */
  CINIT(CRLF, LONG, 27),
@@ -467,6 +471,23 @@ typedef enum {
     PASV command. */     
  CINIT(FTP_USE_EPSV, LONG, 85),

  /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */
  CINIT(SSLCERTTYPE, OBJECTPOINT, 86),

  /* name of the file keeping your private SSL-key */
  CINIT(SSLKEY, OBJECTPOINT, 87),

  /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */
  CINIT(SSLKEYTYPE, OBJECTPOINT, 88),

  /* crypto engine for the SSL-sub system */
  CINIT(SSLENGINE, OBJECTPOINT, 89),

  /* set the crypto engine for the SSL-sub system as default
     the param has no meaning...
   */
  CINIT(SSLENGINE_DEFAULT, LONG, 90),

  CURLOPT_LASTENTRY /* the last unusued */
} CURLoption;

+8 −0
Original line number Diff line number Diff line
#ifdef MALLOCDEBUG

#include "setup.h"

#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif

#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <stdio.h>
#ifdef HAVE_MEMORY_H
#include <memory.h>
Loading