// Copyright (c) 2012 The Chromium 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 "crypto/ec_signature_creator.h" #include "base/check.h" #include "base/memory/ptr_util.h" #include "crypto/ec_signature_creator_impl.h" namespace crypto { namespace { ECSignatureCreatorFactory* g_factory_ = nullptr; } // namespace // static std::unique_ptr ECSignatureCreator::Create( ECPrivateKey* key) { if (g_factory_) return g_factory_->Create(key); return std::make_unique(key); } // static void ECSignatureCreator::SetFactoryForTesting( ECSignatureCreatorFactory* factory) { // We should always clear the factory after each test to avoid // use-after-free problems. DCHECK(!g_factory_ || !factory); g_factory_ = factory; } } // namespace crypto