IsoTrailers.cs 2.2 KB

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