]> granicus.if.org Git - p11-kit/log
p11-kit
11 years agoRelease version 0.19.3 0.19.3
Stef Walter [Tue, 23 Jul 2013 14:49:13 +0000 (16:49 +0200)]
Release version 0.19.3

11 years agoMake tests work on file systems with block size directories
Stef Walter [Tue, 23 Jul 2013 21:04:32 +0000 (23:04 +0200)]
Make tests work on file systems with block size directories

On certain file systems the size of the directory does not
change when adding a file. This caused the tests to fail. Make
the tests wait more than a second in certain tests to get the
mtime to change.

https://bugs.freedesktop.org/show_bug.cgi?id=65249

11 years agoFix uninitialized variables
Stef Walter [Tue, 23 Jul 2013 21:03:54 +0000 (23:03 +0200)]
Fix uninitialized variables

11 years agoDon't use _GNU_SOURCE and fix strerror_r usage
Stef Walter [Tue, 23 Jul 2013 21:02:52 +0000 (23:02 +0200)]
Don't use _GNU_SOURCE and fix strerror_r usage

glibc declares strerror_r completely different if in POSIX or GNU
mode. Nastiness. Stop using _GNU_SOURCE all together.

11 years agoFix various memory leaks exposed by 'make leakcheck'
Stef Walter [Tue, 23 Jul 2013 14:45:50 +0000 (16:45 +0200)]
Fix various memory leaks exposed by 'make leakcheck'

11 years agoUse simple serial automake test harness
Stef Walter [Tue, 23 Jul 2013 12:53:53 +0000 (14:53 +0200)]
Use simple serial automake test harness

* Add a testing sanity check to see if we're catching errors
* Fix a few other testing issues

11 years agoUse an automake aux directory for storing litter
Stef Walter [Tue, 23 Jul 2013 12:31:31 +0000 (14:31 +0200)]
Use an automake aux directory for storing litter

11 years agodoc: Add identifiers to doc sections so gtk-doc doesn't autogen them
Stef Walter [Thu, 18 Jul 2013 15:14:42 +0000 (17:14 +0200)]
doc: Add identifiers to doc sections so gtk-doc doesn't autogen them

11 years agoAdd appropriate const qualifiers
Stef Walter [Thu, 18 Jul 2013 14:12:30 +0000 (16:12 +0200)]
Add appropriate const qualifiers

11 years agoRelease version 0.19.2 0.19.2
Stef Walter [Thu, 18 Jul 2013 10:26:07 +0000 (12:26 +0200)]
Release version 0.19.2

11 years agoFix extract example in documentation
Stef Walter [Thu, 18 Jul 2013 11:07:14 +0000 (13:07 +0200)]
Fix extract example in documentation

11 years agoUse $XDG_CONFIG_HOME/pkcs11 as default user config directory
Stef Walter [Thu, 18 Jul 2013 10:50:34 +0000 (12:50 +0200)]
Use $XDG_CONFIG_HOME/pkcs11 as default user config directory

By default this evaluates to ~/.config/pkcs11. This is a somewhat
backwards incompatible change. However so far only advanced users
have been exposed to the user p11-kit configuration.

Distributors are able to revert this if necessary with a
--with-user-config='~/.pkcs11' ./configure option.

11 years agoUse getpwuid_r() instead of the non-thread-sofe getpwuid()
Stef Walter [Thu, 18 Jul 2013 08:09:45 +0000 (10:09 +0200)]
Use getpwuid_r() instead of the non-thread-sofe getpwuid()

11 years agoFix p11_kit_space_strlen() result when empty string
Stef Walter [Thu, 18 Jul 2013 04:48:14 +0000 (06:48 +0200)]
Fix p11_kit_space_strlen() result when empty string

https://bugzilla.redhat.com/show_bug.cgi?id=985416

11 years agoAlways pass size_t varargs to p11_hash_xxx() functions
Stef Walter [Wed, 17 Jul 2013 18:42:03 +0000 (20:42 +0200)]
Always pass size_t varargs to p11_hash_xxx() functions

https://bugzilla.redhat.com/show_bug.cgi?id=985421

11 years agoDon't call memdup with zero length or NULL pointer
Stef Walter [Wed, 17 Jul 2013 16:55:38 +0000 (18:55 +0200)]
Don't call memdup with zero length or NULL pointer

