Home | History | Annotate | Download | only in crypto
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "crypto/ec_signature_creator.h"
      6 
      7 #include "base/logging.h"
      8 #include "crypto/ec_signature_creator_impl.h"
      9 
     10 namespace crypto {
     11 
     12 namespace {
     13 
     14 ECSignatureCreatorFactory* g_factory_ = NULL;
     15 
     16 }  // namespace
     17 
     18 // static
     19 ECSignatureCreator* ECSignatureCreator::Create(ECPrivateKey* key) {
     20   if (g_factory_)
     21     return g_factory_->Create(key);
     22   return new ECSignatureCreatorImpl(key);
     23 }
     24 
     25 // static
     26 void ECSignatureCreator::SetFactoryForTesting(
     27     ECSignatureCreatorFactory* factory) {
     28   // We should always clear the factory after each test to avoid
     29   // use-after-free problems.
     30   DCHECK(!g_factory_ || !factory);
     31   g_factory_ = factory;
     32 }
     33 
     34 }  // namespace crypto
     35