2011-10-15 17 views
6

Ho esaminato il pacchetto openpgp di Go per il pacchetto di Go e ritengo di dover perdere alcuni punti ovvi. Ad esempio, c'è una funzione ReadKeyRing, ma non WriteKeyRing. Posso, d'altra parte, Serialize un Entity, ma non ho modo di leggerlo indietro. Cosa sta succedendo qui? Qualcuno effettivamente usa questo pacchetto?Come utilizzo il pacchetto openpgp di Go?

+0

Camlistore (camlistore.org) è l'utente principale (e la motivazione) per quel pacchetto. –

risposta

2

Un'entità rappresenta le informazioni sulla chiave GPG pubblica + privata. La funzione ReadKeyRing consente di leggere un elenco di chiavi GPG.

I Entity.Serialize function documentation stati:

Serialize scrive la parte pubblica della data entità a w. (Nessun materiale chiave privata verrà emesso).

Poiché è solo la parte pubblica dell'entità, è possibile creare una nuova entità con i dati serializzati come chiave pubblica.

A WriteKeyRing non esiste. Passerebbe attraverso l'elenco delle entità ed estrarrà le chiavi pubbliche in un array.

+1

Tutto ciò che hai detto è nella documentazione, ma ancora non capisco come usare il pacchetto. Ad esempio, diciamo che voglio un programma che, una volta passato un flag, creerà una coppia di chiavi e la scriverà su un file; quando viene passata una bandiera diversa, dovrebbe leggere quella coppia di chiavi e usarla per firmare qualcosa. Come posso farlo con solo 'ReadKeyRing' e' Serialize (Private) '? –

+0

Non è possibile creare coppie di chiavi con il pacchetto GG GPG così com'è. Puoi utilizzare solo le chiavi già esistenti. – Kissaki

+2

Sei sicuro? Che dire di http://golang.org/pkg/crypto/openpgp/#Entity.NewEntity? –

0

Sono stato anche struggeling un bel po 'con questo - alla fine ho appena appreso che il buon esempio:

Il pensare a questo non è fatto per un utente, ma sembra venire fortemente dal modo in cui pgp viene implementato tecnicamente.

Vorrei suggerire di generare le chiavi non tramite il pacchetto ma solo con uno strumento da riga di comando pgp.