Пример #1
0
def payload_encryption_test():
    password = b'testpwd'
    payload = {'ccnum': '1111222233334444', 'expdate': '09/13/2018', 'cvc': '123', 'notes': 'adding user notes'}

    salt = Encrypt.generate_salt()
    print('ENCRYPT\TEST: salt: ', salt)

    sym_key_box = Encrypt.generate_key(password, salt)
    print('ENCRYPT\TEST: sym_key_box: ', sym_key_box)

    sym_key = Encrypt.decrypt_key(sym_key_box, password, salt)
    print('ENCRYPT\TEST: sym_key: ', sym_key)

    # Payload encryption (encrypt the payload)
    json_payload_string = json.dumps(payload)
    print('JSON PAYLOAD:', json_payload_string)

    encrypted_payload = Encrypt.encrypt_payload(sym_key, json_payload_string.encode())
    print('ENCRYPT\TEST: encrypted_payload: ', encrypted_payload)

    decrypted_payload = Encrypt.decrypt_payload(sym_key, encrypted_payload)
    print('ENCRYPT\TEST: decrypted_payload: ', decrypted_payload)

    payload_dict = json.loads(decrypted_payload)
    print(payload_dict)
    print(payload_dict["ccnum"])
    print(payload_dict["expdate"])
    print(payload_dict["cvc"])
    print(payload_dict["notes"])
Пример #2
0
 def searchbyName(self, name):
     encrypt = Encrypt()
     text_dir = {
         "hlpretag": "<span class=\"s-fc7\">",
         "hlposttag": "</span>",
         "s": name,
         "type": "1",
         "offset": "0",
         "total": "true",
         "limit": "30",
         "csrf_token": ""
     }
     text = str(text_dir)
     data = encrypt.getParamsAndSecKey(text)
     searchUrl = 'https://music.163.com/weapi/cloudsearch/get/web?csrf_token='
     try:
         response = requests.post(url=searchUrl,
                                  data=data,
                                  headers=self.headers)
         response.raise_for_status()
         response.encoding = 'utf-8'
         return response.json()
     except Exception as err:
         print(err)
         return '请求异常'
    def post(self):
        clue = self.request.get('clue')
        mobileNumber = "+44" + self.request.get('mobilenumber')

        query = PasswordStore.query(
            ndb.AND(
                PasswordStore.clue == clue,
                PasswordStore.mobileNumber == mobileNumber,
                PasswordStore.confirmed == 1)).order(-PasswordStore.created)
        result = query.fetch(1)

        if result:
            encrypt = Encrypt()

            #logging.info('found: ' + clue + " - " + mobileNumber)
            sms = SendSMS()
            sms.sendPassword(
                mobileNumber,
                encrypt.decryptString(result[0].encryptedPassword,
                                      mobileNumber))
        #else:
        #logging.info('not found: ' + clue + " - " + mobileNumber)

        template_values = {'nav': 'retrieve'}

        template = JINJA_ENVIRONMENT.get_template('templates/success.html')
        self.response.write(template.render(template_values))
Пример #4
0
class TestDecrypt(unittest.TestCase):
    
    def setUp(self):
        self.encrypt_instance = Encrypt()
        self.decrypt_instance = Decrypt()

    def test_can_load_private_key(self):
        private_key = self.decrypt_instance.load_privatekey_from_file()
        self.assertTrue(private_key)

    def test_can_decrypt_single_value(self):
        self.encrypt_instance.load_publickey_from_file()
        self.decrypt_instance.load_privatekey_from_file()

        card_number = "5001222244446666"
        encrypted_card_number = self.encrypt_instance.encrypt_value(card_number)
        decrypted_card_number = self.decrypt_instance.decrypt_value(
            encrypted_card_number)
        self.assertEqual(card_number, decrypted_card_number)

    def test_can_apply_full_decrypt(self):
        number = "5001222244446666"
        holder = "Teste Ferreira da Silva"
        cvv = "988"
        encrypted_card_data = encrypt_card_data(holder, number, cvv)

        enc_holder = encrypted_card_data['holder']
        enc_number = encrypted_card_data['number']
        enc_cvv = encrypted_card_data['cvv']

        decrypted_card_data = decrypt_card_data(enc_holder, enc_number, enc_cvv)
        self.assertEqual(number, decrypted_card_data['number'])
        self.assertEqual(holder, decrypted_card_data['holder'])
        self.assertEqual(cvv, decrypted_card_data['cvv'])
Пример #5
0
def index():
    print('Opening index/login')

    # Wipe session on opening
    session.pop('username', None)

    if request.method == 'POST':
        user = request.form['username']
        pwd = request.form['password']

        # TODO: Session validation, password shouldn't be stored anywhere
        try:
            symmetric_box = base64.b64decode(db.get_symmetric_box(user))
            salt = base64.b64decode(db.get_salt(user))
        except:
            print('SERVER/LOG: Username not found')
            return redirect("/")

        if Encrypt.decrypt_key(symmetric_box, pwd.encode(), salt) == -1:
            print('SERVER/LOG: Incorrect password')
            return redirect("/")

        print('SERVER/LOG: Login OK')
        session['symkey'] = Encrypt.decrypt_key(symmetric_box, pwd.encode(),
                                                salt)
        session['username'] = request.form['username']
        Logger.log("Login from " + session['username'])

        return redirect('/cards')

    return render_template('login.html')
    def get(self):
        if isDev(self.request.host):
            logging.info("creating test password records")
            for i in xrange(1, 11):
                created = datetime.now() - timedelta(days=i)

                mobileNumber = "+" + str(447700000000 + i)
                clue = "clue" + str(i)
                password = "******" + str(i)
                encrypt = Encrypt()
                e = encrypt.encryptString(password, mobileNumber)

                passwordStorerecord = PasswordStore()
                passwordStorerecord.clue = clue
                passwordStorerecord.mobileNumber = mobileNumber
                passwordStorerecord.encryptedPassword = e
                passwordStorerecord.confirmed = random.choice([0, 1])
                passwordStorerecord.created = created
                passwordStorerecord.put()

            logging.info("creating test verification records")
            for i in xrange(1, 11):
                created = datetime.now() - timedelta(days=i)
                verificationRecord = Verification()

                verificationRecord.action = random.choice(['delete', 'add'])
                verificationRecord.confirmed = random.choice([0, 1])
                verificationRecord.passwordStoreId = 1000 + i * 17
                verificationRecord.created = created
                verificationRecord.put()

            self.response.write("done")

        logging.warning("Tried to activate CleanUpTest not in dev")
