Domanda

Google Ok in primo luogo fuori sì, ho cercato e StackOverflow e fatto qualche lettura (oltre 4 ore solo in questa seduta) non ho trovato quello che mi serve per questi motivi:

  • Molti di loro suggeriscono solo lanciare un exe come gpg.exe (http://stackoverflow.com/questions/1020320)

  • Alcuni suggerito di usare pycrypto o di altre biblioteche e guardando loro, sia a) non riesco a trovare il modo di utilizzare uno dei loro API, b) non riesco a trovare come importare un PRV preesistente / chiave pub o c) usano l'insicuri RandomPool (e me cercando di aggiornamento è solo in cerca di guai)

  • Alcuni menzione di sfuggita, ma non riuscivo a trovare quello che in cui link a (o la loro era alcun collegamento a tutti.

Quindi so chiederà agli utenti StackOverflow compagni come posso fare questo, prendere una serie di una chiave pubblica (o percorso (ho potuto solo scrivere in un file temporaneo, (ho intenzione di avere solo come una stringa pub_key = "..."))) e usarlo per firmare e garantire una stringa (che saranno pubblicati su un forum (JSON per l'aggiornamento la mia domanda)?

anche questi sono chiavi RSA (mastice Gen 4096 bit SSH-2-RSA) generati utilizzando puttygen (possono essere in qualsiasi formato (OpenSSH, ssh.com, ppk)

Questo è ciò che l'aspetto chiave pubblica come

---- BEGIN SSH2 PUBBLICA CHIAVE ----

Commento: "rsa-key-20101003"

AAAAB3NzaC1yc2EAAAABJQAAAgEAi + 91fFsxZ7k1UuudSe5gZoavwARUyZScCtdf WQ0ROoJC + XIqW5vVJfgmr + A1jLS5m4wNsrCqeyoX2B22T6iEwqVXrXt3QcbccKMu WkLKFK1h67q6Coc + 3eOTmKrOuZbWc19YQgybdkR / GxF7XAbq4NCGNaCDtMOqX8Q2 L / a9fAYqVdTwg9trpcz3whNmdLk / B0edOABKuVX51UdLV + ZggK503 + uAb1JiIIj0 mARwR / HNo4oRLMLf2PjuZsGVYYjJDdVJBU6AN4PUQSRRRPL4 + YmsrLJb / TpfJeXA vj4KZMNJv15YXz7 / iMZMKznDtr2RJX5wbSpuTUBNZveA7YiIHxvvvis38b / lX9SJ SYPfZ9CeQY6MvQgG2zwDTOOvKgOIB4sTGMXfcoxB8AF / QXOcxWFJkZoj36rvMd9n Po6szLjHXwcEUOUvvQfG4VvdQA0H5gGLHqYL1EehRsgi5qcCoFPaZW2K09ErKcS0 MbrLFjBkQ9KmqAM38bvM8UhCWAMA9VXOGHMxUHBV4Bir9alGS4VX0B8Y0b3dZ + 7I MKkHMCwdEUJf7QVdGxGuSQtVsq8RZbIpk3g7wtv8f6I / iEC58ekdrH35tq5 + 1ilW dkk9 + rrhUy4qrZ + HFi7AeemybpiumbSnebvnkMaIPAOo23V8C9BQ0iuxx4gIZf10 o + TPSK8 =

---- END SSH2 PUBBLICA CHIAVE ----

Non è questo -> Key Format sembra essere PKCS1 così M2Crypto non funziona (la sua funzione chiave di carico si aspetta PEM)

Ultimi lettura penso che sia SSH Public Key File Format (RFC: http: // www. ietf.org/rfc/rfc4716.txt )

penso anche sotto sbagliato, io non credo che gestisce SSH Public Key Formato file: (

Sembra anche ritorto potrebbe essere dove devo cercare

http://www.java2s.com/Open-Source/Python/Network/Twisted/Twisted-1.0.3/Twisted-1.0.3/twisted/conch/ssh/keys.py. htm

Anche perché fa così mi permette di postare una taglia subito ??

È stato utile?

Soluzione

Ok ho trovato come caricarlo

from twisted.conch.ssh import keys as Keys
import base64

public_key = """\
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20101003"
AAAAB3NzaC1yc2EAAAABJQAAAgEAi+91fFsxZ7k1UuudSe5gZoavwARUyZScCtdf
WQ0ROoJC+XIqW5vVJfgmr+A1jLS5m4wNsrCqeyoX2B22T6iEwqVXrXt3QcbccKMu
WkLKFK1h67q6Coc+3eOTmKrOuZbWc19YQgybdkR/GxF7XAbq4NCGNaCDtMOqX8Q2
L/a9fAYqVdTwg9trpcz3whNmdLk/B0edOABKuVX51UdLV+ZggK503+uAb1JiIIj0
mARwR/HNo4oRLMLf2PjuZsGVYYjJDdVJBU6AN4PUQSRRRPL4+YmsrLJb/TpfJeXA
vj4KZMNJv15YXz7/iMZMKznDtr2RJX5wbSpuTUBNZveA7YiIHxvvvis38b/lX9SJ
SYPfZ9CeQY6MvQgG2zwDTOOvKgOIB4sTGMXfcoxB8AF/QXOcxWFJkZoj36rvMd9n
Po6szLjHXwcEUOUvvQfG4VvdQA0H5gGLHqYL1EehRsgi5qcCoFPaZW2K09ErKcS0
MbrLFjBkQ9KmqAM38bvM8UhCWAMA9VXOGHMxUHBV4Bir9alGS4VX0B8Y0b3dZ+7I
MKkHMCwdEUJf7QVdGxGuSQtVsq8RZbIpk3g7wtv8f6I/iEC58ekdrH35tq5+1ilW
dkk9+rrhUy4qrZ+HFi7AeemybpiumbSnebvnkMaIPAOo23V8C9BQ0iuxx4gIZf10
o+TPSK8=
---- END SSH2 PUBLIC KEY ----"""

key_data = ''.join(public_key.splitlines()[2:-1])# remove begin, end tags and comment
blob = base64.decodestring(key_data)
key = Keys.Key._fromString_BLOB(blob)

Altri suggerimenti

mi viene in mente almeno due opzioni relativamente semplici

  1. Usa OpenSSL (o pyOpenSSL) per convertire il BER al PEM
  2. Usa paramiko, contorto o qualsiasi altra applicazione python SSH al lavoro con i tasti direttamente
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top