- Initial commit
This commit is contained in:
64
Runtime/3rdParty/BouncyCastle/tls/crypto/impl/LegacyTls13Verifier.cs
vendored
Normal file
64
Runtime/3rdParty/BouncyCastle/tls/crypto/impl/LegacyTls13Verifier.cs
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user