def test_encryption():
    # Define intputs to check
    mobile = "+447740193397"
    password_input = "456"
    password_encrypted = "LfrpS0GQHWrK7Bf3hymo2lY53xZVcIxthjTG92E5s97DpBgwIq0le5CkwxS5gy/r"

    verification_id_input = "5240822173794304"
    verification_id_encrypted = "5RCQVvDLFeIkbOKUkXq4xUfLOUJbF5piAtoLRtvFKhUbtJvvO7wV9cQXhtsQj5jq"

    # Create test object
    encrypt = Encrypt()

    # Test
    print('Test that a key has been loaded')
    assert len(encrypt.key) > 10

    # Test
    print('test encryption without a salt')
    e = encrypt.encryptString(verification_id_input)
    assert verification_id_encrypted == e

    # Test
    print('test encryption with a salt')
    e = encrypt.encryptString(password_input, mobile)
    assert password_encrypted == e

    print("Success")
Пример #8
0
 def add_peer_cert(self, cert: str) -> bool:
     try:
         self.peer_cert = load_pem_x509_certificate(str.encode(cert),
                                                    default_backend())
         Encrypt.verify_key_chain(self.peer_cert)
         return True
     except:
         traceback.print_exc()
         return False
Пример #9
0
def editEntry(ow, ou, op, nw, nu, np):
    """Update database with new data for specific entry."""

    encryptObj = Encrypt()
    nw = encryptObj.encrypt(nw)
    nu = encryptObj.encrypt(nu)
    np = encryptObj.encrypt(np)

    dbq.updateEntry(ow, ou, op, nw, nu, np)
Пример #10
0
 def loadMethod(self):
     if os.path.exists("./code.txt"):
         f = open('./code.txt', 'r')
         code = f.readline()
         self.e = Encrypt()
         self.e.setCode(code)
         self.displayText["text"] = "code: " + self.e.getCode()
     else:
         self.displayText["text"] = "Load denied!!"
Пример #11
0
    def updateFile(self, filepath, contents, organisation, password):
        # self function can be used when the user chooses to save their work
        # get the key for the provided organisation
        key = self.getOrganisationKey(organisation, password)
        enc = Encrypt(key)

        encrypted_file = open(filepath, 'wb')
        encrypted_contents = enc.encrypt_string(contents)
        encrypted_file.write(encrypted_contents)
        encrypted_file.close()
Пример #12
0
 def __init__(self, IP, port):
     self.__IP = IP
     self.__port = port
     self.__add = (self.__IP, self.__port)
     self.__sock = None
     self.__isBusy = False
     self.__encryption = Encrypt()
     self.lock = threading.Lock()
     self.image = None
     self.text = None
Пример #13
0
    def readFile(self, filepath, organisation, password):
        # get the key for the provided organisation
        key = self.getOrganisationKey(organisation, password)
        enc = Encrypt(key)

        encrypted_file = open(filepath, 'rb')
        encrypted_contents = encrypted_file.read()
        encrypted_file.close()

        decrypted_contents = enc.decrypt_string(encrypted_contents)
        return decrypted_contents
Пример #14
0
def test():
    p1 = 790383132652258876190399065097
    q1 = 662503581792812531719955475509
    p2 = 656917682542437675078478868539
    q2 = 1263581691331332127259083713503
    n1 = p1 * q1
    n2 = p2 * q2
    ciphertext1 = Encrypt("attack", n1, 2)
    ciphertext2 = Encrypt("attack", n2, 2)
    message = DecipherHastad(ciphertext1, n1, ciphertext2, n2)
    print(message)
Пример #15
0
    def post(self):
        # Step 1 - retrieve and verify user input
        clue = self.request.get('clue').strip()
        mobileNumber = "+44" + self.request.get('mobilenumber').strip()

        # Step 2 - get the password record

        query = PasswordStore.query(
            ndb.AND(PasswordStore.clue == clue, PasswordStore.mobileNumber ==
                    mobileNumber)).order(-PasswordStore.created)
        passwordStorerecord = query.fetch(1)

        if passwordStorerecord:
            #logging.info('found: ' + clue + " - " + mobileNumber)

            passwordStorerecord = passwordStorerecord[0]
            passwordStoreId = passwordStorerecord.key.id(
            )  # the id of the record just created

            # Step 3 - store verification record
            verificationRecord = Verification()
            verificationRecord.action = 'delete'
            verificationRecord.confirmed = 0
            verificationRecord.passwordStoreId = passwordStoreId
            verificationRecord.put()

            verificationRecordId = verificationRecord.key.id(
            )  # the id of the record just created
            logging.info('storing verification id: ' +
                         str(verificationRecordId))

            # Step 4 - send SMS with encrypted verification

            encrypt = Encrypt()

            i = str(verificationRecordId)
            e = encrypt.encryptString(i)
            d = encrypt.decryptString(e)

            sms = SendSMS()
            sms.verifyDelete(mobileNumber, e)

            logging.info('sending delete verification: ' + " - " + i + " - " +
                         e + " - " + d)
        #else:
        #logging.info('not found: ' + clue + " - " + mobileNumber)

        # Step 5 - render reply
        template_values = {'nav': 'delete', 'id': e}

        template = JINJA_ENVIRONMENT.get_template(
            'templates/check_phone_success.html')
        self.response.write(template.render(template_values))
Пример #16
0
    def __init__(self, IP, port, retryTimes=3, timeout=10):
        self.__IP = IP
        self.__port = port
        self.__add = (self.__IP, self.__port)
        self.__sock = None
        self.__isBusy = False
        self.__errLimit = retryTimes
        self.__timeout = timeout
        self.__encryption = Encrypt()

        self.image = None
        self.text = None
 def lm(self):
     # 先測試檔案是否存在
     if os.path.exists("./code.txt"):
         # 檔案存在就進行載入工作
         f = open('./code.txt', 'r')
         code = f.readline()
         self.e = Encrypt(code)
         s = str("".join(self.e.code))
         m = "密碼表: " + s
         self.app.dt["text"] = m
     else:
         m = "無法載入!"
         self.app.dt["text"] = m
