123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- using System.IO;
- namespace Org.BouncyCastle.Asn1
- {
- public abstract class Asn1Encodable
- : IAsn1Convertible
- {
- public const string Der = "DER";
- public const string Ber = "BER";
- public byte[] GetEncoded()
- {
- MemoryStream bOut = new MemoryStream();
- Asn1OutputStream aOut = new Asn1OutputStream(bOut);
- aOut.WriteObject(this);
- return bOut.ToArray();
- }
- public byte[] GetEncoded(
- string encoding)
- {
- if (encoding.Equals(Der))
- {
- MemoryStream bOut = new MemoryStream();
- DerOutputStream dOut = new DerOutputStream(bOut);
- dOut.WriteObject(this);
- return bOut.ToArray();
- }
- return GetEncoded();
- }
- /**
- * Return the DER encoding of the object, null if the DER encoding can not be made.
- *
- * @return a DER byte array, null otherwise.
- */
- public byte[] GetDerEncoded()
- {
- try
- {
- return GetEncoded(Der);
- }
- catch (IOException)
- {
- return null;
- }
- }
- public sealed override int GetHashCode()
- {
- return ToAsn1Object().CallAsn1GetHashCode();
- }
- public sealed override bool Equals(
- object obj)
- {
- if (obj == this)
- return true;
- IAsn1Convertible other = obj as IAsn1Convertible;
- if (other == null)
- return false;
- Asn1Object o1 = ToAsn1Object();
- Asn1Object o2 = other.ToAsn1Object();
- return o1 == o2 || o1.CallAsn1Equals(o2);
- }
- public abstract Asn1Object ToAsn1Object();
- }
- }
- #endif
|