Hello All First, I am new to this great forum.
I have a challenge on my hand as follows. I am a long time libpq user but have never used the BYTEA data type nor its related functions until now. I have am writing an interface for a web based application written in C using libmcrypt and, of course, libpq. My problem seems to be proper preparation of encrypted data for insert into a BYTEA column. For insertion, I properly process a file (byte-by-byte) through mcrypt, then I use PQescapeByteaConn as (snippet) follows: *while(readInputFile(file,buffer,sizeof(buffer),&bytes) == Success) { mcrypt_generic(mfd,buffer,sizeof(buffer)); // buffer size == 1 byte dbuffer[i++] = *buffer; dbuffer[i] = '\0'; // Time spent on string sanity } close(inputFile); sb = PQescapeByteaConn(dbconn,dbuffer,(size_t)strlen(dbuffer),&rl); sprintf(query,"INSERT INTO crypto(uid,tdkey,ivkey,cdata,cfile)" //cdata is a bytea column "VALUES('%s','%s','%s','%s','%s')", ebs->uid,ebs->crkey,ebs->crivs,sb,credf); ebs->r=db_func_query(ebs->r,query,0,proc); * What I insert into the bytea column is \x748a590ffdb8dc748dd3fba... Now sb returns these same bits consistently each time I run the same file through mcrypt, using the same key/salt combo which I expect. However, I cannot verify whether the the data inserted is what it should be since I cannot decrypt. I've tried using PQunescapeBytea(data,&size) for the decrypt preparation expecting pretty much the reverse of PQescapeByteaConn but end up with garbage. If anyone can lend me a good suggestion or example of properly preparing binary data strings for pg insertion, i will be very much grateful. -- View this message in context: http://postgresql.1045698.n5.nabble.com/LIBPQ-Implementation-Requiring-BYTEA-Data-tp5747243.html Sent from the PostgreSQL - hackers mailing list archive at Nabble.com. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers