<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>

<!-- Profiler -->
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/yuiloader-dom-event/yuiloader-dom-event.js"></script>
<script type="text/javascript" src="lib/Profiler.js"></script>

<!-- Test subject -->
<script type="text/javascript" src="../src/Crypto.js"></script>

<!-- Profiling -->
<script type="text/javascript">

// 5KB of random, dummy data
var data = [];
for (var i = 0; i < 5000; i++) data.push(String.fromCharCode(Math.floor(Math.random() * 256)));
data = data.join("");

profile(["Crypto.util", "Crypto.charenc.UTF8", "Crypto.charenc.Binary"], function(){

	var bytes = Crypto.charenc.UTF8.stringToBytes(data);
	Crypto.charenc.UTF8.bytesToString(bytes);

	var words = Crypto.util.bytesToWords(bytes);
	Crypto.util.wordsToBytes(words);

	var hex = Crypto.util.bytesToHex(bytes);
	Crypto.util.hexToBytes(hex);

	var base64 = Crypto.util.bytesToBase64(bytes);
	Crypto.util.base64ToBytes(base64);

});

</script>

</head>
<body class="yui-skin-sam">
</body>
