#!/bin/sh /etc/rc.common START=49 USE_PROCD=1 setup_ca() { [ -e /etc/hs20/AS/Key/server.pem ] && return 0 local company friendly_name rootsubject logo_sha1 logo_sha256 logo_url domain osu_client_subject ocsp_server_subject key_passphrase osu_server_name ocsp_uri revoked_subject config_load hs20 config_get company ca company config_get friendly_name ca friendly_name config_get rootsubject ca rootsubject config_get logo_sha1 ca logo_sha1 config_get logo_sha256 ca logo_sha256 config_get logo_url ca logo_url config_get domain ca domain config_get osu_client_subject ca osu_client_subject config_get ocsp_server_subject ca ocsp_server_subject config_get key_passphrase ca key_passphrase config_get osu_server_name ca osu_server_name config_get ocsp_uri ca ocsp_uri mkdir -p /etc/hs20/ca ( cd /etc/hs20/ca /bin/busybox sh /usr/share/hs20/ca/setup.sh -c "$company" -C "$friendly_name" -g "$logo_sha1" -G "$logo_sha256" -l "$logo_url" -m "$domain" -o "$osu_client_subject" -O "$ocsp_server_subject" -p "$key_passphrase" -S "$osu_server_name" -u "$ocsp_uri" -V "$revoked_subject" ) mkdir -p /etc/hs20/AS/Key cp /etc/hs20/ca/server.* /etc/hs20/ca/ca.pem /etc/hs20/AS/Key return 0 } sql_set() { echo "DELETE FROM osu_config WHERE realm='$1' AND field='$2';" echo "INSERT INTO osu_config(realm,field,value) VALUES('$1','$2','$3');" } setup_dbconf() { local domain spp_http_auth_url trust_root_cert_url config_load hs20 config_get realm ca domain config_get spp_http_auth_url server spp_http_auth_url config_get trust_root_cert_url server trust_root_cert_url config_get trust_root_cert_fingerprint server trust_root_cert_fingerprint config_get aaa_trust_root_cert_url server aaa_trust_root_cert_url config_get aaa_trust_root_cert_fingerprint server aaa_trust_root_cert_fingerprint config_get free_account server free_account config_get policy_url server policy_url config_get remediation_url server remediation_url config_get free_remediation_url server free_remediation_url config_get signup_url server signup_url ( sql_set $realm spp_http_auth_url "$spp_http_auth_url" sql_set $realm trust_root_cert_url "$trust_root_cert_url" sql_set $realm trust_root_cert_fingerprint "$trust_root_cert_fingerprint" sql_set $realm aaa_trust_root_cert_url "$aaa_trust_root_cert_url" sql_set $realm aaa_trust_root_cert_fingerprint "$aaa_trust_root_cert_fingerprint" sql_set $realm free_account "$free_account" sql_set $realm policy_url "$policy_url" sql_set $realm remediation_url "$remediation_url" sql_set $realm free_remediation_url "$free_remediation_url" sql_set $realm signup_url "$signup_url" ) | sqlite3 /etc/hs20/AS/DB/eap_user.db return 0 } setup_policy() { local update_interval update_method restriction uri config_load hs20 config_get update_interval policy update_interval config_get update_method policy update_method config_get restriction policy restriction config_get uri policy uri if [ ! -e "/etc/hs20/spp/policy/default.xml" ]; then mkdir -p /etc/hs20/spp/policy ln -s /tmp/run/spp-default-policy.xml /etc/hs20/spp/policy/default.xml fi cat > /tmp/run/spp-default-policy.xml < $update_interval $update_method $restriction $uri EOF return 0 } prepare_config() { local key_passphrase subscr_remediation_url osu_nai as_passphrase radius_passphrase config_load hs20 config_get key_passphrase ca key_passphrase config_get subscr_remediation_url policy uri config_get osu_nai server osu_nai config_get as_passphrase server as_passphrase config_get radius_passphrase server radius_passphrase cat > /tmp/run/as-sql.conf < /tmp/run/radius-sql.conf < /etc/hs20/AS/hostapd-osen.eap_user < /etc/hs20/AS/hostap.radius_clients < /etc/hs20/AS/as.radius_clients <