Skip to content
  1. Oct 20, 2016
    • Richard Levitte's avatar
      apps: make setup_engine() and release_engine() available always · 0df1caa7
      Richard Levitte authored
      
      
      This removes some #ifndef clutter.
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/1644)
      0df1caa7
    • Richard Levitte's avatar
      If an engine comes up explicitely, it must also come down explicitely · aa01b82c
      Richard Levitte authored
      
      
      In apps/apps.c, one can set up an engine with setup_engine().
      However, we freed the structural reference immediately, which means
      that for engines that don't already have a structural reference
      somewhere else (because it has registered at least one cipher or digest
      algorithm method, and therefore gets a functional reference through the
      ENGINE_set_default() call), we end up returning an invalid reference.
      
      Instead, the function release_engine() is added, and called at the end
      of the routines that call setup_engine().
      
      Originally, the ENGINE API wasn't designed for this to happen, an
      engine had to register at least one algorithm method, and was
      especially expected to register the algorithms corresponding to the
      key types that could be stored and hidden in hardware.  However, it
      turns out that some engines will not register those algorithms with
      the ENGINE_set_{algo}, ENGINE_set_cipher or ENGINE_set_digest
      functions, as they only want the methods to be used for keys, not as
      general crypto accelerator methods.  That may cause ENGINE_set_default()
      to do nothing, and no functional reference is therefore made, leading
      to a premature deallocation of the engine and it thereby becoming
      unavailable when trying to fetch a key.
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/1644)
      aa01b82c
  2. Oct 19, 2016
  3. Oct 18, 2016
  4. Oct 15, 2016
  5. Oct 14, 2016
  6. Oct 13, 2016
  7. Oct 11, 2016
  8. Sep 28, 2016
  9. Sep 26, 2016
  10. Sep 22, 2016
  11. Sep 21, 2016
  12. Sep 20, 2016
  13. Sep 15, 2016