Thread: store data files encryptypted in database.
hi, i'm trying to store data files encryptypted in postgres 8.1 database but i can`t make it works.
this is what i'm doing.
$link = pg_connect("host=$dbhost user=$dbuser password=$dbpwd dbname=$dbname") or die(pg_last_error($link));
$fp = fopen($tmp_name, "rb");
$file= fread($fp, filesize($tmp_name));
fclose($fp);
fclose($fp);
$file=pg_escape_bytea($file);
$sql = "INSERT INTO SOME_TABLE (bytea_file) VALUES (pgp_sym_decrypt_bytea($file,somepass,cipher-algo=aes256))";
pg_query($link, $sql) or die(pg_last_error($link));
this error appear...
ERROR: column "content_of_bytea_file" does not exist ( "content_of_bytea_file" is $file)
it seems that whant to the $file be a column ... but thats not what the documentation says...
F.20.3.2. pgp_sym_decrypt()
pgp_sym_decrypt(msg bytea, psw text [, options text ]) returns text pgp_sym_decrypt_bytea(msg bytea, psw text [, options text ]) returns bytea
Decrypt a symmetric-key-encrypted PGP message.
Decrypting bytea data with pgp_sym_decrypt
is disallowed. This is to avoid outputting invalid character data. Decrypting originally textual data with pgp_sym_decrypt_bytea
is fine.
The options parameter can contain option settings, as described below.
F.20.3.7. Options for PGP functions
Options are named to be similar to GnuPG. An option's value should be given after an equal sign; separate options from each other with commas. For example:
pgp_sym_encrypt(data, psw, 'compress-algo=1, cipher-algo=aes256')
All of the options except convert-crlf apply only to encrypt functions. Decrypt functions get the parameters from the PGP data.
The most interesting options are probably compress-algo and unicode-mode. The rest should have reasonable defaults.
thanks
On 10/10/2008 16:32, elmarkivp wrote: > $sql = "INSERT INTO SOME_TABLE (bytea_file) VALUES > (pgp_sym_decrypt_bytea($file,somepass,cipher-algo=aes256))"; > pg_query($link, $sql) or die(pg_last_error($link)); > > this error appear... > > ERROR: column "content_of_bytea_file" does not exist ( > "content_of_bytea_file" is $file) At a guess, you need to quote the contents of $file in order to get PG to treat it as a string. If you don't, PG sees it as a column name, hence the error you're seeing. Ray. ------------------------------------------------------------------ Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland rod@iol.ie Galway Cathedral Recitals: http://www.galwaycathedral.org/recitals ------------------------------------------------------------------
i have quoted $file and now thi is what happend... $sql = "INSERT INTO SOME_TABLE (bytea_file) VALUES (pgp_sym_decrypt_bytea('$file','somepass','cipher-algo=aes256'))"; ERROR: function pgp_sym_encrypt_bytea("unknown", "unknown", "unknown") does not exist HINT: No function matches the given name and argument types. You may need to add explicit type casts so... with $sql = "INSERT INTO SOME_TABLE (bytea_file) VALUES (pgp_sym_decrypt_bytea('$file'::bytea,'somepass'::text,'cipher-algo=aes256'::text))"; ERROR: function pgp_sym_encrypt_bytea(bytea, text, text) does not exist HINT: No function matches the given name and argument types. You may need to add explicit type casts. any idea? ----- Original Message ----- From: "Raymond O'Donnell" <rod@iol.ie> To: "elmarkivp" <elmarkivo@hotmail.com> Cc: <pgsql-php@postgresql.org> Sent: Friday, October 10, 2008 12:39 PM Subject: Re: [PHP] store data files encryptypted in database. > On 10/10/2008 16:32, elmarkivp wrote: >> $sql = "INSERT INTO SOME_TABLE (bytea_file) VALUES >> (pgp_sym_decrypt_bytea($file,somepass,cipher-algo=aes256))"; >> pg_query($link, $sql) or die(pg_last_error($link)); >> >> this error appear... >> >> ERROR: column "content_of_bytea_file" does not exist ( >> "content_of_bytea_file" is $file) > > At a guess, you need to quote the contents of $file in order to get PG > to treat it as a string. If you don't, PG sees it as a column name, > hence the error you're seeing. > > Ray. > > ------------------------------------------------------------------ > Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland > rod@iol.ie > Galway Cathedral Recitals: http://www.galwaycathedral.org/recitals > ------------------------------------------------------------------ > > -- > Sent via pgsql-php mailing list (pgsql-php@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-php >
elmarkivp wrote: > > i'm trying to store data files encryptypted in postgres 8.1 database > > F.20.3.2. |pgp_sym_decrypt()| > > pgp_sym_decrypt(msg bytea, psw text [, options text ]) returns text > pgp_sym_decrypt_bytea(msg bytea, psw text [, options text ]) returns bytea You quote the 8.3 docs; yet you are running 8.1 These functions are not in 8.1
Hello X, Am 2008-10-10 12:32:28, schrieb elmarkivp: > hi, i'm trying to store data files encryptypted in postgres 8.1 database but i can`t make it works. > this is what i'm doing. > > $link = pg_connect("host=$dbhost user=$dbuser password=$dbpwd dbname=$dbname") or die(pg_last_error($link)); > $fp = fopen($tmp_name, "rb"); > $file= fread($fp, filesize($tmp_name)); > fclose($fp); > $file=pg_escape_bytea($file); > $sql = "INSERT INTO SOME_TABLE (bytea_file) VALUES (pgp_sym_decrypt_bytea($file,somepass,cipher-algo=aes256))"; ^^^^^^^^^^^^ > ERROR: column "content_of_bytea_file" does not exist ( "content_of_bytea_file" is $file) ^^^^^^^^^^^^^^^^^^^^^^^ There are two different columns. I think, you should RECHECK your PHP script. Greetings Michelle Konzack Systemadministrator 24V Electronic Engineer Tamay Dogan Network Debian GNU/Linux Consultant -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ ##################### Debian GNU/Linux Consultant ##################### Michelle Konzack Apt. 917 ICQ #328449886 +49/177/9351947 50, rue de Soultz MSN LinuxMichi +33/6/61925193 67100 Strasbourg/France IRC #Debian (irc.icq.com)