Пример #18
0
    def post(self):
        # Step 1 - retrieve and verify user input
        clue = self.request.get('clue').strip()
        mobileNumber = "+44" + self.request.get('mobilenumber').strip()
        password = self.request.get('pass').strip()

        # Step 2 - store the password
        encrypt = Encrypt()
        e = encrypt.encryptString(password, mobileNumber)

        passwordStorerecord = PasswordStore()
        passwordStorerecord.clue = clue
        passwordStorerecord.mobileNumber = mobileNumber
        passwordStorerecord.encryptedPassword = e
        passwordStorerecord.confirmed = 0
        passwordStorerecord.put()

        passwordStoreId = passwordStorerecord.key.id(
        )  # the id of the record just created
        logging.info('storing password id: ' + str(passwordStoreId))

        # Step 3 - store verification record
        verificationRecord = Verification()
        verificationRecord.action = 'add'
        verificationRecord.confirmed = 0
        verificationRecord.passwordStoreId = passwordStoreId
        verificationRecord.put()

        verificationRecordId = verificationRecord.key.id(
        )  # the id of the record just created
        logging.info('storing verification id: ' + str(verificationRecordId))

        # Step 4 - send SMS with encrypted verification
        i = str(verificationRecordId)
        e = encrypt.encryptString(i)
        d = encrypt.decryptString(e)

        sms = SendSMS()
        sms.verifyPasswordAdd(mobileNumber, e)

        logging.info('sending verification: ' + " - " + i + " - " + e + " - " +
                     d)

        # Step 5 - render reply

        template_values = {'nav': 'store', 'id': e}

        template = JINJA_ENVIRONMENT.get_template(
            'templates/check_phone_success.html')
        self.response.write(template.render(template_values))
Пример #19
0
    def __init__(self, IP, port):
        self.__IP = IP
        self.__port = port
        self.__add = (self.__IP, self.__port)
        self.__encryption = Encrypt()

        self.image = None
        self.text = None

        self.__s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.__s.bind((self.__IP, self.__port))
        self.__s.listen(2)
        self.__cli = None
        self.lock = threading.Lock()
Пример #20
0
def pushEntry(web, user, passwd):
    """Encrypt data and send to database."""

    encryptObj = Encrypt()
    if web != '':
        web = encryptObj.encrypt(web)
        user = encryptObj.encrypt(user)
        passwd = encryptObj.encrypt(passwd)

        dbq.addEntry(web, user, passwd)

        return True
    else:
        return False
Пример #21
0
def pushSignup(password, question, answer):
    """Hash and encrypt all data and send to database."""

    encryptObj = Encrypt()
    if passwordRules(password) and answer != '':
        password = hashIt(password)
        question = encryptObj.encrypt(question)
        answer = encryptObj.encrypt(answer)
        key = dbq.selectKey()[0]

        dbq.updateMasterInfo(password[0], password[1], question, answer)

        return True
    else:
        return False
Пример #22
0
def test():
    # Example usage with common prime p and different second primes q1 and q2
    p = 101
    q1 = 1829897073254110
    q2 = 1000000007
    first_modulo = p * q1
    second_modulo = p * q2
    first_exponent = 239
    second_exponent = 17
    first_ciphertext = Encrypt("attack", first_modulo, first_exponent)
    second_ciphertext = Encrypt("wait", second_modulo, second_exponent)
    print(
        DecipherCommonDivisor(first_ciphertext, first_modulo, first_exponent,
                              second_ciphertext, second_modulo,
                              second_exponent))
Пример #23
0
    def get(self):

        template = 'error.html'
        template_values = {'nav': 'none'}

        if (self.request.get('id')):
            encrypt = Encrypt()
            verificationId = int(encrypt.decryptString(self.request.get('id')))

            verificationRecord = Verification.get_by_id(verificationId)
            logging.info(verificationRecord)

            if verificationRecord:
                passwordStorerecord = PasswordStore.get_by_id(
                    verificationRecord.passwordStoreId)

                if passwordStorerecord:
                    # Handle the add verification step
                    if verificationRecord.action == 'add':
                        passwordStorerecord.confirmed = 1
                        passwordStorerecord.put()
                        verificationRecord.key.delete()
                        logging.info(
                            'Updated records - verification (deleted) and passwordStore (updated)'
                        )
                        template = 'success.html'

                    # Handle the delete verification step
                    if verificationRecord.action == 'delete':
                        passwordStorerecord.key.delete()
                        verificationRecord.key.delete()
                        logging.info(
                            'Updated records - verification (deleted) and passwordStore (deleted)'
                        )
                        template = 'success.html'
                    else:
                        logging.info(
                            'Failed to retrieve Verification record id: ' +
                            str(verificationId))
                else:
                    logging.info(
                        'Failed to retrieve PasswordStore record id: ' +
                        str(verificationRecord.passwordStoreId))
            else:
                template = 'error.html'

        template = JINJA_ENVIRONMENT.get_template('templates/' + template)
        self.response.write(template.render(template_values))
Пример #24
0
def secCmp(answer):
    """Compare security question answer against database answer."""

    if Encrypt().secQCmp(answer):
        return True
    else:
        return False
Пример #25
0
 def __init__(self, builtinDataDir, serverCfg, encryptCfg, crawlerCfg):
     self.encryptTool = Encrypt(encryptCfg)
     self.dao = DAO(serverCfg.get('database'))
     self.db = CrawlerDB(self.dao, builtinDataDir)
     self.crawlerQueryBuilder = self.__initialize_crawler__(
         builtinDataDir, crawlerCfg)
     self.worker = BlockingScheduler()
