当前位置: 首页>>代码示例>>C++>>正文


C++ TLSv1_server_method函数代码示例

本文整理汇总了C++中TLSv1_server_method函数的典型用法代码示例。如果您正苦于以下问题:C++ TLSv1_server_method函数的具体用法?C++ TLSv1_server_method怎么用?C++ TLSv1_server_method使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了TLSv1_server_method函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: wi_socket_context_set_ssl_type

wi_boolean_t wi_socket_context_set_ssl_type(wi_socket_context_t *context, wi_socket_ssl_type_t type) {
#ifdef WI_SSL
	SSL_METHOD		*method = NULL;
	
	switch(type) {
		case WI_SOCKET_SSL_CLIENT:
			method = TLSv1_client_method();
			break;

		case WI_SOCKET_SSL_SERVER:
			method = TLSv1_server_method();
			break;
	}
	
	context->ssl_ctx = SSL_CTX_new(method);
	
	if(!context->ssl_ctx)
		wi_error_set_ssl_error();
	
	return (context->ssl_ctx != NULL);
#else
	wi_error_set_lib_error(WI_ERROR_SOCKET_NOSSL);
	
	return false;
#endif
}
开发者ID:ProfDrLuigi,项目名称:zanka,代码行数:26,代码来源:wi-socket.c

示例2: hb_ssl_method_id_to_ptr

const SSL_METHOD * hb_ssl_method_id_to_ptr( int n )
{
   const SSL_METHOD * p;

   switch( n )
   {
#if OPENSSL_VERSION_NUMBER < 0x10000000L
      case HB_SSL_CTX_NEW_METHOD_SSLV2:         p = SSLv2_method();         break;
      case HB_SSL_CTX_NEW_METHOD_SSLV2_SERVER:  p = SSLv2_server_method();  break;
      case HB_SSL_CTX_NEW_METHOD_SSLV2_CLIENT:  p = SSLv2_client_method();  break;
#endif
      case HB_SSL_CTX_NEW_METHOD_SSLV3:         p = SSLv3_method();         break;
      case HB_SSL_CTX_NEW_METHOD_SSLV3_SERVER:  p = SSLv3_server_method();  break;
      case HB_SSL_CTX_NEW_METHOD_SSLV3_CLIENT:  p = SSLv3_client_method();  break;
      case HB_SSL_CTX_NEW_METHOD_TLSV1:         p = TLSv1_method();         break;
      case HB_SSL_CTX_NEW_METHOD_TLSV1_SERVER:  p = TLSv1_server_method();  break;
      case HB_SSL_CTX_NEW_METHOD_TLSV1_CLIENT:  p = TLSv1_client_method();  break;
      case HB_SSL_CTX_NEW_METHOD_SSLV23:        p = SSLv23_method();        break;
      case HB_SSL_CTX_NEW_METHOD_SSLV23_SERVER: p = SSLv23_server_method(); break;
      case HB_SSL_CTX_NEW_METHOD_SSLV23_CLIENT: p = SSLv23_client_method(); break;
      default: p = SSLv23_method();
   }

   return p;
}
开发者ID:Andygon,项目名称:core,代码行数:25,代码来源:sslctx.c

示例3: init_openssl

/* Init library and load specified certificate.
 * Establishes a SSL_ctx, to act as a template for
 * each connection */
static SSL_CTX * init_openssl() {
    SSL_library_init();
    SSL_load_error_strings();
    SSL_CTX *ctx = NULL;

    if (OPTIONS.ETYPE == ENC_TLS)
        ctx = SSL_CTX_new(TLSv1_server_method());
    else if (OPTIONS.ETYPE == ENC_SSL)
        ctx = SSL_CTX_new(SSLv23_server_method());
    else
        assert(OPTIONS.ETYPE == ENC_TLS || OPTIONS.ETYPE == ENC_SSL);
    
    SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_ALL |
                        SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION);
    
    if (SSL_CTX_use_certificate_file(ctx, OPTIONS.CERT_FILE, SSL_FILETYPE_PEM) <= 0)
        ERR_print_errors_fp(stderr);
    if (SSL_CTX_use_RSAPrivateKey_file(ctx, OPTIONS.CERT_FILE, SSL_FILETYPE_PEM) <= 0)
        ERR_print_errors_fp(stderr);
    
    if (OPTIONS.CIPHER_SUITE)
        if (SSL_CTX_set_cipher_list(ctx, OPTIONS.CIPHER_SUITE) != 1)
            ERR_print_errors_fp(stderr);            

    return ctx;
}
开发者ID:djs55,项目名称:stud,代码行数:29,代码来源:stud.c

