Index: chromeos/login/auth/key_unittest.cc |
diff --git a/chromeos/login/auth/key_unittest.cc b/chromeos/login/auth/key_unittest.cc |
index 76e38cb3fe482824d86802cc68bc9351330559fb..26a6c8d808fa4fada9d9a07520bbf4cff3c3ad0a 100644 |
--- a/chromeos/login/auth/key_unittest.cc |
+++ b/chromeos/login/auth/key_unittest.cc |
@@ -44,4 +44,23 @@ TEST(KeyTest, TransformToSaltedAES2561234) { |
EXPECT_EQ("GUkNnvqoULf/cXbZscVUnANmLBB0ovjGZsj1sKzP5BE=", key.GetSecret()); |
} |
+TEST(KeyTest, TransformToSaltedSHA256) { |
+ Key key(kPassword); |
+ key.Transform(Key::KEY_TYPE_SALTED_SHA256, kSalt); |
+ EXPECT_EQ(Key::KEY_TYPE_SALTED_SHA256, key.GetKeyType()); |
+ EXPECT_EQ("WwGUF3Hkf6QIOAqmdXA/TyScTFDo4d+ow5xfof0zGdo=", key.GetSecret()); |
+} |
+ |
+// The values in the KeyType enum must never change because they are stored as |
+// ints in the user's cryptohome key metadata. |
+TEST(KeyTest, KeyTypeStable) { |
+ EXPECT_EQ(0, Key::KEY_TYPE_PASSWORD_PLAIN); |
+ EXPECT_EQ(1, Key::KEY_TYPE_SALTED_SHA256_TOP_HALF); |
+ EXPECT_EQ(2, Key::KEY_TYPE_SALTED_PBKDF2_AES256_1234); |
+ EXPECT_EQ(3, Key::KEY_TYPE_SALTED_SHA256); |
+ // The sentinel does not have to remain stable. It should be adjusted whenever |
+ // a new key type is added. |
+ EXPECT_EQ(4, Key::KEY_TYPE_COUNT); |
+} |
+ |
} // namespace chromeos |