from Crypto.Protocol.KDF import PBKDF2 import scrypt import getpass try: import syndicate.client.common.log as Log except: import log as Log try: import syndicate.client.storage as storage except: import storage_stub as storage log = Log.get_logger() SECRETS_PAD_KEY = "__syndicate_pad__" # RFC-822 compliant, as long as there aren't any comments in the address. # taken from http://chrisbailey.blogs.ilrt.org/2013/08/19/validating-email-addresses-in-python/ email_regex_str = r"^(?=^.{1,256}$)(?=.{1,64}@)(?:[^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22(?:[^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(?:\x2e(?:[^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22(?:[^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40(?:[^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|[\x5b](?:[^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*[\x5d])(?:\x2e(?:[^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|[\x5b](?:[^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*[\x5d]))*$" email_regex = re.compile(email_regex_str) def is_valid_binary_driver(driver_path, required_syms): """ Does a given path refer to a binary driver with the given symbols? """ try:
import syndicate.util.config as modconf import traceback from Crypto.Hash import SHA256 as HashAlg from Crypto.PublicKey import RSA as CryptoKey from Crypto import Random from Crypto.Signature import PKCS1_PSS as CryptoSigner import pprint import urlparse import requests import getpass log = Log.get_logger() # ------------------- def store_syndicate_public_key( config, syndicate_public_key, overwrite=True ): assert 'syndicate_host' in config assert 'syndicate_port' in config assert 'no_tls' in config pubkey_name = conf.make_syndicate_pubkey_name( config['syndicate_host'], config['syndicate_port'], config['no_tls'] ) pubkey_path = conf.object_key_path( config, "syndicate", pubkey_name, no_suffix=True ) return storage.write_key( pubkey_path, syndicate_public_key ) # ------------------- def download_syndicate_public_key( config ):
return False return True #------------------------- if __name__ == "__main__": argv = sys.argv log.setLevel( logging.ERROR ) # early enable debug logging if "-d" in sys.argv or "--debug" in sys.argv: import syndicate.client.common.log as Log client_log = Log.get_logger() log.setLevel( logging.DEBUG ) client_log.setLevel( "DEBUG" ) opt_handlers = { "config": lambda arg: load_config_file( arg ) } config = modconf.build_config( argv, "Syndicate Automount Daemon", "syndicated", CONFIG_OPTIONS, conf_validator=validate_config, opt_handlers=opt_handlers, config_opt="config" ) if config is None: sys.exit(-1) # sanitize paths for path_opt in ['logdir', 'mountpoint_dir']: