File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / axTLS / bindings / java / SSLUtil.java
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Fri Sep 28 11:55:55 2012 UTC (12 years, 9 months ago) by misho
Branches: v1_4_8, MAIN
CVS tags: datecs, HEAD
axTLS

    1: /*
    2:  * Copyright (c) 2007, Cameron Rich
    3:  * 
    4:  * All rights reserved.
    5:  * 
    6:  * Redistribution and use in source and binary forms, with or without 
    7:  * modification, are permitted provided that the following conditions are met:
    8:  *
    9:  * * Redistributions of source code must retain the above copyright notice, 
   10:  *   this list of conditions and the following disclaimer.
   11:  * * Redistributions in binary form must reproduce the above copyright notice, 
   12:  *   this list of conditions and the following disclaimer in the documentation 
   13:  *   and/or other materials provided with the distribution.
   14:  * * Neither the name of the axTLS project nor the names of its contributors 
   15:  *   may be used to endorse or promote products derived from this software 
   16:  *   without specific prior written permission.
   17:  *
   18:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   19:  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   20:  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   21:  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
   22:  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   23:  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   24:  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   25:  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   26:  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   27:  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   28:  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   29:  */
   30: 
   31: /*
   32:  * A wrapper around the unmanaged interface to give a semi-decent Java API
   33:  */
   34: 
   35: package axTLSj;
   36: 
   37: import java.io.*;
   38: import java.util.*;
   39: 
   40: /**
   41:  * @class SSLUtil
   42:  * @ingroup java_api 
   43:  * @brief Some global helper functions.
   44:  *
   45:  */
   46: public class SSLUtil
   47: {
   48:     /**
   49:      * @brief Load up the ddl/shared library 
   50:      */
   51:     static
   52:     {
   53:         System.loadLibrary("axtlsj");
   54:     }
   55: 
   56:     /**
   57:      * @brief Return the build mode of the axTLS project.
   58:      * @return The build mode is one of:
   59:      * - SSL_BUILD_SERVER_ONLY
   60:      * - SSL_BUILD_ENABLE_VERIFICATION
   61:      * - SSL_BUILD_ENABLE_CLIENT
   62:      * - SSL_BUILD_FULL_MODE
   63:      */
   64:     public static int buildMode()
   65:     {
   66:         return axtlsj.ssl_get_config(axtlsj.SSL_BUILD_MODE);
   67:     }
   68: 
   69:     /**
   70:      * @brief Return the number of chained certificates that the client/server 
   71:      * supports.
   72:      * @return The number of supported client/server certificates.
   73:      */
   74:     public static int maxCerts()
   75:     {
   76:         return axtlsj.ssl_get_config(axtlsj.SSL_MAX_CERT_CFG_OFFSET);
   77:     }
   78: 
   79:     /**
   80:      * @brief Return the number of CA certificates that the client/server
   81:      * supports.
   82:      * @return The number of supported CA certificates.
   83:      */
   84:     public static int maxCACerts()
   85:     {
   86:         return axtlsj.ssl_get_config(axtlsj.SSL_MAX_CA_CERT_CFG_OFFSET);
   87:     }
   88: 
   89:     /**
   90:      * @brief Indicate if PEM is supported.
   91:      * @return true if PEM supported.
   92:      */
   93:     public static boolean hasPEM()
   94:     {
   95:         return axtlsj.ssl_get_config(axtlsj.SSL_HAS_PEM) > 0 ? true : false;
   96:     }
   97: 
   98:     /**
   99:      * @brief Display the text string of the error.
  100:      * @param error_code [in] The integer error code.
  101:      * @see ssl.h for the error code list.
  102:      */
  103:     public static void displayError(int error_code)
  104:     {
  105:         axtlsj.ssl_display_error(error_code);
  106:     }
  107: 
  108:     /**
  109:      * @brief Return the version of the axTLS project.
  110:      */
  111:     public static String version()
  112:     {
  113:         return axtlsj.ssl_version();
  114:     }
  115: }
  116: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>