Yes, I understand how to do that. If you read my question carefully,
you will realize I am trying to get it in STRING format! Something
that could be added to another application like GnuPG. I have a
PgpPublicKey object -> STRING format. I'm not sure why there are no
examples in string format because without that, it really can not be
used in another application.

On 9/23/14, Anthony Bathgate <anthony.m.bathg...@rrd.com> wrote:
> Getting from the gpg keyring is easy.
>
>         private PgpPublicKey GetPublicKey(String userId)
>         {
>             if (userId == null)
>                 throw new PgpException("No recipient was specified");
>
>                 PgpPublicKeyRingBundle publicKeyRingBundle = new
> PgpPublicKeyRingBundle(new
> MemoryStream(File.ReadAllBytes(PublicKeyRingPath)));
>                 foreach (PgpPublicKeyRing keyRing in
> publicKeyRingBundle.GetKeyRings(userId))
>                 {
>                     foreach (PgpPublicKey key in keyRing.GetPublicKeys())
>                     {
>                         if (key.IsEncryptionKey)
>                             return key;
>                     }
>                 }
>                     return null;
>         }
>
> Similar for a private key (but you need the password):
> private PgpPrivateKey GetPrivateKey(String userId, char[] passphrase)
>         {
>             if (userId == null)
>                 throw new PgpException("No User ID was specified");
>
>
>                 PgpSecretKeyRingBundle privateKeyRingBundle =
>                     new
> PgpSecretKeyRingBundle(PgpUtilities.GetDecoderStream(new
> MemoryStream(File.ReadAllBytes(PrivateKeyRingPath))));
>
>                 PgpPrivateKey privateKey = null;
>
>                 foreach (PgpSecretKeyRing keyRing in
> privateKeyRingBundle.GetKeyRings(userId))
>                 {
>                     foreach (PgpSecretKey key in keyRing.GetSecretKeys())
>                     {
>                         privateKey = key.ExtractPrivateKey(passphrase);
>
>                         if (privateKey != null)
>                             return privateKey;
>                     }
>                 }
>                     return null;
>         }
>
> Have not yet worked out the 'adding' part, mostly for lack of time. At
> present, I just dump the key to a file and farm out to the gpg command
> line. The magic is probably somewhere in/around the KeyRingBundle classes,
> however.
>
>
> On Fri, Sep 19, 2014 at 9:59 AM, Paul Meyer <pdmeye...@gmail.com> wrote:
>
>> Hello,
>>
>> I'm relatively new to bouncy castle, so there may be something obvious
>> I'm missing. For my project I need to be able to get and add PGP
>> public keys to/from my RSA keyring file (generated by GnuPG) in string
>> format using ID as the reference.
>>
>> For the first step (getting a key), I've posted the code that I tried
>> here:
>>
>> http://stackoverflow.com/questions/25468450/bouncycastle-c-sharp-publickey-different-than-gnupg
>>
>> Can you help me with that?
>>
>> Thank you,
>> Paul
>>
>>
>
>
> --
> _________________________________________________________
> *Tony Bathgate | Developer 3, Digital Programming Group (formerly DSA) | RR
> Donnelley*
> 1905 Horseshoe Rd, Lancaster, PA 17602
> Office: *717.676.5501*
> *anthony.m.bathg...@rrd.com <anthony.m.bathg...@rrd.com>*
> http://www.rrdonnelley.com
>

Reply via email to