diff options
Diffstat (limited to 'hugo/libraries/plugins/auth/swekey/authentication.inc.php')
| -rw-r--r-- | hugo/libraries/plugins/auth/swekey/authentication.inc.php | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/hugo/libraries/plugins/auth/swekey/authentication.inc.php b/hugo/libraries/plugins/auth/swekey/authentication.inc.php new file mode 100644 index 0000000..1977f88 --- /dev/null +++ b/hugo/libraries/plugins/auth/swekey/authentication.inc.php @@ -0,0 +1,172 @@ +<?php +/** + * @package Swekey + */ +?> + +<script> + + var g_SwekeyPlugin = null; + + // ------------------------------------------------------------------- + // Create the swekey plugin if it does not exists + function Swekey_Plugin() + { + try + { + if (g_SwekeyPlugin != null) + return g_SwekeyPlugin; + + if (window.ActiveXObject) + { + g_SwekeyPlugin = document.getElementById("swekey_activex"); + if (g_SwekeyPlugin == null) + { + // we must create the activex that way instead of new ActiveXObject("FbAuthAx.FbAuthCtl"); + // ortherwise SetClientSite is not called and we can not get the url + var div = document.createElement('div'); + div.innerHTML='<object id="swekey_activex" style="display:none" CLASSID="CLSID:8E02E3F9-57AA-4EE1-AA68-A42DD7B0FADE"></object>'; + + // Never append to the body because it may still loading and it breaks IE + document.body.insertBefore(div, document.body.firstChild); + g_SwekeyPlugin = document.getElementById("swekey_activex"); + } + return g_SwekeyPlugin; + } + + g_SwekeyPlugin = document.getElementById("swekey_plugin"); + if (g_SwekeyPlugin != null) + return g_SwekeyPlugin; + + for (i = 0; i < navigator.plugins.length; i ++) + { + try + { + if (navigator.plugins[i] == null) + { + navigator.plugins.refresh(); + } + else if (navigator.plugins[i][0] != null && navigator.plugins[i][0].type == "application/fbauth-plugin") + { + var x = document.createElement('embed'); + x.setAttribute('type', 'application/fbauth-plugin'); + x.setAttribute('id', 'swekey_plugin'); + x.setAttribute('width', '0'); + x.setAttribute('height', '0'); + x.style.dislay='none'; + + //document.body.appendChild(x); + document.body.insertBefore(x, document.body.firstChild); + g_SwekeyPlugin = document.getElementById("swekey_plugin"); + return g_SwekeyPlugin; + } + } + catch (e) + { + navigator.plugins.refresh(); + //alert ('Failed to create plugin: ' + e); + } + } + } + catch (e) + { + //alert("Swekey_Plugin " + e); + g_SwekeyPlugin = null; + } + return null; + } + + // ------------------------------------------------------------------- + // Returns true if the swekey plugin is installed + function Swekey_Installed() + { + return (Swekey_Plugin() != null); + } + + // ------------------------------------------------------------------- + // List the id of the Swekey connected to the PC + // Returns a string containing comma separated Swekey Ids + // A Swekey is a 32 char hexadecimal value. + function Swekey_ListKeyIds() + { + try + { + return Swekey_Plugin().list(); + } + catch (e) + { +// alert("Swekey_ListKeyIds " + e); + } + return ""; + } + + // ------------------------------------------------------------------- + // Ask the Connected Swekey to generate an OTP + // id: The id of the connected Swekey (returne by Swekey_ListKeyIds()) + // rt: A random token + // return: The calculated OTP encoded in a 64 chars hexadecimal value. + function Swekey_GetOtp(id, rt) + { + try + { + return Swekey_Plugin().getotp(id, rt); + } + catch (e) + { +// alert("Swekey_GetOtp " + e); + } + return ""; + } + + // ------------------------------------------------------------------- + // Ask the Connected Swekey to generate a OTP linked to the current https host + // id: The id of the connected Swekey (returne by Swekey_ListKeyIds()) + // rt: A random token + // return: The calculated OTP encoded in a 64 chars hexadecimal value. + // or "" if the current url does not start with https + function Swekey_GetLinkedOtp(id, rt) + { + try + { + return Swekey_Plugin().getlinkedotp(id, rt); + } + catch (e) + { +// alert("Swekey_GetSOtp " + e); + } + return ""; + } + + // ------------------------------------------------------------------- + // Calls Swekey_GetOtp or Swekey_GetLinkedOtp depending if we are in + // an https page or not. + // id: The id of the connected Swekey (returne by Swekey_ListKeyIds()) + // rt: A random token + // return: The calculated OTP encoded in a 64 chars hexadecimal value. + function Swekey_GetSmartOtp(id, rt) + { + var res = Swekey_GetLinkedOtp(id, rt); + if (res == "") + res = Swekey_GetOtp(id, rt); + + return res; + } + + // ------------------------------------------------------------------- + // Set a unplug handler (url) to the specified connected feebee + // id: The id of the connected Swekey (returne by Swekey_ListKeyIds()) + // key: The key that index that url, (aplhanumeric values only) + // url: The url that will be launched ("" deletes the url) + function Swekey_SetUnplugUrl(id, key, url) + { + try + { + return Swekey_Plugin().setunplugurl(id, key, url); + } + catch (e) + { +// alert("Swekey_SetUnplugUrl " + e); + } + } + +</script> |
