def generate_certificates(base_dir, *peer_names, pubKeyDir=None,
                          secKeyDir=None, sigKeyDir=None,
                          verkeyDir=None, clean=True):
    ''' Generate client and server CURVE certificate files'''
    pubKeyDir = pubKeyDir or 'public_keys'
    secKeyDir = secKeyDir or 'private_keys'
    verkeyDir = verkeyDir or 'verif_keys'
    sigKeyDir = sigKeyDir or 'sig_keys'

    # keys_dir = os.path.join(base_dir, 'certificates')
    e_keys_dir = os.path.join(base_dir, '_enc')
    s_keys_dir = os.path.join(base_dir, '_sig')

    public_keys_dir = os.path.join(base_dir, pubKeyDir)
    secret_keys_dir = os.path.join(base_dir, secKeyDir)
    ver_keys_dir = os.path.join(base_dir, verkeyDir)
    sig_keys_dir = os.path.join(base_dir, sigKeyDir)

    # Create directories for certificates, remove old content if necessary
    for d in [e_keys_dir, s_keys_dir, public_keys_dir, secret_keys_dir,
              ver_keys_dir, sig_keys_dir]:
        if clean and os.path.exists(d):
            shutil.rmtree(d)
        os.makedirs(d, exist_ok=True)

    # create new keys in certificates dir
    for peer_name in peer_names:
        createEncAndSigKeys(e_keys_dir, s_keys_dir, peer_name)

    # move public keys to appropriate directory
    for keys_dir, pkdir, skdir in [
        (e_keys_dir, public_keys_dir, secret_keys_dir),
        (s_keys_dir, ver_keys_dir, sig_keys_dir)
    ]:
        moveKeyFilesToCorrectLocations(keys_dir, pkdir, skdir)

    shutil.rmtree(e_keys_dir)
    shutil.rmtree(s_keys_dir)

    print('Public keys in {}'.format(public_keys_dir))
    print('Private keys in {}'.format(secret_keys_dir))
    print('Verification keys in {}'.format(ver_keys_dir))
    print('Signing keys in {}'.format(sig_keys_dir))
def generate_certificates ( base_dir , * peer_names , pubKeyDir = None , secKeyDir = None , sigKeyDir = None , verkeyDir = None , clean = True ) : pubKeyDir = pubKeyDir or 'public_keys' secKeyDir = secKeyDir or 'private_keys' verkeyDir = verkeyDir or 'verif_keys' sigKeyDir = sigKeyDir or 'sig_keys' e_keys_dir = os . path . join ( base_dir , '_enc' ) s_keys_dir = os . path . join ( base_dir , '_sig' ) public_keys_dir = os . path . join ( base_dir , pubKeyDir ) secret_keys_dir = os . path . join ( base_dir , secKeyDir ) ver_keys_dir = os . path . join ( base_dir , verkeyDir ) sig_keys_dir = os . path . join ( base_dir , sigKeyDir ) for d in [ e_keys_dir , s_keys_dir , public_keys_dir , secret_keys_dir , ver_keys_dir , sig_keys_dir ] : if clean and os . path . exists ( d ) : shutil . rmtree ( d ) os . makedirs ( d , exist_ok = True ) for peer_name in peer_names : createEncAndSigKeys ( e_keys_dir , s_keys_dir , peer_name ) for keys_dir , pkdir , skdir in [ ( e_keys_dir , public_keys_dir , secret_keys_dir ) , ( s_keys_dir , ver_keys_dir , sig_keys_dir ) ] : moveKeyFilesToCorrectLocations ( keys_dir , pkdir , skdir ) shutil . rmtree ( e_keys_dir ) shutil . rmtree ( s_keys_dir ) print ( 'Public keys in {}' . format ( public_keys_dir ) ) print ( 'Private keys in {}' . format ( secret_keys_dir ) ) print ( 'Verification keys in {}' . format ( ver_keys_dir ) ) print ( 'Signing keys in {}' . format ( sig_keys_dir ) )
Generate client and server CURVE certificate files