Пример #26
0
    def attempt_login(self) -> str:
        if not self.name or not self.password:
            print("Enter name and password")
            return ""
        payload = {
            "name": self.name,
            "password": self.password,
        }
        ciphertext = Encrypt.get_root_pub_key().encrypt(
            json.dumps(payload).encode('utf-8'),
            padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()),
                         algorithm=hashes.SHA256(),
                         label=None))
        data = {
            "payload": base64.b64encode(ciphertext).decode('utf-8'),
            "public_key": self.pub_key,
        }
        try:
            resp = requests.post(LoginHandler.AUTH_SERVER_URL + '/verify',
                                 data=json.dumps(data))
        except Exception:  # This is the correct syntax
            traceback.print_exc()
            print("Auth Server Connection Error")
            return ""

        if resp.status_code != 200:
            print("Unauthorized")
            return ""
        return resp.text.strip()
Пример #27
0
def cards():
    print('SERVER/LOG: Opening cards page')
    user_cards = []
    # TODO: Decryption logic for cards

    if request.method == 'POST':
        print("SERVER/LOG: Headers:\n", request.headers)
        print("SERVER/LOG: Data:\n", request.data)
        try:
            print("SERVER/LOG: Form:\n", request.form['cardId'])
            db.delete_card(request.form['cardId'])
            return redirect("/cards")
        except:
            print("SERVER/FAIL: Unable to edit/delete card:\n")

    try:
        if 'username' in session:
            print('SERVER/LOG: Logged in as', session['username'])
            try:
                # payloads = db.get_payloads(session['username'])
                id_payloads = db.get_id_payload(session['username'])
                print(id_payloads)
                for payload in id_payloads:
                    user_cards.append((json.loads(
                        Encrypt.decrypt_payload(
                            session['symkey'],
                            base64.b64decode(payload["payload"]))),
                                       payload["id"]))
            except:
                print('SERVER/FAIL: No cards found for', session['username'])
        else:
            return redirect("/")
    except:
        return redirect("/")
    return render_template('cards.html', user_cards=user_cards)
Пример #28
0
def getEntries():
    """Get rows of encrypted data and decrypted data for gui. The encrypted
    data is used in other functions for the gui buttons."""

    encryptObj = Encrypt()
    rows = dbq.selectEntries()

    decryptedRows = [[] for i in range(len(rows))]
    i = 0
    for row in rows:
        web = encryptObj.decrypt(row[0])
        user = encryptObj.decrypt(row[1])
        passwd = encryptObj.decrypt(row[2])
        decryptedRows[i].extend((web, user, passwd))
        i += 1

    return (decryptedRows, rows)
Пример #29
0
def register():
    print('SERVER/LOG: Opening registration page')
    if request.method == 'POST':
        user = request.form['username']
        email = request.form['email']
        pwd = request.form['password']
        create_date = str(timestamp)
        print('SERVER/LOG: Account created by ', user, ' at ', create_date)
        # TODO: Server side logic to salt and encrypt password
        salt = Encrypt.generate_salt()
        session_key = Encrypt.generate_session_key()
        sym_key_box = Encrypt.generate_key(pwd.encode(), salt)

        values = (user, email, create_date, base64.b64encode(salt),
                  base64.b64encode(session_key), base64.b64encode(sym_key_box))
        db.insert_user(values)
    return render_template('register.html')
Пример #30
0
 def loadMethod(self):
     if os.path.exists("./code.txt"):
         f = open('./code.txt', 'r')
         code = f.readline()
         self.e = Encrypt()
         self.e.setCode(code)
         self.displayText["text"] = "code: " + self.e.getCode()
     else:
         self.displayText["text"] = "Load denied!!"
Пример #31
0
    def importFile(self, filepath, organisation, password, savepath=None):
        # first check if the organisation is is a new one
        if self.isNewOrganisation(organisation):
            self.createOrganisation(organisation, password)

        # read the file they provided, encrypt the contents and save it
        original_file = open(filepath, 'r')
        original_contents = original_file.read()
        original_file.close()

        # load the key for the organisation
        key = self.getOrganisationKey(organisation, password)
        enc = Encrypt(key)
        encrypted_contents = enc.encrypt_string(original_contents)
        savepath = savepath + '.enc' if savepath == None else savepath
        encrypted_file = open(savepath, 'wb')
        encrypted_file.write(encrypted_contents)
        encrypted_file.close()
Пример #32
0
	def lm(self):
		if os.path.exists("./code.txt"):
			f = open('./code.txt', 'r')
			code = f.readline()
			self.e = Encrypt(code)
			s = str("".join(self.e.code))
			m = "code: " + s
			self.dt["text"] = m
		else:
			m = "Load denied!!"
			self.dt["text"] = m	
Пример #33
0
def main(argv, gateway=GATEWAY, uuid=UUID, f_hex=HEX):
    help_msg = argv[0] + ' -g <gateway> -u <uuid>' 

    try:
        opts, args = getopt.getopt(argv[1:], "hxg:u:", ["gateway=", "uuid="])
    except getopt.GetoptError:
        print help_msg
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print help_msg
            sys.exit()
        elif opt in ("-g", "--gateway"):
            gateway = arg
        elif opt in ("-u", "--uuid"):
            uuid = arg
        elif opt in ("-x", "--hex"):
            f_hex = True


    register = REQ_PHONE_ID.format(uuid=uuid)
    print register
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((gateway, TCP_PORT))
    s.send(register)
    data = s.recv(BUFFER_SIZE)
    print '[HANDSHAKE]', data
    if len(data) != 11:
        print 'Incorrect message'
        sys.exit(1)
    e = Encrypt(uuid=uuid, phone_id=data[4])
    while True:
        data = s.recv(BUFFER_SIZE)
        if not data or len(data) < 1:
            s.close()
            print 'Disconnected'
            sys.exit()
        print "[RECV %s]" % (strftime("%H:%M:%S", localtime())), len(data), \
                remove_newline(data[:2] + e.decrypt(data))
        if f_hex:
            print_hex(data, True)
Пример #34
0
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.grid()
        self.createWidgets()
        self.e = None
        self.userinput = ""
        self.result = ""
        self.isRecv = False
        self.isAuth = False
        self.recvKey = ""

        self.e = Encrypt() 
        self.displayText["text"] = self.e
        print("Current key is: " + self.e.key)