示例4: Debug

SSL_METHOD *sycTLSv1_server_method(void) {
   SSL_METHOD *result;
   Debug("TLSv1_server_method()");
   result = TLSv1_server_method();
   Debug1("TLSv1_server_method() -> %p", result);
   return result;
}
开发者ID:dest-unreach,项目名称:socat2,代码行数:7,代码来源:sslcls.c

示例5: switch

void SSLContext::createSSLContext()
{
    switch (_usage)
    {
    case CLIENT_USE:
        _sslContext = SSL_CTX_new(SSLv23_client_method());
        break;
    case SERVER_USE:
        _sslContext = SSL_CTX_new(SSLv23_server_method());
        break;
    case TLSV1_CLIENT_USE:
        _sslContext = SSL_CTX_new(TLSv1_client_method());
        break;
    case TLSV1_SERVER_USE:
        _sslContext = SSL_CTX_new(TLSv1_server_method());
        break;
    default:
        throw std::runtime_error("SSL Exception: Invalid usage");
    }
    if (!_sslContext)  {
        unsigned long err = ERR_get_error();
        throw std::runtime_error("SSL Exception: Cannot create SSL_CTX object: " + std::string(ERR_error_string(err, 0)));
    }

    SSL_CTX_set_default_passwd_cb(_sslContext, &SSLManager::privateKeyPassphraseCallback);
    clearErrorStack();
    SSL_CTX_set_options(_sslContext, SSL_OP_ALL);
}
开发者ID:delort,项目名称:libsourcey,代码行数:28,代码来源:sslcontext.cpp

示例6: msc_secure_socket_library_init

MSC_BOOL msc_secure_socket_library_init(MSC_LIBRARY_MODE mode)
{
	if (g_ssl_ctx) return MSC_TRUE;

	SSL_library_init();
	SSL_load_error_strings();

	if (mode == MSC_LIBRARY_CLIENT)
	{
		g_ssl_ctx = SSL_CTX_new(TLSv1_client_method());
	}
	else
	{
		g_ssl_ctx = SSL_CTX_new(TLSv1_server_method());
	}

	if (!g_ssl_ctx)
	{
		fprintf(stderr, "Error initializing OpenSSL\n");
		ERR_print_errors_fp(stderr);
		return MSC_FALSE;
	}

	return MSC_TRUE;
}
开发者ID:asgeir,项目名称:old-school-projects,代码行数:25,代码来源:msc_secure_socket.c

示例7: wi_socket_tls_init_with_type

wi_socket_tls_t * wi_socket_tls_init_with_type(wi_socket_tls_t *tls, wi_socket_tls_type_t type) {
	SSL_METHOD		*method;
	
	switch(type) {
		default:
		case WI_SOCKET_TLS_CLIENT:
			method = TLSv1_client_method();
			break;

		case WI_SOCKET_TLS_SERVER:
			method = TLSv1_server_method();
			break;
	}
	
	tls->ssl_ctx = SSL_CTX_new(method);
	
	if(!tls->ssl_ctx) {
		wi_error_set_openssl_error();
		
		wi_release(NULL);
		
		return NULL;
	}
	
	SSL_CTX_set_mode(tls->ssl_ctx, SSL_MODE_AUTO_RETRY);
	SSL_CTX_set_quiet_shutdown(tls->ssl_ctx, 1);
	
	return tls;
}
开发者ID:ProfDrLuigi,项目名称:zanka,代码行数:29,代码来源:wi-socket.c

示例8: SSL_load_error_strings

