1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- using System.IO;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IO;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
- namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Operators
- {
- public class Asn1DigestFactory : IDigestFactory
- {
- public static Asn1DigestFactory Get(DerObjectIdentifier oid)
- {
- return new Asn1DigestFactory(DigestUtilities.GetDigest(oid), oid);
- }
- public static Asn1DigestFactory Get(String mechanism)
- {
- DerObjectIdentifier oid = DigestUtilities.GetObjectIdentifier(mechanism);
- return new Asn1DigestFactory(DigestUtilities.GetDigest(oid), oid);
- }
- private readonly IDigest mDigest;
- private readonly DerObjectIdentifier mOid;
- public Asn1DigestFactory(IDigest digest, DerObjectIdentifier oid)
- {
- this.mDigest = digest;
- this.mOid = oid;
- }
- public virtual object AlgorithmDetails
- {
- get { return new AlgorithmIdentifier(mOid); }
- }
- public virtual int DigestLength
- {
- get { return mDigest.GetDigestSize(); }
- }
- public virtual IStreamCalculator CreateCalculator()
- {
- return new DfDigestStream(mDigest);
- }
- }
- internal class DfDigestStream : IStreamCalculator
- {
- private readonly DigestSink mStream;
- public DfDigestStream(IDigest digest)
- {
- this.mStream = new DigestSink(digest);
- }
- public Stream Stream
- {
- get { return mStream; }
- }
- public object GetResult()
- {
- byte[] result = new byte[mStream.Digest.GetDigestSize()];
- mStream.Digest.DoFinal(result, 0);
- return new SimpleBlockResult(result);
- }
- }
- }
- #pragma warning restore
- #endif
|