https://bugzilla.redhat.com/show_bug.cgi?id=985433

11 years agoattrs: Check printf formatting in buffer_append_printf()
Stef Walter [Wed, 17 Jul 2013 16:26:31 +0000 (18:26 +0200)]
attrs: Check printf formatting in buffer_append_printf()

https://bugzilla.redhat.com/show_bug.cgi?id=985497

11 years agoAvoid using the non-thread-safe strerror() function
Stef Walter [Wed, 17 Jul 2013 16:08:11 +0000 (18:08 +0200)]
Avoid using the non-thread-safe strerror() function

https://bugzilla.redhat.com/show_bug.cgi?id=985481

11 years agoDeclare static variables const where it makes sense
Stef Walter [Wed, 17 Jul 2013 10:55:57 +0000 (12:55 +0200)]
Declare static variables const where it makes sense

https://bugzilla.redhat.com/show_bug.cgi?id=985337

11 years agoSupport expanding $XDG_CONFIG_HOME in user config paths
Stef Walter [Wed, 17 Jul 2013 09:58:05 +0000 (11:58 +0200)]
Support expanding $XDG_CONFIG_HOME in user config paths

If ~/.config is specified as a prefix to a configured path,
then it is expanded to the $XDG_CONFIG_HOME if that exists

Add --with-user-config ./configure option to configure a
different user config directory.

Interpolate the right directories into documentation.

11 years agoDon't load configs from user directory when setuid
Stef Walter [Wed, 17 Jul 2013 09:57:02 +0000 (11:57 +0200)]
Don't load configs from user directory when setuid

When running as setuid() or setgid() don't access the user's home
directory, or use $HOME environment variables.

https://bugzilla.redhat.com/show_bug.cgi?id=985014

11 years agotools: Use $TMPDIR instead of $TEMP
Stef Walter [Wed, 17 Jul 2013 07:51:32 +0000 (09:51 +0200)]
tools: Use $TMPDIR instead of $TEMP

TMPDIR is a more standard environment variable for locating the
temp directory on Unix. In addition since this is only used in
tests, remove the code from the generic p11_path_expand() func.

In general remove the possibility for forks to put $HOME or $TEMP
environment variables in configured paths. This was possible
due to code in p11_path_expand() but not something we supported.

https://bugzilla.redhat.com/show_bug.cgi?id=985017

11 years agoFix various issues highlighted by coverity scanner
Stef Walter [Wed, 17 Jul 2013 06:03:38 +0000 (08:03 +0200)]
Fix various issues highlighted by coverity scanner

Among others fix possible usage of large stack allocation.

11 years agoopen files with O_CLOEXEC when possible
Stef Walter [Tue, 16 Jul 2013 20:43:37 +0000 (22:43 +0200)]
open files with O_CLOEXEC when possible

This helps prevent leaked file descriptors when the library is
used in a process which exec's.

opendir() already uses O_CLOEXEC on platforms that support O_CLOEXEC
so we don't need to make changes there.

In addition read config files using p11_mmap_open() so that we get
the simple benefits of O_CLOEXEC with the open() call there.

https://bugzilla.redhat.com/show_bug.cgi?id=984986

11 years agobuffer: Check for unlikely integer overflow
Stef Walter [Tue, 16 Jul 2013 19:20:44 +0000 (21:20 +0200)]
buffer: Check for unlikely integer overflow

If we see an integer overflow here something has gone horribly wrong
(or malicious code is present). So treat this as unrecoverable, and
fail if we're going to overflow.

https://bugzilla.redhat.com/show_bug.cgi?id=985019

11 years agoMake preconditions abort unconditionally when scanning with coverity
Stef Walter [Tue, 16 Jul 2013 16:38:24 +0000 (18:38 +0200)]
Make preconditions abort unconditionally when scanning with coverity

This reflects that preconditions are invalid/unreachable on a
functioning system and with valid input. We do not try to recover
from such conditions.

In addition teach coverity about how our test suite fails

See http://p11-glue.freedesktop.org/doc/p11-kit/devel-building-style.html

https://bugzilla.redhat.com/show_bug.cgi?id=985005

