diff options
Diffstat (limited to 'crypto/ec_private_key_nss.cc')
-rw-r--r-- | crypto/ec_private_key_nss.cc | 38 |
1 files changed, 2 insertions, 36 deletions
diff --git a/crypto/ec_private_key_nss.cc b/crypto/ec_private_key_nss.cc index 5092010..5f8a4e6 100644 --- a/crypto/ec_private_key_nss.cc +++ b/crypto/ec_private_key_nss.cc @@ -15,7 +15,6 @@ extern "C" { #include <pk11pub.h> #include <secmod.h> -#include "base/lazy_instance.h" #include "base/logging.h" #include "base/memory/scoped_ptr.h" #include "crypto/nss_util.h" @@ -25,34 +24,6 @@ extern "C" { namespace { -PK11SlotInfo* GetTempKeySlot() { - return PK11_GetInternalSlot(); -} - -class EllipticCurveSupportChecker { - public: - EllipticCurveSupportChecker() { - // NOTE: we can do this check here only because we use the NSS internal - // slot. If we support other slots in the future, checking whether they - // support ECDSA may block NSS, and the value may also change as devices are - // inserted/removed, so we would need to re-check on every use. - crypto::EnsureNSSInit(); - crypto::ScopedPK11Slot slot(GetTempKeySlot()); - supported_ = PK11_DoesMechanism(slot.get(), CKM_EC_KEY_PAIR_GEN) && - PK11_DoesMechanism(slot.get(), CKM_ECDSA); - } - - bool Supported() { - return supported_; - } - - private: - bool supported_; -}; - -static base::LazyInstance<EllipticCurveSupportChecker>::Leaky - g_elliptic_curve_supported = LAZY_INSTANCE_INITIALIZER; - // Copied from rsa_private_key_nss.cc. static bool ReadAttribute(SECKEYPrivateKey* key, CK_ATTRIBUTE_TYPE type, @@ -82,15 +53,10 @@ ECPrivateKey::~ECPrivateKey() { } // static -bool ECPrivateKey::IsSupported() { - return g_elliptic_curve_supported.Get().Supported(); -} - -// static ECPrivateKey* ECPrivateKey::Create() { EnsureNSSInit(); - ScopedPK11Slot slot(GetTempKeySlot()); + ScopedPK11Slot slot(PK11_GetInternalSlot()); if (!slot) return nullptr; @@ -140,7 +106,7 @@ ECPrivateKey* ECPrivateKey::CreateFromEncryptedPrivateKeyInfo( const std::vector<uint8>& subject_public_key_info) { EnsureNSSInit(); - ScopedPK11Slot slot(GetTempKeySlot()); + ScopedPK11Slot slot(PK11_GetInternalSlot()); if (!slot) return nullptr; |