BOOL CSSLTcpSocket::CreateSSLTcpSocketForServer( LPCSTR pszCertFile , LPCSTR pszKeyFile )
{
	SSL_load_error_strings(); /*为打印调试信息作准备*/ 
	OpenSSL_add_ssl_algorithms(); /*初始化*/ 

	m_meth = (SSL_METHOD *)TLSv1_server_method(); /*采用什么协议(SSLv2/SSLv3/TLSv1)在此指定,TLSv1_server_method,SSLv23_server_method()*/ 

	m_ctx = SSL_CTX_new (m_meth);

	//设置为要求强制校验对方(客户端)证书SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT
	SSL_CTX_set_verify(m_ctx,SSL_VERIFY_NONE,NULL); /*验证与否SSL_VERIFY_PEER*/ 
	//SSL_CTX_load_verify_locations(ctx,CACERT,NULL); /*若验证,则放置CA证书*/

	if (SSL_CTX_use_certificate_file(m_ctx, pszCertFile, SSL_FILETYPE_PEM) <= 0) 
	{
		printf("加载证书失败!\n");
		
	}

	if (SSL_CTX_use_PrivateKey_file(m_ctx, pszKeyFile, SSL_FILETYPE_PEM) <= 0)
	{
		printf("加载私钥失败!\n");
		
	}

	if (!SSL_CTX_check_private_key(m_ctx)) {
		printf("密钥证书不匹配!\n");
	}

	SSL_CTX_set_cipher_list(m_ctx,"DES-CBC3-SHA"); 
	SSL_CTX_set_mode(m_ctx, SSL_MODE_AUTO_RETRY);

	return CreateTcpSocket();
}
开发者ID:gaozan198912,项目名称:myproject,代码行数:34,代码来源:SSLTcpSocket.cpp

示例9: init_ssl_methods

/*
 * initialize ssl methods
 */
static void
init_ssl_methods(void)
{
	LM_DBG("entered\n");

#ifndef OPENSSL_NO_SSL2
	ssl_methods[TLS_USE_SSLv2_cli - 1] = (SSL_METHOD*)SSLv2_client_method();
	ssl_methods[TLS_USE_SSLv2_srv - 1] = (SSL_METHOD*)SSLv2_server_method();
	ssl_methods[TLS_USE_SSLv2 - 1] = (SSL_METHOD*)SSLv2_method();
#endif

	ssl_methods[TLS_USE_SSLv3_cli - 1] = (SSL_METHOD*)SSLv3_client_method();
	ssl_methods[TLS_USE_SSLv3_srv - 1] = (SSL_METHOD*)SSLv3_server_method();
	ssl_methods[TLS_USE_SSLv3 - 1] = (SSL_METHOD*)SSLv3_method();

	ssl_methods[TLS_USE_TLSv1_cli - 1] = (SSL_METHOD*)TLSv1_client_method();
	ssl_methods[TLS_USE_TLSv1_srv - 1] = (SSL_METHOD*)TLSv1_server_method();
	ssl_methods[TLS_USE_TLSv1 - 1] = (SSL_METHOD*)TLSv1_method();

	ssl_methods[TLS_USE_SSLv23_cli - 1] = (SSL_METHOD*)SSLv23_client_method();
	ssl_methods[TLS_USE_SSLv23_srv - 1] = (SSL_METHOD*)SSLv23_server_method();
	ssl_methods[TLS_USE_SSLv23 - 1] = (SSL_METHOD*)SSLv23_method();

#if OPENSSL_VERSION_NUMBER >= 0x10001000L
	ssl_methods[TLS_USE_TLSv1_2_cli - 1] = (SSL_METHOD*)TLSv1_2_client_method();
	ssl_methods[TLS_USE_TLSv1_2_srv - 1] = (SSL_METHOD*)TLSv1_2_server_method();
	ssl_methods[TLS_USE_TLSv1_2 - 1] = (SSL_METHOD*)TLSv1_2_method();
#endif

}
开发者ID:abh-gitcs1989,项目名称:opensips,代码行数:33,代码来源:tls_init.c

示例10: return

static SSL_METHOD *tls1_get_server_method(int ver)
	{
	if (ver == TLS1_VERSION)
		return(TLSv1_server_method());
	else
		return(NULL);
	}
开发者ID:cdaffara,项目名称:symbiandump-os2,代码行数:7,代码来源:t1_srvr.c

示例11: nixio_tls_ctx

static int nixio_tls_ctx(lua_State * L) {
    const char *method = luaL_optlstring(L, 1, "client", NULL);

    luaL_getmetatable(L, NIXIO_TLS_CTX_META);
    SSL_CTX **ctx = lua_newuserdata(L, sizeof(SSL_CTX *));
    if (!ctx) {
        return luaL_error(L, "out of memory");
    }

    /* create userdata */
    lua_pushvalue(L, -2);
    lua_setmetatable(L, -2);

    if (!strcmp(method, "client")) {
        *ctx = SSL_CTX_new(TLSv1_client_method());
    } else if (!strcmp(method, "server")) {
        *ctx = SSL_CTX_new(TLSv1_server_method());
    } else {
        return luaL_argerror(L, 1, "supported values: client, server");
    }

    if (!(*ctx)) {
        return luaL_error(L, "unable to create TLS context");
    }

    return 1;
}
开发者ID:flukso,项目名称:flm02,代码行数:27,代码来源:tls-context.c

示例12: ws_socket

ws_ctx_t *ws_socket_ssl(int socket, char * certfile, char * keyfile) {
   int ret;
   char msg[1024];
   char * use_keyfile;
   ws_ctx_t *ctx;
   ctx = ws_socket(socket);

   if (keyfile && (keyfile[0] != '\0')) {
      // Separate key file
      use_keyfile = keyfile;
   } else {
      // Combined key and cert file
      use_keyfile = certfile;
   }

   // Initialize the library
   if (! ssl_initialized) {
      SSL_library_init();
      OpenSSL_add_all_algorithms();
      SSL_load_error_strings();
      ssl_initialized = 1;

   }

   ctx->ssl_ctx = SSL_CTX_new(TLSv1_server_method());
   if (ctx->ssl_ctx == NULL) {
      ERR_print_errors_fp(stderr);
      fatal("Failed to configure SSL context");
   }

   if (SSL_CTX_use_PrivateKey_file(ctx->ssl_ctx, use_keyfile,
      SSL_FILETYPE_PEM) <= 0) {
         sprintf(msg, "Unable to load private key file %s\n", use_keyfile);
         fatal(msg);
   }

   if (SSL_CTX_use_certificate_file(ctx->ssl_ctx, certfile,
      SSL_FILETYPE_PEM) <= 0) {
         sprintf(msg, "Unable to load certificate file %s\n", certfile);
         fatal(msg);
   }

   //    if (SSL_CTX_set_cipher_list(ctx->ssl_ctx, "DEFAULT") != 1) {
   //        sprintf(msg, "Unable to set cipher\n");
   //        fatal(msg);
   //    }

   // Associate socket and ssl object
   ctx->ssl = SSL_new(ctx->ssl_ctx);
   SSL_set_fd(ctx->ssl, socket);

   ret = SSL_accept(ctx->ssl);
   if (ret < 0) {
      ERR_print_errors_fp(stderr);
      return NULL;
   }

   return ctx;
}
开发者ID:dew111,项目名称:websockify,代码行数:59,代码来源:websocket.c

示例13: raise_warning

