Unbreak build on OpenBSD

Add missing header for strdup(3).
When EPROTO is not available, fallback to EIO.

https://bugs.freedesktop.org/show_bug.cgi?id=84665
Bump libtool versioning for added APIs
trust: add missing libtasn1 cflags

Add a number of missing LIBTASN1_CFLAGS where it's required
trust: Allow 'BEGIN PUBLIC KEY' PEM blocks in .p11-kit files

These PEM blocks contribute a CKA_PUBLIC_KEY_INFO to the object
being read/written.

https://bugs.freedesktop.org/show_bug.cgi?id=83799
trust: Certificate CKA_ID is SubjectKeyIdentifier if possible

The PKCS#11 spec states that the CKA_ID should match the
SubjectKeyIdentifier if such an extension is present.

We delay the filling of CKA_ID until the builder phase of populating
attributes which allows us to have more control over how this works.

Note that we don't make CKA_ID reflect SubjectKeyIdentifier *attached*
extensions. The CKA_ID isn't supposed to change after object creation.
Making it dependent on attached extensions would be making promises
we cannot keep, since attached extensions can be added/removed at any
time.

This also means the CKA_ID of attached extensions and certificates
won't necessarily match up, but that was never promised, and not how
attached extensions should be matched to their certificate anyway.

Based on a patch and research done by David Woodhouse.

https://bugs.freedesktop.org/show_bug.cgi?id=84761
Release version 0.22.1
compat: Add definition for setenv for Win32

Signed-off-by: Michael Cronenworth <mike@cchtml.com>
uri: Accept 'type' in additon to 'object-type' in PKCS#11 URIs

This was a later change to the PKCS#11 specification drafts