-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgpg.py
More file actions
68 lines (50 loc) · 1.7 KB
/
gpg.py
File metadata and controls
68 lines (50 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import gnupg
# GPGEncrypt Class
class GPGEncrypt:
def __init__(self):
# GPG instance
self.gpg = gnupg.GPG(gnupghome='keys', gpgbinary='gpg/gpg.exe')
# Generate a new public key
def generateKey(self, name, password):
input_data = self.gpg.gen_key_input(
name_email=name,
passphrase=password,
key_type='RSA',
key_length=2048
)
return str(self.gpg.gen_key(input_data))
# delete a key
def deleteKey(self, fingerprint, password):
secret_key = str(self.gpg.delete_keys(fingerprint, True, passphrase=password))
return str(self.gpg.delete_keys(fingerprint))
# List all keys
def listPublicKeys(self):
return self.gpg.list_keys()
# List private keys
def listPrivateKeys(self):
return self.gpg.list_keys(True)
# Encrypt message
def encrypt(self, data, recipients):
encrypted_data = self.gpg.encrypt(data, recipients=recipients)
return encrypted_data
# Encrypt file
def encryptFile(self, file, recipients):
encrypted_data = self.gpg.encrypt_file(file, recipients=recipients)
return encrypted_data
# Encrypt message
def decrypt(self, data):
decrypted_data = self.gpg.decrypt(data)
return decrypted_data
# Decrypt from file
def decryptFile(self, file):
return self.gpg.decrypt_file(file)
# Export Keys
def exportKeys(self, keyids):
return self.gpg.export_keys(keyids=keyids)
# Import keys
def importKeys(self, data):
status = self.gpg.import_keys(data)
return str(status)
# Return GPG Object
def getGPGObject(self):
return self.gpg