Exemple #1
0
/* Main Entry */
int main(int argc, char **argv)
{
	// init connection object
	Connection conn;
	memset(&conn, 0, sizeof(conn));
	conn.port = PORT; // assign default port
	conn.host = HOST;

	// Parse arguments
	parseArguments(argc, argv, &conn);

	// init SSL library
	conn.sslContext = initSSLContext(CLIENT_CERTIFICATE, CA_CERTIFICATE);
	SSL_CTX_set_options(conn.sslContext, SSL_OP_NO_SSLv2);
	SSL_CTX_set_cipher_list(conn.sslContext, "SHA1");

	// Connect
	if (tcpConnect(&conn) < 0){
		tcpDisconnect(&conn);
		exit(0);
	}

	SSL * ssl = SSL_new(conn.sslContext);
	BIO * sbio = BIO_new_socket(conn.socket, BIO_NOCLOSE);
	SSL_set_bio(ssl, sbio, sbio);
	int ret;

	ret = SSL_connect(ssl);
	if (ret <= 0){
		printf(FMT_CONNECT_ERR);
		handleError(ssl, ret);
	}
	else{
		// Process Message
		if (checkServerCertification(ssl) == OK){
			processMessage(ssl);
		}
	}

	// close ssl connection
	if (!SSL_shutdown(ssl)){
		tcpDisconnect(&conn);
		SSL_shutdown(ssl);
	}
	SSL_free(ssl);

	// Disconnect
	tcpDisconnect(&conn);
	destroySSLContext(conn.sslContext);
	return 1;
}
Exemple #2
0
SSLListener::SSLListener(const Module* module, uint16_t pPort)
: Listener(module, pPort) {
  ssl_ctx = initSSLContext();
};
Exemple #3
0
	extern "C" LUAMBEDTLS_DLL_EXPORTED int luaopen_luambedtls(lua_State * L){
		State * state = new State(L);
		Stack * stack = state->stack;
		Module luambedtls_module;

		stack->newTable();

		initMPI(state, luambedtls_module);
		initASN1buf(state, luambedtls_module);
		initASN1named(state, luambedtls_module);
		initASN1sequence(state, luambedtls_module);

		//key-pairs
		initPKContext(state, luambedtls_module);
		initPKinfo(state, luambedtls_module);

		initCTRDRBGContext(state, luambedtls_module);
		initDHMContext(state, luambedtls_module);
		initEntropyContext(state, luambedtls_module);
		initSSLConfig(state, luambedtls_module);
		initSSLContext(state, luambedtls_module);
		initSSLCookieContext(state, luambedtls_module);
		initSSLSession(state, luambedtls_module);
		initx509crt(state, luambedtls_module);
		initx509crl(state, luambedtls_module);
		initx509crlEntry(state, luambedtls_module);
		initx509crtProfile(state, luambedtls_module);
		initx509csr(state, luambedtls_module);
		initx509writeCert(state, luambedtls_module);
		initx509writeCSR(state, luambedtls_module);
		initTimingDelayContext(state, luambedtls_module);
		initAESContext(state, luambedtls_module);

		//symmetric-encryption
		initARC4Context(state, luambedtls_module);
		initBlowfishContext(state, luambedtls_module);
		initCamelliaContext(state, luambedtls_module);
		initDESContext(state, luambedtls_module);
		initDES3Context(state, luambedtls_module);
		initGCMContext(state, luambedtls_module);
		initXTEAContext(state, luambedtls_module);

		//asymmetric-ecnryption
		initDHMContext(state, luambedtls_module);
		initRSAContext(state, luambedtls_module);

		//EC
		initECPCurveInfo(state, luambedtls_module);
		initECPPoint(state, luambedtls_module);
		initECPGroup(state, luambedtls_module);
		initECPKeyPair(state, luambedtls_module);
		initECDHContext(state, luambedtls_module);
		initECSDAContext(state, luambedtls_module);

		//message-digest
		initMDContext(state, luambedtls_module);
		initMDinfo(state, luambedtls_module);

		//cipher
		initCipherContext(state, luambedtls_module);
		initCipherInfo(state, luambedtls_module);

		//utils
		initUtils(state, luambedtls_module);

		luambedtls_module["init"] = init;
		initConstants(state, luambedtls_module);
		luambedtls_module["strError"] = strError;
		luambedtls_module["debugTreshhold"] = debugTreshhold;
		luambedtls_module["MPIlen"] = MPIlen;
		luambedtls_module["pushOIDAttrShortName"] = pushOIDAttrShortName;
		luambedtls_module["pushOIDNumericString"] = pushOIDNumericString;
		luambedtls_module["pushOIDExtType"] = pushOIDExtType;
		luambedtls_module["pushOIDPkAlg"] = pushOIDPkAlg;

		state->registerLib(luambedtls_module);
		return 1;
	}