Add tests for PPP CHAP layer

This commit is contained in:
Jan Sebechlebsky 2017-04-22 20:21:12 +02:00
parent 52d4b63e0d
commit 955c5b14a3
1 changed files with 78 additions and 0 deletions

View File

@ -382,6 +382,84 @@ pap_request_pkt = PPP('c023012a00220d61646d696e6973747261746f720f7365637265745f7
assert pap_response_pkt.answers(pap_request_pkt)
assert not pap_request_pkt.answers(pap_response_pkt)
+ PPP CHAP Tests
= Test PPP CHAP Challenge
~ ppp chap chap_challenge
chap_challenge = PPP() / PPP_CHAP(code=1, id=47, value=('42'*7).decode('hex'),
optional_name='server')
chap_challenge_ref_data = 'c223012f00120742424242424242736572766572'.decode('hex')
assert str(chap_challenge) == chap_challenge_ref_data
chap_challenge_pkt = PPP(chap_challenge_ref_data)
assert PPP_CHAP_ChallengeResponse in chap_challenge_pkt
assert chap_challenge_pkt[PPP_CHAP_ChallengeResponse].code == 1
assert chap_challenge_pkt[PPP_CHAP_ChallengeResponse].id == 47
assert chap_challenge_pkt[PPP_CHAP_ChallengeResponse].value_size == 7
assert chap_challenge_pkt[PPP_CHAP_ChallengeResponse].value == ('42'*7).decode('hex')
assert chap_challenge_pkt[PPP_CHAP_ChallengeResponse].optional_name == 'server'
assert chap_challenge_pkt[PPP_CHAP_ChallengeResponse].summary() == 'CHAP challenge=0x42424242424242 optional_name=\'server\''
= Test PPP CHAP Response
~ ppp chap chap_response
chap_response = PPP() / PPP_CHAP(code='Response', id=47, value=('00'*16).decode('hex'), optional_name='client')
chap_response_ref_data = 'c223022f001b1000000000000000000000000000000000636c69656e74'.decode('hex')
assert str(chap_response) == chap_response_ref_data
chap_response_pkt = PPP(chap_response_ref_data)
assert PPP_CHAP_ChallengeResponse in chap_response_pkt
assert chap_response_pkt[PPP_CHAP_ChallengeResponse].code == 2
assert chap_response_pkt[PPP_CHAP_ChallengeResponse].id == 47
assert chap_response_pkt[PPP_CHAP_ChallengeResponse].value_size == 16
assert chap_response_pkt[PPP_CHAP_ChallengeResponse].value == ('00'*16).decode('hex')
assert chap_response_pkt[PPP_CHAP_ChallengeResponse].optional_name == 'client'
assert chap_response_pkt[PPP_CHAP_ChallengeResponse].summary() == 'CHAP response=0x00000000000000000000000000000000 optional_name=\'client\''
chap_request = PPP('c223012f00120742424242424242736572766572'.decode('hex'))
assert chap_response.answers(chap_challenge)
assert not chap_challenge.answers(chap_response)
= Test PPP CHAP Success
~ ppp chap chap_success
chap_success = PPP() / PPP_CHAP(code='Success', id=47)
chap_success_ref_data = 'c223032f0004'.decode('hex')
assert str(chap_success) == chap_success_ref_data
chap_success_pkt = PPP(chap_success_ref_data)
assert PPP_CHAP in chap_success_pkt
assert chap_success_pkt[PPP_CHAP].code == 3
assert chap_success_pkt[PPP_CHAP].id == 47
assert chap_success_pkt[PPP_CHAP].data == ''
assert chap_success_pkt[PPP_CHAP].summary() == 'CHAP Success message=\'\''
chap_response_pkt = PPP('c223022f001b1000000000000000000000000000000000636c69656e74'.decode('hex'))
assert chap_success_pkt.answers(chap_response_pkt)
assert not chap_response_pkt.answers(chap_success_pkt)
= Test PPP CHAP Failure
~ ppp chap chap_failure
chap_failure = PPP() / PPP_CHAP(code='Failure', id=47, data='Go away')
chap_failure_ref_data = 'c223042f000b476f2061776179'.decode('hex')
assert str(chap_failure) == chap_failure_ref_data
chap_failure_pkt = PPP(chap_failure_ref_data)
assert PPP_CHAP in chap_failure_pkt
assert chap_failure_pkt[PPP_CHAP].code == 4
assert chap_failure_pkt[PPP_CHAP].id == 47
assert chap_failure_pkt[PPP_CHAP].data == 'Go away'
assert chap_failure_pkt[PPP_CHAP].summary() == 'CHAP Failure message=\'Go away\''
chap_response_pkt = PPP('c223022f001b1000000000000000000000000000000000636c69656e74'.decode('hex'))
assert chap_failure_pkt.answers(chap_response_pkt)
assert not chap_failure_pkt.answers(chap_success_pkt)
+ PPTP Tests
= Test PPTP Start-Control-Connection-Request
~ pptp