2009-08-27 8 views
2

Ich habe den folgenden Java-Code, die ich zu Python konvertieren bin versucht, und ich bin nicht wirklich sicher, wie dies zu tun:Java-Python-Konvertierung: x509/dsa/sha1withdsa Krypto-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 

Ich bin irgendwie verloren, wie dies zu tun in Python. Genauer gesagt, der SHA1withDSA Teil. Ich weiß einfach nicht genug über die Python-Crypto-Bibliotheken (m2crypto, um genau zu sein), um die Funktionen zuzuordnen (noch konnte ich anständige Beschreibungen finden, wie das geht).

Antwort

1

Ich verstehe nicht genau den Java-Code, aber ist das, was Sie versuchen zu tun?

from M2Crypto import X509 

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