AbstractTlsSigner.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
  5. using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
  6. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
  7. {
  8. public abstract class AbstractTlsSigner
  9. : TlsSigner
  10. {
  11. protected TlsContext mContext;
  12. public virtual void Init(TlsContext context)
  13. {
  14. this.mContext = context;
  15. }
  16. public virtual byte[] GenerateRawSignature(AsymmetricKeyParameter privateKey, byte[] md5AndSha1)
  17. {
  18. return GenerateRawSignature(null, privateKey, md5AndSha1);
  19. }
  20. public abstract byte[] GenerateRawSignature(SignatureAndHashAlgorithm algorithm,
  21. AsymmetricKeyParameter privateKey, byte[] hash);
  22. public virtual bool VerifyRawSignature(byte[] sigBytes, AsymmetricKeyParameter publicKey, byte[] md5AndSha1)
  23. {
  24. return VerifyRawSignature(null, sigBytes, publicKey, md5AndSha1);
  25. }
  26. public abstract bool VerifyRawSignature(SignatureAndHashAlgorithm algorithm, byte[] sigBytes,
  27. AsymmetricKeyParameter publicKey, byte[] hash);
  28. public virtual ISigner CreateSigner(AsymmetricKeyParameter privateKey)
  29. {
  30. return CreateSigner(null, privateKey);
  31. }
  32. public abstract ISigner CreateSigner(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter privateKey);
  33. public virtual ISigner CreateVerifyer(AsymmetricKeyParameter publicKey)
  34. {
  35. return CreateVerifyer(null, publicKey);
  36. }
  37. public abstract ISigner CreateVerifyer(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter publicKey);
  38. public abstract bool IsValidPublicKey(AsymmetricKeyParameter publicKey);
  39. }
  40. }
  41. #pragma warning restore
  42. #endif