#ifndef COMPONENTS_WEBCRYPTO_ALGORITHM_IMPLEMENTATIONS_H_
#define COMPONENTS_WEBCRYPTO_ALGORITHM_IMPLEMENTATIONS_H_
#include <memory>
#include "third_party/blink/public/platform/web_crypto.h"
namespace webcrypto {
class AlgorithmImplementation;
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();
std::unique_ptr<AlgorithmImplementation> CreateEd25519Implementation();
std::unique_ptr<AlgorithmImplementation> CreateX25519Implementation();
}
#endif