11 years agoiter: Document guarantees for filter matches argumet
Stef Walter [Tue, 16 Jul 2013 15:18:02 +0000 (17:18 +0200)]
iter: Document guarantees for filter matches argumet

The matches argument is always initialized to CK_TRUE when a filter
is called, and it's up to filters to set it to CK_FALSE. Filters
don't need to set to CK_TRUE.

https://bugzilla.redhat.com/show_bug.cgi?id=985009

11 years agoFixes for some recent win32 regressions
Stef Walter [Wed, 17 Jul 2013 13:53:33 +0000 (15:53 +0200)]
Fixes for some recent win32 regressions

11 years agoRemove erroneous comments about readdir() and thread-safety
Stef Walter [Tue, 16 Jul 2013 15:14:56 +0000 (17:14 +0200)]
Remove erroneous comments about readdir() and thread-safety

https://bugzilla.redhat.com/show_bug.cgi?id=984989

11 years agoBuild with -fno-common to catch definition problems
Stef Walter [Wed, 10 Jul 2013 13:22:00 +0000 (15:22 +0200)]
Build with -fno-common to catch definition problems

Fix some global variables not declared as extern

https://bugs.freedesktop.org/show_bug.cgi?id=66015

11 years agoVarious documentation tweaks and fixes for warnings
Stef Walter [Wed, 10 Jul 2013 13:14:06 +0000 (15:14 +0200)]
Various documentation tweaks and fixes for warnings

11 years agoAdd support for using freebl3 for SHA1 and MD5 hashing
Stef Walter [Wed, 10 Jul 2013 12:28:15 +0000 (14:28 +0200)]
Add support for using freebl3 for SHA1 and MD5 hashing

Since we don't want to link freebl3 to libp11-kit.so where it isn't
needed, move the SHA-1 and MD5 digest functionality to the trust/
directory.

11 years agotrust: Fix the 'p11-kit extract' command
Stef Walter [Tue, 9 Jul 2013 10:24:40 +0000 (12:24 +0200)]
trust: Fix the 'p11-kit extract' command

This is supposed to call over to 'trust extract' and wasn't
working correctly.

11 years agotrust: Fix bug with load validation failures
Stef Walter [Mon, 8 Jul 2013 17:01:24 +0000 (19:01 +0200)]
trust: Fix bug with load validation failures

11 years agotrust: Add a basic 'anchor' command to store a new anchor
Stef Walter [Mon, 8 Jul 2013 16:41:33 +0000 (18:41 +0200)]
trust: Add a basic 'anchor' command to store a new anchor

11 years agotrust: Fix various issues writing objects in trust token
Stef Walter [Mon, 8 Jul 2013 16:38:38 +0000 (18:38 +0200)]
trust: Fix various issues writing objects in trust token

 * Create directory before trying to write files to it
 * Handle write failures appropriately

Refactor how we build and store objects in the index to handle
the above cases properly.

11 years agotrust: Mark CKA_X_DISTRUSTED as a boolean attribute
Stef Walter [Mon, 8 Jul 2013 16:31:47 +0000 (18:31 +0200)]
trust: Mark CKA_X_DISTRUSTED as a boolean attribute

11 years agotrust: Support token directory paths in user's home directory
Stef Walter [Mon, 8 Jul 2013 16:30:16 +0000 (18:30 +0200)]
trust: Support token directory paths in user's home directory

11 years agotrust: Explicitly specify which formats parser should parse
Stef Walter [Mon, 8 Jul 2013 14:56:40 +0000 (16:56 +0200)]
trust: Explicitly specify which formats parser should parse

11 years agotrust: Support using the parser without an asn1_cache
Stef Walter [Mon, 8 Jul 2013 14:36:50 +0000 (16:36 +0200)]
trust: Support using the parser without an asn1_cache

11 years agoasn1: In p11_asn1_read() allocate an extra null terminator
Stef Walter [Mon, 8 Jul 2013 14:30:52 +0000 (16:30 +0200)]
asn1: In p11_asn1_read() allocate an extra null terminator

As a courtesy for callers.

11 years agocommon: Fix typo, and don't escape '6' in URL encoding
Stef Walter [Mon, 8 Jul 2013 14:28:48 +0000 (16:28 +0200)]
common: Fix typo, and don't escape '6' in URL encoding

