summaryrefslogtreecommitdiff
path: root/Modules/_blake2/blake2b2s.py
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/_blake2/blake2b2s.py')
-rwxr-xr-xModules/_blake2/blake2b2s.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/Modules/_blake2/blake2b2s.py b/Modules/_blake2/blake2b2s.py
new file mode 100755
index 0000000000..01cf26521b
--- /dev/null
+++ b/Modules/_blake2/blake2b2s.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python3
+
+import os
+import re
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+BLAKE2 = os.path.join(HERE, 'impl')
+
+PUBLIC_SEARCH = re.compile(r'\ int (blake2[bs]p?[a-z_]*)\(')
+
+
+def getfiles():
+ for name in os.listdir(BLAKE2):
+ name = os.path.join(BLAKE2, name)
+ if os.path.isfile(name):
+ yield name
+
+
+def find_public():
+ public_funcs = set()
+ for name in getfiles():
+ with open(name) as f:
+ for line in f:
+ # find public functions
+ mo = PUBLIC_SEARCH.search(line)
+ if mo:
+ public_funcs.add(mo.group(1))
+
+ for f in sorted(public_funcs):
+ print('#define {0:<18} PyBlake2_{0}'.format(f))
+
+ return public_funcs
+
+
+def main():
+ lines = []
+ with open(os.path.join(HERE, 'blake2b_impl.c')) as f:
+ for line in f:
+ line = line.replace('blake2b', 'blake2s')
+ line = line.replace('BLAKE2b', 'BLAKE2s')
+ line = line.replace('BLAKE2B', 'BLAKE2S')
+ lines.append(line)
+ with open(os.path.join(HERE, 'blake2s_impl.c'), 'w') as f:
+ f.write(''.join(lines))
+ # find_public()
+
+
+if __name__ == '__main__':
+ main()