On 12.02.23 15:48, Mark Dilger wrote:
I should mention, src/sgml/html/libpq-exec.html needs clarification:

paramFormats[]Specifies whether parameters are text (put a zero in the array 
entry for the corresponding parameter) or binary (put a one in the array entry 
for the corresponding parameter). If the array pointer is null then all 
parameters are presumed to be text strings.

Perhaps you should edit this last sentence to say that all parameters are 
presumed to be test strings without forced encryption.

This is actually already mentioned later in that section.

When column encryption is enabled, the second-least-significant byte of this 
parameter specifies whether encryption should be forced for a parameter.

The value 0x10 has a one as its second-least-significant *nibble*, but that's a 
really strange way to describe the high-order nibble, and perhaps not what you 
mean.  Could you clarify?

Set this byte to one to force encryption.

I think setting the byte to one (0x01) means "binary unencrypted", not "force 
encryption".  Don't you mean to set this byte to 16?

For example, use the C code literal 0x10 to specify text format with forced 
encryption. If the array pointer is null then encryption is not forced for any 
parameter.
If encryption is forced for a parameter but the parameter does not correspond 
to an encrypted column on the server, then the call will fail and the parameter 
will not be sent. This can be used for additional security against a 
compromised server. (The drawback is that application code then needs to be 
kept up to date with knowledge about which columns are encrypted rather than 
letting the server specify this.)

This was me being confused.  I adjusted the text to use "half-byte".

  I think you should say something about how specifying 0x11 will behave -- in other 
words, asking for encrypted binary data.  I believe that this is will draw a "format 
must be text for encrypted parameter" error, and that the docs should clearly say so.

done



Reply via email to