From 91e72bf2592a0c71cb4f9099df1c9a0420bc11cc Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Fri, 5 Oct 2007 15:17:50 +0000 Subject: Refile m2crypto driver svn path=/pow/POW-0.7/pkix-m2crypto-driver.py; revision=1097 --- pow/POW-0.7/pkix-m2crypto-driver.py | 42 ++++++++++++++++++++++++++++++++++++ scripts/rpki/pkix-m2crypto-driver.py | 42 ------------------------------------ 2 files changed, 42 insertions(+), 42 deletions(-) create mode 100644 pow/POW-0.7/pkix-m2crypto-driver.py delete mode 100644 scripts/rpki/pkix-m2crypto-driver.py diff --git a/pow/POW-0.7/pkix-m2crypto-driver.py b/pow/POW-0.7/pkix-m2crypto-driver.py new file mode 100644 index 00000000..61dabac7 --- /dev/null +++ b/pow/POW-0.7/pkix-m2crypto-driver.py @@ -0,0 +1,42 @@ +# $Id$ + +"""Crypto driver for POW.pkix using M2Crypto. + +This driver is part of an attempt to salvage the (really nice) +POW.pkix code from the POW package. I like POW well enough, but it's +old and missing some pieces and the Python world seems to have moved +to M2Crypto. But M2Crypto has nothing like POW.pkix, so I whacked +together an interface to let POW.pkix run over other crypto packages. + +This module is a driver for M2Crypto. +""" + +# NB: Module names may change eventually + +import POW.pkix + +class M2CryptoCryptoDriver(POW.pkix.CryptoDriver): + """Dispatcher for crypto calls using M2Crypto package.""" + + def __init__(self): + import M2Crypto + self.driver2OID = { + "md5" : (1, 2, 840, 113549, 1, 1, 4), # md5WithRSAEncryption + "sha1" : (1, 2, 840, 113549, 1, 1, 5), # sha1withRSAEncryption + "ripemd160" : (1, 2, 840, 113549, 1, 1, 6), # ripemd160WithRSAEncryption + "sha256" : (1, 2, 840, 113549, 1, 1, 11), # sha256WithRSAEncryption + } + self.OID2driver = dict((v,k) for k,v in self.driver2OID.iteritems()) + + def sign(self, key, oid, plaintext): + digest = M2Crypto.EVP.MessageDigest(self.OID2driver[oid]) + digest.update(plaintext) + return key.sign(digest.final(), self.OID2driver[oid]) + + def verify(self, key, oid, plaintext, signature): + return key.verify(plaintext, signature, self.OID2driver[oid]) + + def keyDER(self, key): + bio = M2Crypto.BIO.MemoryBuffer() + key.save_key_der_bio(bio) + return bio.read() diff --git a/scripts/rpki/pkix-m2crypto-driver.py b/scripts/rpki/pkix-m2crypto-driver.py deleted file mode 100644 index 61dabac7..00000000 --- a/scripts/rpki/pkix-m2crypto-driver.py +++ /dev/null @@ -1,42 +0,0 @@ -# $Id$ - -"""Crypto driver for POW.pkix using M2Crypto. - -This driver is part of an attempt to salvage the (really nice) -POW.pkix code from the POW package. I like POW well enough, but it's -old and missing some pieces and the Python world seems to have moved -to M2Crypto. But M2Crypto has nothing like POW.pkix, so I whacked -together an interface to let POW.pkix run over other crypto packages. - -This module is a driver for M2Crypto. -""" - -# NB: Module names may change eventually - -import POW.pkix - -class M2CryptoCryptoDriver(POW.pkix.CryptoDriver): - """Dispatcher for crypto calls using M2Crypto package.""" - - def __init__(self): - import M2Crypto - self.driver2OID = { - "md5" : (1, 2, 840, 113549, 1, 1, 4), # md5WithRSAEncryption - "sha1" : (1, 2, 840, 113549, 1, 1, 5), # sha1withRSAEncryption - "ripemd160" : (1, 2, 840, 113549, 1, 1, 6), # ripemd160WithRSAEncryption - "sha256" : (1, 2, 840, 113549, 1, 1, 11), # sha256WithRSAEncryption - } - self.OID2driver = dict((v,k) for k,v in self.driver2OID.iteritems()) - - def sign(self, key, oid, plaintext): - digest = M2Crypto.EVP.MessageDigest(self.OID2driver[oid]) - digest.update(plaintext) - return key.sign(digest.final(), self.OID2driver[oid]) - - def verify(self, key, oid, plaintext, signature): - return key.verify(plaintext, signature, self.OID2driver[oid]) - - def keyDER(self, key): - bio = M2Crypto.BIO.MemoryBuffer() - key.save_key_der_bio(bio) - return bio.read() -- cgit v1.2.3