Skip to content

Commit

Permalink
Merge pull request #1457 from Ms2ger/si-print
Browse files Browse the repository at this point in the history
Fix issues with generate_javascript.py.
  • Loading branch information
jgraham committed Dec 11, 2014
2 parents 412110d + cadbc9f commit 4c0272a
Showing 1 changed file with 31 additions and 28 deletions.
59 changes: 31 additions & 28 deletions subresource-integrity/support/generate_javascript.py
@@ -1,46 +1,49 @@
from os import path, listdir
from hashlib import sha256, md5
from base64 import urlsafe_b64encode
from urllib import quote
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
'''
Yield each file in the javascript directory
'''
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("=")
'''
URL-safe base64 encode a binary digest and strip any padding.
'''
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 sha256 URI.
'''
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())
'''
Generate an encoded md5 digest URI.
'''
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-z]", "_", 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)
for file in js_files():
base = path.splitext(path.basename(file))[0]
var_name = re.sub(r"[^a-z]", "_", base)
content = "%s=true;" % var_name
with open(file, "w") as f:
f.write(content)


if __name__ == "__main__":
main()
main()

0 comments on commit 4c0272a

Please sign in to comment.