BcTlsEd448Verifier.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
  5. using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Signers;
  6. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Tls.Crypto.Impl.BC
  7. {
  8. public class BcTlsEd448Verifier
  9. : BcTlsVerifier
  10. {
  11. public BcTlsEd448Verifier(BcTlsCrypto crypto, Ed448PublicKeyParameters publicKey)
  12. : base(crypto, publicKey)
  13. {
  14. }
  15. public override bool VerifyRawSignature(DigitallySigned signature, byte[] hash)
  16. {
  17. throw new NotSupportedException();
  18. }
  19. public override TlsStreamVerifier GetStreamVerifier(DigitallySigned signature)
  20. {
  21. SignatureAndHashAlgorithm algorithm = signature.Algorithm;
  22. if (algorithm == null || SignatureScheme.From(algorithm) != SignatureScheme.ed448)
  23. throw new InvalidOperationException("Invalid algorithm: " + algorithm);
  24. Ed448Signer verifier = new Ed448Signer(TlsUtilities.EmptyBytes);
  25. verifier.Init(false, m_publicKey);
  26. return new BcTlsStreamVerifier(verifier, signature.Signature);
  27. }
  28. }
  29. }
  30. #pragma warning restore
  31. #endif