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]))}")
 |