IsoTrailers.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using System.Collections.Generic;
  5. namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Crypto.Signers
  6. {
  7. public class IsoTrailers
  8. {
  9. public const int TRAILER_IMPLICIT = 0xBC;
  10. public const int TRAILER_RIPEMD160 = 0x31CC;
  11. public const int TRAILER_RIPEMD128 = 0x32CC;
  12. public const int TRAILER_SHA1 = 0x33CC;
  13. public const int TRAILER_SHA256 = 0x34CC;
  14. public const int TRAILER_SHA512 = 0x35CC;
  15. public const int TRAILER_SHA384 = 0x36CC;
  16. public const int TRAILER_WHIRLPOOL = 0x37CC;
  17. public const int TRAILER_SHA224 = 0x38CC;
  18. public const int TRAILER_SHA512_224 = 0x39CC;
  19. public const int TRAILER_SHA512_256 = 0x40CC;
  20. private static IDictionary<string, int> CreateTrailerMap()
  21. {
  22. var trailers = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
  23. trailers.Add("RIPEMD128", TRAILER_RIPEMD128);
  24. trailers.Add("RIPEMD160", TRAILER_RIPEMD160);
  25. trailers.Add("SHA-1", TRAILER_SHA1);
  26. trailers.Add("SHA-224", TRAILER_SHA224);
  27. trailers.Add("SHA-256", TRAILER_SHA256);
  28. trailers.Add("SHA-384", TRAILER_SHA384);
  29. trailers.Add("SHA-512", TRAILER_SHA512);
  30. trailers.Add("SHA-512/224", TRAILER_SHA512_224);
  31. trailers.Add("SHA-512/256", TRAILER_SHA512_256);
  32. trailers.Add("Whirlpool", TRAILER_WHIRLPOOL);
  33. return trailers;
  34. }
  35. // IDictionary is (string -> Int32)
  36. private static readonly IDictionary<string, int> TrailerMap = CreateTrailerMap();
  37. public static int GetTrailer(IDigest digest)
  38. {
  39. return TrailerMap[digest.AlgorithmName];
  40. }
  41. public static bool NoTrailerAvailable(IDigest digest)
  42. {
  43. return !TrailerMap.ContainsKey(digest.AlgorithmName);
  44. }
  45. }
  46. }
  47. #pragma warning restore
  48. #endif