Matching pgp_sym_encrypt() and gpg2 output

Started by Bruce Momjianover 6 years ago3 messagesgeneral
Jump to latest
#1Bruce Momjian
bruce@momjian.us

I am trying to generate output from the command-line program gpg2 that
matches the output of pgp_sym_encrypt(). gpg2 outputs:

$ echo 'my access password' | tr -d '\n' | gpg2 --symmetric --batch

--cipher-algo AES256 --passphrase 'abc' | xxd -p | tr -d '\n'

8c0d0409030248b24f9d2bc91287f5d24701...

while pgp_sym_encrypt() outputs:

SELECT pgp_sym_encrypt('my access password', 'abc', 'cipher-algo=aes256');

pgp_sym_encrypt
----------------------------------------
\xc30d0409030282dbcc61c149fd4b67d24...

I realize the \x is from the bytea output function, but the hex digits
don't match, and the gpg2 output is slightly longer than the
pgp_sym_encrypt() output. What gpg2 options will allow it to match?
Thanks.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +
#2Jeff Janes
jeff.janes@gmail.com
In reply to: Bruce Momjian (#1)
Re: Matching pgp_sym_encrypt() and gpg2 output

On Tue, Aug 27, 2019 at 1:33 PM Bruce Momjian <bruce@momjian.us> wrote:

I am trying to generate output from the command-line program gpg2 that
matches the output of pgp_sym_encrypt(). gpg2 outputs:

$ echo 'my access password' | tr -d '\n' | gpg2 --symmetric --batch

--cipher-algo AES256 --passphrase 'abc' | xxd -p | tr -d '\n'

I don't even get the same output on repeated execution of this same
command, so I think you are pursuing a lost cause.

Cheers,

Jeff

#3Bruce Momjian
bruce@momjian.us
In reply to: Jeff Janes (#2)
Re: Matching pgp_sym_encrypt() and gpg2 output

On Tue, Aug 27, 2019 at 02:05:28PM -0400, Jeff Janes wrote:

On Tue, Aug 27, 2019 at 1:33 PM Bruce Momjian <bruce@momjian.us> wrote:

I am trying to generate output from the command-line program gpg2 that
matches the output of pgp_sym_encrypt().� gpg2 outputs:

� � � � $ echo 'my access password' | tr -d '\n' | gpg2 --symmetric --batch
� � � � > --cipher-algo AES256 --passphrase 'abc' | xxd -p | tr -d '\n'

I don't even get the same output on repeated execution of this same command, so
I think you are pursuing a lost cause.

Ah, very good point. I at least get the same first few bytes and same
length each time, so I never even looked at the trailing bytes, and you
are right that it isn't surprising they differ each time.

Anyway, I figured it out. I was originally trying to use openssl to
match pgp_sym_encrypt(), and that wasn't working, and then when I
couldn't get the gpg2 bytes to match, I asked here. Seems I got it
working with the attached SQL file. Thanks.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +

Attachments:

key-pass-test.sqlapplication/x-sqlDownload