Skip to content

Commit 42cc05f

Browse files
Merge pull request #13 from Morgan-Phoenix/fixes
All Fixes
2 parents cf88322 + 045eeb9 commit 42cc05f

File tree

6 files changed

+43
-41
lines changed

6 files changed

+43
-41
lines changed

enrocrypt/basic.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
from enrocrypt import error
21
import uuid, os
2+
from enrocrypt import error
33

44
class Basic():
5+
'''This Class Consists of all the basic functions that can be useful'''
56
def __str__(self) -> str:
67
return "This Class Has All the Basic Functions Of EnroCrypt"
78
def seperator(self,data: str):
@@ -47,7 +48,7 @@ def to_str(self,data):
4748
in_ascii.append(int(in_int[i],16))
4849
for i,_ in enumerate(in_ascii):
4950
in_str.append(chr(in_ascii[i]))
50-
return(in_str)
51+
return in_str
5152

5253
def Sign(self,sign:str):
5354
'''A Hint Of Upcomming Updates'''

enrocrypt/core.py

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class Core(Hashing,Encryption,Basic):
1414
def __init__(self) -> None:
1515
self.salt = ''
1616
def set_config(self,*args: Any):
17+
'''Sets The Configuration For This Class And All Other Classes'''
1718
configs = (args[0]['configs']['salt_file'])
1819
value = self.__Set_Salt(configs)
1920
return value
@@ -30,6 +31,7 @@ def __Set_Salt(self,salt:list):
3031
else:
3132
return False
3233
def get_hash_object(self):
34+
'''Returns A Hashing Class Object That Is Pre-Configured To Use Custom Salt If Any'''
3335
hashing = Hashing()
3436
hashing(bytes(self.salt.encode()))
3537
return hashing

enrocrypt/error.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,25 @@ class ModifiedError(Exception):
22
def __init__(self):
33
self.msg = 'The List Provided To The Function Is Modified'
44
super().__init__(self.msg)
5+
exit()
56
class ListIndexError(Exception):
67
def __init__(self):
78
self.msg = 'Returned List Must Only Have 4 Elements'
89
super().__init__(self.msg)
10+
exit()
911
class NoKeyFile(Exception):
1012
def __init__(self):
1113
self.msg = 'No Path For The Key File was Provided'
1214
super().__init__(self.msg)
15+
exit()
1316
class List(Exception):
14-
def __init__(self):
15-
self.msg = "Must Be A List"
16-
super().__init__(self.msg)
17+
def __init__(self):
18+
self.msg = "Must Be A List"
19+
super().__init__(self.msg)
20+
exit()
1721
class KeyError(Exception):
1822
def __init__(self,bits:int) -> None:
1923
self.bits = bits
2024
self.msg = f"Key Must Be Of 32, 24 or 16 bits not {self.bits} bits"
21-
super().__init__(self.msg)
25+
super().__init__(self.msg)
26+
exit()

enrocrypt/hashing.py

+28-32
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import hashlib, base64, uuid
1+
import hashlib, base64, uuid, passlib
22
from cryptography.hazmat.primitives import hashes
3-
from typing import Any, final
3+
from typing import Any
44
class Hashing():
55
def __init__(self) -> None:
66
self.salt = None
@@ -9,26 +9,6 @@ def __call__(self, *args:Any):
99
def __str__(self) -> str:
1010
return "Hashing Funcitions In Here"
1111

12-
def Standard_Multi_Hash(self,Data:str):
13-
'''Inreversable Salted Hash Function Don't Use If U Want To Get The Content Back'''
14-
a = hashlib.sha256(); a.update(bytes(Data.encode())); b = []
15-
base = hashlib.sha512()
16-
md = hashlib.md5()
17-
b.append(str(a.digest()).split("'")[1])
18-
b[0] = str(base64.urlsafe_b64encode(bytes(b[0].encode()))).split("'")[1]
19-
base.update(bytes(b[0].encode()))
20-
md.update(base.digest())
21-
b[0]=str(base64.urlsafe_b64encode(base64.standard_b64encode(md.digest()))).split("'")[1]
22-
salt = ['H', 'c', 'D', 'L', 'b', 'M', 'S', 'a', 'N', 'q', 'K', 'j', 'V', 'd', 'O', 'W', 'x']
23-
c = (b[0].split("G"))or(b[0].split("g"))or(b[0].split("v"))or(b[0].split("x")); d=[]; e=[]
24-
for i in range(len(c)): a = salt[i]; b = c[i]; c[i] = b+a
25-
for i in range(len(c)):
26-
try: d.append(c[i+1])
27-
except: d.append(c[0])
28-
e.append(''.join(d))
29-
final = self.BLAKE2(bytes(str(e[0]).encode()))
30-
return(final)
31-
3212
def __Salt(self,data,salt:bytes = None):
3313
if not salt:
3414
salts = []
@@ -50,29 +30,45 @@ def __Salt(self,data,salt:bytes = None):
5030
salts.append(str(data).split("'")[1])
5131
salts.append(str(hashlib.sha256(salt).digest()).split("'")[1])
5232
return base64.standard_b64encode(bytes((str(base64.urlsafe_b64encode(bytes(''.join(salts).encode()))).split("'")[1]+str(base64.urlsafe_b64encode(base64.standard_b64encode((bytes(''.join(salts).encode()))))).split("'")[1]).encode()))
33+
34+
def Standard_Multi_Hash(self,Data:str):
35+
'''Inreversable Salted Hash Function Don't Use If U Want To Get The Content Back'''
36+
a = hashlib.sha256(); a.update(bytes(Data.encode())); b = []
37+
base = hashlib.sha512()
38+
md = hashlib.md5()
39+
b.append(str(a.digest()).split("'")[1])
40+
b[0] = str(base64.urlsafe_b64encode(bytes(b[0].encode()))).split("'")[1]
41+
base.update(bytes(b[0].encode()))
42+
md.update(base.digest())
43+
b[0]=str(base64.urlsafe_b64encode(base64.standard_b64encode(md.digest()))).split("'")[1]
44+
salt = ['H', 'c', 'D', 'L', 'b', 'M', 'S', 'a', 'N', 'q', 'K', 'j', 'V', 'd', 'O', 'W', 'x']
45+
c = (b[0].split("G"))or(b[0].split("g"))or(b[0].split("v"))or(b[0].split("x")); d=[]
46+
d[0] = self.__Salt(c,salt=self.salt)
47+
final = self.BLAKE2(bytes(str(d[0]).encode()))
48+
return(final)
5349

5450
def SHA256(self,data:str):
5551
sha = hashlib.sha256(bytes(data.encode()))
56-
hash = sha.digest()
57-
return self.__Salt(hash,salt=self.salt)
52+
Hash = sha.digest()
53+
return self.__Salt(Hash,salt=self.salt)
5854

5955
def SHA512(self,data:str):
6056
sha = hashlib.sha512(bytes(data.encode()))
61-
hash = str(sha.digest())
62-
return self.__Salt(hash,salt=self.salt)
57+
Hash = str(sha.digest())
58+
return self.__Salt(Hash,salt=self.salt)
6359

6460
def SHA244(self,data:str):
6561
sha = hashlib.sha224(bytes(data.encode()))
66-
hash = str(sha.digest())
67-
return self.__Salt(hash,salt=self.salt)
68-
62+
Hash = str(sha.digest())
63+
return self.__Salt(Hash,salt=self.salt)
64+
6965
def SHA384(self,data:str):
7066
sha = hashlib.sha384(bytes(data.encode()))
71-
hash = str(sha.digest())
72-
return self.__Salt(hash,salt=self.salt)
67+
Hash = str(sha.digest())
68+
return self.__Salt(Hash,salt=self.salt)
7369

7470
def BLAKE2(self,data:bytes):
7571
a = hashes.Hash(hashes.BLAKE2s(32))
7672
a.update(data)
7773
return self.__Salt(a.finalize(),salt=self.salt)
78-
74+

enrocrypt/key.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from cryptography.hazmat.primitives.hashes import SHA256
22
from cryptography.hazmat.primitives.kdf.hkdf import HKDF
33
from enrocrypt.hashing import Hashing
4-
from enrocrypt.encryption import Encryption
54
from enrocrypt.error import KeyError
65

76
def generate_key(words:str,salt:bytes,bits:int = 32):

setup.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
name="enrocrypt",
55
version="1.1.4",
66
author="Morgan-Phoenix",
7-
author_email="[email protected]",
87
description="This is a Python Module For Encryption, Hashing And Other stuff",
98
long_description=file,
109
long_description_content_type="text/markdown",
@@ -18,6 +17,6 @@
1817
"Operating System :: OS Independent",
1918
],
2019
packages=find_packages(),
21-
install_requires=['cryptography'],
20+
install_requires=['cryptography', 'passlib'],
2221
python_requires=">=3.6",
2322
)

0 commit comments

Comments
 (0)