6060#include " ../Hash128/HlpMurmurHash3_x86_128.h"
6161#include " ../Hash128/HlpMurmurHash3_x64_128.h"
6262// Crypto Units
63+ #include " ../Crypto/HlpBlake2B.h"
64+ #include " ../Crypto/HlpBlake2S.h"
6365#include " ../Crypto/HlpTiger.h"
6466#include " ../Crypto/HlpTiger2.h"
6567#include " ../Crypto/HlpMD2.h"
8284#include " ../Crypto/HlpSnefru.h"
8385#include " ../Crypto/HlpHaval.h"
8486#include " ../Crypto/HlpGost.h"
87+ #include " ../Crypto/HlpGOST3411_2012.h"
8588#include " ../Crypto/HlpHAS160.h"
8689#include " ../Crypto/HlpRIPEMD.h"
8790#include " ../Crypto/HlpRIPEMD128.h"
9396#include " HlpHMACNotBuildInAdapter.h"
9497// PBKDF2_HMAC Unit
9598#include " ../KDF/HlpPBKDF2_HMACNotBuildInAdapter.h"
99+ // NullDigest
100+ #include " ../NullDigest/HlpNullDigest.h"
96101
97102
98103namespace HashFactory
@@ -711,6 +716,16 @@ namespace HashFactory
711716 return make_shared<Gost>();
712717 } // end function CreateGost
713718
719+ static IHash CreateGOST3411_2012_256 ()
720+ {
721+ return make_shared<GOST3411_2012_256>();
722+ } // end function CreateGOST3411_2012_256
723+
724+ static IHash CreateGOST3411_2012_512 ()
725+ {
726+ return make_shared<GOST3411_2012_512>();
727+ } // end function CreateGOST3411_2012_512
728+
714729 static IHash CreateHAS160 ()
715730 {
716731 return make_shared<HAS160>();
@@ -761,6 +776,86 @@ namespace HashFactory
761776 return make_shared<SHA3_512>();
762777 } // end function CreateSHA3_512
763778
779+ static IHash CreateKeccak_224 ()
780+ {
781+ return make_shared<Keccak_224>();
782+ } // end function CreateKeccak_224
783+
784+ static IHash CreateKeccak_256 ()
785+ {
786+ return make_shared<Keccak_256>();
787+ } // end function CreateKeccak_256
788+
789+ static IHash CreateKeccak_384 ()
790+ {
791+ return make_shared<Keccak_384>();
792+ } // end function CreateKeccak_384
793+
794+ static IHash CreateKeccak_512 ()
795+ {
796+ return make_shared<Keccak_512>();
797+ } // end function CreateKeccak_512
798+
799+ static IHash CreateBlake2B (const IBlake2BConfig config = nullptr )
800+ {
801+ if (config == nullptr ) return make_shared<Blake2B>();
802+ return make_shared<Blake2B>(config);
803+ }
804+
805+ static IHash CreateBlake2B_160 ()
806+ {
807+ IBlake2BConfig config = make_shared<Blake2BConfig>(HashSize::HashSize160);
808+ return HashFactory::Crypto::CreateBlake2B (config);
809+ }
810+
811+ static IHash CreateBlake2B_256 ()
812+ {
813+ IBlake2BConfig config = make_shared<Blake2BConfig>(HashSize::HashSize256);
814+ return HashFactory::Crypto::CreateBlake2B (config);
815+ }
816+
817+ static IHash CreateBlake2B_384 ()
818+ {
819+ IBlake2BConfig config = make_shared<Blake2BConfig>(HashSize::HashSize384);
820+ return HashFactory::Crypto::CreateBlake2B (config);
821+ }
822+
823+ static IHash CreateBlake2B_512 ()
824+ {
825+ IBlake2BConfig config = make_shared<Blake2BConfig>(HashSize::HashSize512);
826+ return HashFactory::Crypto::CreateBlake2B (config);
827+ }
828+
829+ static IHash CreateBlake2S (const IBlake2SConfig config = nullptr )
830+ {
831+ if (config == nullptr ) return make_shared<Blake2S>();
832+ return make_shared<Blake2S>(config);
833+ }
834+
835+ static IHash CreateBlake2S_128 ()
836+ {
837+ IBlake2SConfig config = make_shared<Blake2SConfig>(HashSize::HashSize128);
838+ return HashFactory::Crypto::CreateBlake2S (config);
839+ }
840+
841+ static IHash CreateBlake2S_160 ()
842+ {
843+ IBlake2SConfig config = make_shared<Blake2SConfig>(HashSize::HashSize160);
844+ return HashFactory::Crypto::CreateBlake2S (config);
845+ }
846+
847+ static IHash CreateBlake2S_224 ()
848+ {
849+ IBlake2SConfig config = make_shared<Blake2SConfig>(HashSize::HashSize224);
850+ return HashFactory::Crypto::CreateBlake2S (config);
851+ }
852+
853+ static IHash CreateBlake2S_256 ()
854+ {
855+ IBlake2SConfig config = make_shared<Blake2SConfig>(HashSize::HashSize256);
856+ return HashFactory::Crypto::CreateBlake2S (config);
857+ }
858+
764859 } // end namespace Crypto
765860
766861 // ====================== HMAC ======================
@@ -772,7 +867,7 @@ namespace HashFactory
772867 } // end function CreateHMAC
773868 } // end namespace HMAC
774869
775- // ====================== PBKDF2_HMAC ======================
870+ // ====================== PBKDF2_HMAC ======================
776871 namespace PBKDF2_HMAC
777872 {
778873 // / <summary>
@@ -803,6 +898,16 @@ namespace HashFactory
803898 } // end function CreatePBKDF2_HMAC
804899 } // end namespace PBKDF2_HMAC
805900
901+ // ====================== NullDigest ======================
902+ namespace NullDigestFactory
903+ {
904+ IHash CreateNullDigest ()
905+ {
906+ return make_shared<NullDigest>();
907+ }
908+
909+ }
910+
806911} // end namespace HashFactory
807912
808913
0 commit comments