11 years agop11-kit: Add P11_KIT_MODULE_TRUSTED flag
Stef Walter [Thu, 4 Jul 2013 19:49:57 +0000 (21:49 +0200)]
p11-kit: Add P11_KIT_MODULE_TRUSTED flag

A new flag to pass to p11_kit_modules_load() and related functions
which limits loaded modules to ones with "trust-policy: yes".

11 years agotrust: Port to use CKA_PUBLIC_KEY_INFO and updated trust store spec
Stef Walter [Thu, 4 Jul 2013 13:48:38 +0000 (15:48 +0200)]
trust: Port to use CKA_PUBLIC_KEY_INFO and updated trust store spec

 * Use the concepts and PKCS#11 objects described in the
   recently updated (still work in progress) storing trust spec.
 * Define our own CKA_X_PUBLIC_KEY_INFO define for now, since the
   the CKA_PUBLIC_KEY_INFO isn't defined yet.
 * Most notably, the association between certificates and stapled
   extensions is by public key.
 * Rework some of the tests to take into account the above.

11 years agotrust: Add p11_oid_hash() and various oid strings
Stef Walter [Thu, 4 Jul 2013 13:43:26 +0000 (15:43 +0200)]
trust: Add p11_oid_hash() and various oid strings

11 years agotrust: Add p11_asn1_read() and p11_asn1_free() functions
Stef Walter [Thu, 4 Jul 2013 13:37:34 +0000 (15:37 +0200)]
trust: Add p11_asn1_read() and p11_asn1_free() functions

Some helpers for commonly used ASN.1 related stuff.

11 years agotrust: Initial support for writing out token objects
Stef Walter [Wed, 3 Jul 2013 10:47:14 +0000 (12:47 +0200)]
trust: Initial support for writing out token objects

 * The objects are written out in the p11-kit persist format
 * Parser marks files in p11-kit persist format as modifiable

11 years agotrust: If token path is a file, don't try loading subdirectories
Stef Walter [Wed, 3 Jul 2013 10:46:41 +0000 (12:46 +0200)]
trust: If token path is a file, don't try loading subdirectories

11 years agotrust: Correctly handle persisting OIDs with zero length
Stef Walter [Wed, 3 Jul 2013 10:45:11 +0000 (12:45 +0200)]
trust: Correctly handle persisting OIDs with zero length

11 years agotrust: Don't write out internal attributes when persisting
Stef Walter [Wed, 3 Jul 2013 10:44:23 +0000 (12:44 +0200)]
trust: Don't write out internal attributes when persisting

11 years agotrust: Add support for saving files with unique file names
Stef Walter [Wed, 3 Jul 2013 08:45:50 +0000 (10:45 +0200)]
trust: Add support for saving files with unique file names

11 years agopath: Add p11_path_canon() function
Stef Walter [Wed, 3 Jul 2013 08:38:19 +0000 (10:38 +0200)]
path: Add p11_path_canon() function

Cleans up a filename with readable characters.

11 years agotrust: Rename p11_index_batch() to p11_index_load()
Stef Walter [Fri, 28 Jun 2013 15:19:22 +0000 (17:19 +0200)]
trust: Rename p11_index_batch() to p11_index_load()

The name makes it clearer what's going on. This is only used
during loading, so we can track whether a change has resulted
from the trust module or from the file storage.

11 years agotrust: Implement reloading of token data
Stef Walter [Fri, 28 Jun 2013 11:27:42 +0000 (13:27 +0200)]
trust: Implement reloading of token data

 * Reload token data whenever a new session is opened.
 * Only reload files/directories that have changed.
 * Move duplicate anchor/blacklist detection logic into
   the extract code. This is in line with the approach
   being discussed on the mailing lists and spec document.
 * New internal attribute CKA_X_ORIGIN set on all objects
   so we can track where an object came from, and replace
   it when reloaded.

In general this is a prerequisite for modification of objects
reload before modify is necessary to prevent multiple callers
clobbering each other's changes.

11 years agoiter: Add iteration mode where session is not busy
Stef Walter [Fri, 28 Jun 2013 11:00:02 +0000 (13:00 +0200)]
iter: Add iteration mode where session is not busy

