123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
- namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Pkix
- {
- /**
- * An exception indicating one of a variety of problems encountered when
- * validating a certification path. <br />
- * <br />
- * A <code>CertPathValidatorException</code> provides support for wrapping
- * exceptions. The {@link #getCause getCause} method returns the throwable,
- * if any, that caused this exception to be thrown. <br />
- * <br />
- * A <code>CertPathValidatorException</code> may also include the
- * certification path that was being validated when the exception was thrown
- * and the index of the certificate in the certification path that caused the
- * exception to be thrown. Use the {@link #getCertPath getCertPath} and
- * {@link #getIndex getIndex} methods to retrieve this information.<br />
- * <br />
- * <b>Concurrent Access</b><br />
- * <br />
- * Unless otherwise specified, the methods defined in this class are not
- * thread-safe. Multiple threads that need to access a single
- * object concurrently should synchronize amongst themselves and
- * provide the necessary locking. Multiple threads each manipulating
- * separate objects need not synchronize.
- *
- * @see CertPathValidator
- **/
- #if !(NETCF_1_0 || NETCF_2_0 || SILVERLIGHT || PORTABLE || NETFX_CORE)
- [Serializable]
- #endif
- public class PkixCertPathValidatorException
- : GeneralSecurityException
- {
- private Exception cause;
- private PkixCertPath certPath;
- private int index = -1;
- public PkixCertPathValidatorException() : base() { }
- /// <summary>
- /// Creates a <code>PkixCertPathValidatorException</code> with the given detail
- /// message. A detail message is a <code>String</code> that describes this
- /// particular exception.
- /// </summary>
- /// <param name="message">the detail message</param>
- public PkixCertPathValidatorException(string message) : base(message) { }
- /// <summary>
- /// Creates a <code>PkixCertPathValidatorException</code> with the specified
- /// detail message and cause.
- /// </summary>
- /// <param name="message">the detail message</param>
- /// <param name="cause">the cause (which is saved for later retrieval by the
- /// {@link #getCause getCause()} method). (A <code>null</code>
- /// value is permitted, and indicates that the cause is
- /// nonexistent or unknown.)</param>
- public PkixCertPathValidatorException(string message, Exception cause) : base(message)
- {
- this.cause = cause;
- }
- /// <summary>
- /// Creates a <code>PkixCertPathValidatorException</code> with the specified
- /// detail message, cause, certification path, and index.
- /// </summary>
- /// <param name="message">the detail message (or <code>null</code> if none)</param>
- /// <param name="cause">the cause (or <code>null</code> if none)</param>
- /// <param name="certPath">the certification path that was in the process of being
- /// validated when the error was encountered</param>
- /// <param name="index">the index of the certificate in the certification path that</param> *
- public PkixCertPathValidatorException(
- string message,
- Exception cause,
- PkixCertPath certPath,
- int index)
- : base(message)
- {
- if (certPath == null && index != -1)
- {
- throw new ArgumentNullException(
- "certPath = null and index != -1");
- }
- if (index < -1
- || (certPath != null && index >= certPath.Certificates.Count))
- {
- throw new IndexOutOfRangeException(
- " index < -1 or out of bound of certPath.getCertificates()");
- }
- this.cause = cause;
- this.certPath = certPath;
- this.index = index;
- }
- //
- // Prints a stack trace to a <code>PrintWriter</code>, including the
- // backtrace of the cause, if any.
- //
- // @param pw
- // the <code>PrintWriter</code> to use for output
- //
- // public void printStackTrace(PrintWriter pw)
- // {
- // super.printStackTrace(pw);
- // if (getCause() != null)
- // {
- // getCause().printStackTrace(pw);
- // }
- // }
- //}
- // /**
- // * Creates a <code>CertPathValidatorException</code> that wraps the
- // * specified throwable. This allows any exception to be converted into a
- // * <code>CertPathValidatorException</code>, while retaining information
- // * about the wrapped exception, which may be useful for debugging. The
- // * detail message is set to (<code>cause==null ? null : cause.toString()
- // * </code>)
- // * (which typically contains the class and detail message of cause).
- // *
- // * @param cause
- // * the cause (which is saved for later retrieval by the
- // * {@link #getCause getCause()} method). (A <code>null</code>
- // * value is permitted, and indicates that the cause is
- // * nonexistent or unknown.)
- // */
- // public PkixCertPathValidatorException(Throwable cause)
- // {
- // this.cause = cause;
- // }
- //
- /// <summary>
- /// Returns the detail message for this <code>CertPathValidatorException</code>.
- /// </summary>
- /// <returns>the detail message, or <code>null</code> if neither the message nor cause were specified</returns>
- public override string Message
- {
- get
- {
- string message = base.Message;
- if (message != null)
- {
- return message;
- }
- if (cause != null)
- {
- return cause.Message;
- }
- return null;
- }
- }
- /**
- * Returns the certification path that was being validated when the
- * exception was thrown.
- *
- * @return the <code>CertPath</code> that was being validated when the
- * exception was thrown (or <code>null</code> if not specified)
- */
- public PkixCertPath CertPath
- {
- get { return certPath; }
- }
- /**
- * Returns the index of the certificate in the certification path that
- * caused the exception to be thrown. Note that the list of certificates in
- * a <code>CertPath</code> is zero based. If no index has been set, -1 is
- * returned.
- *
- * @return the index that has been set, or -1 if none has been set
- */
- public int Index
- {
- get { return index; }
- }
- // /**
- // * Returns the cause of this <code>CertPathValidatorException</code> or
- // * <code>null</code> if the cause is nonexistent or unknown.
- // *
- // * @return the cause of this throwable or <code>null</code> if the cause
- // * is nonexistent or unknown.
- // */
- // public Throwable getCause()
- // {
- // return cause;
- // }
- //
- // /**
- // * Returns a string describing this exception, including a description of
- // * the internal (wrapped) cause if there is one.
- // *
- // * @return a string representation of this
- // * <code>CertPathValidatorException</code>
- // */
- // public String toString()
- // {
- // StringBuffer sb = new StringBuffer();
- // String s = getMessage();
- // if (s != null)
- // {
- // sb.append(s);
- // }
- // if (getIndex() >= 0)
- // {
- // sb.append("index in certpath: ").append(getIndex()).append('\n');
- // sb.append(getCertPath());
- // }
- // return sb.toString();
- // }
- }
- }
- #pragma warning restore
- #endif
|