Skip to content
  1. Sep 09, 2001
  2. Sep 08, 2001
    • Dr. Stephen Henson's avatar
      · c5220abc
      Dr. Stephen Henson authored
      Replace old (and invalid) copyright notice.
      c5220abc
  3. Sep 07, 2001
  4. Sep 06, 2001
  5. Sep 05, 2001
  6. Sep 04, 2001
  7. Sep 03, 2001
    • Geoff Thorpe's avatar
      This changes the existing hardware ENGINE implementations to dynamically · 2dc5383a
      Geoff Thorpe authored
      declare their own error strings so that they can be more easily compiled as
      external shared-libraries if desired. Also, each implementation has been
      given canonical "dynamic" support at the base of each file and is only
      built if the ENGINE_DYNAMIC_SUPPORT symbol is defined.
      
      Also, use "void" prototypes rather than empty prototypes in engine_int.h.
      
      This does not yet;
        (i) remove error strings when unloading,
       (ii) remove the redundant ENGINE_R_*** codes (though ENGINE_F_*** codes
            have gone), or
      (iii) provide any instructions on how to build shared-library ENGINEs or
            use them.
      
      All are on their way.
      2dc5383a
    • Geoff Thorpe's avatar
      This change adds a new ENGINE called "dynamic" that allows new ENGINE · 9391f977
      Geoff Thorpe authored
      implementations to be loaded from self-contained shared-libraries. It also
      provides (in engine.h) definitions and macros to help implement a
      self-contained ENGINE. Version control is handled in a way whereby the
      loader or loadee can veto the load depending on any objections it has with
      each other's declared interface level. The way this is currently
      implemented assumes a veto will only take place when one side notices the
      other's interface level is too *old*. If the other side is newer, it should
      be assumed the newer version knows better whether to veto the load or not.
      Version checking (like other "dynamic" settings) can be controlled using
      the "dynamic" ENGINE's control commands. Also, the semantics for the
      loading allow a shared-library ENGINE implementation to handle differing
      interface levels on the fly (eg. loading secondary shared-libraries
      depending on the versions required).
      
      Code will be added soon to the existing ENGINEs to illustrate how they can
      be built as external libraries rather than building statically into
      libcrypto.
      
      NB: Applications wanting to support "dynamic"-loadable ENGINEs will need to
      add support for ENGINE "control commands". See apps/engine.c for an example
      of this, and use "apps/openssl engine -vvvv" to test or experiment.
      9391f977