1. 10 10月, 2019 1 次提交
    • R
      Rework how our providers are built · dec95d75
      Richard Levitte 提交于
      We put almost everything in these internal static libraries:
      
      libcommon               Block building code that can be used by all
                              our implementations, legacy and non-legacy
                              alike.
      libimplementations      All non-legacy algorithm implementations and
                              only them.  All the code that ends up here is
                              agnostic to the definitions of FIPS_MODE.
      liblegacy               All legacy implementations.
      
      libnonfips              Support code for the algorithm implementations.
                              Built with FIPS_MODE undefined.  Any code that
                              checks that FIPS_MODE isn't defined must end
                              up in this library.
      libfips                 Support code for the algorithm implementations.
                              Built with FIPS_MODE defined.  Any code that
                              checks that FIPS_MODE is defined must end up
                              in this library.
      
      The FIPS provider module is built from providers/fips/*.c and linked
      with libimplementations, libcommon and libfips.
      
      The Legacy provider module is built from providers/legacy/*.c and
      linked with liblegacy, libcommon and libcrypto.
      If module building is disabled, the object files from liblegacy and
      libcommon are added to libcrypto and the Legacy provider becomes a
      built-in provider.
      
      The Default provider module is built-in, so it ends up being linked
      with libimplementations, libcommon and libnonfips.  For libcrypto in
      form of static library, the object files from those other libraries
      are simply being added to libcrypto.
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/10088)
      dec95d75
  2. 28 6月, 2019 1 次提交
  3. 03 5月, 2019 1 次提交
  4. 29 3月, 2019 1 次提交
  5. 28 9月, 2018 1 次提交
  6. 04 1月, 2018 1 次提交
    • D
      crypto/rand: rename drbg_rand.c to drbg_ctr.c · 4e585e72
      Dr. Matthias St. Pierre 提交于
      The generic part of the FIPS DRBG was implemented in fips_drbg_lib.c and the
      algorithm specific parts in fips_drbg_<alg>.c for <alg> in {ctr, hash, hmac}.
      Additionally, there was the module fips_drbg_rand.c which contained 'gluing'
      code between the RAND_METHOD api and the FIPS DRBG.
      
      When the FIPS code was ported to master in #4019, for some reason the ctr-drbg
      implementation from fips_drbg_ctr.c ended up in drbg_rand.c instead of drbg_ctr.c.
      
      This commit renames the module drbg_rand.c back to drbg_ctr.c, thereby restoring
      a simple relationship between the original fips modules and the drbg modules
      in master:
      
       fips_drbg_lib.c    =>  drbg_lib.c    /* generic part of implementation */
       fips_drbg_<alg>.c  =>  drbg_<alg>.c  /* algorithm specific implementations */
      Reviewed-by: NPaul Dale <paul.dale@oracle.com>
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/4998)
      4e585e72
  7. 03 8月, 2017 1 次提交
    • R
      Switch from ossl_rand to DRBG rand · 75e2c877
      Rich Salz 提交于
      If RAND_add wraps around, XOR with existing. Add test to drbgtest that
      does the wrap-around.
      
      Re-order seeding and stop after first success.
      
      Add RAND_poll_ex()
      
      Use the DF and therefore lower RANDOMNESS_NEEDED.  Also, for child DRBG's,
      mix in the address as the personalization bits.
      
      Centralize the entropy callbacks, from drbg_lib to rand_lib.
      (Conceptually, entropy is part of the enclosing application.)
      Thanks to Dr. Matthias St Pierre for the suggestion.
      
      Various code cleanups:
          -Make state an enum; inline RANDerr calls.
          -Add RAND_POLL_RETRIES (thanks Pauli for the idea)
          -Remove most RAND_seed calls from rest of library
          -Rename DRBG_CTX to RAND_DRBG, etc.
          -Move some code from drbg_lib to drbg_rand; drbg_lib is now only the
           implementation of NIST DRBG.
          -Remove blocklength
      Reviewed-by: NPaul Dale <paul.dale@oracle.com>
      (Merged from https://github.com/openssl/openssl/pull/4019)
      75e2c877
  8. 19 7月, 2017 1 次提交
  9. 15 7月, 2017 1 次提交
    • R
      Start to overhaul RAND API · da8fc25a
      Rich Salz 提交于
      Remove unused rand_hw_xor, MD/EVP indirection
      Make rand_pseudo same as rand.
      Cleanup formatting and ifdef control
      Rename some things:
          - rand_meth to openssl_rand_meth; make it global
          - source file
          - lock/init functions, start per-thread state
          - ossl_meth_init to ossl_rand_init
      Put state into RAND_STATE structure
      And put OSSL_RAND_STATE into ossl_typ.h
      Use "randomness" instead of "entropy"
      Reviewed-by: NBen Kaduk <kaduk@mit.edu>
      (Merged from https://github.com/openssl/openssl/pull/3758)
      da8fc25a
  10. 18 3月, 2016 1 次提交
  11. 10 2月, 2016 1 次提交
    • R
      unified build scheme: add a "unified" template for VMS descrip.mms · e84193e4
      Richard Levitte 提交于
      As part of this, change util/mkdef.pl to stop adding libraries to
      depend on in its output.  mkdef.pl should ONLY output a symbol
      vector.
      
      Because symbol names can't be longer than 31 characters, we use the
      compiler to shorten those that are longer down to 23 characters plus
      an 8 character CRC.  To make sure users of our header files will pick
      up on that automatically, add the DEC C supported extra headers files
      __decc_include_prologue.h and __decc_include_epilogue.h.
      
      Furthermore, we add a config.com, so VMS people can configure just as
      comfortably as any Unix folks, thusly:
      
          @config
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      e84193e4
  12. 01 2月, 2016 1 次提交