def main():

    k_m = KeyManager()
    um = UTXOManager(k_m.my_address())

    i_k_m = KeyManager()
    u_k_m = KeyManager()

    t1 = CoinbaseTransaction(k_m.my_address())
    t2 = CoinbaseTransaction(k_m.my_address())
    t3 = CoinbaseTransaction(k_m.my_address())

    t4 = Transaction([TransactionInput(t1.to_dict(), 0)], [
        TransactionOutput(u_k_m.my_address(), 10.0),
        TransactionOutput(i_k_m.my_address(), 20.0)
    ])

    transactions = []
    transactions.append(t1.to_dict())
    transactions.append(t2.to_dict())
    transactions.append(t3.to_dict())
    transactions.append(t4.to_dict())

    um.extract_utxos(transactions)

    balance = um.my_balance

    print(balance)
示例#2
0
def add_char():
    new_key = input('API key: ')
    new_vcode = input('Verification Code: ')
    api = evelink.api.API(api_key=(new_key, new_vcode))
    acc = evelink.account.Account(api)
    try:
        chars = acc.characters()
        number = 0
        num2char = {}
        for charID in chars.result:
            char = chars.result[charID]
            print('{id}) {name} ({corp})'.format(id=number,
                                                 name=char['name'],
                                                 corp=char['corp']['name']))
            num2char[number] = charID
            number += 1
        try:
            charNumber = int(input('Select a Character: '))
            email = input('Associated email address: ')
            name = chars.result[num2char[charNumber]]['name']
            km = KeyManager(key_store_path)
            km.add(new_key, new_vcode, num2char[charNumber], name, email)
            print('Added character {name} successfully'.format(name=name))
        except ValueError:
            print('wrong input')
            exit(2)
    except APIError:
        exit(1)
        print('Authentication failure.')
    exit(0)
示例#3
0
def accept_minion_key(minion_id):
    try:
        k = KeyManager()
        k.accept_key(minion_id)
    except:
        raise
    return
 def auth_user_to_app(self):
     keys = KeyManager(self.TWITTER_KEYS)
     auth = tweepy.OAuthHandler(keys.CONSUMER_KEY, keys.CONSUMER_SECRET)
     print(auth.get_authorization_url())
     verifier = input('Verifier:').strip()
     token = auth.get_access_token(verifier)
     print(token)
示例#5
0
def rm_char():
    list_char()
    try:
        rm = int(input('which character should be deleted: '))
        km = KeyManager(key_store_path)
        km.remove(rm)
    except (ValueError, IndexError):
        print('wrong input')
        exit(2)
示例#6
0
def list_char():
    km = KeyManager(key_store_path)
    num = 0
    if len(km.keys) == 0:
        print('no keys, add one with the add command')
        exit(3)
    for key in km.keys:
        print('{num}) {name}, API key: {apiK}, email: {email}'.format(
            num=num, name=key[3], apiK=key[0], email=key[4]))
        num += 1
示例#7
0
def acc_autoconf(id, server_address):
    """
    Auto configure the arduino ACC-Client.
    :param id: Id of the arduino.
    :param server_address: Domotics server IP address.
    :return: Configured KeyManager.
    """
    try:
        # generate the http get request for the auto configuration
        request = "http://" + server_address + "/acc?autoconf=request&id=" + id
        # execute the http get request
        response = urlopen(request).read()
        # load the http response as json
        data = json.loads(response)
        # if the json response contains the right parameters
        if 'key' in data and 'id' in data and 'server_address' in data:
            # create the key manager with the parameters
            return KeyManager(id=data['id'], key=data['key'], server_address=data['server_address'])
    except:
        pass
    # if something goes wrong, create the key manager, with the id
    return KeyManager(id=id)
 def save_my_pem():
     self.km = KeyManager()
     my_pem = self.km.export_key_pair(p_phrase.get())
     my_pem_hex = binascii.hexlify(my_pem).decode('ascii')
     # とりあえずファイル名は固定
     path = 'my_key_pair.pem'
     f1 = open(path, 'a')
     f1.write(my_pem_hex)
     f1.close()
     f.destroy()
     self.um = UTXOManager(self.km.my_address())
     self.um.my_balance = 0
     self.update_balance()
    def initApp(self):
        """
        ClientCoreとの接続含めて必要な初期化処理はここで実行する
        """
        print('SimpleBitcoin client is now activating ...: ')
        self.km = KeyManager()
        self.um = UTXOManager(self.km.my_address())

        # テスト用途(本来はこんな処理しない)
        t1 = CoinbaseTransaction(self.km.my_address())
        t2 = CoinbaseTransaction(self.km.my_address())
        t3 = CoinbaseTransaction(self.km.my_address())

        transactions = []
        transactions.append(t1.to_dict())
        transactions.append(t2.to_dict())
        transactions.append(t3.to_dict())

        self.um.extract_utxos(transactions)
        self.update_balance()
