aboutsummaryrefslogtreecommitdiff
path: root/bpkg/checksum.hxx
blob: 54e5b3cfa2afe9b919af7f2ad7a472fcb9400e48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// file      : bpkg/checksum.hxx -*- C++ -*-
// license   : MIT; see accompanying LICENSE file

#ifndef BPKG_CHECKSUM_HXX
#define BPKG_CHECKSUM_HXX

#include <bpkg/types.hxx>
#include <bpkg/utility.hxx>

#include <bpkg/common-options.hxx>

namespace bpkg
{
  // Calculate SHA256 sum of the specified memory buffer in binary mode.
  //
  inline string
  sha256sum (const char* buf, size_t n) {return sha256 (buf, n).string ();}

  // The same but for a file. Issue diagnostics and throw failed if anything
  // goes wrong.
  //
  // Note that unlike the other overloads, this function runs the sha256
  // program underneath. The reason for this is that the program can be
  // optimized for the platform.
  //
  string
  sha256sum (const common_options&, const path& file);
}

#endif // BPKG_CHECKSUM_HXX