Skip to content
  • Atousa Pahlevan Duprat's avatar
    sha1: provide another level of indirection for the SHA-1 functions · 3bc72fde
    Atousa Pahlevan Duprat authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    The git source uses git_SHA1_Update() and friends to call into the
    code that computes the hashes.  Traditionally, we used to map these
    directly to underlying implementation of the SHA-1 hash (e.g.
    SHA1_Update() from OpenSSL or blk_SHA1_Update() from block-sha1/).
    
    This arrangement however makes it hard to tweak behaviour of the
    underlying implementation without fully replacing.  If we want to
    introduce a tweaked_SHA1_Update() wrapper to implement the "Update"
    in a slightly different way, for example, the implementation of the
    wrapper still would want to call into the underlying implementation,
    but tweaked_SHA1_Update() cannot call git_SHA1_Update() to get to
    the underlying implementation (often but not always SHA1_Update()).
    
    Add another level of indirection that maps platform_SHA1_Update()
    and friends to their underlying implementations, and by default make
    git_SHA1_Update() and friends map to platform_SHA1_* functions.
    
    Doing it this way will later allow us to map git_SHA1_Update() to
    tweaked_SHA1_Update(), and the latter can use platform_SHA1_Update()
    in its implementation.
    
    Signed-off-by: default avatarAtousa Pahlevan Duprat <apahlevan@ieee.org>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    3bc72fde