W3C-comparison (v13)

Revision 13 of this benchmark created on


Preparation HTML

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>   
<script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/DJS/encoding.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/DJS/hashing.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/DJS/aes.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/DJS/rsa.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/functions.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/algorithms.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/Key.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/generateKey.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/sign.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/decrypt.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/encrypt.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/exportKey.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/importKey.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/verify.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/digest.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/deriveKey.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/wrapKey.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/unwrapKey.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/chrome/resources/common.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/chrome/resources/js-test.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/subtlecrypto.js"></script>
        <script src="http://www.cse.iitd.ernet.in/~cs5110300/w3c-crypto-api/w3c-crypto-api-INRIA/.js"></script>

Setup

function runTest(testCase){
                        var algorithmName = "SHA-256";
                        var input = testCase.data;
                        input = new Uint8Array(input);
    
                        var expectedOutputHex = convertStringToHex(convertArrayBufferViewToPlainText(new Uint8Array(testCase.hash)));
    
                        return crypto.subtle.digest({name : algorithmName}, input).then(function(result) {
                        //bytesShouldMatchHexString("sha-256 of [0]", expectedOutputHex, result);
                        });
                }
    function srunTest(testCase){
                        var algorithmName = "SHA-256";
                        var input = testCase.data;
                        input = new Uint8Array(input);
    
                        var expectedOutputHex = convertStringToHex(convertArrayBufferViewToPlainText(new Uint8Array(testCase.hash)));
    
                        return scrypto.digest({name : algorithmName}, input).then(function(result) {
                        //bytesShouldMatchHexString("sha-256 of [0]", expectedOutputHex, result);
                        });
                }

Test runner

Ready to run.

Testing in
TestOps/sec
W3C-Chrome
$(document).ready(function(){
var lastPromise = Promise.resolve(null);

                testVectorsSha256Long.forEach(function(testCase) {
                        lastPromise = lastPromise.then(runTest.bind(null, testCase));
                });

                lastPromise.then(finishJSTest, failAndFinishJSTest);
});
 
ready
W3C-DJS
$(document).ready(function(){
window.crypto = scrypto;
var lastPromise = Promise.resolve(null);

                testVectorsSha256Long.forEach(function(testCase) {
                        lastPromise = lastPromise.then(srunTest.bind(null, testCase));
                });

                lastPromise.then(finishJSTest, failAndFinishJSTest);
});
 
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.