bool SSLSocket::setupCrypto(SSLSocket *session /* = NULL */) {
  if (m_handle) {
    raise_warning("SSL/TLS already set-up for this stream");
    return false;
  }

  /* need to do slightly different things, based on client/server method,
   * so lets remember which method was selected */
#if OPENSSL_VERSION_NUMBER < 0x00909000L
  SSL_METHOD *smethod;
#else
  const SSL_METHOD *smethod;
#endif
  switch (m_method) {
  case ClientSSLv23: m_client = true;  smethod = SSLv23_client_method(); break;
  case ClientSSLv3:  m_client = true;  smethod = SSLv3_client_method();  break;
  case ClientTLS:    m_client = true;  smethod = TLSv1_client_method();  break;
  case ServerSSLv23: m_client = false; smethod = SSLv23_server_method(); break;
  case ServerSSLv3:  m_client = false; smethod = SSLv3_server_method();  break;

  /* SSLv2 protocol might be disabled in the OpenSSL library */
#ifndef OPENSSL_NO_SSL2
  case ClientSSLv2:  m_client = true;  smethod = SSLv2_client_method();  break;
  case ServerSSLv2:  m_client = false; smethod = SSLv2_server_method();  break;
#else
  case ClientSSLv2:
  case ServerSSLv2:
    raise_warning("OpenSSL library does not support SSL2 protocol");
    return false;
  break;
#endif

  case ServerTLS:    m_client = false; smethod = TLSv1_server_method();  break;
  default:
    return false;
  }

  SSL_CTX *ctx = SSL_CTX_new(smethod);
  if (ctx == nullptr) {
    raise_warning("failed to create an SSL context");
    return false;
  }

  SSL_CTX_set_options(ctx, SSL_OP_ALL);
  m_handle = createSSL(ctx);
  if (m_handle == nullptr) {
    raise_warning("failed to create an SSL handle");
    SSL_CTX_free(ctx);
    return false;
  }

  if (!SSL_set_fd(m_handle, m_fd)) {
    handleError(0, true);
  }
  if (session) {
    SSL_copy_session_id(m_handle, session->m_handle);
  }
  return true;
}
开发者ID:524777134,项目名称:hiphop-php,代码行数:59,代码来源:ssl_socket.cpp

示例14: server_test

THREAD_RETURN YASSL_API server_test(void* args)
{
#ifdef _WIN32
    WSADATA wsd;
    WSAStartup(0x0002, &wsd);
#endif

    SOCKET_T sockfd   = 0;
    SOCKET_T clientfd = 0;
    int      argc     = 0;
    char**   argv     = 0;

    set_args(argc, argv, *static_cast<func_args*>(args));
    tcp_accept(sockfd, clientfd, *static_cast<func_args*>(args));

    tcp_close(sockfd);

    SSL_METHOD* method = TLSv1_server_method();
    SSL_CTX*    ctx = SSL_CTX_new(method);

    //SSL_CTX_set_cipher_list(ctx, "RC4-SHA:RC4-MD5");
    SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
    set_serverCerts(ctx);
    DH* dh = set_tmpDH(ctx);

    SSL* ssl = SSL_new(ctx);
    SSL_set_fd(ssl, clientfd);

#ifdef NON_BLOCKING
    NonBlockingSSL_Accept(ssl, ctx, clientfd);
#else
    if (SSL_accept(ssl) != SSL_SUCCESS)
        ServerError(ctx, ssl, clientfd, "SSL_accept failed");
#endif
     
    showPeer(ssl);
    printf("Using Cipher Suite: %s\n", SSL_get_cipher(ssl));

    char command[1024];
    int input = SSL_read(ssl, command, sizeof(command));
    if (input > 0) {
        command[input] = 0;
        printf("First client command: %s\n", command);
    }

    char msg[] = "I hear you, fa shizzle!";
    if (SSL_write(ssl, msg, sizeof(msg)) != sizeof(msg))
        ServerError(ctx, ssl, clientfd, "SSL_write failed");

    DH_free(dh);
    SSL_CTX_free(ctx);
    SSL_shutdown(ssl);
    SSL_free(ssl);

    tcp_close(clientfd);

    ((func_args*)args)->return_code = 0;
    return 0;
}
开发者ID:524873576,项目名称:inception,代码行数:59,代码来源:server.cpp

示例15: SSL_CTX_new

  bool OpenSSLServer::setType()
  {
    m_ctx = SSL_CTX_new( TLSv1_server_method() );
    if( !m_ctx )
      return false;

    return true;
  }
开发者ID:Barrett17,项目名称:Caya,代码行数:8,代码来源:tlsopensslserver.cpp


注:本文中的TLSv1_server_method函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。