示例#10
0
文件: user.py 项目: johntsr/cMix
    def __init__(self, name, handler=None):
        NetworkPart.__init__(self)

        self.name = name
        self.messageSent = None
        self.messageGot = None

        self.responseSent = None
        self.responseGot = None

        self.keyManager = KeyManager()

        if handler is None:
            self.setCallbackHandler(BasicHandler())
        else:
            self.setCallbackHandler(handler)

        self.associateCallback(Callback.KEY_USER, self.storeKeyUser)
        self.associateCallback(Callback.USER_MESSAGE, self.readMessage)
        self.associateCallback(Callback.USER_MESSAGE_STATUS,
                               self.messageStatus)
        self.associateCallback(Callback.USER_RESPONSE, self.readResponse)
示例#11
0
                        #print "instance_id: %s" % instance_id
                        continue
                    else:
                        minion_mgr = MinionManager(region)
                        minion_mgr.create_or_update_minion(instanceid=instance_id, modified=None, highstate_runner=None,
                                                           highstate_ran=None, status=unicode(status))
                    sqs_minion.delete_a_message(message)
                    print "removed sqs message about minion"
        except Exception, e:
            print "Error handling minion instances: %s" % e
            raise
  
        # Remove terminated minions keys from our salt master 
        try:
           minion_mgr = MinionManager(region)
           minions_terminated_list = minion_mgr.get_terminated()
           k = KeyManager()
           k.delete_keys(minions_terminated_list)
        except Exception, e:
            raise 
        time.sleep(POLL_CYCLE)

  


if __name__ == "__main__":
    try:
        main()
    except Exception, e:
        print "Problem occurred.   %s" % e
示例#12
0
def do_stuff():
    global iteration, notify_store
    km = KeyManager(key_store_path)
    logging.info('starting scan')
    s = smtplib.SMTP_SSL(credentials.smtp_server, credentials.smtp_port)
    s.ehlo()
    s.login(credentials.email_user, credentials.email_password)
    logging.info('connected to mail server')
    for key in km.keys:
        kit = iteration[tuple(key)]
        api = evelink.api.API(api_key=(key[0], key[1]))
        char = evelink.char.Char(char_id=key[2], api=api)
        res = char.notifications()

        rec_name = key[3]
        receiver = key[4]

        new_results = {}
        for r in res.result:  # filter old notifications
            if not notify_store.contains(rec_name, res.result[r]['id']):
                new_results[r] = res.result[r]

        if len(new_results) == 0:
            kit += 1
            if kit == 24:
                subject = 'No new notifications for {name}'.format(
                    name=rec_name)
                text = 'No new notifications within the last 24 hours for character {name}.'.format(
                    name=rec_name)
                logging.info(
                    '24 hour check in for char {char}'.format(char=rec_name))
            else:
                logging.info('nothing new for {char} ({tries}/24)'.format(
                    char=rec_name, tries=kit))
                iteration[tuple(key)] = kit
                continue
        else:
            lines = []
            for r in new_results:
                noti = new_results[r]
                if noti['read'] == 1:
                    notify_store.remove(rec_name, noti['id'])
                    continue  # was already read in client and should not come again
                lines.append('{time}: {type}'.format(
                    time=datetime.utcfromtimestamp(int(
                        noti['timestamp'])).isoformat().replace('T', ' '),
                    type=notificationIDmap.map_id_to_text(noti['type_id'])))
                notify_store.add(rec_name, noti['id'])
            if len(lines) == 0:
                continue  # every notification was already read, nothing new
            subject = '{nonn} new notification(s) for {name}'.format(
                name=rec_name, nonn=len(lines))
            logging.info('{subj}'.format(subj=subject))
            text = 'Character {name} has the following new notifications: \r\n'.format(
                name=rec_name)
            text += '\r\n'.join(lines)

        iteration[tuple(
            key
        )] = 0  # reset iteration counter, either 24h have passed or new notifications
        msg = '\r\n'.join([
            'From: {email}'.format(email='EVE Notifications'),
            'To: {recv}'.format(recv=receiver),
            'Subject: {sub}'.format(sub=subject), '',
            '{text}'.format(text=text)
        ])
        sent = s.sendmail(credentials.email, [receiver], msg)
        if len(sent) == 0:
            logging.info(
                'successfully sent mail to {recv}: {subj} - {text}'.format(
                    recv=receiver,
                    subj=subject,
                    text=text.replace('\r\n', '\\r\\n')))
        else:
            logging.warning('error with receiver {recv}: {error}'.format(
                recv=receiver, error=str(sent)))
    s.close()
    logging.info('scan done, mail server connection closed')
