Python Forum
ImportError: /home/ali/Documents/test/charm/core/crypto/AES.cpython-39-x86_64-linux-g
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ImportError: /home/ali/Documents/test/charm/core/crypto/AES.cpython-39-x86_64-linux-g
#1
I am working with charm crypto using python 3.7.1 and I have created a small database as shown in the codes as I run the code getting this error
What is the problem the charm is not being successfully installed or what I am confused

Error:
ImportError: /home/ali/Documents/test/charm/core/crypto/AES.cpython-39-x86_64-linux-gnu.so: undefined symbol: _Py_FatalErrorFunc
The codes i use

import json
import hashlib
from charm.toolbox.pairinggroup import PairingGroup, ZR, G1, G2, GT, pair, extract_key
from charm.toolbox.symcrypto import SymmetricCryptoAbstraction
import pymysql as pm
from abenc_bsw07 import *


# This is the cpabe BSW07 scheme's cryptosystem.
# It provides the relevant methods for the objects
group = PairingGroup('SS512')
system = CPabe_BSW07(group)


class CASB:
    '''
    This is a Cloud Access Security Broker.
    '''

    def __init__(self):
        self.cdb = CDB()
        self.dk_name = None
        self.dk_score = None
        self.users = {}

    def store(self, name, buffer):
        '''
        buffer is a dict with information related to name.
        '''
        if name in self.users.keys():
            for key in buffer.keys():
                self.users[name][key] = buffer[key]
        else:
            self.users[name] = {}  # if this is a new user, new a dict for the user.
            for key in buffer.keys():
                self.users[name][key] = buffer[key]

    def setpolicy(self, name, policy):
        '''
        set policy on different columns;
        '''
        if name in self.users.keys():
            self.users[name]['policy'] = policy
        else:
            print('please return to "store"!!!')
            return -1
        print(self.users[name]['policy'])

    def upload(self, name, data):
        '''
        upload data to CDB.
        '''
        # generate dk for columns(name and score).
        if self.dk_name == None:
            dk_name = group.random(GT)
        if self.dk_score == None:
            dk_score = group.random(GT)

        # encrypt data with dk
        for i in range(0, len(data)):
            cipher_name = self.symmetric_encrypt(data[i][1], dk_name)
            cipher_score = self.symmetric_encrypt(data[i][2], dk_score)
            # store cipher in CDB
            self.cdb.cdb_insert(data[i][0], cipher_name, cipher_score)

        # encrypt dk with CP-ABE and store
        self.dk_name = system.encrypt(self.users[name]['pk'], dk_name, self.users[name]['policy']['name'])
        self.dk_score = system.encrypt(self.users[name]['pk'], dk_score, self.users[name]['policy']['score'])

    def accessdata(self, name, sql):
        '''
        sql is just for demonstration.
        '''
        # decrypt dk
        dk_name = system.decrypt(self.users[name]['pk'], self.users[name]['sk'], self.dk_name)
        dk_score = system.decrypt(self.users[name]['pk'], self.users[name]['sk'], self.dk_score)

        print('\n// {} //****** // {} //'.format(name, sql))
        datas = self.cdb.cdb_select()  # select data from CDB

        # decrypt data with dk
        newdatas = []
        for data in datas:
            temp = data[1]
            temp2 = data[2]
            if dk_name != False:
                temp = self.symmetric_decrypt(data[1], dk_name).decode('utf-8')
            if dk_score != False:
                temp2 = self.symmetric_decrypt(data[2], dk_score).decode('utf-8')

            newdata = [data[0], temp, temp2]
            newdatas.append(newdata)

        return newdatas

    def end(self):
        self.cdb.cdb_deleteall()

    def symmetric_encrypt(self, msg, dk):
        k = extract_key(dk)
        a = SymmetricCryptoAbstraction(k)
        c = a.encrypt(msg)
        return c

    def symmetric_decrypt(self, cipher, dk):
        k = extract_key(dk)
        a = SymmetricCryptoAbstraction(k)
        msg = a.decrypt(cipher)
        return msg


class CDB():
    '''
    This is Cloud DataBase.
    '''

    def __init__(self):
        self.conn = pm.connect(host="127.0.0.1",
                               port=3306,
                               user="debian-sys-maint", password="ou5vsQ2OZESjaKJG",
                               database="education",
                               charset="utf8",
                               autocommit=True)
        self.cursor = self.conn.cursor()

    def cdb_insert(self, number, name, score):
        sql = "INSERT INTO math (number, name, score) VALUES (%s, %s, %s);"
        try:
            self.cursor.execute(sql, [number, name, score])
            self.conn.commit()
        except Exception as e:
            print(repr(e))
            self.conn.rollback()  # Rollback in case there is any error

    def cdb_select(self):
        sql = "SELECT * FROM math;"
        try:
            self.cursor.execute(sql)
            self.conn.commit()
        except Exception as e:
            print(repr(e))
            self.conn.rollback()
        results = self.cursor.fetchall()
        return results

    def cdb_deleteall(self):
        sql = "DELETE FROM math;"
        try:
            self.cursor.execute(sql)
            self.conn.commit()
        except Exception as e:
            print(repr(e))
            self.conn.rollback()

    def cdb_close(self):
        self.conn.close()


class KMS:
    '''
    This is KMS(Key Management Server), which provides key management service for users.
    '''

    def __init__(self):
        pass

    def setup(self):
        '''
        Execute "Setup" in CP-ABE.
        '''
        (master_public_key, master_key) = system.setup()
        return master_public_key, master_key


class UE():
    '''
    This is UE(user edge). There is two attributes('admin' and 'user') in it.
    '''

    def __init__(self, name, attributes):  # init a ue
        self.pk = None
        self.mk = None
        self.sk = None
        self.name = name
        self.attributes = attributes

    def show(self, datas):
        print('number\tname\tscore')
        for data in datas:
            for column in data:
                print(column, end='\t')
            print('\n')


def main():
    '''
    In this function, I'll show you the process.
    '''
    # init
    kms = KMS()
    casb = CASB()

    # 1.GENERATE USER MASTER KEY AND SECRET KEYS
    alice = UE('alice', ['ADMIN'])
    bob = UE('bob', ['USER'])
    alice.pk, alice.mk = kms.setup()  # kms setup publickey and master key for alice(admin).
    # generate secret keys for alice and bob
    alice.sk = system.keygen(alice.pk, alice.mk, alice.attributes)
    bob.sk = system.keygen(alice.pk, alice.mk, bob.attributes)
    # store pk, sk and mk in CASB
    casb.store(alice.name, {'pk': alice.pk, 'sk': alice.sk, 'mk': alice.mk})
    casb.store(bob.name, {'pk': alice.pk, 'sk': bob.sk, 'mk': alice.mk})

    # 2.CUSTOMIZE ACCESS POLICIES
    alice.policy = {'name': '((user and admin) or admin)', 'score': '(user or admin)'}
    casb.setpolicy(alice.name, alice.policy)  # set access policy on different columns.

    # 3.UPLOAD DATA
    alice.data = [['1', 'bob', '99'], ['2', 'charles', '98'], ['3', 'david', '96'], ['4', 'emily', '100']]
    casb.upload(alice.name, alice.data)  # upload data to CASB

    # 4.ACCESS DATA
    # alice access data
    alicedatas = casb.accessdata(alice.name, 'SELECT * FROM math')
    alice.show(alicedatas)
    # bob access data
    bobdatas = casb.accessdata(bob.name, 'SELECT * FROM math')
    bob.show(bobdatas)

    casb.end()  # delete all the data in table math for next round


main()
The error i got

Error:
"/home/ali/anaconda3/envs/env55 /bin/python" /home/ali/Documents/test/casb_process.py name 'downcaseTokens' is not defined type mismatch between src='<class 'NoneType'>' and targ='<class 'dict'>' {'name': '((user and admin) or admin)', 'score': '(user or admin)'} Traceback (most recent call last): File "/home/ali/Documents/test/casb_process.py", line 237, in <module> main() File "/home/ali/Documents/test/casb_process.py", line 224, in main casb.upload(alice.name, alice.data) # upload data to CASB File "/home/ali/Documents/test/casb_process.py", line 65, in upload cipher_name = self.symmetric_encrypt(data[i][1], dk_name) File "/home/ali/Documents/test/casb_process.py", line 106, in symmetric_encrypt c = a.encrypt(msg) File "/home/ali/Documents/test/charm/toolbox/symcrypto.py", line 143, in encrypt ct = self._encrypt(message) File "/home/ali/Documents/test/charm/toolbox/symcrypto.py", line 151, in _encrypt cipher = self._initCipher() File "/home/ali/Documents/test/charm/toolbox/symcrypto.py", line 123, in _initCipher return selectPRP(self._alg,(self._key,self._mode,self._IV)) File "/home/ali/Documents/test/charm/core/crypto/AES.py", line 9, in <module> __bootstrap__() File "/home/ali/Documents/test/charm/core/crypto/AES.py", line 7, in __bootstrap__ mod = importlib.util.module_from_spec(spec) ImportError: /home/ali/Documents/test/charm/core/crypto/AES.cpython-39-x86_64-linux-gnu.so: undefined symbol: _Py_FatalErrorFunc Process finished with exit code 1
Debugger error
Error:
"/home/ali/anaconda3/envs/env55 /bin/python" /snap/pycharm-community/276/plugins/python-ce/helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client 127.0.0.1 --port 38999 --file /home/ali/Documents/test/casb_process.py Connected to pydev debugger (build 221.5080.212) name 'downcaseTokens' is not defined type mismatch between src='<class 'NoneType'>' and targ='<class 'dict'>' {'name': '((user and admin) or admin)', 'score': '(user or admin)'} Traceback (most recent call last): File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 728, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/ali/Documents/test/charm/core/crypto/AES.py", line 9, in <module> __bootstrap__() File "/home/ali/Documents/test/charm/core/crypto/AES.py", line 7, in __bootstrap__ mod = importlib.util.module_from_spec(spec) ImportError: /home/ali/Documents/test/charm/core/crypto/AES.cpython-39-x86_64-linux-gnu.so: undefined symbol: _Py_FatalErrorFunc python-BaseException Process finished with exit code 1
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Word documents merging crewdk 1 854 Apr-03-2023, 06:32 AM
Last Post: buran
  Illegal instruction (core dumped) when import pandas. amandacstr 1 2,088 Dec-31-2022, 11:31 PM
Last Post: stevendaprano
  [CPython] Can't run script python VietVH 2 1,204 May-21-2022, 04:49 PM
Last Post: VietVH
  Creating a TG crypto Bot_ problem when trying to with bot.polling p1ner0 1 1,426 Apr-27-2022, 03:43 AM
Last Post: p1ner0
  how to manage crypto trading flooding data from exchange servers Mikeardy 0 1,232 Dec-26-2021, 08:31 PM
Last Post: Mikeardy
  Reducing runtime memory usage in Cpython interpreter david_the_graower 2 2,217 Oct-18-2021, 09:56 PM
Last Post: david_the_graower
  Navigating cpython source using python quazirfan 3 2,020 Aug-09-2021, 07:52 PM
Last Post: quazirfan
  How to test and import a model form computer to test accuracy using Sklearn library Anldra12 6 3,114 Jul-03-2021, 10:07 AM
Last Post: Anldra12
  Segmentation fault (core dumped) hobbyist 1 10,480 Jun-07-2021, 12:56 PM
Last Post: supuflounder
  Сombine (Merge) word documents using python-docx Lancellot 1 11,520 May-12-2021, 11:07 AM
Last Post: toothedsword

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020