Hlavní navigace

Knihovna M2Crypto (1)

Jakub Matys 4. 4. 2005

Dnešním dnem počínaje začíná na Root.cz vycházet nový seriál, který by měl lehce navazovat na Python Cryptography Toolkit. M2Crypto je toolkitem OpenSSL a obsahuje také další šifrovací technologie. V tomto dílu si knihovnu nainstalujeme.

Knihovna M2Crypto je navržena jako toolkit OpenSSL knihovny pro Python. Propojení jazyka a SSL je provedeno pomocí nástroje SWIG. SWIG vlastně zpřístupňuje OpenSSL C API jazyku Python, druhá část knihovny poskytuje objektově orientované rozhraní pro toto API.

Knihovna podporuje šifry RSA, DSA, DH, HMACs a symetrické šifry založené na AES. Pro šifrovanou komunikaci typu klient-server je implementováno klasické rozhraní SSL. Klasické síťové moduly httplib, urllib a xmlrpclib je možné rozšířit pomocí httpslib. Je možné rovněž použít FTP/TLS klient a server. Posledním kouskem do skládačky jsou rozšíření aplikačního serveru Zope – ZServerSSL a ZSmime.

Struktura knihovny by se dala přehledně zapsat takto:

  • ASN1: wrapper pro OpenSSL ASN1 API
  • AuthCookie: bezpečné autentizační cookie
  • BIO: M2Crypto wrapper pro OpenSSL BIO API
  • callback
  • DH: wrapper pro OpenSSL DH API
  • DSA: wrapper pro OpenSSL DSA API
  • Err: wrapper pro OpenSSL Error API
  • EVP: wrapper pro OpenSSL EVP API
  • ftpslib: M2Crypto klient FTP/TLS
  • httpslib: podpora pro httplib (Python verze 1.5.2 a 2.x)
  • m2: funkce low level OpenSSL wrapperu
  • m2urllib: M2Crypto rozšíření pro urllib pro manipulaci s url adresami ‚https‘
  • m2×mlrpclib: M2Crypto rozšíření pro xmlrpclib
  • PGP: M2Crypto PGP2

    • constants
    • packet
    • PublicKey
    • PublicKeyRing
    • RSA: M2Crypto PGP2 RSA
  • Rand: wrapper pro OpenSSL PRNG
  • RC4: wrapper pro OpenSSL RC4 API
  • RSA: wrapper pro OpenSSL RSA API
  • SMIME: wrapper pro OpenSSL S/MIME API
  • SSL: M2Crypto SSL

    • cb
    • Cipher
    • Connection: M2Crypto.SSL.Con­nection
    • Context: M2Crypto.SSL.Con­text
    • Error: M2Crypto.SSL.Error
    • Session
    • ssl_dispatcher
    • SSLServer
    • timeout
  • threading: M2Crypto vlákna
  • util
  • X509: M2Crypto wrapper pro OpenSSL X509 API

Knihovna požaduje Python verze 2.x, OpenSSL 0.9.7 a SWIG 1.3.2×.

Instalace na unixovém stroji

$ unzip m2crypto-0.13.zip
$ cd m2crypto-0.13
$ python setup.py build
# python setup.py install
$ cd tests
$ python alltests.py

Instalace na Windows

Podle použitých překladačů se může instalace ubírat dvěma směry. Liší se v knihovnách OpenSSL a v příkazech při překladu.

1. MinGW gcc

Knihovny použité při tomto řešení jsou libeay32.a alibssl32.a a mohou se nalézat kdekoliv ve vaší proměnné PATH. Ke správnému překladu také potřebujete knihovnu libpython2[123].a vytvořenou z vaší verze Pythonu (viz sebsauvage.net/pyt­hon/mingw.html).

Překlad M2Crypto spustíte příkazem:

python setup.py build -cmingw32

a instalaci:

python setup.py install
cd tests
python alltests.py
2. MSVC++ nebo BC++

Pro MSVC++ používejte knihovny libeay32.lib a ssleay32.lib. Pro BC++ se používají knihovny vytvořené pomocí MSVC++, které jsou zkonvertovány programem coff2omf.exe. Můžete je nazvat např. libeay32_bc.lib assleay32_bc.lib.

Budete také potřebovat výše zmíněnou knihovnu pro importování Pythonu, kterou musíte stejným programem zkonvertovat.

Překlad pomocí prvního, resp. druhého překladače spustíte příkazy:

python setup.py build
python setup.py build -cbcpp

Instalovat můžete stejně jako výše:

python setup.py install
cd tests
python alltests.py

Instalace na Mac OS X

Soubor Makefile.osx předpokládá, že potřebné SSL knihovny(libssl.a a libcrypto.a) jsou nainstalovány v adresáři /usr/local/lib. Můžeme tedy nainstalovat OpenSSL do tohoto adresáře (i z důvodu případné kolize programů závisejících na již nainstalovaném OpenSSL, např. Apache):

./config --prefix=/usr/local --openssldir=/usr/local/openssl
make
...

Instalaci M2Crypto začneme v adresáři swig, kde zadáme příkaz:

make -f Makefile.osx

Tím jsme vytvořili rozhraní mezi M2Crypto a OpenSSL. Nyní můžeme překopírovat adresář M2Crypto do site-packages vaší verze Pythonu. Pro testování funkčnosti můžeme v adresáři tests spustit příkaz python alltests.py.

Našli jste v článku chybu?

5. 4. 2005 7:10

Lacik (neregistrovaný)
Tak nevim, sleduji roota uz par let, ale posledni dobou to tu nejak upada. Nastesti je spousta super clanku starsiho data.

4. 4. 2005 6:17

jrave (neregistrovaný)
oooh yes....
dalsi opsane readme ...
a co dalsi dil, bude to opsani nektereho ze standardne dodavanych prikladu ???

Root.cz: Telegram spustil anonymní blog Telegraph

Telegram spustil anonymní blog Telegraph

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Měšec.cz: Golfové pojištění: kde si jej můžete sjednat?

Golfové pojištění: kde si jej můžete sjednat?

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

DigiZone.cz: Sat novinky: Fransat UHD Demo

Sat novinky: Fransat UHD Demo

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka