16 lines
		
	
	
	
		
			486 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
	
		
			486 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import base64
 | |
| from nacl.public import PrivateKey
 | |
| from nacl.encoding import Base64Encoder
 | |
| from functools import cache
 | |
| 
 | |
| @cache
 | |
| def privkey(id):
 | |
|     return str(repo.vault.random_bytes_as_base64_for(f"wireguard privkey {id}"))
 | |
| 
 | |
| @cache
 | |
| def pubkey(id):
 | |
|     return PrivateKey(base64.b64decode(privkey(id))).public_key.encode(encoder=Base64Encoder).decode('ascii')
 | |
|     
 | |
| @cache
 | |
| def psk(id1, id2):
 | |
|     return repo.vault.random_bytes_as_base64_for(f"wireguard psk {' '.join(sorted([id1, id2]))}")
 | 
