// 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/logging.h" #include "crypto/ec_signature_creator_impl.h" namespace crypto { namespace { ECSignatureCreatorFactory* g_factory_ = NULL; } // namespace // static ECSignatureCreator* ECSignatureCreator::Create(ECPrivateKey* key) { if (g_factory_) return g_factory_->Create(key); return new ECSignatureCreatorImpl(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