mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
This commit is contained in:
parent
8c6db45d3e
commit
4a0270d82b
30 changed files with 7971 additions and 28 deletions
49
Modules/_sha3/cleanup.py
Executable file
49
Modules/_sha3/cleanup.py
Executable file
|
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/env python
|
||||
# Copyright (C) 2012 Christian Heimes (christian@python.org)
|
||||
# Licensed to PSF under a Contributor Agreement.
|
||||
#
|
||||
# cleanup Keccak sources
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
CPP1 = re.compile("^//(.*)")
|
||||
CPP2 = re.compile("\ //(.*)")
|
||||
|
||||
STATICS = ("void ", "int ", "HashReturn ", "const UINT64 ", "UINT16 ")
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
KECCAK = os.path.join(HERE, "keccak")
|
||||
|
||||
def getfiles():
|
||||
for name in os.listdir(KECCAK):
|
||||
name = os.path.join(KECCAK, name)
|
||||
if os.path.isfile(name):
|
||||
yield name
|
||||
|
||||
def cleanup(f):
|
||||
buf = []
|
||||
for line in f:
|
||||
# mark all functions and global data as static
|
||||
if line.startswith(STATICS):
|
||||
buf.append("static " + line)
|
||||
continue
|
||||
# remove UINT64 typedef, we have our own
|
||||
if line.startswith("typedef unsigned long long int"):
|
||||
buf.append("/* %s */\n" % line.strip())
|
||||
continue
|
||||
# remove #include "brg_endian.h"
|
||||
if "brg_endian.h" in line:
|
||||
buf.append("/* %s */\n" % line.strip())
|
||||
continue
|
||||
# transform C++ comments into ANSI C comments
|
||||
line = CPP1.sub(r"/* \1 */", line)
|
||||
line = CPP2.sub(r" /* \1 */", line)
|
||||
buf.append(line)
|
||||
return "".join(buf)
|
||||
|
||||
for name in getfiles():
|
||||
with open(name) as f:
|
||||
res = cleanup(f)
|
||||
with open(name, "w") as f:
|
||||
f.write(res)
|
||||
Loading…
Add table
Add a link
Reference in a new issue