IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

M2crypto ne charge pas le fichier .pem


Sujet :

Calcul scientifique Python

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 22
    Points
    22
    Par défaut M2crypto ne charge pas le fichier .pem
    Bonjour,


    voila jessaye de faire un programme de decryptage de fichie pubkey.pem.
    Dans ce fichier il y a :
    -----------------------Begin public key
    jhjhkjhkjhjhkjhkjhkjhjhjhjhjhjh (= la cle)
    -----------------------End public key

    Avec openssl on peut tirer N de ce fichier.
    Moi ce que jessaye de faire cest de le faire via un programme python.

    #appel des librairies qui vont bien
    import M2Crypto
    from M2Crypto import RSA,SSL

    #methode de chargement de pubkey.pem dans rsa pour decorticage de la valeur N
    rsa = M2Crypto.RSA.load_key('pubkey.pem')

    Jai aussi tente un
    pk = open( 'pubkey.pem', 'rb' ).read()
    rsa = M2Crypto.RSA.load_pub_key(pk)
    mais sans succes, erreur sur 'rb'

    Quelquun peut il maider?
    Ce serait vraiment cool!

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par grisby007 Voir le message
    Bonjour,


    voila jessaye de faire un programme de decryptage de fichie pubkey.pem.
    Dans ce fichier il y a :
    -----------------------Begin public key
    jhjhkjhkjhjhkjhkjhkjhjhjhjhjhjh (= la cle)
    -----------------------End public key

    Avec openssl on peut tirer N de ce fichier.
    Moi ce que jessaye de faire cest de le faire via un programme python.

    #appel des librairies qui vont bien
    import M2Crypto
    from M2Crypto import RSA,SSL

    #methode de chargement de pubkey.pem dans rsa pour decorticage de la valeur N
    rsa = M2Crypto.RSA.load_key('pubkey.pem')

    Jai aussi tente un
    pk = open( 'pubkey.pem', 'rb' ).read()
    rsa = M2Crypto.RSA.load_pub_key(pk)
    mais sans succes, erreur sur 'rb'

    Quelquun peut il maider?
    Ce serait vraiment cool!
    Ok jai change un truc: publicKey = M2Crypto.RSA.load_pub_key ('pubkey.pem')
    et maintenant il me fait une erreur sur autre chose, donc ca devrait etre bon.

    Ma nouvelle erreur:
    in factoriser
    while n%b!=0 :
    TypeError: not all arguments converted during string formatting

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Citation Envoyé par grisby007 Voir le message

    Ma nouvelle erreur:
    in factoriser
    while n%b!=0 :
    TypeError: not all arguments converted during string formatting
    Il serait bien de copier coller le traceback complet parce que cela n'a aucun sens ce que tu montres.

    En d'autres mots, l'erreur ne correspond pas au code.

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Il serait bien de copier coller le traceback complet parce que cela n'a aucun sens ce que tu montres.

    En d'autres mots, l'erreur ne correspond pas au code.

    Bonjour VinsS,


    oui tu as raison, je voulais juste dire que ca buggait plus sur ma commande.
    Ceci etant, aucun des exemples trouvés sur différents sites ne marche dans mon cas.
    Si je load mon fichier, je ne peux pas recuperer N et e à partir de la clé qui est dedans.

    Voici ce que j'obtiens pour les commandes de chargement suivantes:
    key = open('pubkey.pem', "r").read()
    priv_key = BIO.MemoryBuffer(key.encode('ascii'))
    key = RSA.load_key_bio(priv_key)
    decrypted = key.private_decrypt(b64decode(package), RSA.pkcs1_oaep_padding)

    >>>> Le traceback correspondant:
    Traceback (most recent call last):
    File "C:\Users\monpc\MASTER_Thesis\in progress\DecryptageRSA.py", line 123,
    in <module>
    string = RSA.load_key_bio(priv_key)
    File "C:\Python27\lib\site-packages\M2Crypto\RSA.py", line 372, in load_key_bi
    o
    rsa_error()
    File "C:\Python27\lib\site-packages\M2Crypto\RSA.py", line 302, in rsa_error
    raise RSAError, m2.err_reason_error_string(m2.err_get_error())
    M2Crypto.RSA.RSAError: no start line


    Remarque: ce sont des commandes vues sur de nombreux sites.


    Maintenant ma commande a moi (aussi vue sur un site):

    publicKey = M2Crypto.RSA.load_pub_key ('pubkey.pem')
    print "publicKey = :" + publicKey.encode('ascii')
    #le print ets la juste pour verifier ce qui a été loadé

    et son Traceback:

    Traceback (most recent call last):
    File "C:\Users\monpc\MASTER_Thesis\in progress\DecryptageRSA.py", line 116,
    in <module>
    print "publicKey = :" + publicKey.encode('ascii')
    File "C:\Python27\lib\site-packages\M2Crypto\RSA.py", line 43, in __getattr__
    raise AttributeError
    AttributeError

    >>>> donc a priori plus d'erreur sur publicKey = M2Crypto.RSA.load_pub_key ('pubkey.pem'), sauf qu'il ne charge pas.


    Pour info, voici la cle contenu dans pubkey.pem:
    -----BEGIN PUBLIC KEY-----
    MGQwDQYJKoZIhvcNAQEBBQADUwAwUAJJAMLLsk/b+SO2Emjj8Ro4lt5FdLO6WHMM
    vWUpOIZOIiPu63BKF8/QjRa0aJGmFHR1mTnG5Jqv5/JZVUjHTB1/uNJM0VyyO0zQ
    owIDAQAB
    -----END PUBLIC KEY-----

    Donc ce qu'on a n'est pas de l'héxa, cest probablement de l'utf que je voudrais convertir en ascii

    Merci en tous cas pour toute information utile pour me permettre d'avancer.
    On peut faire ca avec openssl mais jaimerais faire ca en python.
    Ou bien si cetait impossible, on peut lancer depuis python une commande?
    genre: openssl rsa -in pubkey.pem -pubin -text -modulus
    et on decortiquerai la reponse via python? Jai mis en gras les 2 infos qui sont importantes pour mon calcul.

    voici le type de reponse que renverrai openssl:
    Public-Key: (576 bit)
    Modulus:
    00:c2:cb:b2:4f:db:f9:23:b6:12:68:e31a:38:
    96:de:45:74:b3:ba:58:73:0c:bd:65:29:38:86:4e:
    22:23:ee:eb:70:4a:17:cf:d0:8d:16:b4:68:91:a6:
    14:74:75:99:39:c6:e4:9a:af:e7:f2:59:55:48:c7:
    4c:1d:7f:b8:d2:4c:d1:5c:b2:3b:4c:d0:a3
    Exponent: 65537 (0x10001)
    Modulus=C2CBB24FDBF923B61268E3F11A3896DE4574B3BA58730CBD652938864E2223EEEB704A17CFD08D16B46891A61474759939C6E49AAFE7F2595548C74C1D7FB8D24CD15CB23B4CD0A3
    writing RSA key
    -----BEGIN PUBLIC KEY-----
    MGQwDQYJKoZIhvcNAQEBBQADUwAwUAJJAMLLsk/b+SO2Emjj8Ro4lt5FdLO6WHMMvW
    UpOIZOIiPu63BKF8/QjRa0aJGmFHR1mTnG5Jqv5/JZVUjHTB1/uNJM0VyyO0zQowIDAQAB
    -----END PUBLIC KEY-----

Discussions similaires

  1. Ne charge pas le fichier
    Par chrislav dans le forum Apache
    Réponses: 1
    Dernier message: 26/02/2009, 11h29
  2. [MySQL] Require_once ne charge pas le fichier
    Par Jarodd dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 04/02/2009, 22h37
  3. Réponses: 9
    Dernier message: 11/05/2006, 23h04
  4. Internet Explorer ne charge pas le fichier JS
    Par mr32 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 05/02/2006, 12h46
  5. Réponses: 2
    Dernier message: 21/04/2005, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo