<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/pbkdf2.js"></script>
<script type="text/JavaScript">
<!--
function prepareUrl() {
var verificationTerm = 'Smart Materials Portal SSO';
var companyId = '12345'
var email = 'smat@acme.com'
var ssoPassword = 'SMat.2015'; //Max 32 Byte
var ssoWebLauncherUrl = 'http://www.ssoweblauncherlocation.com/index.aspx';
var sso1 = encrypt_text(ssoPassword, verificationTerm);
var sso2 = encrypt_text(ssoPassword, companyId);
var sso3 = encrypt_text(ssoPassword, email);
var urlExtension = String('?sso1=' + sso1 + '&sso2=' + sso2 + '&sso3=' + sso3)
window.location = ssoWebLauncherUrl + urlExtension;
}
function encrypt_text(ssoPassword, text) {
var initializationVector = '00000000000000000000000000000000';
var initializationVectorHex = CryptoJS.enc.Hex.parse(initializationVector);
var ssoPasswordUpdated = padding_right(ssoPassword, '0', 32);
var ssoPasswordArray = CryptoJS.enc.Utf8.parse(ssoPasswordUpdated);
var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(text),
ssoPasswordArray,
{ mode: CryptoJS.mode.CBC, iv: initializationVectorHex, padding: CryptoJS.pad.Pkcs7 });
return encrypted.ciphertext.toString(CryptoJS.enc.Hex);
}
function padding_right(s, c, n) {
if (!s || !c || s.length >= n) {
return s;
}
var max = (n - s.length) / c.length;
for (var i = 0; i < max; i++) {
s += c;
}
return s;
}
//-->
</script>
</head>
<body>
<div style="text-align:center; background-color=#00ff00; margin-top:300px;">
<input type="button"
onclick="prepareUrl()"
value="Prepare URL" />
</div>
</body>
</html>