In order to use the session we are iterating on for other tasks
such as other C_FindObject() calls, we need to make sure that
it's not in the middle of a find operation. Finish up the
complete find operation in advance of returning objects from
a session.

Make this the default mode. The previous behavior remains
as an option. Add tests.

11 years agopath: Add p11_path_prefix() function
Stef Walter [Fri, 28 Jun 2013 10:51:30 +0000 (12:51 +0200)]
path: Add p11_path_prefix() function

Checks if a wellformed path is identical to or a prefix
of another path.

11 years agotrust: Implement validation for creating/modifying objects
Stef Walter [Wed, 26 Jun 2013 11:16:42 +0000 (13:16 +0200)]
trust: Implement validation for creating/modifying objects

11 years agoFix dependency between p11-kit command and library
Stef Walter [Tue, 25 Jun 2013 12:43:02 +0000 (14:43 +0200)]
Fix dependency between p11-kit command and library

11 years agoFix running trust module tests under distcheck
Stef Walter [Tue, 25 Jun 2013 11:30:17 +0000 (13:30 +0200)]
Fix running trust module tests under distcheck

11 years agoReorganize various components
Stef Walter [Mon, 24 Jun 2013 11:34:30 +0000 (13:34 +0200)]
Reorganize various components

 * p11-kit library and tool in the p11-kit/ subdirectory
 * trust module and new trust tool in trust/ subdirectory
 * No more tools/ subdirectory
 * Lots less in the common/ subdirectory

11 years agoMerge branch 'stable'
Stef Walter [Mon, 17 Jun 2013 19:57:25 +0000 (21:57 +0200)]
Merge branch 'stable'

11 years agotrust: Writable module PKCS#11 token functions
Stef Walter [Fri, 14 Jun 2013 20:00:42 +0000 (22:00 +0200)]
trust: Writable module PKCS#11 token functions

Although we don't actually write anything out yet, make the
various PKCS#11 functions behave properly when faced with
requests to write to token objects

11 years agotrust: Move the extract-trust external placeholder command into trust/
Stef Walter [Mon, 17 Jun 2013 12:51:49 +0000 (14:51 +0200)]
trust: Move the extract-trust external placeholder command into trust/

11 years agotrust: Print out usage when extract-trust run incorrectly
Stef Walter [Mon, 17 Jun 2013 12:46:03 +0000 (14:46 +0200)]
trust: Print out usage when extract-trust run incorrectly

Also sorta covers --help and -h usage

11 years agotools: Fix passing args to external commands
Stef Walter [Mon, 17 Jun 2013 12:45:36 +0000 (14:45 +0200)]
tools: Fix passing args to external commands

There were various bugs passing arguments, with duplicates being
passed, as well as certain arguments being skipped.t

11 years agotools: Only use our private path when looking for external commands
Stef Walter [Mon, 17 Jun 2013 12:36:37 +0000 (14:36 +0200)]
tools: Only use our private path when looking for external commands

Instead of looking for external commands in the path, just look
for them in our private directory.

We want to be conservative early on, and limit what sorta things
we have to maintain later. We can later remove this restriction
if a real use case presents itself.

11 years agotrust: Correctly reflect the CK_TOKEN_INFO writability flags
Stef Walter [Fri, 14 Jun 2013 11:02:22 +0000 (13:02 +0200)]
trust: Correctly reflect the CK_TOKEN_INFO writability flags

Correctly set the CKF_TOKEN_WRITE_PROTECTED flag for paths
which we will be able to write to.

11 years agopath: Add p11_path_parent() function
Stef Walter [Fri, 14 Jun 2013 10:53:15 +0000 (12:53 +0200)]
path: Add p11_path_parent() function

Gets the parent element of the path, removing the last component.
Handles trailing and duplicate path separators correctly.

11 years agopath: Fix expanding of paths and tests
Stef Walter [Fri, 14 Jun 2013 10:49:34 +0000 (12:49 +0200)]
path: Fix expanding of paths and tests

11 years agocommon: Abort test cases when one fails
Stef Walter [Thu, 13 Jun 2013 15:39:44 +0000 (17:39 +0200)]
common: Abort test cases when one fails

11 years agoMerge branch 'stable'
Stef Walter [Wed, 5 Jun 2013 20:01:31 +0000 (22:01 +0200)]
Merge branch 'stable'

