diff options
Diffstat (limited to 'tests/wpt/web-platform-tests/subresource-integrity/tools/generate_javascript.py')
m--------- | tests/wpt/web-platform-tests | 0 | ||||
-rw-r--r-- | tests/wpt/web-platform-tests/subresource-integrity/tools/generate_javascript.py | 45 |
2 files changed, 45 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests b/tests/wpt/web-platform-tests deleted file mode 160000 -Subproject 29dfb8944e535d439ca94cf7d1b1d9138a8ad11 diff --git a/tests/wpt/web-platform-tests/subresource-integrity/tools/generate_javascript.py b/tests/wpt/web-platform-tests/subresource-integrity/tools/generate_javascript.py new file mode 100644 index 00000000000..3a28dd437ad --- /dev/null +++ b/tests/wpt/web-platform-tests/subresource-integrity/tools/generate_javascript.py @@ -0,0 +1,45 @@ +from os import path, listdir +from hashlib import sha256, md5 +from base64 import urlsafe_b64encode +import re + +JS_DIR = path.normpath(path.join(__file__, "..", "..")) + +''' +Yield each file in the javascript directory +''' +def js_files(): + for f in listdir(JS_DIR): + if path.isfile(f) and f.endswith(".js"): + yield f + +''' +URL-safe base64 encode a binary digest and strip any padding. +''' +def format_digest(digest): + return urlsafe_b64encode(digest).rstrip("=") + +''' +Generate an encoded sha256 URI. +''' +def sha256_uri(content): + return "ni:///sha-256;%s" % format_digest(sha256(content).digest()) + +''' +Generate an encoded md5 digest URI. +''' +def md5_uri(content): + return "ni:///md5;%s" % format_digest(md5(content).digest()) + +def main(): + for file in js_files(): + print "Generating content for %s" % file + base = path.splitext(path.basename(file))[0] + var_name = re.sub(r"[^a-z0-9]", "_", base) + content = "%s=true;" % var_name + with open(file, "w") as f: f.write(content) + print "\tSHA256 integrity: %s" % sha256_uri(content) + print "\tMD5 integrity: %s" % md5_uri(content) + +if __name__ == "__main__": + main() |