12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- using System.IO;
- namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Tls.Crypto.Impl
- {
- public sealed class LegacyTls13Verifier
- : TlsVerifier
- {
- private readonly int m_signatureScheme;
- private readonly Tls13Verifier m_tls13Verifier;
- public LegacyTls13Verifier(int signatureScheme, Tls13Verifier tls13Verifier)
- {
- if (!TlsUtilities.IsValidUint16(signatureScheme))
- throw new ArgumentException("signatureScheme");
- if (tls13Verifier == null)
- throw new ArgumentNullException("tls13Verifier");
- this.m_signatureScheme = signatureScheme;
- this.m_tls13Verifier = tls13Verifier;
- }
- public TlsStreamVerifier GetStreamVerifier(DigitallySigned digitallySigned)
- {
- SignatureAndHashAlgorithm algorithm = digitallySigned.Algorithm;
- if (algorithm == null || SignatureScheme.From(algorithm) != m_signatureScheme)
- throw new InvalidOperationException("Invalid algorithm: " + algorithm);
- return new TlsStreamVerifierImpl(m_tls13Verifier, digitallySigned.Signature);
- }
- public bool VerifyRawSignature(DigitallySigned digitallySigned, byte[] hash)
- {
- throw new NotSupportedException();
- }
- private class TlsStreamVerifierImpl
- : TlsStreamVerifier
- {
- private readonly Tls13Verifier m_tls13Verifier;
- private readonly byte[] m_signature;
- internal TlsStreamVerifierImpl(Tls13Verifier tls13Verifier, byte[] signature)
- {
- this.m_tls13Verifier = tls13Verifier;
- this.m_signature = signature;
- }
- public Stream Stream
- {
- get { return m_tls13Verifier.Stream; }
- }
- public bool IsVerified()
- {
- return m_tls13Verifier.VerifySignature(m_signature);
- }
- }
- }
- }
- #pragma warning restore
- #endif
|