<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
	description="protectqs"
	progid="protectqs.WSC"
	version="1.00"
	classid="{6D817B6F-9D08-4636-AAD9-8BD7C5EFF56A}"
>
</registration>

<public>

<!-- properties -->

<!-- methods -->
	<method name="create">
		<PARAMETER name="url"/>
		<PARAMETER name="expire"/>
	</method>
</public>

<script language="javascript">
<![CDATA[

/*	methods	*/
/*
/*
    $Revision$
    $Id$

    File:   protectQS.wsc
            Hulpvariant voor vanuit FacmgtTools (VB Script)
            Eigenlijk zou dit even naar VBScript omgezet moeten worden
*/

var sha1 = null; // reference to sha1.wsc

// Bescherm de url tegen tampering door een hmac achteraan toe te voegen
// Te controleren aan de ontvangende kant met protectQS.verify()
// Let op: kopie van code in shared.inc
function create(url, secret, user_key, sha1path)
{
    var splitter = url.split("?");
    var pad = splitter[0];
    var qs = splitter.length>1?splitter[1]:"x=x";
    var padsplitter = pad.split("/");
    var file = padsplitter[padsplitter.length-1]; // laatste component
    if (!sha1)
    {
        sha1 = GetObject("script:"+sha1path);
    }
    var ts = String(Math.round((new Date).getTime() / 1000));
    // TODO Session("ASPFIXATION") er bij in?
    // Let op dat verify dezelfde data hasht
    var data = ts+":" + user_key + ":" + file.toUpperCase() + "?" + qs;
    var hmac = sha1.b64_hmac_sha1(secret, data);
    return pad + "?" + qs + "&hmac="+ts+":"+hmac.replace(/\+/g, "%2B");
}

]]>
</script>
</component>

