private CachedEncoding GetCachedEncoding()
        {
            lock (cacheLock)
            {
                if (null != cachedEncoding)
                {
                    return(cachedEncoding);
                }
            }

            byte[] encoding = null;
            CertificateEncodingException exception = null;

            try
            {
                encoding = c.GetEncoded(Asn1Encodable.Der);
            }
            catch (IOException e)
            {
                exception = new CertificateEncodingException("Failed to DER-encode certificate", e);
            }

            CachedEncoding temp = new CachedEncoding(encoding, exception);

            lock (cacheLock)
            {
                if (null == cachedEncoding)
                {
                    cachedEncoding = temp;
                }

                return(cachedEncoding);
            }
        }
 internal CachedEncoding(byte[] encoding, CertificateEncodingException exception)
 {
     this.encoding  = encoding;
     this.exception = exception;
 }