Browse Source

[trac781] better way to test (both vector and buffer)

Jelte Jansen 14 years ago
parent
commit
c34d8eb763
1 changed files with 47 additions and 38 deletions
  1. 47 38
      src/lib/crypto/tests/crypto_unittests.cc

+ 47 - 38
src/lib/crypto/tests/crypto_unittests.cc

@@ -404,12 +404,20 @@ TEST(CryptoTest, HMAC_SHA256_RFC2202_SIGN) {
 }
 }
 
 
 namespace {
 namespace {
-    std::vector<uint8_t>
+    size_t
-    createSigForLengthCheck(HMAC::HashAlgorithm alg,
+    sigVectorLength(HMAC::HashAlgorithm alg, size_t len) {
-                            size_t len) {
         HMAC hmac_sign("asdf", 4, alg);
         HMAC hmac_sign("asdf", 4, alg);
         hmac_sign.update("asdf", 4);
         hmac_sign.update("asdf", 4);
-        return hmac_sign.sign(len);
+        std::vector<uint8_t> sig = hmac_sign.sign(len);
+        return sig.size();
+    }
+    size_t
+    sigBufferLength(HMAC::HashAlgorithm alg, size_t len) {
+        HMAC hmac_sign("asdf", 4, alg);
+        hmac_sign.update("asdf", 4);
+        OutputBuffer sig(0);
+        hmac_sign.sign(sig, len);
+        return sig.getLength();
     }
     }
 }
 }
 
 
@@ -417,40 +425,41 @@ TEST(CryptoTest, HMACSigLengthArgument)
 {
 {
     std::vector<uint8_t> sig;
     std::vector<uint8_t> sig;
 
 
-    // Default size
+    EXPECT_EQ(16, sigVectorLength(HMAC::MD5, 0));
-    sig = createSigForLengthCheck(HMAC::MD5, 0);
+    EXPECT_EQ(8, sigVectorLength(HMAC::MD5, 8));
-    EXPECT_EQ(16, sig.size());
+    EXPECT_EQ(16, sigVectorLength(HMAC::MD5, 16));
-    sig = createSigForLengthCheck(HMAC::MD5, 12);
+    EXPECT_EQ(16, sigVectorLength(HMAC::MD5, 40));
-    EXPECT_EQ(12, sig.size());
+    EXPECT_EQ(16, sigVectorLength(HMAC::MD5, 2000));
-    sig = createSigForLengthCheck(HMAC::MD5, 16);
+
-    EXPECT_EQ(16, sig.size());
+    EXPECT_EQ(20, sigBufferLength(HMAC::SHA1, 0));
-    sig = createSigForLengthCheck(HMAC::MD5, 24);
+    EXPECT_EQ(8, sigBufferLength(HMAC::SHA1, 8));
-    EXPECT_EQ(16, sig.size());
+    EXPECT_EQ(20, sigBufferLength(HMAC::SHA1, 20));
-    sig = createSigForLengthCheck(HMAC::MD5, 12345);
+    EXPECT_EQ(20, sigBufferLength(HMAC::SHA1, 40));
-    EXPECT_EQ(16, sig.size());
+    EXPECT_EQ(20, sigBufferLength(HMAC::SHA1, 2000));
-
+
-    sig = createSigForLengthCheck(HMAC::SHA1, 0);
+    EXPECT_EQ(32, sigBufferLength(HMAC::SHA256, 0));
-    EXPECT_EQ(20, sig.size());
+    EXPECT_EQ(8, sigBufferLength(HMAC::SHA256, 8));
-    sig = createSigForLengthCheck(HMAC::SHA1, 12);
+    EXPECT_EQ(32, sigBufferLength(HMAC::SHA256, 32));
-    EXPECT_EQ(12, sig.size());
+    EXPECT_EQ(32, sigBufferLength(HMAC::SHA256, 40));
-    sig = createSigForLengthCheck(HMAC::SHA1, 20);
+    EXPECT_EQ(32, sigBufferLength(HMAC::SHA256, 3200));
-    EXPECT_EQ(20, sig.size());
+
-    sig = createSigForLengthCheck(HMAC::SHA1, 24);
+    EXPECT_EQ(16, sigBufferLength(HMAC::MD5, 0));
-    EXPECT_EQ(20, sig.size());
+    EXPECT_EQ(8, sigBufferLength(HMAC::MD5, 8));
-    sig = createSigForLengthCheck(HMAC::SHA1, 12345);
+    EXPECT_EQ(16, sigBufferLength(HMAC::MD5, 16));
-    EXPECT_EQ(20, sig.size());
+    EXPECT_EQ(16, sigBufferLength(HMAC::MD5, 40));
-
+    EXPECT_EQ(16, sigBufferLength(HMAC::MD5, 2000));
-    sig = createSigForLengthCheck(HMAC::SHA256, 0);
+
-    EXPECT_EQ(32, sig.size());
+    EXPECT_EQ(20, sigBufferLength(HMAC::SHA1, 0));
-    sig = createSigForLengthCheck(HMAC::SHA256, 12);
+    EXPECT_EQ(8, sigBufferLength(HMAC::SHA1, 8));
-    EXPECT_EQ(12, sig.size());
+    EXPECT_EQ(20, sigBufferLength(HMAC::SHA1, 20));
-    sig = createSigForLengthCheck(HMAC::SHA256, 32);
+    EXPECT_EQ(20, sigBufferLength(HMAC::SHA1, 40));
-    EXPECT_EQ(32, sig.size());
+    EXPECT_EQ(20, sigBufferLength(HMAC::SHA1, 2000));
-    sig = createSigForLengthCheck(HMAC::SHA256, 36);
+
-    EXPECT_EQ(32, sig.size());
+    EXPECT_EQ(32, sigBufferLength(HMAC::SHA256, 0));
-    sig = createSigForLengthCheck(HMAC::SHA256, 12345);
+    EXPECT_EQ(8, sigBufferLength(HMAC::SHA256, 8));
-    EXPECT_EQ(32, sig.size());
+    EXPECT_EQ(32, sigBufferLength(HMAC::SHA256, 32));
-
+    EXPECT_EQ(32, sigBufferLength(HMAC::SHA256, 40));
+    EXPECT_EQ(32, sigBufferLength(HMAC::SHA256, 3200));
 }
 }
 
 
 TEST(CryptoTest, BadKey) {
 TEST(CryptoTest, BadKey) {