Add socket wrapper

This commit is contained in:
Zhi Guan
2022-11-01 17:49:48 +08:00
parent 3484417cbe
commit 85e745121f
13 changed files with 105 additions and 281 deletions

View File

@@ -12,18 +12,6 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
// FIMXE: socket related headers should be moved to tls.h
#include <winsock2.h>
#else
#include <unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#endif
#include <gmssl/tls.h>
#include <gmssl/error.h>
@@ -49,11 +37,7 @@ int tlcp_client_main(int argc, char *argv[])
char *pass = NULL;
struct hostent *hp;
struct sockaddr_in server;
#ifdef WIN32
SOCKET sock;
#else
int sock;
#endif
tls_socket_t sock;
TLS_CTX ctx;
TLS_CONNECT conn;
char buf[1024] = {0};
@@ -206,11 +190,7 @@ bad:
end:
#ifdef WIN32
closesocket(sock);
#else
close(sock);
#endif
tls_socket_close(sock);
tls_ctx_cleanup(&ctx);
tls_cleanup(&conn);
return 0;

View File

@@ -12,15 +12,6 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#include <winsock2.h>
#else
#include <unistd.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#endif
#include <gmssl/mem.h>
#include <gmssl/sm2.h>
#include <gmssl/tls.h>
@@ -47,23 +38,11 @@ int tlcp_server_main(int argc , char **argv)
TLS_CONNECT conn;
char buf[1600] = {0};
size_t len = sizeof(buf);
#ifdef WIN32
SOCKET sock;
SOCKET conn_sock;
#else
int sock;
int conn_sock;
#endif
tls_socket_t sock;
tls_socket_t conn_sock;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
#ifdef WIN32
int client_addrlen;
#else
socklen_t client_addrlen;
#endif
tls_socklen_t client_addrlen;
argc--;
argv++;
@@ -194,7 +173,7 @@ restart:
if (rv < 0) fprintf(stderr, "%s: recv failure\n", prog);
else fprintf(stderr, "%s: Disconnected by remote\n", prog);
//close(conn.sock);
//tls_socket_close(conn.sock); // FIXME:
tls_cleanup(&conn);
goto restart;
}
@@ -202,11 +181,7 @@ restart:
if (tls_send(&conn, (uint8_t *)buf, len, &sentlen) != 1) {
fprintf(stderr, "%s: send failure, close connection\n", prog);
#ifdef WIN32
closesocket(conn.sock);
#else
close(conn.sock);
#endif
tls_socket_close(conn.sock);
goto end;
}
}

View File

@@ -12,19 +12,6 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#include <winsock2.h>
#else
#include <unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#endif
#include <gmssl/tls.h>
#include <gmssl/error.h>
@@ -52,11 +39,7 @@ int tls12_client_main(int argc, char *argv[])
char *pass = NULL;
struct hostent *hp;
struct sockaddr_in server;
#ifdef WIN32
SOCKET sock;
#else
int sock;
#endif
tls_socket_t sock;
TLS_CTX ctx;
TLS_CONNECT conn;
char buf[1024] = {0};
@@ -202,11 +185,7 @@ bad:
end:
#ifdef WIN32
closesocket(sock);
#else
close(sock);
#endif
tls_socket_close(sock);
tls_ctx_cleanup(&ctx);
tls_cleanup(&conn);
return 0;

View File

@@ -12,15 +12,6 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#include <winsock2.h>
#else
#include <unistd.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#endif
#include <gmssl/mem.h>
#include <gmssl/sm2.h>
#include <gmssl/tls.h>
@@ -45,24 +36,11 @@ int tls12_server_main(int argc , char **argv)
TLS_CONNECT conn;
char buf[1600] = {0};
size_t len = sizeof(buf);
#ifdef WIN32
SOCKET sock;
SOCKET conn_sock;
#else
int sock;
int conn_sock;
#endif
tls_socket_t sock;
tls_socket_t conn_sock;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
#ifdef WIN32
int client_addrlen;
#else
socklen_t client_addrlen;
#endif
tls_socklen_t client_addrlen;
argc--;
argv++;
@@ -179,7 +157,7 @@ restart:
if (rv < 0) fprintf(stderr, "%s: recv failure\n", prog);
else fprintf(stderr, "%s: Disconnected by remote\n", prog);
//close(conn.sock);
//tls_socket_close(conn.sock); // FIXME:
tls_cleanup(&conn);
goto restart;
}
@@ -187,11 +165,7 @@ restart:
if (tls_send(&conn, (uint8_t *)buf, len, &sentlen) != 1) {
fprintf(stderr, "%s: send failure, close connection\n", prog);
#ifdef WIN32
closesocket(conn.sock);
#else
close(conn.sock);
#endif
tls_socket_close(conn.sock);
goto end;
}
}

View File

@@ -12,16 +12,6 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#include <winsock2.h>
#else
#include <unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#endif
#include <gmssl/tls.h>
#include <gmssl/error.h>
@@ -49,11 +39,7 @@ int tls13_client_main(int argc, char *argv[])
char *pass = NULL;
struct hostent *hp;
struct sockaddr_in server;
#ifdef WIN32
SOCKET sock;
#else
int sock;
#endif
tls_socket_t sock;
TLS_CTX ctx;
TLS_CONNECT conn;
char buf[1024] = {0};
@@ -198,11 +184,7 @@ bad:
}
end:
#ifdef WIN32
closesocket(sock);
#else
close(sock);
#endif
tls_socket_close(sock);
tls_ctx_cleanup(&ctx);
tls_cleanup(&conn);
return 0;

View File

@@ -12,15 +12,6 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#include <winsock2.h>
#else
#include <unistd.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#endif
#include <gmssl/mem.h>
#include <gmssl/sm2.h>
#include <gmssl/tls.h>
@@ -38,30 +29,16 @@ int tls13_server_main(int argc , char **argv)
char *keyfile = NULL;
char *pass = NULL;
char *cacertfile = NULL;
int server_ciphers[] = { TLS_cipher_sm4_gcm_sm3, };
TLS_CTX ctx;
TLS_CONNECT conn;
char buf[1600] = {0};
size_t len = sizeof(buf);
#ifdef WIN32
SOCKET sock;
SOCKET conn_sock;
#else
int sock;
int conn_sock;
#endif
tls_socket_t sock;
tls_socket_t conn_sock;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
#ifdef WIN32
int client_addrlen;
#else
socklen_t client_addrlen;
#endif
tls_socklen_t client_addrlen;
argc--;
argv++;
@@ -186,11 +163,7 @@ restart:
if (tls13_send(&conn, (uint8_t *)buf, len, &sentlen) != 1) {
fprintf(stderr, "%s: send failure, close connection\n", prog);
#ifdef WIN32
closesocket(conn.sock);
#else
close(conn.sock);
#endif
tls_socket_close(conn.sock);
goto end;
}
}