示例#13
0
        format='%(asctime)s - %(name)s - %(levelname)s: %(message)s',
        filename=args.log,
        filemode='w',
        level=logging.INFO)

    if args.action == 'add':
        add_char()

    elif args.action == 'list':
        list_char()

    elif args.action == 'remove':
        rm_char()

    elif args.action == 'start':
        km = KeyManager(key_store_path)
        if len(km.keys) == 0:
            print('no keys, add one with the add command')
            exit(3)
        for k in KeyManager(key_store_path).keys:
            iteration[tuple(k)] = 0  # init 24 hour counter for every key

        notify_store = StorageDictList(notify_store_path)
        scheduler = BlockingScheduler(timezone=utc)
        scheduler.add_job(do_stuff, 'interval', hours=1)
        try:
            print('starting scheduler...')
            scheduler.start()
        except (KeyboardInterrupt, SystemExit):
            scheduler.shutdown(wait=False)
            print('scheduler stopped')
示例#14
0

def print_keys(req_pub_key, req_priv_key, prov_pub_key, prov_priv_key, conc_pub_key):
    print('REQUESTOR_PRIVATE_KEY = ', req_priv_key)
    print('REQUESTOR_PUBLIC_KEY = ', req_pub_key)
    print('')
    print('PROVIDER_PRIVATE_KEY = ', prov_priv_key)
    print('PROVIDER_PUBLIC_KEY = ', prov_pub_key)
    print('')
    print('CONCENT_PUBLIC_KEY = ', conc_pub_key)


