Return to SSLUtil.java CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / axTLS / bindings / java |
1.1 ! misho 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: