DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (c68fe15a81fc)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
from __future__ import print_function

from os import path, listdir
from hashlib import sha512, sha384, sha256, md5
from hashlib import sha512, sha384, sha256, md5
from base64 import b64encode
from random import randint
import ed25519
import re


DIR = path.normpath(path.join(__file__, "..", ".."))

'''
Yield each javascript and css file in the directory
'''
'''
def js_and_css_files():
  for f in listdir(DIR):
    if path.isfile(f) and (f.endswith(".js") or f.endswith(".css")):
      yield f

'''
'''
URL-safe base64 encode a binary digest and strip any padding.
'''
def format_digest(digest):
def format_digest(digest):
  return b64encode(digest)
  return b64encode(digest)

'''
Generate an encoded sha512 URI.
Generate an encoded sha512 URI.
'''
def sha512_uri(content):
  return "sha512-%s" % format_digest(sha512(content).digest())

'''
'''
Generate an encoded sha384 URI.
'''
def sha384_uri(content):
  return "sha384-%s" % format_digest(sha384(content).digest())

'''
Generate an encoded sha256 URI.
'''
def sha256_uri(content):
  return "sha256-%s" % format_digest(sha256(content).digest())


'''
Generate an encoded ed25519 signature.
'''
def ed25519_signature(private_public_key, content):
  signature = ed25519.signature(content, *private_public_key)
  signature = ed25519.signature(content, *private_public_key)
  return "ed25519-%s" % format_digest(signature)

'''
Generate private + public key pair for ed25519 signatures.
'''
def ed25519_key_pair():
  secret_key = ''.join(chr(randint(0, 255)) for _ in range(0,32))
  public_key = ed25519.publickey(secret_key)
  public_key = ed25519.publickey(secret_key)
  return (secret_key, public_key)

'''
Generate an encoded md5 digest URI.
'''
'''
def md5_uri(content):
  return "md5-%s" % format_digest(md5(content).digest())

def main():
  ed25519_key = ed25519_key_pair()
  for file in js_and_css_files():
    print("Listing hash values for %s" % file)
    print("Listing hash values for %s" % file)
    with open(file, "r") as content_file:
      content = content_file.read()
      print("\tSHA512 integrity:  %s" % sha512_uri(content))
      print("\tSHA384 integrity:  %s" % sha384_uri(content))
      print("\tSHA384 integrity:  %s" % sha384_uri(content))
      print("\tSHA256 integrity:  %s" % sha256_uri(content))
      print("\tMD5 integrity:     %s" % md5_uri(content))
      print("\tEd25519 integrity: %s" % ed25519_signature(ed25519_key, content))
  print("\nEd25519 public key (used above): %s" % format_digest(ed25519_key[1]))


if __name__ == "__main__":
  main()