Пример #35
0
class EncryptGUI(Frame):
	def __init__(self,master = None):
		Frame.__init__(self,master)
		self.grid()
		self.createWidgets()
		self.e = None
		self.userinput = ""
		self.result = ""


	
	def createWidgets(self):
		self.it = Label(self)
		self.it["text"] = "Input:"
		self.it.grid(row = 0, column = 0)
		self.ifd = Entry(self)
		self.ifd["width"] = 60
		self.ifd.grid(row = 0, column = 1, 
						columnspan = 6)

		self.ot = Label(self)
		self.ot["text"] = "Output:"
		self.ot.grid(row = 1,column = 0)
		self.ofd = Entry(self)
		self.ofd["width"] = 60
		self.ofd.grid(row = 1, column = 1,
						columnspan = 6)
		
		self.nb = Button(self)
		self.nb["text"] = "New"
		self.nb.grid(row = 2, column = 0)
		self.nb["command"] = self.nm
		
		self.lb = Button(self)
		self.lb["text"] = "Load"
		self.lb.grid(row = 2, column = 1)
		self.lb["command"] = self.lm
		
		self.sb = Button(self)
		self.sb["text"] = "Save"
		self.sb.grid(row = 2, column = 2)
		self.sb["command"] = self.sm
		
		self.eb = Button(self)
		self.eb["text"] = "Encode"
		self.eb.grid(row = 2, column = 3)
		self.eb["command"] = self.em
		
		self.db = Button(self)
		self.db["text"] = "Decode"
		self.db.grid(row = 2, column = 4)
		self.db["command"] = self.dm

		self.cb = Button(self)
		self.cb["text"] = "Clear"
		self.cb.grid(row = 2, column = 5)
		self.cb["command"] = self.cm

		self.cb2 = Button(self)
		self.cb2["text"] = "Copy"
		self.cb2.grid(row = 2, column = 6)
		self.cb2["command"] = self.cm2

		self.dt = Label(self)
		m = "something happend"
		self.dt["text"] = m
		self.dt.grid(row = 3, column = 0,
					columnspan = 7)

	def nm(self):
		self.e = Encrypt()
		self.dt["text"] = self.e	

	def lm(self):
		if os.path.exists("./code.txt"):
			f = open('./code.txt', 'r')
			code = f.readline()
			self.e = Encrypt(code)
			s = str("".join(self.e.code))
			m = "code: " + s
			self.dt["text"] = m
		else:
			m = "Load denied!!"
			self.dt["text"] = m	
	def sm(self):
		if self.e == None:
			m = "It can not save!!"
			self.dt["text"] = m
		else:
			f = open('./code.txt','w')
			f.write("".join(self.e.code))
			f.close()
			self.dt["text"] = "It's Done."	
	
	def em(self):
		self.userinput = self.ifd.get()
		if self.userinput == "":
			m = "No input string!!!"
			self.dt["text"] = m
		else:
			if self.e == None:
				m = "No encrypt object!!"
				self.dt["text"] = m
			else:
				s = self.userinput
				r = self.e.toEncode(s)
				self.result = r
				self.ofd.delete(0, 200)
				self.ofd.insert(0, r)
				m = "Encoding success!!"
				self.dt["text"] = m

	def dm(self):
		self.userinput = self.ifd.get()

		if self.userinput == "":
			m = "No input string!!"
			self.dt["text"] = m
		else:
			if self.e == None:
				m = "No encrypt object!!"
				self.dt["text"] = m
			else:
				s = self.userinput
				r = self.e.toDecode(s)
				self.result = r
				self.ofd.delete(0, 200)
				self.ofd.insert(0, r)
				m = "Decoding success!!"
				self.dt["text"] = m

	def cm(self):
		self.e = None
		self.userinput = ""
		self.result = ""
		self.ifd.delete(0, 200)
		self.ofd.delete(0,200)
		self.dt["text"] = "Clear all!!!"

	def cm2(self):
		if self.result == "":
			m = "Copy denied!!"
			self.dt["text"] = m
		else:
			self.cliphorad_clear()
			r = self.result
			self.cliphorad_clear(r)
			m = "It is copied."	
			self.dt["text"] = m				
Пример #36
0
  print "Created Work Dir: %s" % fileDirectory
else:
  print "Work Dir: %s" % fileDirectory
desktopFile = glob.glob1(path, "*.desktop")
for dpFile in desktopFile:
  print "copying %s  --> /etc/xdg/autostart" % dpFile
  os.system("cp %s /etc/xdg/autostart" % dpFile)

pyFile = glob.glob1(path, "*.py")
for pyFile in pyFile:
  print "copying %s --> /usr/bin" % pyFile
  os.system("cp %s /usr/bin" % pyFile)

mail = raw_input("Your Mail: ")

encryp = Encrypt()
password = raw_input("Your Mail Password: "******"\nTwitter status is read and command is sent to the computer\nTwitter Commands: PC:Close and PC:Open"
twitter_name = raw_input("Twitter Name: ")
twitter_file = open("%s/usernames" % fileDirectory, "w")
twitter_file.write("%s\n%s" % (mail, twitter_name))
twitter_file.close()

file = open("%s/wykey" % fileDirectory, "w")
file.write(pwd)
file.close()

user = os.listdir("/home/")
Пример #37
0
class EncryptGUI(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.grid()
        self.createWidgets()
        self.e = None
        self.userinput = ""
        self.result = ""
        self.isRecv = False
        self.isAuth = False
        self.recvKey = ""

        self.e = Encrypt() 
        self.displayText["text"] = self.e
        print("Current key is: " + self.e.key)
 
    def createWidgets(self):
        self.inputText = Label(self)
        self.inputText["text"] = "Input:"
        self.inputText.grid(row=0, column=0)
        self.inputField = Entry(self)
        self.inputField["width"] = 80
        self.inputField.grid(row=0, column=1, columnspan=6)
 
        # self.outputText = Label(self)
        # self.outputText["text"] = "Output:"
        # self.outputText.grid(row=1, column=0)
        # self.outputField = Entry(self)
        # self.outputField["width"] = 50
        # self.outputField.grid(row=1, column=1, columnspan=6)
         
        # self.new = Button(self)
        # self.new["text"] = "Load EncrytFunction"
        # self.new.grid(row=2, column=0)
        # self.new["command"] =  self.newMethod
        self.load = Button(self)
        self.load["text"] = "Load from server"
        self.load.grid(row=2, column=1)
        self.load["command"] =  self.loadMethod
        self.save = Button(self)
        self.save["text"] = "Save to Server"
        self.save.grid(row=2, column=2)
        self.save["command"] =  self.saveMethod
        self.encode = Button(self)
        self.encode["text"] = "Encode"
        self.encode.grid(row=2, column=3)
        self.encode["command"] =  self.encodeMethod
        self.decode = Button(self)
        self.decode["text"] = "Decode from files"
        self.decode.grid(row=2, column=4)
        self.decode["command"] =  self.decodeMethod
        self.clear = Button(self)
        self.clear["text"] = "Clear"
        self.clear.grid(row=2, column=5)
        self.clear["command"] =  self.clearMethod
        self.copy = Button(self)
        self.copy["text"] = "Copy"
        self.copy.grid(row=2, column=6)
        self.copy["command"] =  self.copyMethod
        self.auth = Button(self)
        self.auth["text"] = "Auth"
        self.auth.grid(row=2, column=7)
        self.auth["command"] =  self.authFromServer
 
        self.displayText = Label(self)
        self.displayText["text"] = "something will happen."
        self.displayText.grid(row=3, column=0, columnspan=7)
     
    def newMethod(self):
        self.e = Encrypt() 
        self.displayText["text"] = self.e
 
    def loadMethod(self):
        if os.path.exists("./data/tag.txt"):
            f = open('./data/tag.txt', 'r')
            code = f.readline()
            #self.e = Encrypt()
            self.e.setTag(code)
            self.displayText["text"] = "Tag includeed!"

            if os.path.exists("./data/ciphertext.txt"):
                f = open('./data/ciphertext.txt', 'r')
                code = f.readline()
                self.e.setCiphertext(code)
                self.displayText["text"] = "Ciphertext includeed!"

        else:
            self.displayText["text"] = "Load denied!!"
        self.getCiphertextTag()
        self.e.setKey(self.recvKey)
 
    def saveMethod(self):
        
        if self.e == None:
            self.displayText["text"] = "No Encrypt object can save!!"
        else:
            f = open('./data/ciphertext.txt', 'w')
            f.write(self.e.getCiphertext())
            f.closed

            f = open('./data/tag.txt', 'w')
            f.write(self.e.getTag())
            f.closed

            self.displayText["text"] = "The code is saved."
            self.sendCiphertextTag(self.e.getCiphertext(), self.e.getTag())
 
    def encodeMethod(self):
        self.userinput = self.inputField.get()
         
        if self.userinput == "":
            self.displayText["text"] = "No input string!!"
        else:
            if self.e == None:
                self.displayText["text"] = "No encrypt object!!"
            else:
                self.result = self.e.toEncode(self.userinput)
                self.displayText["text"] = "Encrypt successful!!"
         
 
    def decodeMethod(self):
        self.userinput = self.inputField.get()
        
        if self.userinput == "":
            if self.isRecv:
                self.result = self.e.toDecode(self.e.ciphertext, self.e.tag)
                self.displayText["text"] = self.result
            else :
                self.displayText["text"] = "No input string!!"
        else:
            if self.e == None:
                self.displayText["text"] = "No encrypt object!!"
            else:
                self.result = self.e.toDecode(self.e.ciphertext, self.e.tag)
                self.displayText["text"] = self.result
 
    def clearMethod(self):
        self.e = None
        self.userinput = ""
        self.result = ""
        self.inputField.delete(0, 200)
        #self.outputField.delete(0, 200)
 
        self.displayText["text"] = "It's done."
 
    def copyMethod(self):
        if self.result == "":
            self.displayText["text"] = "Copy denied!!"
        else:
            self.clipboard_clear()
            self.clipboard_append(self.result)
            self.displayText["text"] = "It is already copied to the clipboard."

    def getCiphertextTag(self):
        if self.isAuth:

            TCP_IP = "140.118.155.49"
            TCP_PORT = 9000
            BUFFER_SIZE = 1024

            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((TCP_IP, TCP_PORT))
            with open('data/ciphertext.txt', 'wb') as f:
                print 'file opened'
                while True:
                    #print('receiving data...')
                    data = s.recv(BUFFER_SIZE)
                    print('data=%s', (data))
                    if not data:
                        f.close()
                        print 'file close()'
                        break
                    # write data to a file
                    f.write(data)

            s.close()
            print('Successfully get the ciphertext file, connection closed...')

            TCP_PORT = 9001
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((TCP_IP, TCP_PORT))
            with open('data/tag.txt', 'wb') as f:
                print 'file opened'
                while True:
                    #print('receiving data...')
                    data = s.recv(BUFFER_SIZE)
                    print('data=%s', (data))
                    if not data:
                        f.close()
                        print 'file close()'
                        break
                    # write data to a file
                    f.write(data)

            s.close()
            print('Successfully get the tag file, connection closed...')
            self.isRecv = True
        else :
            self.displayText["text"] = "You don't have the right to use."
    
        
    def sendCiphertextTag(self, s1, s2):
        if self.isAuth:
            s = socket.socket()             # Create a socket object
            host = '140.118.155.49'     # Get local machine name
            port = 9002                    # Reserve a port for your service.

            s.connect((host, port))
            s.send(s1)

            s.close()
            print('Successfully send the ciphertext file, connection closed...')

            s = socket.socket()             # Create a socket object
            host = '140.118.155.49'     # Get local machine name
            port = 9003                   # Reserve a port for your service.

            s.connect((host, port))
            s.send(s2)

            s.close()
            print('Successfully send the tag file, connection closed...')
            self.sendKeyToServer()
        else :
            self.displayText["text"] = "You don't have the right to use."
        

    def authFromServer(self):
        TCP_IP = "140.118.155.49"
        TCP_PORT = 9004
        BUFFER_SIZE = 1024

        header = self.e.header
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((TCP_IP, TCP_PORT))
        s.send(header)

        data = s.recv(1024)
        print(data)
        if data != "Not Authenticated":
            self.displayText["text"] = "Authenticated!!"
            self.recvKey = data
            self.isAuth = True
        else :
            self.displayText["text"] = "You are a bad guy!!"
        s.close()
        print("Current key is: " + self.e.key)
        
    def sendKeyToServer(self):
        s = socket.socket()             # Create a socket object
        host = '140.118.155.49'     # Get local machine name
        port = 9005                   # Reserve a port for your service.

        s.connect((host, port))

        s.send(self.e.key)

        msg = s.recv(1024)
        s.close()
        print(msg)
Пример #38
0
from encrypt import Encrypt

unchanged_sentence = raw_input('Type some words to encrypt\n')

our_encryptor = Encrypt()


encrypted_text = our_encryptor.encrypt( unchanged_sentence )
print encrypted_text


decrypted_message = our_encryptor.decrypt(encrypted_text)

if decrypted_message == unchanged_sentence:
	print 'it worked'
	print decrypted_message







Пример #39
0
 def newMethod(self):
     self.e = Encrypt()
     self.displayText["text"] = self.e
Пример #40
0
class EncryptGUI(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.grid()
        self.createWidgets()
        self.e = None
        self.userinput = ""
        self.result = ""

    def createWidgets(self):
        self.inputText = Label(self)
        self.inputText["text"] = "Input:"
        self.inputText.grid(row=0, column=0)
        self.inputField = Entry(self)
        self.inputField["width"] = 50
        self.inputField.grid(row=0, column=1, columnspan=6)

        self.outputText = Label(self)
        self.outputText["text"] = "Output:"
        self.outputText.grid(row=1, column=0)
        self.outputField = Entry(self)
        self.outputField["width"] = 50
        self.outputField.grid(row=1, column=1, columnspan=6)

        self.new = Button(self)
        self.new["text"] = "New"
        self.new.grid(row=2, column=0)
        self.new["command"] = self.newMethod
        self.load = Button(self)
        self.load["text"] = "Load"
        self.load.grid(row=2, column=1)
        self.load["command"] = self.loadMethod
        self.save = Button(self)
        self.save["text"] = "Save"
        self.save.grid(row=2, column=2)
        self.save["command"] = self.saveMethod
        self.encode = Button(self)
        self.encode["text"] = "Encode"
        self.encode.grid(row=2, column=3)
        self.encode["command"] = self.encodeMethod
        self.decode = Button(self)
        self.decode["text"] = "Decode"
        self.decode.grid(row=2, column=4)
        self.decode["command"] = self.decodeMethod
        self.clear = Button(self)
        self.clear["text"] = "Clear"
        self.clear.grid(row=2, column=5)
        self.clear["command"] = self.clearMethod
        self.copy = Button(self)
        self.copy["text"] = "Copy"
        self.copy.grid(row=2, column=6)
        self.copy["command"] = self.copyMethod

        self.displayText = Label(self)
        self.displayText["text"] = "something happened"
        self.displayText.grid(row=3, column=0, columnspan=7)

    def newMethod(self):
        self.e = Encrypt()
        self.displayText["text"] = self.e

    def loadMethod(self):
        self.displayText["text"] = "This is Load Button."

    def saveMethod(self):
        self.displayText["text"] = "This is Save Button."

    def encodeMethod(self):
        self.userinput = self.inputField.get()

        if self.userinput == "":
            self.displayText["text"] = "No input string!!"
        else:
            self.result = self.e.toEncode(self.userinput)
            self.outputField.delete(0, 200)
            self.outputField.insert(0, self.result)
            self.displayText["text"] = "Encoding success!!"

    def decodeMethod(self):
        self.userinput = self.inputField.get()

        if self.userinput == "":
            self.displayText["text"] = "No input string!!"
        else:
            self.result = self.e.toDecode(self.userinput)
            self.outputField.delete(0, 200)
            self.outputField.insert(0, self.result)
            self.displayText["text"] = "Decoding success!!"

    def clearMethod(self):
        self.displayText["text"] = "This is Clear Button."

    def copyMethod(self):
        self.displayText["text"] = "This is Copy Button."
Пример #41
0
from email.MIMEText import MIMEText
from email import Encoders
from encrypt import Encrypt

locale.setlocale(locale.LC_ALL, "tr_TR.UTF-8")
TIME = time.strftime("%X")
DATE = time.strftime("%d.%m.%Y")
DATETIME = DATE, TIME  

MINUTE = int("30")
AMOUNT = int("2")
fileDirectory = "/tmp/whoyou"
VIDEO_X = "video0"


encryp = Encrypt()
key = open("%s/wykey" % fileDirectory).read()
openPass = encryp.xor(key, False)
MAIL_PASSWORD = encryp.decrypt(openPass)
MAIL = open("%s/usernames" % fileDirectory).readlines()[0]
tweet_user = open("%s/usernames" % fileDirectory).readlines()[1]
SUBJECT = "-*-whoyou-*-"

VALUEURL = "http://twitter.com/%s" % tweet_user # command: PC:Close and PC:Open


TEXT = """
Merhaba %s,\n%s tarhinde sisteminize giriş yapıldı. 
Bilgisayarınız ile ilgili işlem yapmak için verdiğiniz adrese (%s) bir değer giriniz. Aksi halde bilgisayarınız açık kalacaktır.
İlgili görsellere "%s" dizininden bakabilirsiniz.""" % (MAIL.split("@")[0], DATETIME, VALUEURL, fileDirectory)
  
Пример #42
0
class EncryptGUI(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.grid()
        self.createWidgets()
        self.e = None
        self.userinput = ""
        self.result = ""
 
    def createWidgets(self):
        self.inputText = Label(self)
        self.inputText["text"] = "Input:"
        self.inputText.grid(row=0, column=0)
        self.inputField = Entry(self)
        self.inputField["width"] = 50
        self.inputField.grid(row=0, column=1, columnspan=6)
 
        self.outputText = Label(self)
        self.outputText["text"] = "Output:"
        self.outputText.grid(row=1, column=0)
        self.outputField = Entry(self)
        self.outputField["width"] = 50
        self.outputField.grid(row=1, column=1, columnspan=6)
         
        self.new = Button(self)
        self.new["text"] = "New"
        self.new.grid(row=2, column=0)
        self.new["command"] =  self.newMethod
        self.load = Button(self)
        self.load["text"] = "Load"
        self.load.grid(row=2, column=1)
        self.load["command"] =  self.loadMethod
        self.save = Button(self)
        self.save["text"] = "Save"
        self.save.grid(row=2, column=2)
        self.save["command"] =  self.saveMethod
        self.encode = Button(self)
        self.encode["text"] = "Encode"
        self.encode.grid(row=2, column=3)
        self.encode["command"] =  self.encodeMethod
        self.decode = Button(self)
        self.decode["text"] = "Decode"
        self.decode.grid(row=2, column=4)
        self.decode["command"] =  self.decodeMethod
        self.clear = Button(self)
        self.clear["text"] = "Clear"
        self.clear.grid(row=2, column=5)
        self.clear["command"] =  self.clearMethod
        self.copy = Button(self)
        self.copy["text"] = "Copy"
        self.copy.grid(row=2, column=6)
        self.copy["command"] =  self.copyMethod
 
        self.displayText = Label(self)
        self.displayText["text"] = "something happened"
        self.displayText.grid(row=3, column=0, columnspan=7)
     
    def newMethod(self):
        self.e = Encrypt() 
        self.displayText["text"] = self.e
 
    def loadMethod(self):
        if os.path.exists("./code.txt"):
            f = open('./code.txt', 'r')
            code = f.readline()
            self.e = Encrypt()
            self.e.setCode(code)
            self.displayText["text"] = "code: " + self.e.getCode()
        else:
            self.displayText["text"] = "Load denied!!"
 
    def saveMethod(self):
        if self.e == None:
            self.displayText["text"] = "No Encrypt object can save!!"
        else:
            f = open('./code.txt', 'w')
            f.write(self.e.getCode())
            f.closed
            self.displayText["text"] = "The code is saved."
 
    def encodeMethod(self):
        self.userinput = self.inputField.get()
         
        if self.userinput == "":
            self.displayText["text"] = "No input string!!"
        else:
            if self.e == None:
                self.displayText["text"] = "No encrypt object!!"
            else:
                self.result = self.e.toEncode(self.userinput)
                self.outputField.delete(0, 200)
                self.outputField.insert(0, self.result)
                self.displayText["text"] = "Encoding success!!"
         
 
    def decodeMethod(self):
        self.userinput = self.inputField.get()
         
        if self.userinput == "":
            self.displayText["text"] = "No input string!!"
        else:
            if self.e == None:
                self.displayText["text"] = "No encrypt object!!"
            else:
                self.result = self.e.toDecode(self.userinput)
                self.outputField.delete(0, 200)
                self.outputField.insert(0, self.result)
                self.displayText["text"] = "Decoding success!!"
 
    def clearMethod(self):
        self.e = None
        self.userinput = ""
        self.result = ""
        self.inputField.delete(0, 200)
        self.outputField.delete(0, 200)
 
        self.displayText["text"] = "It's done."
 
    def copyMethod(self):
        if self.result == "":
            self.displayText["text"] = "Copy denied!!"
        else:
            self.clipboard_clear()
            self.clipboard_append(self.result)
            self.displayText["text"] = "It is already copied to the clipboard."
Пример #43
0
	def nm(self):
		self.e = Encrypt()
		self.dt["text"] = self.e	
Пример #44
0
def main(argv, gateway=GATEWAY, uuid=UUID, f_hex=HEX):
    q_gw_recv = Queue()
    help_msg = argv[0] + "-h <host> -g <gateway> -u <uuid>"
    local = HOST

    try:
        opts, args = getopt.getopt(argv[1:], "xh:g:u:", ["host", "gateway=", "uuid="])
    except getopt.GetoptError:
        print help_msg
        sys.exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--host"):
            local = arg
        elif opt in ("-g", "--gateway"):
            gateway = arg
        elif opt in ("-u", "--uuid"):
            uuid = arg
        elif opt == "-x":
            f_hex = True

    print "[VERSION]", __version__
    print "[GATEWAY]", gateway, uuid
    s = socket(AF_INET, SOCK_STREAM)
    s.connect((gateway, TCP_PORT))
    s.send(REQ_PHONE_ID.format(uuid=uuid))
    data = s.recv(BUFFER_SIZE)
    print "[HANDSHAKE]", data
    if len(data) != 11:
        print "Incorrect message"
        sys.exit(1)
    e = Encrypt(uuid=uuid, phone_id=data[6], only_compatible=ONLY)
    t = Thread(target=listen_gateway, args=(s, q_gw_recv))
    t.daemon = True
    t.start()

    host = socket(AF_INET, SOCK_STREAM)
    host.bind((local, TCP_PORT))
    host.listen(1)
    print "[HOST]", local, TCP_PORT
    conn, addr = host.accept()
    conn.settimeout(TIMEOUT)
    print "Connected by", addr
    cnt = 0
    while True:
        try:
            data = q_gw_recv.get(timeout=TIMEOUT)
            dec = e.decrypt(data)
            print "[RECV %s]" % (strftime("%H:%M:%S", localtime())), len(data), remove_newline(data[:2] + dec)
            conn.sendall(data[:2])
            # tm.sleep(0.5)
            conn.sendall(data[2:])
            if f_hex:
                print_hex(data, True)
        except Empty:
            pass

        try:
            data = conn.recv(1024)
            if REQ_UUID in data:
                e.uuid = data[(data.index(REQ_UUID) + 6) :]
                print "[ENC UUID]", e.uuid
            if len(data) < 1:
                print "[CLIENT] Disconnected"
                conn, addr = host.accept()
                conn.settimeout(TIMEOUT)
                print "[CLIENT] Connected by", addr
                continue
            dec = e.decrypt(data)
            print "[SENT %s]" % (strftime("%H:%M:%S", localtime())), len(data), remove_newline(data[:2] + dec)
            s.sendall(data)
        except timeout:
            if cnt > 1000:
                cnt = 0
                print "tout"

    conn.close()