11 years agoRelease version 0.18.3 0.18.3
Stef Walter [Wed, 5 Jun 2013 11:24:43 +0000 (13:24 +0200)]
Release version 0.18.3

11 years agotrust: Fix crash when C_Initialize args are NULL
Stef Walter [Wed, 5 Jun 2013 08:03:41 +0000 (10:03 +0200)]
trust: Fix crash when C_Initialize args are NULL

https://bugs.freedesktop.org/show_bug.cgi?id=65401

11 years agotrust: Fix reinitialization of trust module
Stef Walter [Wed, 5 Jun 2013 08:41:19 +0000 (10:41 +0200)]
trust: Fix reinitialization of trust module

Track number of C_Initialize calls, and require similar number
of C_Finalize calls to finalize.

This fixes leaks/disappearing sessions in the trust module.

https://bugs.freedesktop.org/show_bug.cgi?id=65401

11 years agoFix uninitialized p11_library_once
manphiz@gmail.com [Wed, 24 Apr 2013 01:01:00 +0000 (01:01 +0000)]
Fix uninitialized p11_library_once

https://bugs.freedesktop.org/show_bug.cgi?id=57714

11 years agoForce Mac OS shared library extension to .so
Stef Walter [Fri, 5 Apr 2013 17:17:25 +0000 (19:17 +0200)]
Force Mac OS shared library extension to .so

Darwin and libtool seem confused about what shared library
extension they actually use.

https://bugs.freedesktop.org/show_bug.cgi?id=57714

11 years agoFix uninitialized p11_library_once
manphiz@gmail.com [Wed, 24 Apr 2013 01:01:00 +0000 (01:01 +0000)]
Fix uninitialized p11_library_once

https://bugs.freedesktop.org/show_bug.cgi?id=57714

11 years agoForce Mac OS shared library extension to .so
Stef Walter [Fri, 5 Apr 2013 17:17:25 +0000 (19:17 +0200)]
Force Mac OS shared library extension to .so

Darwin and libtool seem confused about what shared library
extension they actually use.

https://bugs.freedesktop.org/show_bug.cgi?id=57714

11 years agopersist: Support for writing out p11-kit persist files
Stef Walter [Tue, 21 May 2013 19:46:27 +0000 (21:46 +0200)]
persist: Support for writing out p11-kit persist files

11 years agoconstants: Tweaks and add mechanisms
Stef Walter [Tue, 21 May 2013 19:44:22 +0000 (21:44 +0200)]
constants: Tweaks and add mechanisms

11 years agopem: Write PEM data directly to a buffer
Stef Walter [Tue, 21 May 2013 15:33:22 +0000 (17:33 +0200)]
pem: Write PEM data directly to a buffer

11 years agourl: Encode directly to a buffer
Stef Walter [Tue, 21 May 2013 14:41:09 +0000 (16:41 +0200)]
url: Encode directly to a buffer

11 years agoRelease version 0.19.1 0.19.1
Stef Walter [Mon, 27 May 2013 08:36:23 +0000 (10:36 +0200)]
Release version 0.19.1

11 years agoMark p11_kit_message() as a stable function
Stef Walter [Tue, 21 May 2013 10:38:14 +0000 (12:38 +0200)]
Mark p11_kit_message() as a stable function

11 years agoFix building of applications using CRYPTOKI_GNU style
Stef Walter [Tue, 21 May 2013 10:37:14 +0000 (12:37 +0200)]
Fix building of applications using CRYPTOKI_GNU style

11 years agoBump the version for deprecated function documentation
Stef Walter [Tue, 21 May 2013 09:35:07 +0000 (11:35 +0200)]
Bump the version for deprecated function documentation

11 years agoFix up Makefile.am files for automake 1.13 warnings
Stef Walter [Tue, 9 Apr 2013 06:34:44 +0000 (08:34 +0200)]
Fix up Makefile.am files for automake 1.13 warnings

11 years agoOur own unit testing framework
Stef Walter [Fri, 5 Apr 2013 21:52:39 +0000 (23:52 +0200)]
Our own unit testing framework

 * Support the TAP protocol
 * Much cleaner without having to carry around state
 * First class support for setup/teardown
 * Port the common tests
 * Wait on porting other tests until we've merged outstanding code

