[Python] SignedImporter [was: Criptazione dei file sorgenti per evitare la manomissione]
lex mlist
lexmlist a gmail.com
Mar 16 Nov 2010 10:52:31 CET
Il giorno 15 novembre 2010 20:13, Manlio Perillo
<manlio.perillo a gmail.com>ha scritto:
> Se embeddi l'interprete, ti basta settare il flag Py_NoSiteFlag.
>
Ah, beh tanto meglio :)
> Scusa, ma nel tuo caso chiami l'interprete dalla riga di comando, o è
> incluso nella tua applicazione?
>
Nel progetto di cui alla discussione precedente includo l'interprete nel
programma C, però visto che tale thread è stato cosi ricco di spunti ho
pensato di provare a vedermi un po' il meccanismo di import di CPython.
Peccato che questa funzione non sia personalizzabile.
>
> Io l'ho modificata per caricare, assieme a zipimport, anche il modulo
signedimporter (quello tuo da paste, anche se incompleto mi serviva per
test.
Per maggiore sicurezza, però, anzichè usare il comportamento standard di
python con zipimport,(ovvero, che se non riesce a caricare il modulo o ad
ottenere un riferimento alla funzione/classe che gestisce l'import scrive
sullo stderr solo in caso di PYTHONVERBOSE) ho preferito far stampare
l'errore ed interrompere l'esecuzione dell'interprete (scelta non
necessariamente definitiva).
Ho notato comunque che zipimport viene registrato non in sys.meta_path ma in
sys.path_hooks.
Stando alla PEP302 mi pare di aver capito che la differenza è che
sys.meta_path viene controllato *prima* della creazione di sys.path.
E poi in meta_path si parla di importer mentre in path_hooks di oggetto
callable. :S
Per ora funziona tutto, cioè non ci sono errori a runtime anche se
giustamente, il modulo signedimporter non fà nulla e poi dovrò aggiungere un
controllo integrato per la validità dello stesso .py (magari poi lo rifarò
in C se conviene).
Unico problema trovato in fase di compilazione del sorgente è che il modulo
hashlib crea un errore cercando di importare _md5, anche se, onestamente,
non capisco perchè in fase di compilazione tenti di eseguire il modulo
signedimporter (che importa hashlib).
> Ti consiglio anche di chiedere sul newsgroup inglese.
>
>
Uhm, gli darò un'occhiata. Sicuro che non mi mangiano se parlo di modificare
la base di python? =E
> Ciao Manlio
>
Ciao ciao!
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20101116/819044ad/attachment.htm
Maggiori informazioni sulla lista
Python