File: hash.hpp

package info (click to toggle)
higan 098-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 11,904 kB
  • ctags: 13,286
  • sloc: cpp: 108,285; ansic: 778; makefile: 32; sh: 18
file content (33 lines) | stat: -rw-r--r-- 622 bytes parent folder | download
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
31
32
33
#pragma once

namespace nall {

namespace Hash {
  auto CRC16::digest() -> string {
    return hex(value(), 4L);
  }

  auto CRC32::digest() -> string {
    return hex(value(), 8L);
  }

  auto SHA256::digest() const -> string {
    string result;
    for(auto n : value()) result.append(hex(n, 2L));
    return result;
  }
}

auto crc16(rstring self) -> string {
  return Hash::CRC16(self.data(), self.size()).digest();
}

auto crc32(rstring self) -> string {
  return Hash::CRC32(self.data(), self.size()).digest();
}

auto sha256(rstring self) -> string {
  return Hash::SHA256(self.data(), self.size()).digest();
}

}