diff options
Diffstat (limited to 'Tools/Hazel-Networking/Hazel/Crypto/CryptoProvider.cs')
-rw-r--r-- | Tools/Hazel-Networking/Hazel/Crypto/CryptoProvider.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Tools/Hazel-Networking/Hazel/Crypto/CryptoProvider.cs b/Tools/Hazel-Networking/Hazel/Crypto/CryptoProvider.cs new file mode 100644 index 0000000..2c56c70 --- /dev/null +++ b/Tools/Hazel-Networking/Hazel/Crypto/CryptoProvider.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Hazel.Crypto +{ + public static class CryptoProvider + { + public delegate IAes CreateAesOverrideDelegate(ByteSpan key); + + /// <summary> + /// Override the default AES creation function + /// </summary> + public static CreateAesOverrideDelegate OverrideCreateAes = null; + + /// <summary> + /// Create a new AES cipher + /// </summary> + /// <param name="key">Encrtyption key</param> + public static IAes CreateAes(ByteSpan key) + { + if (OverrideCreateAes != null) + { + IAes result = OverrideCreateAes(key); + if (null != result) + { + return result; + } + } + + return new DefaultAes(key); + } + } +} |