mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			50 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | #!/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() |