MsmqSecureHashAlgorithm.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------
  4. namespace System.ServiceModel
  5. {
  6. using System.ServiceModel.Channels;
  7. public enum MsmqSecureHashAlgorithm
  8. {
  9. MD5,
  10. Sha1,
  11. Sha256,
  12. Sha512
  13. }
  14. static class MsmqSecureHashAlgorithmHelper
  15. {
  16. public static bool IsDefined(MsmqSecureHashAlgorithm algorithm)
  17. {
  18. return algorithm == MsmqSecureHashAlgorithm.MD5 ||
  19. algorithm == MsmqSecureHashAlgorithm.Sha1 ||
  20. algorithm == MsmqSecureHashAlgorithm.Sha256 ||
  21. algorithm == MsmqSecureHashAlgorithm.Sha512;
  22. }
  23. public static int ToInt32(MsmqSecureHashAlgorithm algorithm)
  24. {
  25. switch (algorithm)
  26. {
  27. case MsmqSecureHashAlgorithm.MD5:
  28. return UnsafeNativeMethods.CALG_MD5;
  29. case MsmqSecureHashAlgorithm.Sha1:
  30. return UnsafeNativeMethods.CALG_SHA1;
  31. case MsmqSecureHashAlgorithm.Sha256:
  32. return UnsafeNativeMethods.CALG_SHA_256;
  33. case MsmqSecureHashAlgorithm.Sha512:
  34. return UnsafeNativeMethods.CALG_SHA_512;
  35. default:
  36. return -1;
  37. }
  38. }
  39. }
  40. }