1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.crypto;
2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
3b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam/**
4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * the foundation class for the hard exceptions thrown by the crypto packages.
5b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */
6b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class CryptoException
7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    extends Exception
8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{
94c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    private Throwable cause;
104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    /**
12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam     * base constructor.
13b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam     */
14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public CryptoException()
15b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
16b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
18b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    /**
19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam     * create a CryptoException with the given message.
20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam     *
21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam     * @param message the message to be carried with the exception.
22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam     */
23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public CryptoException(
24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        String  message)
25b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
26b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        super(message);
27b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    /**
304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom     * Create a CryptoException with the given message and underlying cause.
314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom     *
324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom     * @param message message describing exception.
334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom     * @param cause the throwable that was the underlying cause.
344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom     */
354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public CryptoException(
364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        String  message,
374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        Throwable cause)
384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        super(message);
404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        this.cause = cause;
424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public Throwable getCause()
454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return cause;
474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
48b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam}
49