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