Package: opendkim
Version: 2.11.0~beta2-4
Severity: important

Dear Maintainer,

I have been unable to use opendkim with an sqlite3 data source.

According to the OpenDBX documentation[1], the sqlite backend uses the
host information to provide a path to the directory where the database
is stored, and the database name is used as the name of a file in that
directory.

In order to include this information within opendkim's dataset DSN
string, it seems the absolute pathname must be encoded as described in
opendkim(8):

> No  value  within the DSN may contain any of the six punctuation
> characters (":", "/", "@", "+", "?" and  "=")  used  to  delimit
> portions of the DSN.  To include such characters within a value,
> encode them in  quoted-printable  style  (e.g.,  "=20"  will  be
> translated  into  a single space character).  Encoding of spaces
> is also advised.

So, in order to use a database path like /etc/mail/config.sqlite, I
would like to use something like this:

KeyTable 
dsn:sqlite3://=2Fetc=2Fmail=2F/config.sqlite/table=dkim_keys?keycol=domain?datacol=domain,selector,private_key

However, strace reveals that opendkim is using the host and database
values to construct a database file path without any quoted-printable
decoding, e.g.:

> % strace opendkim-testkey
> [...]
> lstat("=2Fetc=2Fmail=2Fconfig.sqlite", 0x7ffcad8871a0) = -1 ENOENT (No such 
> file or directory)
> [...]
> 
> opendkim-testkey: dkimf_db_open() failed

I would have expected the database path (host value) to be decoded from
its quoted-printable form before being passed to OpenDBX.

Thank you.

[1]: 
https://linuxnetworks.de/doc/index.php?title=OpenDBX/Configuration#sqlite3_backend

-- System Information:
Debian Release: 11.6
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-21-amd64 (SMP w/2 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages opendkim depends on:
ii  adduser              3.118
ii  dns-root-data        2021011101
ii  init-system-helpers  1.60
ii  libbsd0              0.11.3-1
ii  libc6                2.31-13+deb11u5
ii  libdb5.3             5.3.28+dfsg1-0.8
ii  libldap-2.4-2        2.4.57+dfsg-3+deb11u1
ii  liblua5.1-0          5.1.5-8.1+b3
ii  libmemcached11       1.0.18-4.2
ii  libmilter1.0.1       8.15.2-22
ii  libopendbx1          1.4.6-15
ii  libopendkim11        2.11.0~beta2-4
ii  librbl1              2.11.0~beta2-4
ii  libssl1.1            1.1.1n-0+deb11u3
ii  libunbound8          1.13.1-1
ii  libvbr2              2.11.0~beta2-4
ii  lsb-base             11.1.0

Versions of packages opendkim recommends:
ii  opendkim-tools  2.11.0~beta2-4

opendkim suggests no packages.

-- Configuration Files:
/etc/dkimkeys/README.PrivateKeys [Errno 13] Permission denied: 
'/etc/dkimkeys/README.PrivateKeys'
/etc/opendkim.conf changed:
Syslog                  yes
SyslogSuccess           yes
Canonicalization        relaxed/simple
OversignHeaders         From
SigningTable 
dsn:sqlite3://=2Fetc=2Fmail=2F/config.sqlite/table=dkim_keys?keycol=domain?datacol=domain
KeyTable     
dsn:sqlite3://=2Fetc=2Fmail=2F/config.sqlite/table=dkim_keys?keycol=domain?datacol=domain,selector,private_key
UserID                  opendkim
UMask                   007
Socket                  local:/run/opendkim/opendkim.sock
PidFile                 /run/opendkim/opendkim.pid
TrustAnchorFile         /usr/share/dns/root.key


-- no debconf information

Reply via email to