Source code for univention.testing.ucsschool.radius
from __future__ import print_function
import tempfile
from univention.testing.ucsschool.computerroom import run_commands
[docs]
def write_peap_config_file(conf_file, username, password):
content = """network={
key_mgmt=WPA-EAP
eap=PEAP
identity="%s"
anonymous_identity="anonymous"
password="%s"
phase2="autheap=MSCHAPV2"\n}""" % (
username,
password,
)
conf_file.write(content)
[docs]
def peap_auth(username, password, radius_secret):
peap_conf_file = tempfile.NamedTemporaryFile("w+", suffix=".conf", dir="/tmp")
print(" ** Creating temp config file %s" % peap_conf_file.name)
write_peap_config_file(peap_conf_file, username, password)
peap_conf_file.flush()
peap_auth_cmd = ["eapol_test", "-c", "%(peap_conf_file)s", "-s", "%(radius_secret)s"]
result = run_commands(
[peap_auth_cmd], {"peap_conf_file": peap_conf_file.name, "radius_secret": radius_secret}
)
return result[0] == 0
[docs]
def test_peap_auth(username, password, radius_secret, should_succeed=True):
print(
"*** PEAP AUTH: user: %s, password: %s, should_succeed: %r"
% (
username,
password,
should_succeed,
),
"-" * 40,
)
auth_result = peap_auth(username, password, radius_secret)
assert (
auth_result == should_succeed
), "PEAP authentication unexpected result (%r), while the expected is (%r)\nUser=%s" % (
auth_result,
should_succeed,
username,
)