function doHash(algo, value, cmp) {
let hash = Cc["@mozilla.org/security/hash;1"].createInstance(
Ci.nsICryptoHash
);
hash.initWithString(algo);
value = new TextEncoder().encode(value);
hash.update(value, value.length);
equal(
hexify(hash.finish(false)),
cmp,
`Actual and expected hash for ${algo} should match`
);
hash.initWithString(algo);
hash.update(value, value.length);
equal(
hexify(hash.finish(false)),
cmp,
`Actual and expected hash for ${algo} should match after re-init`
);
}
function doHashStream(algo, value, cmp) { // TODO(Bug 459835): Make updateFromStream() accept zero length streams. if (!value.length) { return;
}
let hash = Cc["@mozilla.org/security/hash;1"].createInstance(
Ci.nsICryptoHash
);
hash.initWithString(algo);
let stream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(
Ci.nsIStringInputStream
);
stream.setUTF8Data(value);
hash.updateFromStream(stream, stream.available());
equal(
hexify(hash.finish(false)),
cmp,
`Actual and expected hash for ${algo} should match updating from stream`
);
}
function testInitConstantAndBase64(
initConstant,
algoName,
message,
expectedOutput
) {
let value = new TextEncoder().encode(message);
let hash = Cc["@mozilla.org/security/hash;1"].createInstance(
Ci.nsICryptoHash
);
hash.init(initConstant);
hash.update(value, value.length);
equal(
hash.finish(true),
expectedOutput,
`Actual and expected base64 hash for ${algoName} should match`
);
}
// Our buffer size for working with streams is 4096 bytes. This tests we // handle larger inputs.
doHashStream("md5", " ".repeat(4100), "59f337d82f9ef5c9571bec4d78d66641");
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.