S-Expression help
Warren, Tony
tonyw@prairiesys.com
Mon, 2 Jun 2003 11:54:26 -0500
Well, I never got the gcry_sexp_new to work for me, but here is the bit
of code I'm using to generate my key-pair...
(It's in C, but you shouldn't have any trouble translating to C++)
int makeKeyPair (GcrySexp *pKey, GcrySexp *sKey) {
char secKey[] = "private-key";
char pubkey[] = "public-key";
GcrySexp PARMS, Key;
int rcode, nbits = 1024;
size_t keySize;
gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0);
/* Build parameter Sexp 'PARMS' to describe the type of public key
desired (RSA) */
rcode = gcry_sexp_build (&PARMS, NULL, "(genkey(rsa(nbits %d)))",
nbits);
printf ("return code for sexp_new(PARMS) is [%d]\n\n", rcode);
/* Build a public key pair as defined in PARMS */
rcode = gcry_pk_genkey (&Key, PARMS);
printf ("return code for genkey is [%d]\n\n", rcode);
if (rcode) { // failure
printf ("genkey failed - exiting...\n\n");
}
/* return the portion of the key pair that is only the public key */
*pKey = gcry_sexp_find_token (Key, pubkey, strlen (pubkey));
:
:
:
<--snip-->
I'm still having trouble with the basic encrypt/decryption sequence of a
simple (short) string, so if you get a working sequence going from
buffer to encrypted file & back to buffer, I'd love to discuss it with
you! Good luck!
--
Tony Warren
<}-:
-----Original Message-----
From: Garrett Kajmowicz [mailto:gkajmowi@tbaytel.net]
Sent: Monday, June 02, 2003 11:23 AM
To: gcrypt-devel@gnupg.org
Subject: S-Expression help
I'm currently attempting to write a crypto application use gcrypt. At
the
moment I am working on attempting to generate an ElGamel key of size
2048
bits.
For some reason I am *always* getting error 45 (GCRYERR_INV_ARG). I
have
never worked with s-expressions before, and the 'manual' is less than
helpful.
Code I am using:
GcrySexp *keyExp=NULL;
GcrySexp *keyParms=NULL;
int retVal;
std::string tempString;
std::cout << "Initializing data structures\n";
tempString = "(genkey(elg(nbits 2048)))";
retVal=gcry_sexp_new (keyParms, tempString.c_str(),
tempString.length(), 1);
std::cout <<"Return Value: " << retVal << std::endl;
Please reply by e-mail - I have yet to figure out how to subscribe to
this
mailing list.
Thank you for your assistance.
Garrett Kajmowicz
gkajmowi@tbaytel.net
_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gcrypt-devel