]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: hs20-osu-client testing for PPS MO parsing
authorJouni Malinen <jouni@codeaurora.org>
Thu, 21 Jun 2018 16:18:54 +0000 (19:18 +0300)
committerJouni Malinen <j@w1.fi>
Thu, 21 Jun 2018 16:18:54 +0000 (19:18 +0300)
This adds a mechanism to allow hs20-osu-client set_pps command to be
tested with PPS MO files.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
tests/hwsim/devdetail.xml [new file with mode: 0644]
tests/hwsim/devinfo.xml [new file with mode: 0644]
tests/hwsim/pps-mo-1.xml [new file with mode: 0644]
tests/hwsim/test_hs20_pps_mo.py [new file with mode: 0644]

diff --git a/tests/hwsim/devdetail.xml b/tests/hwsim/devdetail.xml
new file mode 100644 (file)
index 0000000..6d0389e
--- /dev/null
@@ -0,0 +1,47 @@
+<DevDetail xmlns="urn:oma:mo:oma-dm-devdetail:1.0">
+       <Ext>
+               <org.wi-fi>
+                       <Wi-Fi>
+                               <EAPMethodList>
+                                       <EAPMethod1>
+                                               <EAPType>13</EAPType>
+                                       </EAPMethod1>
+                                       <EAPMethod2>
+                                               <EAPType>21</EAPType>
+                                               <InnerMethod>MS-CHAP-V2</InnerMethod>
+                                       </EAPMethod2>
+                                       <EAPMethod3>
+                                               <EAPType>18</EAPType>
+                                       </EAPMethod3>
+                                       <EAPMethod4>
+                                               <EAPType>23</EAPType>
+                                       </EAPMethod4>
+                                       <EAPMethod5>
+                                               <EAPType>50</EAPType>
+                                       </EAPMethod5>
+                               </EAPMethodList>
+                               <ManufacturingCertificate>false</ManufacturingCertificate>
+                               <Wi-FiMACAddress>020102030405</Wi-FiMACAddress>
+                               <IMSI>310026000000000</IMSI>
+                               <IMEI_MEID>imei:490123456789012</IMEI_MEID>
+                               <ClientTriggerRedirectURI>http://localhost:12345/</ClientTriggerRedirectURI>
+                               <Ops>
+                                       <launchBrowserToURI></launchBrowserToURI>
+                                       <negotiateClientCertTLS></negotiateClientCertTLS>
+                                       <getCertificate></getCertificate>
+                               </Ops>
+                       </Wi-Fi>
+               </org.wi-fi>
+       </Ext>
+       <URI>
+               <MaxDepth>0</MaxDepth>
+               <MaxTotLen>0</MaxTotLen>
+               <MaxSegLen>0</MaxSegLen>
+       </URI>
+       <DevType>MobilePhone</DevType>
+       <OEM>Manufacturer</OEM>
+       <FwV>1.0</FwV>
+       <SwV>1.0</SwV>
+       <HwV>1.0</HwV>
+       <LrgObj>false</LrgObj>
+</DevDetail>
diff --git a/tests/hwsim/devinfo.xml b/tests/hwsim/devinfo.xml
new file mode 100644 (file)
index 0000000..d48a520
--- /dev/null
@@ -0,0 +1,7 @@
+<DevInfo xmlns="urn:oma:mo:oma-dm-devinfo:1.0">
+       <DevId>urn:Example:HS20-station:123456</DevId>
+       <Man>Manufacturer</Man>
+       <Mod>HS20-station</Mod>
+       <DmV>1.2</DmV>
+       <Lang>en</Lang>
+</DevInfo>
diff --git a/tests/hwsim/pps-mo-1.xml b/tests/hwsim/pps-mo-1.xml
new file mode 100644 (file)
index 0000000..b5f8185
--- /dev/null
@@ -0,0 +1,62 @@
+<PerProviderSubscription>
+       <UpdateIdentifier>1</UpdateIdentifier>
+       <Cred01>
+               <Policy>
+                       <PreferredRoamingPartnerList>
+                               <RP01>
+                                       <FQDN_Match>another.example.org,includeSubdomains</FQDN_Match>
+                                       <Priority>10</Priority>
+                               </RP01>
+                               <RP02>
+                                       <FQDN_Match>example.com,exactMatch</FQDN_Match>
+                                       <Priority>20</Priority>
+                               </RP02>
+                       </PreferredRoamingPartnerList>
+                       <PolicyUpdate>
+                               <UpdateInterval>10</UpdateInterval>
+                               <UpdateMethod>SPP-ClientInitiated</UpdateMethod>
+                               <Restriction>Unrestricted</Restriction>
+                               <URI>https://policy.example.com/run</URI>
+                               <TrustRoot>
+                                       <CertURL>http://example.com/policy-root.der</CertURL>
+                                       <CertSHA256Fingerprint>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</CertSHA256Fingerprint>
+                               </TrustRoot>
+                       </PolicyUpdate>
+               </Policy>
+               <CredentialPriority>1</CredentialPriority>
+               <AAAServerTrustRoot>
+                       <Root1>
+                               <CertURL>http://example.com/cacert.der</CertURL>
+                               <CertSHA256Fingerprint>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</CertSHA256Fingerprint>
+                       </Root1>
+               </AAAServerTrustRoot>
+               <SubscriptionUpdate>
+                       <UpdateInterval>4294967295</UpdateInterval>
+                       <UpdateMethod>SPP-ClientInitiated</UpdateMethod>
+                       <Restriction>HomeSP</Restriction>
+                       <URI>https://remediation.example.com/run</URI>
+                       <TrustRoot>
+                               <CertURL>http://example.com/subscription-root.der</CertURL>
+                               <CertSHA256Fingerprint>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</CertSHA256Fingerprint>
+                       </TrustRoot>
+               </SubscriptionUpdate>
+               <HomeSP>
+                       <FriendlyName>Example Operator</FriendlyName>
+                       <FQDN>w1.fi</FQDN>
+                       <RoamingConsortiumOI>010203040506</RoamingConsortiumOI>
+               </HomeSP>
+               <Credential>
+                       <CreationDate>2012-12-01T12:00:00Z</CreationDate>
+                       <UsernamePassword>
+                               <Username>hs20-test</Username>
+                               <Password>cGFzc3dvcmQ=</Password>
+                               <MachineManaged>TRUE</MachineManaged>
+                               <EAPMethod>
+                                       <EAPType>21</EAPType>
+                                       <InnerMethod>MS-CHAP-V2</InnerMethod>
+                               </EAPMethod>
+                       </UsernamePassword>
+                       <Realm>w1.fi</Realm>
+               </Credential>
+       </Cred01>
+</PerProviderSubscription>
diff --git a/tests/hwsim/test_hs20_pps_mo.py b/tests/hwsim/test_hs20_pps_mo.py
new file mode 100644 (file)
index 0000000..5324cde
--- /dev/null
@@ -0,0 +1,42 @@
+# Hotspot 2.0 PPS MO tests
+# Copyright (c) 2018, The Linux Foundation
+#
+# This software may be distributed under the terms of the BSD license.
+# See README for more details.
+
+import logging
+logger = logging.getLogger()
+import os.path
+import subprocess
+
+import hostapd
+from utils import HwsimSkip
+from test_ap_hs20 import hs20_ap_params, interworking_select, interworking_connect, check_sp_type
+from test_ap_eap import check_eap_capa
+
+def check_hs20_osu_client():
+    if not os.path.exists("../../hs20/client/hs20-osu-client"):
+        raise HwsimSkip("No hs20-osu-client available")
+
+def set_pps(pps_mo):
+    res = subprocess.check_output(["../../hs20/client/hs20-osu-client",
+                                   "set_pps", pps_mo])
+    logger.info("set_pps result: " + res)
+
+def test_hs20_pps_mo_1(dev, apdev):
+    """Hotspot 2.0 PPS MO with username/password credential"""
+    check_hs20_osu_client()
+    check_eap_capa(dev[0], "MSCHAPV2")
+    bssid = apdev[0]['bssid']
+    params = hs20_ap_params()
+    params['hessid'] = bssid
+    params['nai_realm'] = [ "0,w1.fi,13[5:6],21[2:4][5:7]",
+                            "0,another.example.com" ]
+    params['domain_name'] = "w1.fi"
+    hapd = hostapd.add_ap(apdev[0], params)
+
+    dev[0].hs20_enable()
+    set_pps("pps-mo-1.xml")
+    interworking_select(dev[0], bssid, "home", freq="2412")
+    interworking_connect(dev[0], bssid, "TTLS")
+    check_sp_type(dev[0], "home")