|  | // Copyright 2014 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. | 
|  |  | 
|  | #ifndef COMPONENTS_WEBCRYPTO_ALGORITHM_IMPLEMENTATIONS_H_ | 
|  | #define COMPONENTS_WEBCRYPTO_ALGORITHM_IMPLEMENTATIONS_H_ | 
|  |  | 
|  | #include <memory> | 
|  |  | 
|  | #include "third_party/WebKit/public/platform/WebCrypto.h" | 
|  |  | 
|  | // The definitions for these functions live in the algorithms/ directory. | 
|  | namespace webcrypto { | 
|  |  | 
|  | class AlgorithmImplementation; | 
|  |  | 
|  | std::unique_ptr<blink::WebCryptoDigestor> CreateDigestorImplementation( | 
|  | blink::WebCryptoAlgorithmId algorithm); | 
|  |  | 
|  | std::unique_ptr<AlgorithmImplementation> CreateShaImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateAesCbcImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateAesCtrImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateAesGcmImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateAesKwImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateHmacImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateRsaOaepImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateRsaSsaImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateRsaPssImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateEcdsaImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateEcdhImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreateHkdfImplementation(); | 
|  | std::unique_ptr<AlgorithmImplementation> CreatePbkdf2Implementation(); | 
|  |  | 
|  | }  // namespace webcrypto | 
|  |  | 
|  | #endif  // COMPONENTS_WEBCRYPTO_ALGORITHM_IMPLEMENTATIONS_H_ |