mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 02:47:31 +09:00
Issue #1338 - Part 2: Update NSS to 3.48-RTM
This commit is contained in:
parent
1a92143e68
commit
c57cac24e8
885 changed files with 1650639 additions and 59530 deletions
84
security/nss/gtests/pk11_gtest/pk11_module_unittest.cc
Normal file
84
security/nss/gtests/pk11_gtest/pk11_module_unittest.cc
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include <memory>
|
||||
#include "nss.h"
|
||||
#include "pk11pub.h"
|
||||
#include "prerror.h"
|
||||
#include "prsystem.h"
|
||||
#include "secoid.h"
|
||||
|
||||
#include "nss_scoped_ptrs.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "databuffer.h"
|
||||
|
||||
namespace nss_test {
|
||||
|
||||
class Pkcs11ModuleTest : public ::testing::Test {
|
||||
public:
|
||||
Pkcs11ModuleTest() {}
|
||||
|
||||
void SetUp() override {
|
||||
ASSERT_EQ(SECSuccess, SECMOD_AddNewModule("Pkcs11ModuleTest", DLL_PREFIX
|
||||
"pkcs11testmodule." DLL_SUFFIX,
|
||||
0, 0))
|
||||
<< PORT_ErrorToName(PORT_GetError());
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
int type;
|
||||
ASSERT_EQ(SECSuccess, SECMOD_DeleteModule("Pkcs11ModuleTest", &type));
|
||||
ASSERT_EQ(SECMOD_EXTERNAL, type);
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(Pkcs11ModuleTest, LoadUnload) {
|
||||
ScopedSECMODModule module(SECMOD_FindModule("Pkcs11ModuleTest"));
|
||||
EXPECT_NE(nullptr, module);
|
||||
}
|
||||
|
||||
TEST_F(Pkcs11ModuleTest, ListSlots) {
|
||||
ScopedPK11SlotList slots(
|
||||
PK11_GetAllTokens(CKM_INVALID_MECHANISM, PR_FALSE, PR_FALSE, nullptr));
|
||||
EXPECT_NE(nullptr, slots);
|
||||
|
||||
PK11SlotListElement* element = PK11_GetFirstSafe(slots.get());
|
||||
EXPECT_NE(nullptr, element);
|
||||
|
||||
// These tokens are always present.
|
||||
const std::vector<std::string> kSlotsWithToken = {
|
||||
"NSS Internal Cryptographic Services",
|
||||
"NSS User Private Key and Certificate Services",
|
||||
"Test PKCS11 Public Certs Slot", "Test PKCS11 Slot 二"};
|
||||
std::vector<std::string> foundSlots;
|
||||
|
||||
do {
|
||||
std::string name = PK11_GetSlotName(element->slot);
|
||||
foundSlots.push_back(name);
|
||||
std::cerr << "loaded slot: " << name << std::endl;
|
||||
} while ((element = PK11_GetNextSafe(slots.get(), element, PR_FALSE)) !=
|
||||
nullptr);
|
||||
|
||||
std::sort(foundSlots.begin(), foundSlots.end());
|
||||
EXPECT_TRUE(std::equal(kSlotsWithToken.begin(), kSlotsWithToken.end(),
|
||||
foundSlots.begin()));
|
||||
}
|
||||
|
||||
TEST_F(Pkcs11ModuleTest, PublicCertificatesToken) {
|
||||
const std::string kRegularToken = "Test PKCS11 Tokeñ 2 Label";
|
||||
const std::string kPublicCertificatesToken = "Test PKCS11 Public Certs Token";
|
||||
|
||||
ScopedPK11SlotInfo slot1(PK11_FindSlotByName(kRegularToken.c_str()));
|
||||
EXPECT_NE(nullptr, slot1);
|
||||
EXPECT_FALSE(PK11_IsFriendly(slot1.get()));
|
||||
|
||||
ScopedPK11SlotInfo slot2(
|
||||
PK11_FindSlotByName(kPublicCertificatesToken.c_str()));
|
||||
EXPECT_NE(nullptr, slot2);
|
||||
EXPECT_TRUE(PK11_IsFriendly(slot2.get()));
|
||||
}
|
||||
|
||||
} // namespace nss_test
|
||||
Loading…
Add table
Add a link
Reference in a new issue