blob: 4d93391859d8d344dae0f786e58ed8ca2360fcfb [file] [log] [blame]
// Copyright 2022 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "libhwsec-foundation/crypto/scrypt.h"
#include <openssl/rsa.h>
#include <base/base64.h>
#include <base/check.h>
#include <brillo/secure_blob.h>
#include <crypto/scoped_openssl_types.h>
#include <gtest/gtest.h>
#include "libhwsec-foundation/crypto/secure_blob_util.h"
using brillo::SecureBlob;
namespace hwsec_foundation {
TEST(ScryptTest, DeriveSecretsScrypt) {
brillo::SecureBlob passkey("passkey");
brillo::SecureBlob salt("salt");
const size_t secret_size = 16;
brillo::SecureBlob result1(secret_size), result2(secret_size),
result3(secret_size);
EXPECT_TRUE(
DeriveSecretsScrypt(passkey, salt, {&result1, &result2, &result3}));
EXPECT_NE(brillo::SecureBlob(), result1);
EXPECT_NE(brillo::SecureBlob(), result2);
EXPECT_NE(brillo::SecureBlob(), result3);
}
TEST(ScryptTest, DeriveSecretsScryptEmptySecrets) {
brillo::SecureBlob passkey("passkey");
brillo::SecureBlob salt("salt");
std::vector<brillo::SecureBlob*> gen_secrets;
EXPECT_FALSE(DeriveSecretsScrypt(passkey, salt, gen_secrets));
brillo::SecureBlob empty_blob;
EXPECT_FALSE(DeriveSecretsScrypt(passkey, salt, {&empty_blob}));
}
} // namespace hwsec_foundation