if __name__ == '__main__':
    args = parse_arguments()
    cluster_url = "{}/api/v1/{}/".format(args.cluster_url, args.endpoint)
    key_manager = KeyManager()
    requestor_public_key, requestor_private_key = key_manager.get_requestor_keys()
    provider_public_key, provider_private_key = key_manager.get_provider_keys()
    concent_public_key = key_manager.get_concent_public_key()

    if args.print_keys:
        print_keys(
            requestor_public_key,
            requestor_private_key,
            provider_public_key,
            provider_private_key,
            concent_public_key,
        )

    message_handler = MessageHandler(
        requestor_private_key,
 def create_auth(self):
     keys = KeyManager(self.TWITTER_KEYS)
     auth = tweepy.OAuthHandler(keys.CONSUMER_KEY, keys.CONSUMER_SECRET)
     auth.set_access_token(keys.ACCESS_KEY, keys.ACCESS_SECRET)
     return auth
示例#16
0
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""

# Test for pin thread
# -
# @author giuliobosco
# @version 1.0 (2019-04-21 - 2019-04-21)

import sys

sys.path.insert(0, '/usr/lib/python2.7/bridge')

from pin_thread import PinThread
from key_manager import KeyManager
from bridgeclient import BridgeClient
from time import sleep

bridge = BridgeClient()
key_manager = KeyManager('000000000000', '000000001234', '10.8.16.111:8080')
pin_thread = PinThread(key_manager=key_manager, pin='D6', bridge=bridge)

pin_thread.start()
sleep(10)

pin_thread.interrupt()
示例#17
0
文件: mix_node.py 项目: johntsr/cMix
    def __init__(self, b):
        NetworkPart.__init__(self)
        self.sharedKey = None
        self.b = b

        self.r = CyclicGroupDualArray(self.b)
        s = CyclicGroupDualArray(self.b)
        s1 = CyclicGroupDualArray(self.b)
        self.S = {'FOR': s, 'RET': s1}

        perm = range(0, b)
        shuffle(perm)
        permInverse = inversePermute(perm)
        self.permutation = {'FOR': perm, 'RET': permInverse}

        self.e = CyclicGroup.randomPair()

        self.mixMessageComponents = {'FOR': None, 'RET': None}
        self.preMixCallback = {
            'FOR': Callback.PRE_FOR_MIX,
            'RET': Callback.PRE_RET_MIX
        }
        self.realMixCallback = {
            'FOR': Callback.REAL_FOR_MIX,
            'RET': Callback.REAL_RET_MIX
        }
        self.mixCommitCallback = {
            'FOR': Callback.REAL_FOR_MIX_COMMIT,
            'RET': Callback.REAL_RET_MIX_COMMIT
        }
        self.prePostProcessCallback = {
            'FOR': Callback.PRE_FOR_POSTPROCESS,
            'RET': Callback.PRE_RET_POSTPROCESS
        }
        self.realPostProcessCallback = {
            'FOR': Callback.REAL_FOR_POSTPROCESS,
            'RET': Callback.REAL_RET_POSTPROCESS
        }

        self.decryptionShare = {'FOR': None, 'RET': None}
        self.realMixCommitment = {'FOR': None, 'RET': None}
        self.senders = None

        self.keyManager = KeyManager()

        self.associateCallback(Callback.KEY_SHARE, self.storeSharedKey, 1)
        self.associateCallback(Callback.PRE_FOR_MIX, self.preForwardMix, 1)
        self.associateCallback(Callback.PRE_FOR_POSTPROCESS,
                               self.preForwardPostProcess, 1)
        self.associateCallback(Callback.PRE_RET_MIX, self.preReturnMix, 1)
        self.associateCallback(Callback.PRE_RET_POSTPROCESS,
                               self.preReturnPostProcess, 1)
        self.associateCallback(Callback.KEY_USER, self.sendUserKey)
        self.associateCallback(Callback.REAL_FOR_PREPROCESS,
                               self.realForPreProcess)
        self.associateCallback(Callback.REAL_FOR_MIX, self.realForMix)
        self.associateCallback(Callback.REAL_FOR_MIX_COMMIT,
                               self.realForMixCommit)
        self.associateCallback(Callback.REAL_RET_MIX, self.realRetMix)
        self.associateCallback(Callback.REAL_RET_MIX_COMMIT,
                               self.realRetMixCommit)
示例#18
0
import common.tms_logger as logger
from common.tms_yaml import py2yaml, yaml2py
import storage.tms_storage as storage
from data_tree.tms_data_tree import DataTree
from key_manager import KeyManager

# aesgcm = aes.init("GCM", b"AES256Key-32Characters1234567890")
# cipher_data, nonce = aesgcm.encrypt(b"Hello World")
# logger.info("Result = " + str(aesgcm.decrypt(cipher_data, nonce)))
key = b"AES256Key-32Characters1234567890"
s = storage.init("./kms.db", "crypto", key)
#s.save(b"123456789")
#data = s.load()
#logger.info("read data = " + str(data))
km = KeyManager(s)
#km.add_key('/', 'a1', b'this is my key')
print(km.get_key('/a1'))