Hi Zaid,

your last mail I received six times -- three times through the mailing list and three times directly.

Is the size of the executable really that important? My BouncyCastle DLL has a size of 1.5 MB -- that will be no problem for most modern Windows Phones, I guess. And if you are developing for a desktop client, 1.5 MB IMHO really don't matter. Maybe there are tools to strip of unused code in a DLL, but I do not know of any. Doing it manually might be a lot of effort.

I think that System.Security.Cryptography is good alternative in your case. Maybe you should take a look at System.Security.Cryptography.Pkcs, so you don't have to use the low level methods. This mailing list probably is not the right place to discuss the .NET native cryptography methods, though ;-).


Best,

Christoph


On 19.09.2012 12:32, Muhammad Zaid Amir wrote:
Hi Christoph,

1st off thank you very much for taking the time to reply back to my very dimwitted questions. So I've done some reading and I have a better idea of PGP and encryption.

So just to reiterate them, PGP is more like a combination of more basic encryption methods pieced together methodically. Bouncy's API provides implementations for this various basic encryption methods like RSA.. and Bouncy's implementation of PGP is probably based of other basic classes as well.

That said some interesting questions came to mind.. A big reason I plan to use bouncy's api or the c# version at least, is cause I'm developing this API for the Unity3d game engine which uses c# as one of its scripting languages. Anyways how much of the original API can I safely trim down/omit so that I can get a dll streamlined for PGP only. And another random idea that came to mind was .net's System.Security.Cryptography also supports some basic encryption methods is it possible to string these together to get something similar to PGP..

Thanks again,
Zaid

On Sep 19, 2012, at 4:12 PM, Christoph Hannebauer wrote:

Hi Zaid,

you should probably start reading about encryption in general. From your description, I am uncertain whether you know the difference between Symmetric and Asymmetric Cryptography. The Wikipedia is a good start: <http://en.wikipedia.org/wiki/Cryptography#Modern_cryptography>. You do not have to know the math behind cryptography if you just want to use cryptography, but you should know the use cases of the different technologies.

Once you have got an overview, you should find out, how PGP implements Cryptography. I believe you should not start programming right away, instead you should play around with GPG or the like. Encrypt and decrypt some files, change the password on your PGP key, export keys and import them on another machine or into another keyring. You can find details about the PGP protocol in RFC 4880.

After you know how to use GPG, it will be less difficult to understand the Bouncy Castle Crypto API :-).

There is another popular cryptography protocol, defined by standards X.509, PKIX, S/MIME and PKCS. Maybe these are an alternative to PGP. Bouncy Castle supports both, but I think X.509 has better support in general. Java and C# offer native methods to process those and most operating systems have some kind of support for X.509. X.509 is also used for TLS (e.g. HTTPS). PGP is probably sufficient to achive your goal, though, so this is for bonus ;-).


Good luck and best wishes,

Christoph

On 19.09.2012 02:30, Muhd Zaid wrote:
Hi,

I'm relatively new to encryption and quite frankly I'm lost. Let me try to explain my use case properly..

I need an API that can run both on the client side and the server side. It needs to be able to send 128 bit PGP encrypted xml files to and from the game client and the game server. I've considered looking at the c# implementation of bouncy castle's API since it could easily allow me to make an api that could run as a plugin in-game as well as a standalone program server side. However its sheer size and the lack of good documentation have put me at a loss.

I’ve been following examples from this site http://ledwith.org/2009/08/pgp-decryption-with-c/ but I keep getting the exception “can’t find signing key in key ring”. I’m generating my keys with gpgtools a gnuPG implementation for mac. Quite frankly I don’t know where to start to isolate the problem. As this is my 1st task as a junior programmer at my company, ideally I would like to be able to roll out my own solution for this API but bouncy’s API is so huge and add to the fact I have no encryption experience or background I’m at a loss. I’d be nice if anyone could also highlight the classes that I need to zoom in for use... A little background about myself, I’m CS bachelor but I majored in game development so I know how to code, I’m just lost with how to approach this problem and use bouncy’s API for PGP.

Thanks in advance,
Zaid




Reply via email to