Skip to content
Snippets Groups Projects
Commit a7fd156d authored by Adrien Béraud's avatar Adrien Béraud
Browse files

python: add aesEncrypt, aesDecrypt with password

parent 415e5b56
No related branches found
No related tags found
No related merge requests found
...@@ -462,6 +462,26 @@ cdef class Identity(object): ...@@ -462,6 +462,26 @@ cdef class Identity(object):
k._key = self._id.first k._key = self._id.first
return k return k
def aesEncrypt(bytes data, str password) -> bytes :
cdef size_t d_len = len(data)
cdef cpp.uint8_t* d_ptr = <cpp.uint8_t*>data
cdef cpp.Blob indat
indat.assign(d_ptr, <cpp.uint8_t*>(d_ptr + d_len))
cdef cpp.Blob encrypted = cpp.aesEncrypt(indat, password.encode())
cdef char* encrypted_c_str = <char *>encrypted.data()
cdef Py_ssize_t length = encrypted.size()
return encrypted_c_str[:length]
def aesDecrypt(bytes data, str password) -> bytes :
cdef size_t d_len = len(data)
cdef cpp.uint8_t* d_ptr = <cpp.uint8_t*>data
cdef cpp.Blob indat
indat.assign(d_ptr, <cpp.uint8_t*>(d_ptr + d_len))
cdef cpp.Blob decrypted = cpp.aesDecrypt(indat, password.encode())
cdef char* decrypted_c_str = <char *>decrypted.data()
cdef Py_ssize_t length = decrypted.size()
return decrypted_c_str[:length]
cdef class DhtConfig(object): cdef class DhtConfig(object):
cdef cpp.DhtRunnerConfig _config cdef cpp.DhtRunnerConfig _config
def __init__(self): def __init__(self):
......
...@@ -94,6 +94,8 @@ ctypedef vector[uint8_t] Blob ...@@ -94,6 +94,8 @@ ctypedef vector[uint8_t] Blob
cdef extern from "opendht/crypto.h" namespace "dht::crypto": cdef extern from "opendht/crypto.h" namespace "dht::crypto":
ctypedef pair[shared_ptr[PrivateKey], shared_ptr[Certificate]] Identity ctypedef pair[shared_ptr[PrivateKey], shared_ptr[Certificate]] Identity
cdef Identity generateIdentity(string name, Identity ca, unsigned bits) cdef Identity generateIdentity(string name, Identity ca, unsigned bits)
cdef Blob aesEncrypt(Blob data, string password) except +
cdef Blob aesDecrypt(Blob encrypted, string password) except +
cdef cppclass PrivateKey: cdef cppclass PrivateKey:
PrivateKey() PrivateKey()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment