/***
    Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.

    File: Crypto.hpp
    Date: 2021-6-17
    Author: Reece
***/
#pragma once

#include <mbedtls/md.h>

namespace Crypto
{
    inline int gAesCipher;
    inline int gDesCipher;
    inline int gHashTiger;
    inline int gHashSha1;
    inline int gHashMD4;
    inline int gHashMD5;
    inline int gHashSha256;
    inline int gHashSha384;
    inline int gHashSha512;
    inline int gHashSha3_256;
    inline int gHashSha3_384;
    inline int gHashSha3_224;
    inline int gHashSha3_512;
    inline int gPrngYarrow;
    inline int gHashRMD128;
    inline int gHashRMD160;
    inline int gHashRMD256;
    inline int gHashRMD320;

    void InitCrypto();

    int PaddingToType(Aurora::Crypto::EPaddingType type);

    int HashMethodToId(Aurora::Hashing::EHashType type);

    mbedtls_md_type_t TypeToMbed(Aurora::Hashing::EHashType type);
}