11 years agoFurther reorganization of the core module tracking
Stef Walter [Sat, 6 Apr 2013 14:42:01 +0000 (16:42 +0200)]
Further reorganization of the core module tracking

 * Keep the module ownership apart from the tracking of module
   function pointers, since these are only relevant for unmanaged
   modules.
 * Less assumptions that each module has a raw unmanaged module
   function pointer.
 * More clarity in the naming of dictionaries tracking the modules.

11 years agoPull the argv parsing code into its own file
Stef Walter [Sun, 7 Apr 2013 17:39:22 +0000 (19:39 +0200)]
Pull the argv parsing code into its own file

So it can be used from multiple code paths

11 years agoSupport /xxx/yyy as an absolute path with Win32
Stef Walter [Sat, 6 Apr 2013 14:41:08 +0000 (16:41 +0200)]
Support /xxx/yyy as an absolute path with Win32

Because win32 code doesn't just run on windows, wine runs
with unix style paths.

11 years agoBump the version number to unstable
Stef Walter [Tue, 21 May 2013 08:50:53 +0000 (10:50 +0200)]
Bump the version number to unstable

11 years agoAdd the log-calls module config option
Stef Walter [Tue, 19 Feb 2013 13:05:34 +0000 (14:05 +0100)]
Add the log-calls module config option

If 'log-calls = yes' is set then all the PKCS#11 modules are logged
to stderr.

11 years agoManage C_CloseAllSessions function for multiple callers
Stef Walter [Tue, 19 Feb 2013 12:51:32 +0000 (13:51 +0100)]
Manage C_CloseAllSessions function for multiple callers

Make C_CloseAllSessions work for different callers. Track the sessions
that each caller opens and close just those when C_CloseAllSessiosn is
called.

11 years agoUpdate the proxy module to use managed PKCS#11 modules
Stef Walter [Fri, 15 Feb 2013 20:34:20 +0000 (21:34 +0100)]
Update the proxy module to use managed PKCS#11 modules

Each time C_GetFunctionList is called on the proxy module, a new
managed PKCS#11 set of functions is returned. These are all cleaned
up when the module is unloaded.

We want the proxy module to continue to work even without the highly
recommended libffi. For that reason we still keep the old behavior of
sharing state in the proxy module.

11 years agop11-kit: Managed PKCS#11 module loading
Stef Walter [Wed, 6 Feb 2013 20:57:45 +0000 (21:57 +0100)]
p11-kit: Managed PKCS#11 module loading

Support a new managed style module loading for PKCS#11 modules. This
allows us to better coordinate between multiple callers of the same
PKCS#11 modules and provide hooks into their behavior.

This meant redoing the public facing API. The old methods are now
deprecated, marked and documented as such.

11 years agoUse libffi to implement mixins for managed code
Stef Walter [Thu, 10 Jan 2013 15:51:31 +0000 (16:51 +0100)]
Use libffi to implement mixins for managed code

 * This allows us to call into subclassed PKCS#11 modules as if
   they were plain old PKCS#11 modules
 * libffi is an optional dependency

11 years agoAdd subclassable CK_X_FUNCTION_LIST
Stef Walter [Thu, 14 Feb 2013 14:41:45 +0000 (15:41 +0100)]
Add subclassable CK_X_FUNCTION_LIST

One of the flaws in PKCS#11 for our usage is that each PKCS#11 module
is not passed the pointer to the function list, ie: the vtable

Here we define a new function list vtable, where each PKCS#11 function
takes the vtable itself as the first argument. We use this new
list internally to represent subclassable PKCS#11 modules for
various features.

11 years agoFail early when running automaint.sh
Stef Walter [Wed, 15 May 2013 09:52:52 +0000 (11:52 +0200)]
Fail early when running automaint.sh

11 years agoImplement valgrind's hellgrind checks for threading problems
Stef Walter [Wed, 15 May 2013 09:51:22 +0000 (11:51 +0200)]
Implement valgrind's hellgrind checks for threading problems

And cleanup our locks/locking model. There's no need to use
recursive locks, especially since we can't use them on all
platforms. In addition adjust taking of locks during initialization
so that there's no chance of deadlocking here.