gnome-keyring r1690 - in trunk: . docs docs/reference docs/reference/gcr docs/reference/gnome-keyring docs/reference/gp11 gp11 gp11/reference gp11/reference/tmpl library library/reference library/reference/tmpl
- From: nnielsen svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-keyring r1690 - in trunk: . docs docs/reference docs/reference/gcr docs/reference/gnome-keyring docs/reference/gp11 gp11 gp11/reference gp11/reference/tmpl library library/reference library/reference/tmpl
- Date: Tue, 17 Mar 2009 02:53:59 +0000 (UTC)
Author: nnielsen
Date: Tue Mar 17 02:53:59 2009
New Revision: 1690
URL: http://svn.gnome.org/viewvc/gnome-keyring?rev=1690&view=rev
Log:
Merge branch 'docs-reorganize'
Added:
trunk/docs/
trunk/docs/.gitignore
trunk/docs/Makefile.am
trunk/docs/reference/
trunk/docs/reference/.gitignore
trunk/docs/reference/Makefile.am
trunk/docs/reference/gcr/
trunk/docs/reference/gcr/.gitignore
trunk/docs/reference/gcr/Makefile.am
- copied, changed from r1689, /trunk/gp11/reference/Makefile.am
trunk/docs/reference/gcr/gcr-docs.sgml
trunk/docs/reference/gcr/gcr-sections.txt
trunk/docs/reference/gcr/gcr.types
trunk/docs/reference/gnome-keyring/
trunk/docs/reference/gnome-keyring/.gitignore
trunk/docs/reference/gnome-keyring/Makefile.am
- copied, changed from r1689, /trunk/library/reference/Makefile.am
trunk/docs/reference/gnome-keyring/gnome-keyring-docs.sgml
- copied, changed from r1689, /trunk/library/reference/gnome-keyring-docs.sgml
trunk/docs/reference/gnome-keyring/gnome-keyring-sections.txt
- copied, changed from r1689, /trunk/library/reference/gnome-keyring-sections.txt
trunk/docs/reference/gnome-keyring/gnome-keyring.types
- copied, changed from r1689, /trunk/library/reference/gnome-keyring-undeclared.txt
trunk/docs/reference/gp11/
trunk/docs/reference/gp11/.gitignore
trunk/docs/reference/gp11/Makefile.am
- copied, changed from r1689, /trunk/gp11/reference/Makefile.am
trunk/docs/reference/gp11/gp11-docs.sgml
trunk/docs/reference/gp11/gp11-sections.txt
trunk/docs/reference/gp11/gp11.types
- copied, changed from r1689, /trunk/gp11/reference/gp11.types
Removed:
trunk/gp11/reference/.gitignore
trunk/gp11/reference/Makefile.am
trunk/gp11/reference/gp11-docs.sgml
trunk/gp11/reference/gp11-sections.txt
trunk/gp11/reference/gp11-undeclared.txt
trunk/gp11/reference/gp11.types
trunk/gp11/reference/tmpl/.gitignore
trunk/gp11/reference/tmpl/gp11-unused.sgml
trunk/gp11/reference/tmpl/gp11.sgml
trunk/library/reference/.cvsignore
trunk/library/reference/.gitignore
trunk/library/reference/Makefile.am
trunk/library/reference/gnome-keyring-docs.sgml
trunk/library/reference/gnome-keyring-sections.txt
trunk/library/reference/gnome-keyring-undeclared.txt
trunk/library/reference/tmpl/.cvsignore
trunk/library/reference/tmpl/.gitignore
trunk/library/reference/tmpl/empty.sgml
trunk/library/reference/tmpl/gnome-keyring-acl.sgml
trunk/library/reference/tmpl/gnome-keyring-attributes.sgml
trunk/library/reference/tmpl/gnome-keyring-daemon.sgml
trunk/library/reference/tmpl/gnome-keyring-find.sgml
trunk/library/reference/tmpl/gnome-keyring-generic-callbacks.sgml
trunk/library/reference/tmpl/gnome-keyring-item-info.sgml
trunk/library/reference/tmpl/gnome-keyring-items.sgml
trunk/library/reference/tmpl/gnome-keyring-keyring-info.sgml
trunk/library/reference/tmpl/gnome-keyring-keyrings.sgml
trunk/library/reference/tmpl/gnome-keyring-memory.sgml
trunk/library/reference/tmpl/gnome-keyring-misc.sgml
trunk/library/reference/tmpl/gnome-keyring-network.sgml
trunk/library/reference/tmpl/gnome-keyring-password.sgml
trunk/library/reference/tmpl/gnome-keyring-result.sgml
trunk/library/reference/tmpl/gnome-keyring-unused.sgml
Modified:
trunk/.gitignore
trunk/ChangeLog
trunk/Makefile.am
trunk/configure.in
trunk/gp11/Makefile.am
trunk/gp11/gp11-attributes.c
trunk/gp11/gp11-misc.c
trunk/gp11/gp11-module.c
trunk/gp11/gp11-object.c
trunk/gp11/gp11-session.c
trunk/gp11/gp11-slot.c
trunk/gp11/gp11.h
trunk/library/Makefile.am
trunk/library/gnome-keyring-memory.c
trunk/library/gnome-keyring-utils.c
trunk/library/gnome-keyring.c
Modified: trunk/.gitignore
==============================================================================
--- trunk/.gitignore (original)
+++ trunk/.gitignore Tue Mar 17 02:53:59 2009
@@ -1,5 +1,5 @@
-/*~
-/*.bak
+*~
+*.bak
/compile
/*.tmp
/*.prj
Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am (original)
+++ trunk/Makefile.am Tue Mar 17 02:53:59 2009
@@ -20,9 +20,10 @@
pkcs11 \
daemon \
tool \
- po \
$(TESTS_DIR) \
- $(PAM_DIR)
+ $(PAM_DIR) \
+ po \
+ docs
EXTRA_DIST = \
intltool-extract.in \
Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in (original)
+++ trunk/configure.in Tue Mar 17 02:53:59 2009
@@ -41,7 +41,7 @@
AC_TYPE_SIZE_T
AC_TYPE_UID_T
-GTK_DOC_CHECK
+GTK_DOC_CHECK(1.9)
DISTCHECK_CONFIGURE_FLAGS="--enable-gtk-doc"
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
@@ -551,6 +551,11 @@
daemon/keyrings/tests/Makefile
daemon/pkcs11/Makefile
daemon/ui/Makefile
+docs/Makefile
+docs/reference/Makefile
+docs/reference/gcr/Makefile
+docs/reference/gnome-keyring/Makefile
+docs/reference/gp11/Makefile
egg/Makefile
egg/tests/Makefile
gcr/gcr.pc
@@ -558,10 +563,8 @@
gcr/tests/Makefile
gp11/gp11.pc
gp11/Makefile
-gp11/reference/Makefile
gp11/tests/Makefile
library/Makefile
-library/reference/Makefile
library/tests/Makefile
pam/Makefile
pam/tests/Makefile
Added: trunk/docs/.gitignore
==============================================================================
--- (empty file)
+++ trunk/docs/.gitignore Tue Mar 17 02:53:59 2009
@@ -0,0 +1,3 @@
+Makefile
+Makefile.in
+
Added: trunk/docs/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/docs/Makefile.am Tue Mar 17 02:53:59 2009
@@ -0,0 +1,2 @@
+
+SUBDIRS = reference
Added: trunk/docs/reference/.gitignore
==============================================================================
--- (empty file)
+++ trunk/docs/reference/.gitignore Tue Mar 17 02:53:59 2009
@@ -0,0 +1,3 @@
+Makefile
+Makefile.in
+
Added: trunk/docs/reference/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/docs/reference/Makefile.am Tue Mar 17 02:53:59 2009
@@ -0,0 +1,2 @@
+
+SUBDIRS = gcr gnome-keyring gp11
Added: trunk/docs/reference/gcr/.gitignore
==============================================================================
--- (empty file)
+++ trunk/docs/reference/gcr/.gitignore Tue Mar 17 02:53:59 2009
@@ -0,0 +1,27 @@
+Makefile
+Makefile.in
+.libs
+
+# Directories created by gtk-doc
+tmpl
+html
+xml
+
+# Files generated by gtk-doc
+*.stamp
+
+# Reports generated by gtk-doc
+*-undeclared.txt
+*-undocumented.txt
+*-unused.txt
+
+# Commit these files if you edit them
+*-decl-list.txt
+*-decl.txt
+*-overrides.txt
+*.args
+*.hierarchy
+*.interfaces
+*.prerequisites
+*.signals
+
Copied: trunk/docs/reference/gcr/Makefile.am (from r1689, /trunk/gp11/reference/Makefile.am)
==============================================================================
--- /trunk/gp11/reference/Makefile.am (original)
+++ trunk/docs/reference/gcr/Makefile.am Tue Mar 17 02:53:59 2009
@@ -1,9 +1,7 @@
## Process this file with automake to produce Makefile.in
-NULL=
-all-recursive: all
-
-# all: tmpl.stamp
+# We require automake 1.6 at least.
+AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
@@ -11,7 +9,11 @@
# of using the various options.
# The name of the module, e.g. 'glib'.
-DOC_MODULE=gp11
+DOC_MODULE=gcr
+
+# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
+#DOC_MODULE_VERSION=2
+
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
@@ -20,13 +22,13 @@
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk
-DOC_SOURCE_DIR=../
+DOC_SOURCE_DIR=../../../$(DOC_MODULE)
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS=--type-init-func="g_type_init()"
+SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
-# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=
# Extra options to supply to gtkdoc-mkdb.
@@ -37,6 +39,9 @@
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
+# Extra options to supply to gtkdoc-mkhtml
+MKHTML_OPTIONS=
+
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
@@ -44,26 +49,24 @@
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
-HFILE_GLOB=$(top_srcdir)/gp11/*.h
-CFILE_GLOB=$(top_srcdir)/gp11/*.c
+HFILE_GLOB=$(top_srcdir)/$(DOC_MODULE)/*.h
+CFILE_GLOB=$(top_srcdir)/$(DOC_MODULE)/*.c
-# Header files to ignore when scanning.
+# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
+# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
+EXTRA_HFILES=
+
+# Header files to ignore when scanning. Use base file name, no paths
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
-IGNORE_HFILES=\
- gp11-private.h \
- gp11-marshal.h \
- pkcs11.h \
- $(NULL)
+IGNORE_HFILES= gcr-xxx.h
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
-HTML_IMAGES=\
- $(NULL)
+HTML_IMAGES=
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files=\
- $(NULL)
+content_files=
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
@@ -73,24 +76,24 @@
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
-# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
-INCLUDES=\
- -I$(top_srcdir) \
- -I$(top_builddir) \
- $(GOBJECT_CFLAGS) \
- $(NULL)
-GTKDOC_LIBS=\
- $(top_builddir)/gp11/libgp11.la \
- $(GOBJECT_LIBS) \
- $(NULL)
-
-# gtk-doc has warnings
-CFLAGS += "-Wno-error"
+GTKDOC_CFLAGS= -I$(top_srcdir) -I$(top_builddir) $(GOBJECT_CFLAGS) -Wno-error
+GTKDOC_LIBS= $(GOBJECT_LIBS) $(top_srcdir)/$(DOC_MODULE)/lib$(DOC_MODULE).la
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
-EXTRA_DIST +=
+EXTRA_DIST +=
+
+# Files not to distribute
+# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
+# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
+#DISTCLEANFILES +=
+
+# Comment this out if you want your docs-status tested during 'make check'
+#TESTS_ENVIRONMENT = cd $(srcsrc)
+#TESTS = $(GTKDOC_CHECK)
+
Added: trunk/docs/reference/gcr/gcr-docs.sgml
==============================================================================
--- (empty file)
+++ trunk/docs/reference/gcr/gcr-docs.sgml Tue Mar 17 02:53:59 2009
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+ <bookinfo>
+ <title>gcr Reference Manual</title>
+ <releaseinfo>
+ for gcr [VERSION]
+ The latest version of this documentation can be found on-line at
+ <ulink role="online-location" url="http://[SERVER]/gcr/index.html">http://[SERVER]/gcr/</ulink>.
+ </releaseinfo>
+ </bookinfo>
+
+ <chapter>
+ <title>[Insert title here]</title>
+ <xi:include href="xml/gcr-import-dialog.xml"/>
+ <xi:include href="xml/gcr-certificate-details-widget.xml"/>
+ <xi:include href="xml/gcr-certificate-basics-widget.xml"/>
+ <xi:include href="xml/gcr-parser.xml"/>
+ <xi:include href="xml/gcr-certificate.xml"/>
+ <xi:include href="xml/gcr-initializer.xml"/>
+ <xi:include href="xml/gcr-importer.xml"/>
+ <xi:include href="xml/gcr-simple-certificate.xml"/>
+ <xi:include href="xml/gcr-xxx.xml"/>
+ <xi:include href="xml/gcr-types.xml"/>
+ </chapter>
+</book>
Added: trunk/docs/reference/gcr/gcr-sections.txt
==============================================================================
--- (empty file)
+++ trunk/docs/reference/gcr/gcr-sections.txt Tue Mar 17 02:53:59 2009
@@ -0,0 +1,204 @@
+<SECTION>
+<FILE>gcr-import-dialog</FILE>
+GcrImportDialogPrivate
+<TITLE>GcrImportDialog</TITLE>
+GcrImportDialog
+<SUBSECTION Standard>
+GCR_IMPORT_DIALOG
+GCR_IS_IMPORT_DIALOG
+GCR_TYPE_IMPORT_DIALOG
+GCR_IMPORT_DIALOG_CLASS
+GCR_IS_IMPORT_DIALOG_CLASS
+GCR_IMPORT_DIALOG_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gcr-certificate-details-widget</FILE>
+GcrCertificateDetailsWidgetPrivate
+<TITLE>GcrCertificateDetailsWidget</TITLE>
+GcrCertificateDetailsWidget
+gcr_certificate_details_widget_new
+gcr_certificate_details_widget_get_certificate
+gcr_certificate_details_widget_set_certificate
+<SUBSECTION Standard>
+GCR_CERTIFICATE_DETAILS_WIDGET
+GCR_IS_CERTIFICATE_DETAILS_WIDGET
+GCR_TYPE_CERTIFICATE_DETAILS_WIDGET
+gcr_certificate_details_widget_get_type
+GCR_CERTIFICATE_DETAILS_WIDGET_CLASS
+GCR_IS_CERTIFICATE_DETAILS_WIDGET_CLASS
+GCR_CERTIFICATE_DETAILS_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gcr-certificate-basics-widget</FILE>
+GcrCertificateBasicsWidgetPrivate
+<TITLE>GcrCertificateBasicsWidget</TITLE>
+GcrCertificateBasicsWidget
+gcr_certificate_basics_widget_new
+gcr_certificate_basics_widget_get_certificate
+gcr_certificate_basics_widget_set_certificate
+<SUBSECTION Standard>
+GCR_CERTIFICATE_BASICS_WIDGET
+GCR_IS_CERTIFICATE_BASICS_WIDGET
+GCR_TYPE_CERTIFICATE_BASICS_WIDGET
+gcr_certificate_basics_widget_get_type
+GCR_CERTIFICATE_BASICS_WIDGET_CLASS
+GCR_IS_CERTIFICATE_BASICS_WIDGET_CLASS
+GCR_CERTIFICATE_BASICS_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gcr-parser</FILE>
+GcrParsedItem
+GcrParserPrivate
+<TITLE>GcrParser</TITLE>
+GcrParser
+gcr_parser_new
+gcr_parser_format_enable
+gcr_parser_format_disable
+gcr_parser_format_supported
+gcr_parser_parse_data
+gcr_parser_add_password
+gcr_parser_get_parsed_label
+gcr_parser_get_parsed_description
+gcr_parser_get_parsed_attributes
+<SUBSECTION Standard>
+GCR_PARSER
+GCR_IS_PARSER
+GCR_TYPE_PARSER
+gcr_parser_get_type
+GCR_PARSER_CLASS
+GCR_IS_PARSER_CLASS
+GCR_PARSER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gcr-certificate</FILE>
+GCR_CERTIFICATE_GET_INTERFACE
+GcrCertificate
+GcrCertificateIface
+gcr_certificate_get_der_data
+gcr_certificate_get_issuer_cn
+gcr_certificate_get_issuer_dn
+gcr_certificate_get_issuer_part
+gcr_certificate_get_subject_cn
+gcr_certificate_get_subject_dn
+gcr_certificate_get_subject_part
+gcr_certificate_get_issued_date
+gcr_certificate_get_expiry_date
+gcr_certificate_get_serial_number
+gcr_certificate_get_serial_number_hex
+gcr_certificate_get_key_size
+gcr_certificate_get_fingerprint
+gcr_certificate_get_fingerprint_hex
+<SUBSECTION Standard>
+GCR_CERTIFICATE
+GCR_IS_CERTIFICATE
+GCR_TYPE_CERTIFICATE
+gcr_certificate_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gcr-initializer</FILE>
+GcrTokenManagerPrivate
+<TITLE>GcrTokenManager</TITLE>
+GcrTokenManager
+gcr_token_manager_new
+gcr_token_manager_get_slot
+gcr_token_manager_initialize
+gcr_token_manager_initialize_async
+gcr_token_manager_initialize_finish
+gcr_token_manager_change_pin
+gcr_token_manager_change_pin_async
+gcr_token_manager_change_pin_finish
+<SUBSECTION Standard>
+GCR_TOKEN_MANAGER
+GCR_IS_TOKEN_MANAGER
+GCR_TYPE_TOKEN_MANAGER
+gcr_token_manager_get_type
+GCR_TOKEN_MANAGER_CLASS
+GCR_IS_TOKEN_MANAGER_CLASS
+GCR_TOKEN_MANAGER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gcr-importer</FILE>
+GcrImporterPromptBehavior
+GcrImporterPrivate
+<TITLE>GcrImporter</TITLE>
+GcrImporter
+gcr_importer_new
+gcr_importer_get_parser
+gcr_importer_set_parser
+gcr_importer_get_slot
+gcr_importer_set_slot
+gcr_importer_get_prompt_behavior
+gcr_importer_set_prompt_behavior
+gcr_importer_import
+gcr_importer_import_async
+gcr_importer_import_finish
+<SUBSECTION Standard>
+GCR_IMPORTER
+GCR_IS_IMPORTER
+GCR_TYPE_IMPORTER
+gcr_importer_get_type
+GCR_IMPORTER_CLASS
+GCR_IS_IMPORTER_CLASS
+GCR_IMPORTER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gcr-simple-certificate</FILE>
+GcrSimpleCertificatePrivate
+<TITLE>GcrSimpleCertificate</TITLE>
+GcrSimpleCertificate
+gcr_simple_certificate_new
+<SUBSECTION Standard>
+GCR_SIMPLE_CERTIFICATE
+GCR_IS_SIMPLE_CERTIFICATE
+GCR_TYPE_SIMPLE_CERTIFICATE
+gcr_simple_certificate_get_type
+GCR_SIMPLE_CERTIFICATE_CLASS
+GCR_IS_SIMPLE_CERTIFICATE_CLASS
+GCR_SIMPLE_CERTIFICATE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gcr-xxx</FILE>
+GcrXxxPrivate
+<TITLE>GcrXxx</TITLE>
+GcrXxx
+gcr_xxx_new
+<SUBSECTION Standard>
+GCR_XXX
+GCR_IS_XXX
+GCR_TYPE_XXX
+gcr_xxx_get_type
+GCR_XXX_CLASS
+GCR_IS_XXX_CLASS
+GCR_XXX_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gcr-marshal</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>gcr-internal</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>gcr</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>gcr-types</FILE>
+GCR_DATA_ERROR
+gcr_data_error_get_domain
+</SECTION>
+
+<SECTION>
+<FILE>run-auto-test</FILE>
+</SECTION>
+
Added: trunk/docs/reference/gcr/gcr.types
==============================================================================
--- (empty file)
+++ trunk/docs/reference/gcr/gcr.types Tue Mar 17 02:53:59 2009
@@ -0,0 +1,6 @@
+gcr_certificate_details_widget_get_type
+gcr_certificate_basics_widget_get_type
+gcr_parser_get_type
+gcr_certificate_get_type
+gcr_importer_get_type
+gcr_simple_certificate_get_type
Added: trunk/docs/reference/gnome-keyring/.gitignore
==============================================================================
--- (empty file)
+++ trunk/docs/reference/gnome-keyring/.gitignore Tue Mar 17 02:53:59 2009
@@ -0,0 +1,27 @@
+Makefile
+Makefile.in
+.libs
+
+# Directories created by gtk-doc
+tmpl
+html
+xml
+
+# Files generated by gtk-doc
+*.stamp
+
+# Reports generated by gtk-doc
+*-undeclared.txt
+*-undocumented.txt
+*-unused.txt
+
+# Commit these files if you edit them
+*-decl-list.txt
+*-decl.txt
+*-overrides.txt
+*.args
+*.hierarchy
+*.interfaces
+*.prerequisites
+*.signals
+
Copied: trunk/docs/reference/gnome-keyring/Makefile.am (from r1689, /trunk/library/reference/Makefile.am)
==============================================================================
--- /trunk/library/reference/Makefile.am (original)
+++ trunk/docs/reference/gnome-keyring/Makefile.am Tue Mar 17 02:53:59 2009
@@ -1,9 +1,7 @@
## Process this file with automake to produce Makefile.in
-NULL=
-all-recursive: all
-
-# all: tmpl.stamp
+# We require automake 1.6 at least.
+AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
@@ -13,6 +11,10 @@
# The name of the module, e.g. 'glib'.
DOC_MODULE=gnome-keyring
+# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
+#DOC_MODULE_VERSION=2
+
+
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
@@ -20,13 +22,13 @@
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk
-DOC_SOURCE_DIR=../
+DOC_SOURCE_DIR=../../../library
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS=--type-init-func="g_type_init()"
+SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
-# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=
# Extra options to supply to gtkdoc-mkdb.
@@ -37,6 +39,9 @@
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
+# Extra options to supply to gtkdoc-mkhtml
+MKHTML_OPTIONS=
+
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
@@ -47,22 +52,21 @@
HFILE_GLOB=$(top_srcdir)/library/*.h
CFILE_GLOB=$(top_srcdir)/library/*.c
-# Header files to ignore when scanning.
+# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
+# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
+EXTRA_HFILES=
+
+# Header files to ignore when scanning. Use base file name, no paths
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
-IGNORE_HFILES=\
- gnome-keyring-private.h \
- gnome-keyring-proto.h \
- $(NULL)
+IGNORE_HFILES=
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
-HTML_IMAGES=\
- $(NULL)
+HTML_IMAGES=
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files=\
- $(NULL)
+content_files=
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
@@ -72,21 +76,24 @@
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
-# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
-INCLUDES=\
- -I$(top_srcdir) \
- -I$(top_builddir) \
- $(GOBJECT_CFLAGS) \
- $(NULL)
-GTKDOC_LIBS=\
- $(top_builddir)/libgnome-keyring.la \
- $(GOBJECT_LIBS) \
- $(NULL)
+GTKDOC_CFLAGS= -I$(top_srcdir) -I$(top_builddir) $(GOBJECT_CFLAGS) -Wno-error
+GTKDOC_LIBS= $(GOBJECT_LIBS) $(top_srcdir)/library/libgnome-keyring.la
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
-EXTRA_DIST +=
+EXTRA_DIST +=
+
+# Files not to distribute
+# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
+# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
+#DISTCLEANFILES +=
+
+# Comment this out if you want your docs-status tested during 'make check'
+#TESTS_ENVIRONMENT = cd $(srcsrc)
+#TESTS = $(GTKDOC_CHECK)
+
Copied: trunk/docs/reference/gnome-keyring/gnome-keyring-docs.sgml (from r1689, /trunk/library/reference/gnome-keyring-docs.sgml)
==============================================================================
Copied: trunk/docs/reference/gnome-keyring/gnome-keyring-sections.txt (from r1689, /trunk/library/reference/gnome-keyring-sections.txt)
==============================================================================
--- /trunk/library/reference/gnome-keyring-sections.txt (original)
+++ trunk/docs/reference/gnome-keyring/gnome-keyring-sections.txt Tue Mar 17 02:53:59 2009
@@ -180,4 +180,4 @@
GnomeKeyringOperationGetIntCallback
GnomeKeyringOperationGetListCallback
GnomeKeyringOperationGetStringCallback
-</SECTION>
\ No newline at end of file
+</SECTION>
Copied: trunk/docs/reference/gnome-keyring/gnome-keyring.types (from r1689, /trunk/library/reference/gnome-keyring-undeclared.txt)
==============================================================================
Added: trunk/docs/reference/gp11/.gitignore
==============================================================================
--- (empty file)
+++ trunk/docs/reference/gp11/.gitignore Tue Mar 17 02:53:59 2009
@@ -0,0 +1,27 @@
+Makefile
+Makefile.in
+.libs
+
+# Directories created by gtk-doc
+tmpl
+html
+xml
+
+# Files generated by gtk-doc
+*.stamp
+
+# Reports generated by gtk-doc
+*-undeclared.txt
+*-undocumented.txt
+*-unused.txt
+
+# Commit these files if you edit them
+*-decl-list.txt
+*-decl.txt
+*-overrides.txt
+*.args
+*.hierarchy
+*.interfaces
+*.prerequisites
+*.signals
+
Copied: trunk/docs/reference/gp11/Makefile.am (from r1689, /trunk/gp11/reference/Makefile.am)
==============================================================================
--- /trunk/gp11/reference/Makefile.am (original)
+++ trunk/docs/reference/gp11/Makefile.am Tue Mar 17 02:53:59 2009
@@ -1,9 +1,7 @@
## Process this file with automake to produce Makefile.in
-NULL=
-all-recursive: all
-
-# all: tmpl.stamp
+# We require automake 1.6 at least.
+AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
@@ -13,6 +11,10 @@
# The name of the module, e.g. 'glib'.
DOC_MODULE=gp11
+# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
+#DOC_MODULE_VERSION=2
+
+
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
@@ -20,13 +22,13 @@
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk
-DOC_SOURCE_DIR=../
+DOC_SOURCE_DIR=../../../gp11
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS=--type-init-func="g_type_init()"
+SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
-# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=
# Extra options to supply to gtkdoc-mkdb.
@@ -37,6 +39,9 @@
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
+# Extra options to supply to gtkdoc-mkhtml
+MKHTML_OPTIONS=
+
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
@@ -44,26 +49,24 @@
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
-HFILE_GLOB=$(top_srcdir)/gp11/*.h
-CFILE_GLOB=$(top_srcdir)/gp11/*.c
+HFILE_GLOB=$(top_srcdir)/$(DOC_MODULE)/*.h
+CFILE_GLOB=$(top_srcdir)/$(DOC_MODULE)/*.c
-# Header files to ignore when scanning.
+# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
+# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
+EXTRA_HFILES=
+
+# Header files to ignore when scanning. Use base file name, no paths
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
-IGNORE_HFILES=\
- gp11-private.h \
- gp11-marshal.h \
- pkcs11.h \
- $(NULL)
+IGNORE_HFILES=
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
-HTML_IMAGES=\
- $(NULL)
+HTML_IMAGES=
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files=\
- $(NULL)
+content_files=
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
@@ -73,24 +76,24 @@
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
-# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
-INCLUDES=\
- -I$(top_srcdir) \
- -I$(top_builddir) \
- $(GOBJECT_CFLAGS) \
- $(NULL)
-GTKDOC_LIBS=\
- $(top_builddir)/gp11/libgp11.la \
- $(GOBJECT_LIBS) \
- $(NULL)
-
-# gtk-doc has warnings
-CFLAGS += "-Wno-error"
+GTKDOC_CFLAGS= -I$(top_srcdir) -I$(top_builddir) $(GOBJECT_CFLAGS) -Wno-error
+GTKDOC_LIBS= $(GOBJECT_LIBS) $(top_srcdir)/$(DOC_MODULE)/lib$(DOC_MODULE).la
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
-EXTRA_DIST +=
+EXTRA_DIST +=
+
+# Files not to distribute
+# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
+# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
+#DISTCLEANFILES +=
+
+# Comment this out if you want your docs-status tested during 'make check'
+#TESTS_ENVIRONMENT = cd $(srcsrc)
+#TESTS = $(GTKDOC_CHECK)
+
Added: trunk/docs/reference/gp11/gp11-docs.sgml
==============================================================================
--- (empty file)
+++ trunk/docs/reference/gp11/gp11-docs.sgml Tue Mar 17 02:53:59 2009
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+ <bookinfo>
+ <title>GP11 Reference Manual</title>
+ <releaseinfo>
+ For GP11
+ The latest version of this documentation can be found on-line at
+ <ulink role="online-location" url="http://library.gnome.org/devel/gp11/unstable/">http://library.gnome.org/devel/gp11/unstable/</ulink>.
+ </releaseinfo>
+ </bookinfo>
+
+ <chapter>
+ <title>PKCS#11 GObject Bindings</title>
+ <xi:include href="xml/gp11-module.xml"/>
+ <xi:include href="xml/gp11-slot.xml"/>
+ <xi:include href="xml/gp11-session.xml"/>
+ <xi:include href="xml/gp11-object.xml"/>
+ <xi:include href="xml/gp11-attribute.xml"/>
+ <xi:include href="xml/gp11-attributes.xml"/>
+ <xi:include href="xml/gp11-error.xml"/>
+ <xi:include href="xml/gp11-misc.xml"/>
+ </chapter>
+</book>
Added: trunk/docs/reference/gp11/gp11-sections.txt
==============================================================================
--- (empty file)
+++ trunk/docs/reference/gp11/gp11-sections.txt Tue Mar 17 02:53:59 2009
@@ -0,0 +1,195 @@
+<SECTION>
+<FILE>gp11-attribute</FILE>
+GP11Attribute
+gp11_attribute_init
+gp11_attribute_init_invalid
+gp11_attribute_init_empty
+gp11_attribute_init_boolean
+gp11_attribute_init_date
+gp11_attribute_init_ulong
+gp11_attribute_init_string
+gp11_attribute_init_copy
+gp11_attribute_new
+gp11_attribute_new_invalid
+gp11_attribute_new_empty
+gp11_attribute_new_boolean
+gp11_attribute_new_date
+gp11_attribute_new_ulong
+gp11_attribute_new_string
+gp11_attribute_is_invalid
+gp11_attribute_get_boolean
+gp11_attribute_get_ulong
+gp11_attribute_get_string
+gp11_attribute_get_date
+gp11_attribute_dup
+gp11_attribute_clear
+gp11_attribute_free
+</SECTION>
+
+<SECTION>
+<FILE>gp11-attributes</FILE>
+GP11Attributes
+GP11_TYPE_ATTRIBUTES
+gp11_attributes_new
+gp11_attributes_new_empty
+gp11_attributes_newv
+gp11_attributes_at
+gp11_attributes_add
+gp11_attributes_add_data
+gp11_attributes_add_invalid
+gp11_attributes_add_empty
+gp11_attributes_add_boolean
+gp11_attributes_add_string
+gp11_attributes_add_date
+gp11_attributes_add_ulong
+gp11_attributes_find
+gp11_attributes_find_boolean
+gp11_attributes_find_ulong
+gp11_attributes_find_string
+gp11_attributes_find_date
+gp11_attributes_count
+gp11_attributes_ref
+gp11_attributes_unref
+GP11Allocator
+GP11_BOOLEAN
+GP11_ULONG
+GP11_STRING
+GP11_DATE
+GP11_INVALID
+</SECTION>
+
+<SECTION>
+<FILE>gp11-module</FILE>
+GP11Module
+gp11_module_new
+gp11_module_initialize
+gp11_module_equal
+gp11_module_hash
+gp11_module_get_path
+gp11_module_get_functions
+gp11_module_get_info
+gp11_module_get_slots
+gp11_module_get_pool_sessions
+gp11_module_set_pool_sessions
+gp11_module_get_auto_authenticate
+gp11_module_set_auto_authenticate
+gp11_module_enumerate_objects
+GP11ObjectForeachFunc
+GP11ModuleInfo
+gp11_module_info_free
+</SECTION>
+
+<SECTION>
+<FILE>gp11-slot</FILE>
+GP11MechanismInfo
+gp11_mechanism_info_free
+GP11Mechanisms
+gp11_mechanisms_length
+gp11_mechanisms_at
+gp11_mechanisms_free
+gp11_mechanisms_check
+GP11Slot
+gp11_slot_equal
+gp11_slot_hash
+gp11_slot_get_module
+gp11_slot_get_handle
+gp11_slot_get_info
+gp11_slot_get_token_info
+gp11_slot_get_mechanisms
+gp11_slot_get_mechanism_info
+gp11_slot_has_flags
+gp11_slot_open_session
+gp11_slot_open_session_full
+gp11_slot_open_session_async
+gp11_slot_open_session_finish
+GP11SlotInfo
+gp11_slot_info_free
+GP11TokenInfo
+gp11_token_info_free
+</SECTION>
+
+<SECTION>
+<FILE>gp11-session</FILE>
+GP11Session
+gp11_session_from_handle
+gp11_session_get_module
+gp11_session_get_slot
+gp11_session_get_handle
+gp11_session_get_info
+gp11_session_login
+gp11_session_login_full
+gp11_session_login_async
+gp11_session_login_finish
+gp11_session_logout
+gp11_session_logout_full
+gp11_session_logout_async
+gp11_session_logout_finish
+gp11_session_create_object
+gp11_session_create_object_async
+gp11_session_create_object_finish
+gp11_session_find_objects
+gp11_session_find_objects_async
+gp11_session_find_objects_finish
+gp11_session_encrypt
+gp11_session_encrypt_full
+gp11_session_encrypt_async
+gp11_session_encrypt_finish
+gp11_session_decrypt
+gp11_session_decrypt_full
+gp11_session_decrypt_async
+gp11_session_decrypt_finish
+gp11_session_sign
+gp11_session_sign_full
+gp11_session_sign_async
+gp11_session_sign_finish
+gp11_session_verify
+gp11_session_verify_full
+gp11_session_verify_async
+gp11_session_verify_finish
+GP11SessionInfo
+gp11_session_info_free
+GP11Mechanism
+</SECTION>
+
+<SECTION>
+<FILE>gp11-object</FILE>
+GP11Object
+gp11_object_from_handle
+gp11_objects_from_handle_array
+gp11_object_equal
+gp11_object_hash
+gp11_object_get_module
+gp11_object_get_slot
+gp11_object_get_handle
+gp11_object_get_session
+gp11_object_set_session
+gp11_object_destroy
+gp11_object_destroy_full
+gp11_object_destroy_async
+gp11_object_destroy_finish
+gp11_object_set
+gp11_object_set_async
+gp11_object_set_finish
+gp11_object_get
+gp11_object_get_async
+gp11_object_get_finish
+gp11_object_get_data
+gp11_object_get_data_full
+gp11_object_get_data_async
+gp11_object_get_data_finish
+</SECTION>
+
+<SECTION>
+<FILE>gp11-error</FILE>
+GP11_VENDOR_CODE
+GP11_ERROR
+gp11_message_from_rv
+CKR_GP11_MODULE_PROBLEM
+</SECTION>
+
+<SECTION>
+<FILE>gp11-misc</FILE>
+gp11_list_ref_copy
+gp11_list_unref_free
+gp11_string_from_chars
+</SECTION>
Copied: trunk/docs/reference/gp11/gp11.types (from r1689, /trunk/gp11/reference/gp11.types)
==============================================================================
Modified: trunk/gp11/Makefile.am
==============================================================================
--- trunk/gp11/Makefile.am (original)
+++ trunk/gp11/Makefile.am Tue Mar 17 02:53:59 2009
@@ -63,6 +63,5 @@
endif
SUBDIRS = . \
- reference \
$(TESTS_DIR)
\ No newline at end of file
Modified: trunk/gp11/gp11-attributes.c
==============================================================================
--- trunk/gp11/gp11-attributes.c (original)
+++ trunk/gp11/gp11-attributes.c Tue Mar 17 02:53:59 2009
@@ -29,6 +29,24 @@
#include <stdlib.h>
#include <string.h>
+/**
+ * SECTION:gp11-attribute
+ * @title: GP11Attribute
+ * @short_description: A PKCS11 attribute.
+ *
+ * This structure represents a PKCS11 CK_ATTRIBUTE. These attributes contain information
+ * about a PKCS11 object. Use gp11_object_get() or gp11_object_set() to set and retrieve
+ * attributes on an object.
+ */
+
+/**
+ * GP11Attribute:
+ * @type: The attribute type, such as CKA_LABEL.
+ * @value: The value of the attribute. May be NULL.
+ * @length: The length of the attribute. May be G_MAXULONG if the attribute is invalid.
+ *
+ * This structure represents a PKCS11 CK_ATTRIBUTE.
+ */
static void
attribute_init (GP11Attribute *attr, gulong attr_type,
@@ -611,6 +629,21 @@
}
}
+/**
+ * SECTION:gp11-attributes
+ * @title: GP11Attributes
+ * @short_description: A set of PKCS11 attributes.
+ *
+ * A set of GP11Attribute structures. These attributes contain information
+ * about a PKCS11 object. Use gp11_object_get() or gp11_object_set() to set and retrieve
+ * attributes on an object.
+ */
+
+/**
+ * GP11Attributes:
+ *
+ * A set of GP11Attribute structures.
+ */
struct _GP11Attributes {
GArray *array;
GP11Allocator allocator;
@@ -619,6 +652,49 @@
};
/**
+ * GP11_BOOLEAN:
+ * The attribute data is a gboolean. Used with variable argument functions.
+ */
+
+/**
+ * GP11_ULONG:
+ * The attribute data is a gulong. Used with variable argument functions.
+ */
+
+/**
+ * GP11_STRING:
+ * The attribute data is a gchar. Used with variable argument functions.
+ */
+
+/**
+ * GP11_DATE:
+ * The attribute data is a GDate. Used with variable argument functions.
+ */
+
+/**
+ * GP11_DATE:
+ * Signifies that no more attributes follow. Used with variable argument functions.
+ */
+
+/**
+ * GP11_ATTRIBUTES_TYPE:
+ *
+ * A boxed type that can be used to hold a GP11Attributes object.
+ */
+
+/**
+ * GP11Allocator:
+ * @data: Memory to allocate or deallocate.
+ * @length: New length of memory.
+ *
+ * An allocator used to allocate data for the attributes in this GP11Attributes set.
+ *
+ * This is a function that acts like g_realloc. Specifically it frees when length is
+ * set to zero, it allocates when data is set to NULL, and it reallocates when both
+ * are valid.
+ */
+
+/**
* gp11_attributes_get_boxed_type:
*
* Get the boxed type representing a GP11Attributes array.
Modified: trunk/gp11/gp11-misc.c
==============================================================================
--- trunk/gp11/gp11-misc.c (original)
+++ trunk/gp11/gp11-misc.c Tue Mar 17 02:53:59 2009
@@ -29,11 +29,34 @@
#include <glib/gi18n.h>
/**
- * gp11_get_error_quark:
+ * SECTION:gp11-error
+ * @title: Errors
+ * @short_description: GP11 Errors and error codes.
*
- * The error domain for GP11 library errors.
+ * GP11 errors are returned as GError structures. The code member of GError
+ * contains the raw PKCS11 CK_RV result value.
+ */
+
+/**
+ * GP11_VENDOR_CODE:
+ *
+ * Custom PKCS11 errors that originate from the GP11 library, are
+ * based at this error code.
+ */
+
+/**
+ * CKR_GP11_MODULE_PROBLEM:
+ *
+ * A result code that signifies there was a problem loading a PKCS11
+ * module, usually a shared library.
+ *
+ * More details can be found in the error string.
+ */
+
+/**
+ * GP11_ERROR:
*
- * Return value: The error domain.
+ * The error domain for GP11 library errors.
*/
GQuark
gp11_get_error_quark (void)
@@ -50,45 +73,6 @@
}
/**
- * gp11_list_unref_free:
- * reflist: List of Gobject reference counted pointers.
- *
- * Free a list of GObject based pointers. All objects in the list
- * will be unreffed and then the list itself will be freed.
- */
-void
-gp11_list_unref_free (GList *reflist)
-{
- GList *l;
- for (l = reflist; l; l = g_list_next (l)) {
- g_return_if_fail (G_IS_OBJECT (l->data));
- g_object_unref (l->data);
- }
- g_list_free (reflist);
-}
-
-/**
- * gp11_list_ref_copy:
- * reflist: List of GObject reference counted objects.
- *
- * Copy a list of GObject based pointers. All objects
- * in the list will be reffed and the list will be copied.
- *
- * Return value: The copied and reffed list. When done, free it with
- * gp11_list_unref_free ()
- */
-GList*
-gp11_list_ref_copy (GList *reflist)
-{
- GList *l, *copy = g_list_copy (reflist);
- for (l = copy; l; l = g_list_next (l)) {
- g_return_val_if_fail (G_IS_OBJECT (l->data), NULL);
- g_object_ref (l->data);
- }
- return copy;
-}
-
-/**
* gp11_message_from_rv:
* rv: The PKCS#11 return value to get a message for.
*
@@ -279,7 +263,55 @@
}
/**
- * gp11_string_form_chars:
+ * SECTION:gp11-misc
+ * @title: Miscellaneous Functions
+ * @short_description: Other miscellaneous functions.
+ *
+ * A few supporting functions that come in handy when dealing with the GP11
+ * library or PKCS11 in general.
+ */
+
+/**
+ * gp11_list_unref_free:
+ * reflist: List of Gobject reference counted pointers.
+ *
+ * Free a list of GObject based pointers. All objects in the list
+ * will be unreffed and then the list itself will be freed.
+ */
+void
+gp11_list_unref_free (GList *reflist)
+{
+ GList *l;
+ for (l = reflist; l; l = g_list_next (l)) {
+ g_return_if_fail (G_IS_OBJECT (l->data));
+ g_object_unref (l->data);
+ }
+ g_list_free (reflist);
+}
+
+/**
+ * gp11_list_ref_copy:
+ * reflist: List of GObject reference counted objects.
+ *
+ * Copy a list of GObject based pointers. All objects
+ * in the list will be reffed and the list will be copied.
+ *
+ * Return value: The copied and reffed list. When done, free it with
+ * gp11_list_unref_free ()
+ */
+GList*
+gp11_list_ref_copy (GList *reflist)
+{
+ GList *l, *copy = g_list_copy (reflist);
+ for (l = copy; l; l = g_list_next (l)) {
+ g_return_val_if_fail (G_IS_OBJECT (l->data), NULL);
+ g_object_ref (l->data);
+ }
+ return copy;
+}
+
+/**
+ * gp11_string_from_chars:
* @data: The character data to turn into a null terminated string.
* @max: The maximum length of the charater data.
*
Modified: trunk/gp11/gp11-module.c
==============================================================================
--- trunk/gp11/gp11-module.c (original)
+++ trunk/gp11/gp11-module.c Tue Mar 17 02:53:59 2009
@@ -29,6 +29,42 @@
#include <string.h>
+/**
+ * SECTION:gp11-module
+ * @title: GP11Module
+ * @short_description: A loaded and initialized PKCS#11 module.
+ *
+ * A GP11Module object holds a loaded PKCS#11 module. A PKCS#11 module is a shared library.
+ *
+ * You can load and initialize a PKCS#11 module with the gp11_module_initialize() call. If you already
+ * have a loaded and initialized module that you'd like to use with the various GP11 functions, then
+ * you can use gp11_module_new().
+ */
+
+/**
+ * GP11Module:
+ *
+ * Holds a loaded and initialized PKCS#11 module.
+ */
+
+/**
+ * GP11ModuleInfo:
+ * @pkcs11_version_major: The major version of the module.
+ * @pkcs11_version_minor: The minor version of the module.
+ * @manufacturer_id: The module manufacturer.
+ * @flags: The module PKCS#11 flags.
+ * @library_description: The module description.
+ * @library_version_major: The major version of the library.
+ * @library_version_minor: The minor version of the library.
+ *
+ * Holds information about the PKCS#11 module.
+ *
+ * This structure corresponds to CK_MODULE_INFO in the PKCS#11 standard. The
+ * strings are NULL terminated for easier use.
+ *
+ * Use gp11_module_info_free() to release this structure when done with it.
+ */
+
/*
* MT safe
*
@@ -543,27 +579,84 @@
klass->authenticate_object = gp11_module_real_authenticate_object;
klass->authenticate_slot = gp11_module_real_authenticate_slot;
+ /**
+ * GP11Module:path:
+ *
+ * The PKCS#11 module file path.
+ *
+ * This may be set to NULL if this object was created from an already
+ * initialized module via the gp11_module_new() function.
+ */
g_object_class_install_property (gobject_class, PROP_PATH,
g_param_spec_string ("path", "Module Path", "Path to the PKCS11 Module",
NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Module:functions:
+ *
+ * The raw PKCS#11 function list for the module.
+ *
+ * This points to a CK_FUNCTION_LIST structure.
+ */
g_object_class_install_property (gobject_class, PROP_FUNCTIONS,
g_param_spec_pointer ("functions", "Function List", "PKCS11 Function List",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Module:auto-authenticate:
+ *
+ * Whether or not to automatically authenticate token objects that need
+ * a C_Login call before they can be used.
+ *
+ * The #GP11Module::authenticate-object signal will be fired when an
+ * object needs to be authenticated.
+ */
g_object_class_install_property (gobject_class, PROP_AUTO_AUTHENTICATE,
g_param_spec_int ("auto-authenticate", "Auto Authenticate", "Auto Login to Token when necessary",
0, G_MAXINT, 0, G_PARAM_READWRITE));
+ /**
+ * GP11Module:pool-sessions:
+ *
+ * Whether or not to pool PKCS#11 sessions. When this is set, sessions
+ * will be pooled and reused if their flags match when gp11_slot_open_session()
+ * is called.
+ */
g_object_class_install_property (gobject_class, PROP_POOL_SESSIONS,
g_param_spec_boolean ("pool-sessions", "Pool Sessions", "Pool sessions?",
FALSE, G_PARAM_READWRITE));
-
+
+ /**
+ * GP11Module::authenticate-slot:
+ * @module: The module
+ * @slot: The slot to be authenticated.
+ * @string: A displayable label which describes the object.
+ * @password: A gchar** where a password should be returned.
+ *
+ * This signal is emitted when a password is needed to authenticate a PKCS#11
+ * slot. If the module prompts for passwords itself, then this signal will
+ * not be emitted.
+ *
+ * Returns: FALSE if the user cancelled, TRUE if we should proceed.
+ */
signals[AUTHENTICATE_SLOT] = g_signal_new ("authenticate-slot", GP11_TYPE_MODULE,
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GP11ModuleClass, authenticate_slot),
g_signal_accumulator_true_handled, NULL, _gp11_marshal_BOOLEAN__OBJECT_STRING_POINTER,
G_TYPE_BOOLEAN, 3, GP11_TYPE_SLOT, G_TYPE_STRING, G_TYPE_POINTER);
+ /**
+ * GP11Module::authenticate-object:
+ * @module: The module.
+ * @object: The object to be authenticated.
+ * @label: A displayable label which describes the object.
+ * @password: A gchar** where a password should be returned.
+ *
+ * This signal is emitted when a password is needed to authenticate a PKCS#11
+ * object like a key. If the module prompts for passwords itself, then this signal will
+ * not be emitted.
+ *
+ * Returns: FALSE if the user cancelled, TRUE if we should proceed.
+ */
signals[AUTHENTICATE_OBJECT] = g_signal_new ("authenticate-object", GP11_TYPE_MODULE,
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GP11ModuleClass, authenticate_object),
g_signal_accumulator_true_handled, NULL, _gp11_marshal_BOOLEAN__OBJECT_STRING_POINTER,
@@ -1120,3 +1213,16 @@
return ret;
}
+/**
+ * GP11ObjectForeachFunc:
+ * @object: The enumerated object.
+ * @user_data: Data passed to enumerate function.
+ *
+ * This function is passed to gp11_module_enumerate_objects() or a similar function.
+ * It is called once for each object matched.
+ *
+ * The GP11Session through which the object is accessible can be retrieved by calling
+ * gp11_object_get_session() on object.
+ *
+ * Returns: TRUE to continue enumerating, FALSE to stop.
+ */
Modified: trunk/gp11/gp11-object.c
==============================================================================
--- trunk/gp11/gp11-object.c (original)
+++ trunk/gp11/gp11-object.c Tue Mar 17 02:53:59 2009
@@ -28,6 +28,21 @@
#include <string.h>
+/**
+ * SECTION:gp11-object
+ * @title: GP11Object
+ * @short_description: Represents a PKCS11 object such as a key or certificate.
+ *
+ * A GP11Object holds a handle to a PKCS11 object such as a key or certificate. Token objects
+ * are stored on the token persistently. Others are transient and are called session objects.
+ */
+
+/**
+ * GP11Object:
+ *
+ * Represents a PKCS11 object handle such as a key or certifiacte.
+ */
+
/*
* MT safe -- Nothing in GP11ObjectData changes between
* init and finalize. All GP11ObjectPrivate access between init
@@ -235,18 +250,45 @@
gobject_class->set_property = gp11_object_set_property;
gobject_class->finalize = gp11_object_finalize;
+ /**
+ * GP11Object:module:
+ *
+ * The GP11Module that this object belongs to.
+ */
g_object_class_install_property (gobject_class, PROP_MODULE,
g_param_spec_object ("module", "Module", "PKCS11 Module",
GP11_TYPE_MODULE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Object:slot:
+ *
+ * The GP11Slot that this object belongs to.
+ *
+ * If this is a token object then it will be stored on the token in this slot.
+ * If this is a session object, then it belongs to a session opened on this slot.
+ */
g_object_class_install_property (gobject_class, PROP_SLOT,
g_param_spec_object ("slot", "slot", "PKCS11 Slot",
GP11_TYPE_SLOT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Object:handle:
+ *
+ * The raw PKCS11 handle for this object.
+ */
g_object_class_install_property (gobject_class, PROP_HANDLE,
g_param_spec_ulong ("handle", "Object Handle", "PKCS11 Object Handle",
0, G_MAXULONG, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Object:session:
+ *
+ * The PKCS11 session to make calls on when this object needs to
+ * perform operations on itself.
+ *
+ * If this is NULL then a new session is opened for each operation,
+ * such as gp11_object_get(), gp11_object_set() or gp11_object_destroy().
+ */
g_object_class_install_property (gobject_class, PROP_SESSION,
g_param_spec_object ("session", "session", "PKCS11 Session to make calls on",
GP11_TYPE_SESSION, G_PARAM_READWRITE));
Modified: trunk/gp11/gp11-session.c
==============================================================================
--- trunk/gp11/gp11-session.c (original)
+++ trunk/gp11/gp11-session.c Tue Mar 17 02:53:59 2009
@@ -31,6 +31,30 @@
#include <glib/gi18n.h>
+/**
+ * SECTION:gp11-session
+ * @title: GP11Session
+ * @short_description: Represents an open PKCS11 session.
+ *
+ * Before performing any PKCS11 operations, a session must be opened. This is
+ * analogous to an open database handle, or a file handle.
+ */
+
+/**
+ * GP11Session:
+ *
+ * Represents an open PKCS11 session.
+ */
+
+/**
+ * GP11Mechanism:
+ * @type: The mechanism type
+ * @parameter: Mechanism specific data.
+ * @n_parameter: Length of mechanism specific data.
+ *
+ * Represents a mechanism used with crypto operations.
+ */
+
enum {
DISCARD_HANDLE,
LAST_SIGNAL
@@ -248,18 +272,46 @@
klass->discard_handle = gp11_session_real_discard_handle;
+ /**
+ * GP11Session:module:
+ *
+ * The GP11Module that this session is opened on.
+ */
g_object_class_install_property (gobject_class, PROP_MODULE,
g_param_spec_object ("module", "Module", "PKCS11 Module",
GP11_TYPE_MODULE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Session:handle:
+ *
+ * The raw CK_SESSION_HANDLE handle of this session.
+ */
g_object_class_install_property (gobject_class, PROP_HANDLE,
g_param_spec_ulong ("handle", "Session Handle", "PKCS11 Session Handle",
0, G_MAXULONG, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Session:slot:
+ *
+ * The GP11Slot this session is opened on.
+ */
g_object_class_install_property (gobject_class, PROP_SLOT,
g_param_spec_object ("slot", "Slot that this session uses", "PKCS11 Slot",
GP11_TYPE_SLOT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Session::discard-handle:
+ * @session: The session.
+ * @handle: The handle being discarded.
+ *
+ * When a GP11Session is being disposed of it emits this signal to allow
+ * a session pool to pick up the handle and keep it around.
+ *
+ * If no signal handler claims the handle, then it is closed. This is used by
+ * gp11_module_set_pool_sessions() to implement the module session pool.
+ *
+ * Returns: Whether or not this handle was claimed.
+ */
signals[DISCARD_HANDLE] = g_signal_new ("discard-handle", GP11_TYPE_SESSION,
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GP11SessionClass, discard_handle),
g_signal_accumulator_true_handled, NULL,
@@ -273,6 +325,18 @@
*/
/**
+ * GP11SessionInfo:
+ * @slot_id: The handle of the PKCS11 slot that this session is opened on.
+ * @state: The user login state of the session.
+ * @flags: Various PKCS11 flags.
+ * @device_error: The last device error that occurred from an operation on this session.
+ *
+ * Information about the session. This is analogous to a CK_SESSION_INFO structure.
+ *
+ * When done with this structure, release it using gp11_session_info_free().
+ */
+
+/**
* gp11_session_info_free:
* @session_info: Session info to free.
*
@@ -1320,14 +1384,45 @@
* ENCRYPT
*/
+/**
+ * gp11_session_encrypt:
+ * @self: The session.
+ * @key: The key to encrypt with.
+ * @mech_type: The mechanism type to use for encryption.
+ * @input: The data to encrypt.
+ * @n_input: The length of the data to encrypt.
+ * @n_result: A location to store the length of the result data.
+ * @err: A location to place error information.
+ *
+ * Encrypt data in a mechanism specific manner. This call may
+ * block for an indefinite period.
+ *
+ * Returns: The data that was encrypted, or NULL if an error occured.
+ */
guchar*
-gp11_session_encrypt (GP11Session *self, GP11Object *key, gulong mech, const guchar *input,
+gp11_session_encrypt (GP11Session *self, GP11Object *key, gulong mech_type, const guchar *input,
gsize n_input, gsize *n_result, GError **err)
{
- GP11Mechanism mech_args = { mech, NULL, 0 };
+ GP11Mechanism mech_args = { mech_type, NULL, 0 };
return gp11_session_encrypt_full (self, key, &mech_args, input, n_input, n_result, NULL, err);
}
+/**
+ * gp11_session_encrypt_full:
+ * @self: The session.
+ * @key: The key to encrypt with.
+ * @mech_args: The mechanism type and parameters to use for encryption.
+ * @input: The data to encrypt.
+ * @n_input: The length of the data to encrypt.
+ * @n_result: A location to store the length of the result data.
+ * @cancellable: A GCancellable which can be used to cancel the operation.
+ * @err: A location to place error information.
+ *
+ * Encrypt data in a mechanism specific manner. This call may
+ * block for an indefinite period.
+ *
+ * Returns: The data that was encrypted, or NULL if an error occured.
+ */
guchar*
gp11_session_encrypt_full (GP11Session *self, GP11Object *key, GP11Mechanism *mech_args,
const guchar *input, gsize n_input, gsize *n_result,
@@ -1350,6 +1445,22 @@
return ret;
}
+/**
+ * gp11_session_encrypt_async:
+ * @self: The session.
+ * @key: The key to encrypt with.
+ * @mech_args: The mechanism type and parameters to use for encryption.
+ * @input: The data to encrypt.
+ * @n_input: The length of the data to encrypt.
+ * @cancellable: A GCancellable which can be used to cancel the operation.
+ * @callback: Called when the operation completes.
+ * @user_data: A pointer to pass to the callback.
+ *
+ * Encrypt data in a mechanism specific manner. This call will
+ * return immediately and complete asynchronously.
+ *
+ * Returns: The data that was encrypted.
+ */
void
gp11_session_encrypt_async (GP11Session *self, GP11Object *key, GP11Mechanism *mech_args,
const guchar *input, gsize n_input, GCancellable *cancellable,
@@ -1370,6 +1481,17 @@
g_object_unref (module);
}
+/**
+ * gp11_session_encrypt_finish:
+ * @self: The session.
+ * @result: The result object passed to the callback.
+ * @n_result: A location to store the length of the result data.
+ * @err: A location to place error information.
+ *
+ * Get the result of an encryption operation.
+ *
+ * Returns: The data that was encrypted, or NULL if an error occurred.
+ */
guchar*
gp11_session_encrypt_finish (GP11Session *self, GAsyncResult *result, gsize *n_result,
GError **err)
@@ -1381,6 +1503,21 @@
* DECRYPT
*/
+/**
+ * gp11_session_decrypt:
+ * @self: The session.
+ * @key: The key to decrypt with.
+ * @mech_type: The mechanism type to use for decryption.
+ * @input: The data to decrypt.
+ * @n_input: The length of the data to decrypt.
+ * @n_result: A location to store the length of the result data.
+ * @err: A location to place an error.
+ *
+ * Decrypt data in a mechanism specific manner. This call may
+ * block for an indefinite period.
+ *
+ * Returns: The data that was decrypted, or NULL if an error occured.
+ */
guchar*
gp11_session_decrypt (GP11Session *self, GP11Object *key, gulong mech_type, const guchar *input,
gsize n_input, gsize *n_result, GError **err)
@@ -1389,6 +1526,22 @@
return gp11_session_decrypt_full (self, key, &mech_args, input, n_input, n_result, NULL, err);
}
+/**
+ * gp11_session_decrypt_full:
+ * @self: The session.
+ * @key: The key to decrypt with.
+ * @mech_args: The mechanism type and parameters to use for decryption.
+ * @input: The data to decrypt.
+ * @n_input: The length of the data to decrypt.
+ * @n_result: A location to store the length of the result data.
+ * @cancellable: A GCancellable which can be used to cancel the operation.
+ * @err: A location to place error information.
+ *
+ * Decrypt data in a mechanism specific manner. This call may
+ * block for an indefinite period.
+ *
+ * Returns: The data that was decrypted, or NULL if an error occured.
+ */
guchar*
gp11_session_decrypt_full (GP11Session *self, GP11Object *key, GP11Mechanism *mech_args,
const guchar *input, gsize n_input, gsize *n_result,
@@ -1410,6 +1563,22 @@
return ret;
}
+/**
+ * gp11_session_decrypt_async:
+ * @self: The session.
+ * @key: The key to decrypt with.
+ * @mech_args: The mechanism type and parameters to use for decryption.
+ * @input: The data to decrypt.
+ * @n_input: The length of the data to decrypt.
+ * @cancellable: A GCancellable which can be used to cancel the operation.
+ * @callback: Called when the operation completes.
+ * @user_data: A pointer to pass to the callback.
+ *
+ * Decrypt data in a mechanism specific manner. This call will
+ * return immediately and complete asynchronously.
+ *
+ * Returns: The data that was decrypted.
+ */
void
gp11_session_decrypt_async (GP11Session *self, GP11Object *key, GP11Mechanism *mech_args,
const guchar *input, gsize n_input, GCancellable *cancellable,
@@ -1429,6 +1598,17 @@
g_object_unref (module);
}
+/**
+ * gp11_session_decrypt_finish:
+ * @self: The session.
+ * @result: The result object passed to the callback.
+ * @n_result: A location to store the length of the result data.
+ * @err: A location to place error information.
+ *
+ * Get the result of an decryption operation.
+ *
+ * Returns: The data that was decrypted, or NULL if an error occurred.
+ */
guchar*
gp11_session_decrypt_finish (GP11Session *self, GAsyncResult *result,
gsize *n_result, GError **err)
@@ -1440,6 +1620,21 @@
* SIGN
*/
+/**
+ * gp11_session_sign:
+ * @self: The session.
+ * @key: The key to sign with.
+ * @mech_type: The mechanism type to use for signing.
+ * @input: The data to sign.
+ * @n_input: The length of the data to sign.
+ * @n_result: A location to store the length of the result data.
+ * @err: A location to place an error.
+ *
+ * Sign data in a mechanism specific manner. This call may
+ * block for an indefinite period.
+ *
+ * Returns: The data that was signed, or NULL if an error occured.
+ */
guchar*
gp11_session_sign (GP11Session *self, GP11Object *key, gulong mech_type, const guchar *input,
gsize n_input, gsize *n_result, GError **err)
@@ -1448,6 +1643,22 @@
return gp11_session_sign_full (self, key, &mech_args, input, n_input, n_result, NULL, err);
}
+/**
+ * gp11_session_sign_full:
+ * @self: The session.
+ * @key: The key to sign with.
+ * @mech_args: The mechanism type and parameters to use for signing.
+ * @input: The data to sign.
+ * @n_input: The length of the data to sign.
+ * @n_result: A location to store the length of the result data.
+ * @cancellable: A GCancellable which can be used to cancel the operation.
+ * @err: A location to place error information.
+ *
+ * Sign data in a mechanism specific manner. This call may
+ * block for an indefinite period.
+ *
+ * Returns: The data that was signed, or NULL if an error occured.
+ */
guchar*
gp11_session_sign_full (GP11Session *self, GP11Object *key, GP11Mechanism *mech_args,
const guchar *input, gsize n_input, gsize *n_result,
@@ -1469,6 +1680,22 @@
return ret;
}
+/**
+ * gp11_session_sign_async:
+ * @self: The session.
+ * @key: The key to sign with.
+ * @mech_args: The mechanism type and parameters to use for signing.
+ * @input: The data to sign.
+ * @n_input: The length of the data to sign.
+ * @cancellable: A GCancellable which can be used to cancel the operation.
+ * @callback: Called when the operation completes.
+ * @user_data: A pointer to pass to the callback.
+ *
+ * Sign data in a mechanism specific manner. This call will
+ * return immediately and complete asynchronously.
+ *
+ * Returns: The data that was signed.
+ */
void
gp11_session_sign_async (GP11Session *self, GP11Object *key, GP11Mechanism *mech_args,
const guchar *input, gsize n_input, GCancellable *cancellable,
@@ -1488,6 +1715,17 @@
g_object_unref (module);
}
+/**
+ * gp11_session_sign_finish:
+ * @self: The session.
+ * @result: The result object passed to the callback.
+ * @n_result: A location to store the length of the result data.
+ * @err: A location to place error information.
+ *
+ * Get the result of an signing operation.
+ *
+ * Returns: The data that was signed, or NULL if an error occurred.
+ */
guchar*
gp11_session_sign_finish (GP11Session *self, GAsyncResult *result,
gsize *n_result, GError **err)
@@ -1553,6 +1791,22 @@
g_free (args);
}
+/**
+ * gp11_session_verify:
+ * @self: The session.
+ * @key: The key to verify with.
+ * @mech_type: The mechanism type to use for verifying.
+ * @input: The data to verify.
+ * @n_input: The length of the data to verify.
+ * @signature: The signature.
+ * @n_signature: The length of the signature.
+ * @err: A location to place an error.
+ *
+ * Verify data in a mechanism specific manner. This call may
+ * block for an indefinite period.
+ *
+ * Returns: TRUE if the data verified correctly, otherwise a failure or error occurred.
+ */
gboolean
gp11_session_verify (GP11Session *self, GP11Object *key, gulong mech_type, const guchar *input,
gsize n_input, const guchar *signature, gsize n_signature, GError **err)
@@ -1562,6 +1816,23 @@
signature, n_signature, NULL, err);
}
+/**
+ * gp11_session_verify_full:
+ * @self: The session.
+ * @key: The key to verify with.
+ * @mech_args: The mechanism type and parameters to use for signing.
+ * @input: The data to verify.
+ * @n_input: The length of the data to verify.
+ * @signature: The signature.
+ * @n_signature: The length of the signature.
+ * @cancellable: A GCancellable which can be used to cancel the operation.
+ * @err: A location to place an error.
+ *
+ * Verify data in a mechanism specific manner. This call may
+ * block for an indefinite period.
+ *
+ * Returns: TRUE if the data verified correctly, otherwise a failure or error occurred.
+ */
gboolean
gp11_session_verify_full (GP11Session *self, GP11Object *key, GP11Mechanism *mech_args,
const guchar *input, gsize n_input, const guchar *signature,
@@ -1594,6 +1865,22 @@
return _gp11_call_sync (self, perform_verify, complete_verify, &args, cancellable, err);
}
+/**
+ * gp11_session_verify_async:
+ * @self: The session.
+ * @key: The key to verify with.
+ * @mech_args: The mechanism type and parameters to use for signing.
+ * @input: The data to verify.
+ * @n_input: The length of the data to verify.
+ * @signature: The signature.
+ * @n_signature: The length of the signature.
+ * @cancellable: A GCancellable which can be used to cancel the operation.
+ * @callback: Called when the operation completes.
+ * @user_data: A pointer to pass to the callback.
+ *
+ * Verify data in a mechanism specific manner. This call returns
+ * immediately and completes asynchronously.
+ */
void
gp11_session_verify_async (GP11Session *self, GP11Object *key, GP11Mechanism *mech_args,
const guchar *input, gsize n_input, const guchar *signature,
@@ -1626,6 +1913,16 @@
_gp11_call_async_ready_go (args, cancellable, callback, user_data);
}
+/**
+ * gp11_session_verify_finish:
+ * @self: The session.
+ * @result: The result object passed to the callback.
+ * @err: A location to place error information.
+ *
+ * Get the result of an verify operation.
+ *
+ * Returns: TRUE if the data verified correctly, otherwise a failure or error occurred.
+ */
gboolean
gp11_session_verify_finish (GP11Session *self, GAsyncResult *result, GError **err)
{
Modified: trunk/gp11/gp11-slot.c
==============================================================================
--- trunk/gp11/gp11-slot.c (original)
+++ trunk/gp11/gp11-slot.c Tue Mar 17 02:53:59 2009
@@ -28,6 +28,21 @@
#include <string.h>
+/**
+ * SECTION:gp11-slot
+ * @title: GP11Slot
+ * @short_description: Represents a PKCS11 slot that can contain a token.
+ *
+ * A PKCS11 slot can contain a token. As an example, a slot might be a card reader, and the token
+ * the card. If the PKCS11 module is not a hardware driver, often the slot and token are equivalent.
+ */
+
+/**
+ * GP11Slot:
+ *
+ * Represents a PKCS11 slot.
+ */
+
enum {
PROP_0,
PROP_MODULE,
@@ -187,10 +202,20 @@
gobject_class->dispose = gp11_slot_dispose;
gobject_class->finalize = gp11_slot_finalize;
+ /**
+ * GP11Slot:module:
+ *
+ * The PKCS11 object that this slot is a part of.
+ */
g_object_class_install_property (gobject_class, PROP_MODULE,
g_param_spec_object ("module", "Module", "PKCS11 Module",
GP11_TYPE_MODULE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * GP11Slot:handle:
+ *
+ * The raw CK_SLOT_ID handle of this slot.
+ */
g_object_class_install_property (gobject_class, PROP_HANDLE,
g_param_spec_ulong ("handle", "Handle", "PKCS11 Slot ID",
0, G_MAXULONG, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
@@ -203,6 +228,25 @@
*/
/**
+ * GP11SlotInfo:
+ * @slot_description: Description of the slot.
+ * @manufacturer_id: The manufacturer of this slot.
+ * @flags: Various PKCS11 flags that apply to this slot.
+ * @hardware_version_major: The major version of the hardware.
+ * @hardware_version_minor: The minor version of the hardware.
+ * @firmware_version_major: The major version of the firmware.
+ * @firmware_version_minor: The minor version of the firmware.
+ *
+ * Represents information about a PKCS11 slot.
+ *
+ * This is analogous to a CK_SLOT_INFO structure, but the
+ * strings are far more usable.
+ *
+ * When you're done with this structure it should be released with
+ * gp11_slot_info_free().
+ */
+
+/**
* gp11_slot_info_free:
* @slot_info: The slot info to free, or NULL.
*
@@ -219,6 +263,38 @@
}
/**
+ * GP11TokenInfo:
+ * @label: The displayable token label.
+ * @manufacturer_id: The manufacturer of this slot.
+ * @model: The token model number as a string.
+ * @serial_number: The token serial number as a string.
+ * @flags: Various PKCS11 flags that apply to this token.
+ * @max_session_count: The maximum number of sessions allowed on this token.
+ * @session_count: The number of sessions open on this token.
+ * @max_rw_session_count: The maximum number of read/write sessions allowed on this token.
+ * @rw_session_count: The number of sessions open on this token.
+ * @max_pin_len: The maximum length of a PIN for locking this token.
+ * @min_pin_len: The minimum length of a PIN for locking this token.
+ * @total_public_memory: The total amount of memory on this token for storing public objects.
+ * @free_public_memory: The available amount of memory on this token for storing public objects.
+ * @total_private_memory: The total amount of memory on this token for storing private objects.
+ * @free_private_memory: The available amount of memory on this token for storing private objects.
+ * @hardware_version_major: The major version of the hardware.
+ * @hardware_version_minor: The minor version of the hardware.
+ * @firmware_version_major: The major version of the firmware.
+ * @firmware_version_minor: The minor version of the firmware.
+ * @utc_time: If the token has a hardware clock, this is set to the number of seconds since the epoch.
+ *
+ * Represents information about a PKCS11 token.
+ *
+ * This is analogous to a CK_TOKEN_INFO structure, but the
+ * strings are far more usable.
+ *
+ * When you're done with this structure it should be released with
+ * gp11_token_info_free().
+ */
+
+/**
* gp11_token_info_free:
* @token_info: The token info to free, or NULL.
*
@@ -237,6 +313,20 @@
}
/**
+ * GP11MechanismInfo:
+ * @min_key_size: The minimum key size that can be used with this mechanism.
+ * @max_key_size: The maximum key size that can be used with this mechanism.
+ * @flags: Various PKCS11 flags that apply to this mechanism.
+ *
+ * Represents information about a PKCS11 mechanism.
+ *
+ * This is analogous to a CK_MECHANISM_INFO structure.
+ *
+ * When you're done with this structure it should be released with
+ * gp11_mechanism_info_free().
+ */
+
+/**
* gp11_mechanism_info_free:
* @mech_info: The mechanism info to free, or NULL.
*
@@ -251,6 +341,38 @@
}
/**
+ * GP11Mechanisms:
+ *
+ * A set of GP11MechanismInfo structures.
+ */
+
+/**
+ * gp11_mechanisms_length:
+ * @a: A GP11Mechanisms set.
+ *
+ * Get the number of GP11MechanismInfo in the set.
+ *
+ * Returns: The number in the set.
+ */
+
+/**
+ * gp11_mechanisms_at:
+ * @a: A GP11Mechanisms set.
+ * @i: The index of a GP11MechanismInfo.
+ *
+ * Get a specific GP11MechanismInfo in a the set.
+ *
+ * Returns: The GP11MechanismInfo.
+ */
+
+/**
+ * gp11_mechanisms_free:
+ * @a: A GP11Mechanisms set.
+ *
+ * Free a GP11Mechanisms set.
+ */
+
+/**
* gp11_mechanisms_check:
* @mechanisms: A list of mechanisms, perhaps retrieved from gp11_slot_get_mechanisms().
*
@@ -608,6 +730,15 @@
return mechinfo;
}
+/**
+ * gp11_slot_has_flags:
+ * @self: The GP11Slot object.
+ * @flags: The flags to check.
+ *
+ * Check if the PKCS11 slot has the given flags.
+ *
+ * Returns: Whether one or more flags exist.
+ */
gboolean
gp11_slot_has_flags (GP11Slot *self, gulong flags)
{
Modified: trunk/gp11/gp11.h
==============================================================================
--- trunk/gp11/gp11.h (original)
+++ trunk/gp11/gp11.h Tue Mar 17 02:53:59 2009
@@ -446,8 +446,6 @@
CK_SLOT_ID gp11_slot_get_handle (GP11Slot *self);
-gint gp11_slot_get_max_pin_length (GP11Slot *self);
-
GP11SlotInfo* gp11_slot_get_info (GP11Slot *self);
GP11TokenInfo* gp11_slot_get_token_info (GP11Slot *self);
@@ -546,8 +544,6 @@
CK_SESSION_HANDLE gp11_session_get_handle (GP11Session *self);
-CK_SESSION_HANDLE gp11_session_steal_handle (GP11Session *self);
-
GP11SessionInfo* gp11_session_get_info (GP11Session *self);
#if UNIMPLEMENTED
@@ -766,7 +762,7 @@
guchar* gp11_session_encrypt (GP11Session *self,
GP11Object *key,
- gulong mech,
+ gulong mech_type,
const guchar *input,
gsize n_input,
gsize *n_result,
Modified: trunk/library/Makefile.am
==============================================================================
--- trunk/library/Makefile.am (original)
+++ trunk/library/Makefile.am Tue Mar 17 02:53:59 2009
@@ -62,5 +62,4 @@
endif
SUBDIRS = . \
- reference \
$(TESTS_DIR)
Modified: trunk/library/gnome-keyring-memory.c
==============================================================================
--- trunk/library/gnome-keyring-memory.c (original)
+++ trunk/library/gnome-keyring-memory.c Tue Mar 17 02:53:59 2009
@@ -32,6 +32,22 @@
#include <string.h>
+/**
+ * SECTION:gnome-keyring-memory
+ * @title: Non-pageable Memory
+ * @short_description: Secure Non-pageable Memory
+ *
+ * Normal allocated memory can be paged to disk at the whim of the operating system.
+ * This can be a serious problem for sensitive information like passwords, keys and secrets.
+ *
+ * GNOME Keyring holds passwords in non-pageable, or locked memory. This happens
+ * both in the daemon and in the library. This is only possible if the OS contains
+ * support for it.
+ *
+ * These functions allow applications to use to hold passwords and other
+ * sensitive information.
+ */
+
static GStaticMutex memory_mutex = G_STATIC_MUTEX_INIT;
#define WARNING "couldn't allocate secure memory to keep passwords " \
Modified: trunk/library/gnome-keyring-utils.c
==============================================================================
--- trunk/library/gnome-keyring-utils.c (original)
+++ trunk/library/gnome-keyring-utils.c Tue Mar 17 02:53:59 2009
@@ -32,6 +32,17 @@
#include "egg/egg-secure-memory.h"
+/**
+ * SECTION:gnome-keyring-result
+ * @title: Result Codes
+ * @short_description: Gnome Keyring Result Codes
+ *
+ * <para>
+ * Result codes used through out GNOME Keyring. Additional result codes may be
+ * added from time to time and these should be handled gracefully.
+ * </para>
+ */
+
/* Functions used by both the library and the daemon */
/*
@@ -211,6 +222,18 @@
}
/**
+ * SECTION:gnome-keyring-attributes
+ * @title: Item Attributes
+ * @short_description: Attributes of individual keyring items.
+ *
+ * Attributes allow various other pieces of information to be associated with an item.
+ * These can also be used to search for relevant items. Use gnome_keyring_item_get_attributes()
+ * or gnome_keyring_item_set_attributes().
+ *
+ * Each attribute has either a string, or unsigned integer value.
+ */
+
+/**
* gnome_keyring_attribute_list_append_string:
* @attributes: A #GnomeKeyringAttributeList
* @name: The name of the new attribute
@@ -315,6 +338,15 @@
}
/**
+ * SECTION:gnome-keyring-keyring-info
+ * @title: Keyring Info
+ * @short_description: Keyring Information
+ *
+ * Use gnome_keyring_get_info() or gnome_keyring_get_info_sync() to get a #GnomeKeyringInfo
+ * pointer to use with these functions.
+ */
+
+/**
* gnome_keyring_info_free:
* @keyring_info: The keyring info to free.
*
@@ -328,6 +360,15 @@
}
/**
+ * SECTION:gnome-keyring-item-info
+ * @title: Item Information
+ * @short_description: Keyring Item Info
+ *
+ * #GnomeKeyringItemInfo represents the basic information about a keyring item.
+ * Use gnome_keyring_item_get_info() or gnome_keyring_item_set_info().
+ */
+
+/**
* gnome_keyring_info_copy:
* @keyring_info: The keyring info to copy.
*
Modified: trunk/library/gnome-keyring.c
==============================================================================
--- trunk/library/gnome-keyring.c (original)
+++ trunk/library/gnome-keyring.c Tue Mar 17 02:53:59 2009
@@ -44,6 +44,12 @@
#include <sys/uio.h>
#include <stdarg.h>
+/**
+ * SECTION:gnome-keyring-generic-callbacks
+ * @title: Callbacks
+ * @short_description: Different callbacks for retrieving async results
+ */
+
typedef enum {
CALLBACK_DONE,
CALLBACK_GET_STRING,
@@ -387,6 +393,12 @@
}
/**
+ * SECTION:gnome-keyring-misc
+ * @title: Miscellaneous Functions
+ * @short_description: Miscellaneous functions.
+ */
+
+/**
* gnome_keyring_is_available:
*
* Check whether you can communicate with a gnome-keyring-daemon.
@@ -490,6 +502,18 @@
}
/**
+ * SECTION:gnome-keyring-keyrings
+ * @title: Keyrings
+ * @short_description: Listing and managing keyrings
+ *
+ * %gnome-keyring-daemon manages multiple keyrings. Each keyring can store one or more items containing secrets.
+ *
+ * One of the keyrings is the default keyring, which can in many cases be used by specifying %NULL for a keyring name.
+ *
+ * Each keyring can be in a locked or unlocked state. A password must be specified, either by the user or the calling application, to unlock the keyring.
+ */
+
+/**
* gnome_keyring_set_default_keyring:
* @keyring: The keyring to make default
* @callback: A callback which will be called when the request completes or fails.
@@ -1522,6 +1546,14 @@
}
/**
+ * SECTION:gnome-keyring-daemon
+ * @title: Daemon Management Functions
+ * @short_description: Functions used by session to run the Gnome Keyring Daemon.
+ *
+ * These functions are not used by most applications using Gnome Keyring.
+ */
+
+/**
* gnome_keyring_daemon_set_display_sync:
* @display: Deprecated
*
@@ -1744,6 +1776,18 @@
}
/**
+ * SECTION:gnome-keyring-find
+ * @title: Search Functionality
+ * @short_description: Find Keyring Items
+ *
+ * A find operation searches through all keyrings for items that match the
+ * attributes. The user may have been prompted to unlock necessary keyrings, and
+ * user will have been prompted for access to the items if needed.
+ *
+ * A find operation may return multiple or zero results.
+ */
+
+/**
* gnome_keyring_find_items:
* @type: The type of items to find.
* @attributes: A list of attributes to search for. This cannot be an empty list.
@@ -1980,6 +2024,30 @@
return res;
}
+/**
+ * SECTION:gnome-keyring-items
+ * @title: Keyring Items
+ * @short_description: Keyring items each hold a secret and a number of attributes.
+ *
+ * A keyring contains multiple items. Each item has a secret, attributes and access
+ * information associated with it.
+ *
+ * An item is identified by an unsigned integer unique to the keyring in which it
+ * exists. An item's name is for displaying to the user. Each item has a single secret,
+ * which is a null-terminated string. This secret is stored in non-pageable memory, and
+ * encrypted on disk. All of this information is exposed via #GnomeKeyringItemInfo
+ * pointers.
+ *
+ * Attributes allow various other pieces of information to be associated with an item.
+ * These can also be used to search for relevant items. Attributes are accessed with
+ * #GnomeKeyringAttribute structures and built into lists using #GnomeKeyringAttributeList.
+ *
+ * Each item has an access control list, which specifies the applications that
+ * can read, write or delete an item. The read access applies only to reading the secret.
+ * All applications can read other parts of the item. ACLs are accessed and changed
+ * through #GnomeKeyringAccessControl pointers.
+ */
+
/**
* gnome_keyring_item_create:
* @keyring: The name of the keyring in which to create the item, or NULL for the default keyring.
@@ -3149,6 +3217,17 @@
}
/**
+ * SECTION:gnome-keyring-acl
+ * @title: Item ACLs
+ * @short_description: Access control lists for keyring items.
+ *
+ * Each item has an access control list, which specifies the applications that
+ * can read, write or delete an item. The read access applies only to reading the secret.
+ * All applications can read other parts of the item. ACLs are accessed and changed
+ * gnome_keyring_item_get_acl() and gnome_keyring_item_set_acl().
+ */
+
+/**
* gnome_keyring_item_ac_get_display_name:
* @ac: A #GnomeKeyringAccessControl pointer.
*
@@ -3238,6 +3317,15 @@
* NETWORK PASSWORD APIS
*/
+/**
+ * SECTION:gnome-keyring-network
+ * @title: Network Passwords
+ * @short_description: Saving of network passwords.
+ *
+ * Networks passwords are a simple way of saving passwords associated with a
+ * certain user/server/protocol and other fields.
+ */
+
struct FindNetworkPasswordInfo {
GnomeKeyringOperationGetListCallback callback;
gpointer data;
@@ -3689,6 +3777,56 @@
* SIMPLE PASSWORD APIS
*/
+/**
+ * SECTION:gnome-keyring-password
+ * @title: Simple Password Storage
+ * @short_description: Store and lookup passwords with a set of attributes.
+ *
+ * This is a simple API for storing passwords and retrieving passwords in the keyring.
+ *
+ * Each password is associated with a set of attributes. Attribute values can be either
+ * strings or unsigned integers.
+ *
+ * The names and types of allowed attributes for a given password are defined with a
+ * schema. Certain schemas are predefined such as %GNOME_KEYRING_NETWORK_PASSWORD.
+ * Additional schemas can be defined via the %GnomeKeyringPasswordSchema structure.
+ *
+ * Each function accepts a variable list of attributes names and their values.
+ * Include a %NULL to terminate the list of attributes.
+ *
+ * <example>
+ * <title>Passing attributes to the functions</title>
+ * <programlisting>
+ * res = gnome_keyring_delete_password_sync (GNOME_KEYRING_NETWORK_PASSWORD,
+ * "user", "me", // A string attribute
+ * "server, "example.gnome.org",
+ * "port", "8080", // An integer attribute
+ * NULL);
+ * </programlisting></example>
+ */
+
+/**
+ * GnomeKeyringPasswordSchema:
+ *
+ * Describes a password schema. Often you'll want to use a predefined schema such
+ * as %GNOME_KEYRING_NETWORK_PASSWORD.
+ *
+ * <para>
+ * The last attribute name in a schema must be %NULL.
+ *
+ * <programlisting>
+ * GnomeKeyringPasswordSchema my_schema = {
+ * GNOME_KEYRING_ITEM_GENERIC_SECRET,
+ * {
+ * { "string-attr", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
+ * { "uint-attr", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 },
+ * { NULL, 0 }
+ * }
+ * };
+ * </programlisting>
+ * </para>
+ */
+
static const GnomeKeyringPasswordSchema network_password_schema = {
GNOME_KEYRING_ITEM_NETWORK_PASSWORD,
{
@@ -3702,9 +3840,40 @@
}
};
+/**
+ * GNOME_KEYRING_NETWORK_PASSWORD:
+ *
+ * <para>
+ * A predefined schema for network paswsords. It contains the following attributes:
+ * </para>
+ * <itemizedlist>
+ * <listitem>user: A string for the user login.</listitem>
+ * <listitem>server: The server being connected to.</listitem>
+ * <listitem>protocol: The protocol used to access the server, such as 'http' or 'smb'</listitem>
+ * <listitem>domain: A realm or domain, such as a Windows login domain.</listitem>
+ * <listitem>port: The network port to used to connect to the server.</listitem>
+ * </itemizedlist>
+ */
+
/* Declared in gnome-keyring.h */
const GnomeKeyringPasswordSchema *GNOME_KEYRING_NETWORK_PASSWORD = &network_password_schema;
+/**
+ * GNOME_KEYRING_DEFAULT:
+ *
+ * <para>
+ * The default keyring.
+ * </para>
+ */
+
+/**
+ * GNOME_KEYRING_SESSION:
+ *
+ * <para>
+ * A keyring only stored in memory.
+ * </para>
+ */
+
static GnomeKeyringAttributeList*
schema_attribute_list_va (const GnomeKeyringPasswordSchema *schema, va_list args)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]