#pragma once #include "IHashFunction.h" #include "IPublicKeyAlgorithm.h" #include "IStreamCipher.h" #include #include class Crypto { public: enum class RSAPaddingMode { RSA_PADDING_PKS1, RSA_PADDING_PSS, }; static std::unique_ptr CreateMD5(); static std::unique_ptr CreateSHA1(); static std::unique_ptr CreateSHA256(); static std::unique_ptr CreateSalsa20(const uint8_t* keyBytes, size_t keySize); static std::unique_ptr CreateRSA(IPublicKeyAlgorithm::HashingAlgorithm hashingAlgorithm, RSAPaddingMode paddingMode); };