BcTlsEd25519Verifier.cs 1.2 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 BcTlsEd25519Verifier
  9. : BcTlsVerifier
  10. {
  11. public BcTlsEd25519Verifier(BcTlsCrypto crypto, Ed25519PublicKeyParameters 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.ed25519)
  23. throw new InvalidOperationException("Invalid algorithm: " + algorithm);
  24. Ed25519Signer verifier = new Ed25519Signer();
  25. verifier.Init(false, m_publicKey);
  26. return new BcTlsStreamVerifier(verifier, signature.Signature);
  27. }
  28. }
  29. }
  30. #pragma warning restore
  31. #endif