differential code coverage report with master
Current view: top level - source/detail/cryptography - hash.cpp (source / functions) Coverage Total Hit UBC CBC
Current: coverage.info Lines: 83.3 % 12 10 2 10
Current Date: 2025-12-07 02:01:22 Functions: 100.0 % 2 2 2
Baseline: coverage_master.info Branches: 57.1 % 7 4 6 8
Baseline Date: 2025-12-07 02:01:21

             Branch data    TLA  Line data    Source code
       1                 :                : // Copyright (c) 2017-2022 Thomas Fussell
       2                 :                : // Copyright (c) 2024-2025 xlnt-community
       3                 :                : //
       4                 :                : // Permission is hereby granted, free of charge, to any person obtaining a copy
       5                 :                : // of this software and associated documentation files (the "Software"), to deal
       6                 :                : // in the Software without restriction, including without limitation the rights
       7                 :                : // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
       8                 :                : // copies of the Software, and to permit persons to whom the Software is
       9                 :                : // furnished to do so, subject to the following conditions:
      10                 :                : //
      11                 :                : // The above copyright notice and this permission notice shall be included in
      12                 :                : // all copies or substantial portions of the Software.
      13                 :                : //
      14                 :                : // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      15                 :                : // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      16                 :                : // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
      17                 :                : // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      18                 :                : // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      19                 :                : // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
      20                 :                : // THE SOFTWARE
      21                 :                : //
      22                 :                : // @license: http://www.opensource.org/licenses/mit-license.php
      23                 :                : // @author: see AUTHORS file
      24                 :                : 
      25                 :                : #include <detail/cryptography/hash.hpp>
      26                 :                : #include <detail/cryptography/sha.hpp>
      27                 :                : 
      28                 :                : namespace xlnt {
      29                 :                : namespace detail {
      30                 :                : 
      31                 :CBC     1750499 : void hash(hash_algorithm algorithm, const std::vector<std::uint8_t> &input, std::vector<std::uint8_t> &output)
      32                 :                : {
      33         [ +  + ]:        1750499 :     if (algorithm == hash_algorithm::sha512)
      34                 :                :     {
      35                 :         700168 :         xlnt::detail::sha512(input, output);
      36                 :                :     }
      37         [ +  - ]:        1050331 :     else if (algorithm == hash_algorithm::sha1)
      38                 :                :     {
      39                 :        1050331 :         xlnt::detail::sha1(input, output);
      40                 :                :     }
      41                 :                :     else
      42                 :                :     {
      43         [ #  # ]:UBC           0 :         throw xlnt::exception("unsupported hash algorithm");
      44                 :                :     }
      45                 :CBC     1750499 : }
      46                 :                : 
      47                 :            499 : std::vector<std::uint8_t> hash(hash_algorithm algorithm, const std::vector<std::uint8_t> &input)
      48                 :                : {
      49                 :            499 :     auto output = std::vector<std::uint8_t>();
      50            [ + ]:            499 :     hash(algorithm, input, output);
      51                 :                : 
      52                 :            499 :     return output;
      53                 :UBC           0 : }
      54                 :                : 
      55                 :                : }; // namespace detail
      56                 :                : }; // namespace xlnt
        

Generated by: LCOV version 2.3.1-beta