File: HashTest.cpp

package info (click to toggle)
cryfs 1.0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 28,404 kB
  • sloc: cpp: 150,188; asm: 10,493; python: 1,455; javascript: 65; sh: 50; makefile: 17; xml: 7
file content (45 lines) | stat: -rw-r--r-- 1,521 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
34
35
36
37
38
39
40
41
42
43
44
45
#include <gtest/gtest.h>
#include <cpp-utils/crypto/hash/Hash.h>
#include <cpp-utils/data/DataFixture.h>

using namespace cpputils::hash;
using cpputils::DataFixture;
using cpputils::Data;

TEST(HashTest, generateSalt_isIndeterministic) {
  EXPECT_NE(generateSalt(), generateSalt());
}

TEST(HashTest, hash_setsSaltCorrectly) {
  const Salt salt = generateSalt();
  const Data data = DataFixture::generate(1024);
  EXPECT_EQ(salt, hash(data, salt).salt);
}

TEST(HashTest, hash_isDeterministicWithSameDataSameSalt) {
  const Salt salt = generateSalt();
  const Data data = DataFixture::generate(1024);
  EXPECT_EQ(hash(data, salt).digest, hash(data, salt).digest);
}

TEST(HashTest, hash_isIndeterministicWithSameDataDifferentSalt) {
  const Salt salt1 = generateSalt();
  const Salt salt2 = generateSalt();
  const Data data = DataFixture::generate(1024);
  EXPECT_NE(hash(data, salt1).digest, hash(data, salt2).digest);
}

TEST(HashTest, hash_isIndeterministicWithDifferentDataSameSalt) {
  const Salt salt = generateSalt();
  const Data data1 = DataFixture::generate(1024, 1);
  const Data data2 = DataFixture::generate(1024, 2);
  EXPECT_NE(hash(data1, salt).digest, hash(data2, salt).digest);
}

TEST(HashTest, hash_isIndeterministicWithDifferentDataDifferentSalt) {
  const Salt salt1 = generateSalt();
  const Salt salt2 = generateSalt();
  const Data data1 = DataFixture::generate(1024, 1);
  const Data data2 = DataFixture::generate(1024, 2);
  EXPECT_NE(hash(data1, salt1).digest, hash(data2, salt2).digest);
}