I have trouble when trying to wifi-enterprise authentication on rcm5600w(as clients) to pc(as server) in infrastructure network over access point.
If the access point does not support a built-in radius server, how to solve this problem?
Thanks
Access Point(TL-WA701ND) configuration:
** OPERATION MODE **
Operation Mode: Access Point
Type: Static IP
IP Address: 192.168.0.254
Subnet Mask: 255.255.255.0
Gateway: 0.0.0.0
** WIRELESS SETTINGS **
Wireless Network Name(SSID): TP-LINK_876D3E
Channel: Auto
Mode: 11bgn mixed
Enable WIreless Radio: True
Enable SSID Broadcast: True
** WIRELESS SECURITY **
Mode: WPA/WPA2 - Enterprise
Version: WPA2
Encryption: AES
Radius Server IP: 192.168.0.1
Radius Port: 1812
Radius Password: pwd12345
Group Key Update Periode: 30 second
[/quote]
My DC program as follows:
#class auto
#define X509_NO_RTC_AVAILABLE
#define TCPCONFIG 1
#define _PRIMARY_STATIC_IP "192.168.0.2"
#define _PRIMARY_NETMASK "255.255.255.0"
#define MY_GATEWAY "192.168.0.250"
#define MY_NAMESERVER "192.168.0.251"
#define IFC_WIFI_SSID "TP-LINK_876D3E"
#define IFC_WIFI_ROAM_ENABLE 1
#define IFC_WIFI_ROAM_BEACON_MISS 20
#define IFC_WIFI_MODE IFPARAM_WIFI_INFRASTRUCTURE
#define IFC_WIFI_REGION IFPARAM_WIFI_REGION_AMERICAS
#define WIFI_USE_WPA
#define WIFI_AES_ENABLED
#define IFC_WIFI_ENCRYPTION IFPARAM_WIFI_ENCR_CCMP
#define WPA_USE_EAP WPA_USE_EAP_TLS
#define IFC_WIFI_WPA_PROTOCOL IFPARAM_WIFI_WPA_PROTOCOL_WPA2
#define IFC_WIFI_IDENTITY "pwd12345"
#ximport "d:\certmgr\private\PT.CTECH CA.pem" root_ca_cert
#ximport "d:\certmgr\certs\client_ssls.pem" my_client_cert // publics key
#ximport "d:\certmgr\certs\client_sslkey.pem" my_client_key // private key
#define IFC_WIFI_CA_CERT_XIM root_ca_cert
#define IFC_WIFI_CLIENT_CERT_XIM my_client_cert, my_client_key
#define SSL_USE_AES
#define IFC_WIFI_CHANNEL 1
#use "dcrtcp.lib"
#use "rcm56xxw.lib"
#define DEST "192.168.0.1"
#define PORT 1812
////////////////////////////////////////////////////////////////////////
SSL_Cert_t ca_cert;
void main()
{
char buffer[100];
int bytes_read, tmo;
longword destIP;
tcp_Socket socket;
brdInit();
memset(&ca_cert, 0, sizeof(ca_cert));
if (SSL_new_cert(&ca_cert, root_ca_cert, SSL_DCERT_XIM, 0) || SSL_set_private_key(&ca_cert, my_client_cert, SSL_DCERT_XIM))
exit(7);
// Start network and wait for interface to come up (or error exit).
ifconfig(IF_WIFI0, IFS_WIFI_CA_CERT, (SSL_Cert_t far *)&ca_cert, IFS_END);
ifup(IF_WIFI0);
printf("Waiting for interface to come back up...
");
tmo = _SET_SHORT_TIMEOUT(10000);
while (ifpending(IF_WIFI0) == IF_COMING_UP) {
tcp_tick(NULL);
if (_CHK_SHORT_TIMEOUT(tmo)) {
printf("Still waiting...
");
tmo = _SET_SHORT_TIMEOUT(10000);
}
}
if (ifpending(IF_WIFI0) == IF_DOWN) {
printf("Interface failed to come back up.
");
exit(2);
}
//sock_init_or_exit(1);
if( 0L == (destIP = resolve(DEST)) ) {
printf( "ERROR: Cannot resolve \"%s\" into an IP address
", DEST );
exit(2);
}
tcp_open(&socket,0,destIP,PORT,NULL);
printf("Waiting for connection...
");
while(!sock_established(&socket) && sock_bytesready(&socket)==-1) {
tcp_tick(NULL);
}
printf("Connection established...
");
}