2009-08-27 2 views
2

Я получил следующий Java код, который я пытаюсь преобразовать в Python, и я не совсем уверен, как это сделать:java to python conversion: x509/dsa/sha1withdsa crypto howto?

import java.security.spec.X509EncodedKeySpec; 
import java.security.KeyFactory; 
import java.security.PublicKey; 
import java.security.Signature; 

byte[] key = KeyReader.read(filestream) 
    //KeyReader.read(inputstream) just reads in the bytes 1 at a time from the filestream 
X509EncodedKeySpec pubKey = new X509EncodedKeySpec(key); 
KeyFactory keyFactory = KeyFactory.getInstance("DSA"); 

PublicKey pub = keyFactory.generatePublic(pubKey); 

Signature signature = Signature.getInstance("SHA1withDSA"); 
signature.initVerify(pub) 
signature.update(a_byte_string) //doesn't matter 

Я своего рода потерянное о том, как это сделать в python. В частности, часть SHA1withDSA. Я просто не знаю достаточно о python crypto libs (точнее, m2crypto) для сопоставления функций (и я не мог найти достойные записи о том, как это сделать).

ответ

1

Я не совсем понимаю код Java, но это то, что вы пытаетесь сделать?

from M2Crypto import X509 

x509 = X509.load_cert(filename) 
assert x509.verify() == 1