📄 radiustest.cxx
字号:
secret) && resultSend == resultRecv ); cpLog( LOG_INFO, "Verbose\n[%s]", accessAcceptMsg2.verbose().c_str() ); } catch( VRadiusException &e ) { cpLog( LOG_ERR, "Test failed - %s", e.getDescription().c_str() ); } cpLog( LOG_INFO, "\n-------------------- Test 3 ----------------------\n Access-Reject\n" ); // At the server side RadiusMessage accessRejectMsg( RP_ACCESS_REJECT, udpMsg1.msgHdr.identifier, accessReqAuth ); // Warning: assert is used for testing only assert( accessRejectMsg.add( attrReplyMessage2 ) ); assert( accessRejectMsg.add( attrReplyMessage3 ) ); accessRejectMsg.calcAuthenticator( secret ); resultSend = accessRejectMsg.hexDump(); // At the client side RawMessage udpMsg3( accessRejectMsg.data() ); RadiusData msgReceived3( udpMsg3.buffer, ntohs(udpMsg3.msgHdr.length) ); try { RadiusMessage accessRejectMsg2( msgReceived3, secret ); resultRecv = accessRejectMsg2.hexDump(); test_verify( accessRejectMsg2.verifyResponseAuthenticator(accessReqAuth, secret) && resultSend == resultRecv ); cpLog( LOG_INFO, "Verbose\n[%s]", accessRejectMsg.verbose().c_str() ); } catch( VRadiusException &e ) { cpLog( LOG_ERR, "Test failed - %s", e.getDescription().c_str() ); } cpLog( LOG_INFO, "\n-------------------- Test 4 ----------------------\n Accounting-Requesst Start\n" ); // At the client side RadiusMessage acctReqMsg( RP_ACCOUNTING_REQUEST ); // Warning: assert is used for testing only assert( acctReqMsg.add( attrUserName ) ); assert( acctReqMsg.add( attrNasIpAddress ) ); assert( acctReqMsg.add( attrNasPort ) ); assert( acctReqMsg.add( accessAcceptMsg.get( RA_CLASS ) ) ); assert( acctReqMsg.add( attrCallee ) ); assert( acctReqMsg.add( attrCaller ) ); assert( acctReqMsg.add( attrAcctStatusStart ) ); assert( acctReqMsg.add( attrAcctSessionId ) ); acctReqMsg.setIdentifier( ++identifier ); acctReqMsg.calcAuthenticator( secret ); resultSend = acctReqMsg.hexDump(); // At the server side RawMessage udpMsg4( acctReqMsg.data() ); RadiusData msgReceived4( udpMsg4.buffer, ntohs(udpMsg4.msgHdr.length) ); try { RadiusMessage acctReqMsg2( msgReceived4, secret ); resultRecv = acctReqMsg2.hexDump(); test_verify( resultSend == resultRecv ); cpLog( LOG_INFO, "Verbose\n[%s]", acctReqMsg2.verbose().c_str() ); } catch( VRadiusException &e ) { cpLog( LOG_ERR, "Test failed - %s", e.getDescription().c_str() ); } cpLog( LOG_INFO, "\n-------------------- Test 5 ----------------------\n Accounting-Response\n" ); // At the server side const u_int8_t* reqAuth = acctReqMsg.getAuthenticator(); RadiusMessage acctRespMsg( RP_ACCOUNTING_RESPONSE, udpMsg4.msgHdr.identifier, reqAuth ); acctRespMsg.calcAuthenticator( secret ); resultSend = acctRespMsg.hexDump(); // At the client side RawMessage udpMsg5( acctRespMsg.data() ); RadiusData msgReceived5( udpMsg5.buffer, ntohs(udpMsg5.msgHdr.length) ); try { RadiusMessage acctRespMsg2( msgReceived5, secret ); if( acctRespMsg2.type() == RP_ACCOUNTING_RESPONSE ) { if( acctRespMsg2.verifyResponseAuthenticator( reqAuth, secret ) ) { resultRecv = acctRespMsg2.hexDump(); test_verify( resultSend == resultRecv ); cpLog( LOG_INFO, "Verbose\n[%s]", acctRespMsg2.verbose().c_str() ); } else { cpLog( LOG_ERR, "Cannot verify Response Authenticator" ); } } } catch( VRadiusException &e ) { cpLog( LOG_ERR, "Test failed - %s", e.getDescription().c_str() ); } cpLog( LOG_INFO, "\n-------------------- Test 6 ----------------------\n Accounting-Requesst Interim\n" ); // At the client side RadiusMessage acctInterimMsg( RP_ACCOUNTING_REQUEST ); // Warning: assert is used for testing only assert( acctInterimMsg.add( acctReqMsg.get( RA_USER_NAME ) ) ); assert( acctInterimMsg.add( acctReqMsg.get( RA_NAS_IP_ADDRESS ) ) ); assert( acctInterimMsg.add( acctReqMsg.get( RA_NAS_PORT ) ) ); assert( acctInterimMsg.add( accessAcceptMsg.get( RA_CLASS ) ) ); assert( acctInterimMsg.add( acctReqMsg.get( RA_CALLED_STATION_ID ) ) ); assert( acctInterimMsg.add( acctReqMsg.get( RA_CALLING_STATION_ID ) ) ); assert( acctInterimMsg.add( attrAcctStatusInterim ) ); assert( acctInterimMsg.add( acctReqMsg.get( RA_ACCT_SESSION_ID ) ) ); acctInterimMsg.setIdentifier( ++identifier ); acctInterimMsg.calcAuthenticator( secret ); resultSend = acctInterimMsg.hexDump(); // At the server side RawMessage udpMsg6( acctInterimMsg.data() ); RadiusData msgReceived6( udpMsg6.buffer, ntohs(udpMsg6.msgHdr.length) ); try { RadiusMessage acctReqMsg2( msgReceived6, secret ); resultRecv = acctReqMsg2.hexDump(); test_verify( resultSend == resultRecv ); cpLog( LOG_INFO, "Verbose\n[%s]", acctReqMsg2.verbose().c_str() ); } catch( VRadiusException &e ) { cpLog( LOG_ERR, "Test failed - %s", e.getDescription().c_str() ); } cpLog( LOG_INFO, "\n-------------------- Test 7 ----------------------\n Accounting-Requesst Stop\n" ); // At the client side RadiusMessage acctStopMsg( RP_ACCOUNTING_REQUEST ); // Warning: assert is used for testing only assert( acctStopMsg.add( acctReqMsg.get( RA_USER_NAME ) ) ); assert( acctStopMsg.add( acctReqMsg.get( RA_NAS_IP_ADDRESS ) ) ); assert( acctStopMsg.add( acctReqMsg.get( RA_NAS_PORT ) ) ); assert( acctStopMsg.add( acctReqMsg.get( RA_CALLED_STATION_ID ) ) ); assert( acctStopMsg.add( acctReqMsg.get( RA_CALLING_STATION_ID ) ) ); assert( acctStopMsg.add( attrAcctStatusStop ) ); assert( acctStopMsg.add( acctReqMsg.get( RA_ACCT_SESSION_ID ) ) ); assert( acctStopMsg.add( attrAcctSessionTime ) ); assert( acctStopMsg.add( attrAcctTerminateCause ) ); acctStopMsg.setIdentifier( ++identifier ); acctStopMsg.calcAuthenticator( secret ); resultSend = acctStopMsg.hexDump(); // At the server side RawMessage udpMsg7( acctStopMsg.data() ); RadiusData msgReceived7( udpMsg7.buffer, ntohs(udpMsg7.msgHdr.length) ); try { RadiusMessage acctReqMsg2( msgReceived7, secret ); resultRecv = acctReqMsg2.hexDump(); test_verify( resultSend == resultRecv ); cpLog( LOG_INFO, "Verbose\n[%s]", acctReqMsg2.verbose().c_str() ); } catch( VRadiusException &e ) { cpLog( LOG_ERR, "Test failed - %s", e.getDescription().c_str() ); } cpLog( LOG_INFO, "\n-------------------- End ----------------------\n"); return test_return_code( 7 );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -