def recvFile(file_name: str, hash_code: str, encoding: str, fromer: str):
    mkdir(euser.get())
    btext = b''
    while True:
        data, addr = client_msg.recvfrom(buffer)
        btext += data
        if btext[-7:] == b"__end__":
            break
    btext = btext[:-7]

    hexstr = binascii.b2a_hex(btext)
    filebyte = cryptocommon.hexstr_to_bytelist(hexstr)
    hashbytelist = md5hash.hash(filebyte)
    while fromer not in certificate_list.keys():  # wait for certificate
        askCert(fromer)
        time.sleep(0.2)
    friend_certificate = certificate_list[fromer]
    friend_pbk = friend_certificate["pbk"]
    hash_decode = cipher_rsa.numlist_to_decryption_str(hash_code, friend_pbk[0], friend_pbk[1])
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    if hashhexstr == hash_decode:
        file = open(euser.get() + "\\" + file_name, 'w')
        file.write((btext).decode('gb18030'))
        file.close()
        text.insert(tkinter.INSERT, "you have received a file from "+fromer+"\n")
    else:
        text.insert(tkinter.INSERT, "received some broken files.\n")
def main():
	message = "3243F6A8885A308D313198A2E0370734"
	key = "2B7E151628AED2A6ABF7158809CF4F3C"
	
	plaintextbytelist = cryptocommon.hexstr_to_bytelist(message)
	keybytelist = cryptocommon.hexstr_to_bytelist(key)
	ciphertextbytelist = aescipher.encrypt(plaintextbytelist, keybytelist, printdebug=True)
	ciphertexthexstr = cryptocommon.bytelist_to_hexstr(ciphertextbytelist)
	assert aescipher.decrypt(ciphertextbytelist, keybytelist) == plaintextbytelist
	
	print('Plaintext  (hex): {}'.format(message))
	print('Ciphertext (hex): {}'.format(ciphertexthexstr))
	print('Key        (hex): {}'.format(key))
	print("Plaintext  (bytelist): {}".format(plaintextbytelist))
	print("Ciphertext (bytelist): {}".format(ciphertextbytelist))
	print("Key        (bytelist): {}".format(keybytelist))
def sendFile():
    friend_certificate = certificate_list[comboxlist_friend.get()]
    friend_address = tuple(friend_certificate["address"])
    file_path = filedialog.askopenfilename()
    file = open(file_path, 'rb')
    stext = file.read()
    hexstr = binascii.b2a_hex(stext)
    filebyte = cryptocommon.hexstr_to_bytelist(hexstr)
    hashbytelist = md5hash.hash(filebyte)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    hashhexstr = cipher_rsa.str_encryption(hashhexstr, pvk[0], pvk[1])  # signature
    file_name = file_path.split("/")[-1]

    stream = {"type": "file", "name": file_name, "hash": hashhexstr, "encoding": chardet.detect(stext)["encoding"],
              "sender": euser.get()}
    client_msg.sendto(json.dumps(stream).encode(), friend_address)
    time.sleep(0.8)
    stext += b"__end__"
    epoch = len(stext) // buffer
    res = int(len(stext) - epoch * buffer)
    print("sending file::::")
    t = 0
    for i in range(epoch):
        t = i
        time.sleep(0.1)
        client_msg.sendto(stext[i * buffer: (i + 1) * buffer], friend_address)
    if res != 0:
        client_msg.sendto(stext[t * buffer:t * buffer + res], friend_address)
Пример #4
0
	def _check_hash_function(self, func, cases):
		global num_test_cases
		assert isinstance(cases, list)
		
		for (expecthash, messagestr) in cases:
			assert isinstance(expecthash, str)
			assert isinstance(messagestr, str)
			
			msgbytelist = asciistr_to_bytelist(messagestr)
			actualhashbytelist = func(msgbytelist)
			expectedhashbytelist = hexstr_to_bytelist(expecthash)
			
			assert isinstance(actualhashbytelist, list)
			self.assertEqual(actualhashbytelist, expectedhashbytelist)
			num_test_cases += 1
Пример #5
0
    def _check_hash_function(self, func, cases):
        global num_test_cases
        assert type(cases) == list

        for (expecthash, messagestr) in cases:
            assert type(expecthash) == str
            assert type(messagestr) == str

            msgbytelist = asciistr_to_bytelist(messagestr)
            actualhashbytelist = func(msgbytelist)
            expectedhashbytelist = hexstr_to_bytelist(expecthash)

            assert type(actualhashbytelist) == list
            self.assertEqual(actualhashbytelist, expectedhashbytelist)
            num_test_cases += 1
Пример #6
0
def test_hash_function(func, cases):
	global num_test_cases
	assert type(cases) == list
	
	for (expecthash, messagestr) in cases:
		assert type(expecthash) == str
		assert type(messagestr) == str
		
		msgbytelist = asciistr_to_bytelist(messagestr)
		actualhashbytelist = func(msgbytelist)
		expectedhashbytelist = hexstr_to_bytelist(expecthash)
		
		assert type(actualhashbytelist) == list
		if actualhashbytelist != expectedhashbytelist:
			raise AssertionError()
		num_test_cases += 1
Пример #7
0
def main():
    message = "FF00CA9634"
    msgbytelist = cryptocommon.hexstr_to_bytelist(message)
    hashbytelist = md5hash.hash(msgbytelist, printdebug=True)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    print('Message string (hex): {}'.format(message))
    print("Message bytelist: {}".format(msgbytelist))
    print("Hash bytelist: {}".format(hashbytelist))
    print("MD5 hash (hex): {}".format(hashhexstr))
    print("")
    print("-" * 100)
    print("")

    message = "the quick brown fox"
    msgbytelist = cryptocommon.asciistr_to_bytelist(message)
    hashbytelist = sha256hash.hash(msgbytelist, printdebug=True)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    print('Message string: "{}"'.format(message))
    print("Message bytelist: {}".format(msgbytelist))
    print("Hash bytelist: {}".format(hashbytelist))
    print("SHA-256 hash (hex): {}".format(hashhexstr))
Пример #8
0
def main():
    message = "FF00CA9634"
    msgbytelist = cryptocommon.hexstr_to_bytelist(message)
    hashbytelist = md5hash.hash(msgbytelist, printdebug=True)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    print(f"Message string (hex): {message}")
    print(f"Message bytelist: {msgbytelist}")
    print(f"Hash bytelist: {hashbytelist}")
    print(f"MD5 hash (hex): {hashhexstr}")
    print()
    print("-" * 100)
    print()

    message = "the quick brown fox"
    msgbytelist = cryptocommon.asciistr_to_bytelist(message)
    hashbytelist = sha256hash.hash(msgbytelist, printdebug=True)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    print(f'Message string: "{message}"')
    print(f"Message bytelist: {msgbytelist}")
    print(f"Hash bytelist: {hashbytelist}")
    print(f"SHA-256 hash (hex): {hashhexstr}")
Пример #9
0
def main():
	message = "FF00CA9634"
	msgbytelist = cryptocommon.hexstr_to_bytelist(message)
	hashbytelist = md5hash.hash(msgbytelist, printdebug=True)
	hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
	print('Message string (hex): {}'.format(message))
	print("Message bytelist: {}".format(msgbytelist))
	print("Hash bytelist: {}".format(hashbytelist))
	print("MD5 hash (hex): {}".format(hashhexstr))
	print("")
	print("-" * 100)
	print("")
	
	message = "the quick brown fox"
	msgbytelist = cryptocommon.asciistr_to_bytelist(message)
	hashbytelist = sha256hash.hash(msgbytelist, printdebug=True)
	hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
	print('Message string: "{}"'.format(message))
	print("Message bytelist: {}".format(msgbytelist))
	print("Hash bytelist: {}".format(hashbytelist))
	print("SHA-256 hash (hex): {}".format(hashhexstr))
Пример #10
0
    [0x2, 0xE, 0xC, 0xB, 0x4, 0x2, 0x1, 0xC, 0x7, 0x4, 0xA, 0x7, 0xB, 0xD, 0x6, 0x1, 0x8, 0x5, 0x5, 0x0, 0x3, 0xF, 0xF,
     0xA, 0xD, 0x3, 0x0, 0x9, 0xE, 0x8, 0x9, 0x6, 0x4, 0xB, 0x2, 0x8, 0x1, 0xC, 0xB, 0x7, 0xA, 0x1, 0xD, 0xE, 0x7, 0x2,
     0x8, 0xD, 0xF, 0x6, 0x9, 0xF, 0xC, 0x0, 0x5, 0x9, 0x6, 0xA, 0x3, 0x4, 0x0, 0x5, 0xE, 0x3],
    [0xC, 0xA, 0x1, 0xF, 0xA, 0x4, 0xF, 0x2, 0x9, 0x7, 0x2, 0xC, 0x6, 0x9, 0x8, 0x5, 0x0, 0x6, 0xD, 0x1, 0x3, 0xD, 0x4,
     0xE, 0xE, 0x0, 0x7, 0xB, 0x5, 0x3, 0xB, 0x8, 0x9, 0x4, 0xE, 0x3, 0xF, 0x2, 0x5, 0xC, 0x2, 0x9, 0x8, 0x5, 0xC, 0xF,
     0x3, 0xA, 0x7, 0xB, 0x0, 0xE, 0x4, 0x1, 0xA, 0x7, 0x1, 0x6, 0xD, 0x0, 0xB, 0x8, 0x6, 0xD],
    [0x4, 0xD, 0xB, 0x0, 0x2, 0xB, 0xE, 0x7, 0xF, 0x4, 0x0, 0x9, 0x8, 0x1, 0xD, 0xA, 0x3, 0xE, 0xC, 0x3, 0x9, 0x5, 0x7,
     0xC, 0x5, 0x2, 0xA, 0xF, 0x6, 0x8, 0x1, 0x6, 0x1, 0x6, 0x4, 0xB, 0xB, 0xD, 0xD, 0x8, 0xC, 0x1, 0x3, 0x4, 0x7, 0xA,
     0xE, 0x7, 0xA, 0x9, 0xF, 0x5, 0x6, 0x0, 0x8, 0xF, 0x0, 0xE, 0x5, 0x2, 0x9, 0x3, 0x2, 0xC],
    [0xD, 0x1, 0x2, 0xF, 0x8, 0xD, 0x4, 0x8, 0x6, 0xA, 0xF, 0x3, 0xB, 0x7, 0x1, 0x4, 0xA, 0xC, 0x9, 0x5, 0x3, 0x6, 0xE,
     0xB, 0x5, 0x0, 0x0, 0xE, 0xC, 0x9, 0x7, 0x2, 0x7, 0x2, 0xB, 0x1, 0x4, 0xE, 0x1, 0x7, 0x9, 0x4, 0xC, 0xA, 0xE, 0x8,
     0x2, 0xD, 0x0, 0xF, 0x6, 0xC, 0xA, 0x9, 0xD, 0x0, 0xF, 0x3, 0x3, 0x5, 0x5, 0x6, 0x8, 0xB],
]

def getHexAscii(text):
    x1=binascii.hexlify(text.encode())
    y1=str(x1,'ascii')

    return y1

if __name__ == "__main__":
    pesan = getHexAscii("yonathan")
    kunci = "133457799BBCDFF1"

    plaintextbytelist = cryptocommon.hexstr_to_bytelist(pesan)
    keybytelist = cryptocommon.hexstr_to_bytelist(kunci)

    print(plaintextbytelist)
    print(keybytelist)

    print(encrypt(plaintextbytelist, keybytelist))
Пример #11
0
_SBOX_INVERSE = [0] * 256  # Also a permutation


def _init_sbox():
    for i in range(256):
        j = _reciprocal(i)
        j = j ^ _rotl8(j, 1) ^ _rotl8(j, 2) ^ _rotl8(j, 3) ^ _rotl8(j,
                                                                    4) ^ 0x63
        assert 0 <= j <= 0xFF
        _SBOX_FORWARD.append(j)
        _SBOX_INVERSE[j] = i


def getHexAscii(text):
    x1 = binascii.hexlify(text.encode())
    y1 = str(x1, 'ascii')

    return y1


if __name__ == "__main__":
    _init_sbox()

    plaintext = "Two One Nine Two"
    key = "Thats my Kung Fu"
    hexAsciiPlainText = getHexAscii(plaintext)
    hexAsciiKey = getHexAscii(key)
    hasil = encrypt(cryptocommon.hexstr_to_bytelist(hexAsciiPlainText),
                    cryptocommon.hexstr_to_bytelist(hexAsciiKey), False)
    print(hasil)
Пример #12
0
all_passed = True

#device name, must be 10 char long

#default name
device_name = "code name "

#read name from file
with open("/msg_config.json", "r") as cfg_fp:
    config_string = cfg_fp.read()
    config = json.loads(config_string)
    device_name = config["device_name"]

# build key from config
key = config["msg_key"]
keybytelist = cryptocommon.hexstr_to_bytelist(key)

#truncate to 10 characters
device_name = device_name[0:10]

#pad with spaces to 10 characters
dev_size = len(device_name)
dev_space = 10 - dev_size
device_name += " " * dev_space

# ui dimensions
header = 16
margin = 0
border = 0

# Release any resources currently in use for the displays