Skip to content
Commits on Source (27)
# Unit test builds
test-*
!test-*.*
frob-*
!frob-*.*
# Common file extensions
*.abi
*.autogen_bak
*.bak
*.gcda
*.gcno
*.gcov
*.gir
*.gmo
*.la
*.lo
*.mo
*.o
*.plist
*.pot
*.service
*.stamp
*.swp
*.tar.gz
*.typelib
*.valid
*~
.*-cache
.cproject
.deps
.libs
.project
ABOUT-NLS
aclocal.m4
autom4te.cache
compile
config.guess
config.h
config.h.in
config.h.in~
config.h~
config.log
config.rpath
config.status
config.sub
configure
depcomp
gtk-doc.make
INSTALL
install-sh
intltool-extract.in
intltool-merge.in
intltool-update.in
libtool
ltmain.sh
Makefile
Makefile.in
mkinstalldirs
missing
POTFILES
stamp-*
/docs/reference/*/*-decl.txt
/docs/reference/*/*-decl-list.txt
/docs/reference/*/*-undeclared.txt
/docs/reference/*/*-undocumented.txt
/docs/reference/*/*-unused.txt
/docs/reference/*/*.args
/docs/reference/*/*.hierarchy
/docs/reference/*/*.prerequisites
/docs/reference/*/*.interfaces
/docs/reference/*/*.signals
/docs/reference/*/html
/docs/reference/*/tmpl
/docs/reference/*/version.xml
/docs/reference/*/version.xml
/docs/reference/*/
/egg/asn1-def-*.c
/egg/tests/asn1-def-*.c
/gck/*.pc
/gck/gck-enum-types*
/gck/gck-marshal.*
/gck/gck-version.h
/gck/gck-*.deps
/gck/gck-*.vapi
/gcr/*.pc
/gcr/gcr-dbus-generated.*
/gcr/gcr-enum-types*
/gcr/gcr-oids.*
/gcr/gcr-marshal.*
/gcr/gcr-version.h
/gcr/gcr-*.deps
/gcr/gcr-*.vapi
/ui/*.pc
/ui/gcr-enum-types*
/ui/gcr-prompter
/ui/gcr-prompter.desktop
/ui/gcr-prompter.desktop.in
/ui/gcr-viewer
/ui/gcr-viewer.desktop
/ui/gcr-viewer.desktop.in
/ui/gcr-*.deps
/ui/gcr-*.vapi
/ui/gcr-resources.c
/ui/gcr-resources.h
/po/Makefile.in.in
/po/Makevars.template
/po/*.sed
/po/*.sed.in
/po/*.c
/po/messages
/build/coverage
/build/coverage.info
/build/valgrind-suppressions
/build/test-driver
......@@ -3,7 +3,7 @@ stages:
- deploy
variables:
DEPENDENCIES: dbus-daemon diffutils gcc gtk-doc libsecret-devel meson ninja-build openssh openssh-clients python redhat-rpm-config systemd-devel
DEPENDENCIES: dbus-daemon diffutils gcc gi-docgen libsecret-devel meson ninja-build openssh openssh-clients python redhat-rpm-config systemd-devel
fedora:Werror:
image: fedora:latest
......@@ -13,18 +13,17 @@ fedora:Werror:
- dnf install -y 'dnf-command(builddep)' $DEPENDENCIES
- dnf builddep -y gcr
script:
- meson _build -Dwerror=true -Dc_args=-Wno-error=deprecated-declarations
- ninja -C _build
- dbus-run-session -- bash +x ./.gitlab-ci/run-tests.sh
- meson _build -Dwerror=true -Dc_args=-Wno-error=deprecated-declarations -Dgtk_doc=false
- meson compile -C _build
- dbus-run-session -- meson test -C _build
artifacts:
reports:
junit: "_build/${CI_JOB_NAME}-report.xml"
name: "gcr-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
junit: "_build/meson-logs/testlog.junit.xml"
name: "gcr-werror-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- "_build/config.h"
- "_build/meson-logs"
- "_build/${CI_JOB_NAME}-report.xml"
fedora:asan:
image: fedora:latest
......@@ -36,8 +35,9 @@ fedora:asan:
- dnf install -y 'dnf-command(builddep)' $DEPENDENCIES libasan
- dnf builddep -y gcr
script:
- meson _build -Dsanitize=address
- meson _build -Db_sanitize=address -Dgtk_doc=false
- dbus-run-session -- meson test -C _build
allow_failure: true
artifacts:
name: "gcr-asan-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
......@@ -53,7 +53,7 @@ fedora:ubsan:
- dnf install -y 'dnf-command(builddep)' $DEPENDENCIES libubsan
- dnf builddep -y gcr
script:
- meson _build -Dsanitize=undefined
- meson _build -Db_sanitize=undefined -Dgtk_doc=false
- dbus-run-session -- meson test -C _build
artifacts:
name: "gcr-ubsan-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
......@@ -67,23 +67,22 @@ fedora:coverage:
stage: build
before_script:
- dnf upgrade -y
- dnf install -y 'dnf-command(builddep)' $DEPENDENCIES lcov
- dnf install -y 'dnf-command(builddep)' $DEPENDENCIES lcov git gi-docgen
- dnf builddep -y gcr
script:
- meson _build -Db_coverage=true
- dbus-run-session -- meson test -C _build
- ninja coverage-html -C _build
- ninja docs -C _build
coverage: '/^\s+lines.+:\s+([\d.]+\%)\s+/'
artifacts:
name: "gcr-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
paths:
- _build/meson-logs/coveragereport/
artifacts:
name: "gcr-coverage-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- "_build/config.h"
- "_build/meson-logs"
- "_build/docs"
- "_build/meson-logs/coveragereport"
pages:
stage: deploy
......@@ -91,7 +90,11 @@ pages:
- master
needs: ['fedora:coverage']
script:
- mv _build/meson-logs/coveragereport/ public/
- mkdir public
- mv _build/meson-logs/coveragereport public/coverage
- mv _build/docs/gck/gck-1 public/gck-1
- mv _build/docs/gcr/gcr-3 public/gcr-3
- mv _build/docs/ui/gcr-ui-3 public/gcr-ui-3
artifacts:
when: on_success
paths:
......
#!/usr/bin/env python3
# Turns a Meson testlog.json file into a JUnit XML report
#
# Copyright 2019 GNOME Foundation
#
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Original author: Emmanuele Bassi
import argparse
import datetime
import json
import os
import sys
import xml.etree.ElementTree as ET
aparser = argparse.ArgumentParser(description='Turns a Meson test log into a JUnit report')
aparser.add_argument('--project-name', metavar='NAME',
help='The project name',
default='unknown')
aparser.add_argument('--job-id', metavar='ID',
help='The job ID for the report',
default='Unknown')
aparser.add_argument('--branch', metavar='NAME',
help='Branch of the project being tested',
default='master')
aparser.add_argument('--output', metavar='FILE',
help='The output file, stdout by default',
type=argparse.FileType('w', encoding='UTF-8'),
default=sys.stdout)
aparser.add_argument('infile', metavar='FILE',
help='The input testlog.json, stdin by default',
type=argparse.FileType('r', encoding='UTF-8'),
default=sys.stdin)
args = aparser.parse_args()
outfile = args.output
testsuites = ET.Element('testsuites')
testsuites.set('id', '{}/{}'.format(args.job_id, args.branch))
testsuites.set('package', args.project_name)
testsuites.set('timestamp', datetime.datetime.utcnow().isoformat(timespec='minutes'))
suites = {}
for line in args.infile:
data = json.loads(line)
(full_suite, unit_name) = data['name'].split(' / ')
(project_name, suite_name) = full_suite.split(':')
duration = data['duration']
return_code = data['returncode']
log = data['stdout']
unit = {
'suite': suite_name,
'name': unit_name,
'duration': duration,
'returncode': return_code,
'stdout': log,
}
units = suites.setdefault(suite_name, [])
units.append(unit)
for name, units in suites.items():
print('Processing suite {} (units: {})'.format(name, len(units)))
def if_failed(unit):
if unit['returncode'] != 0:
return True
return False
def if_succeded(unit):
if unit['returncode'] == 0:
return True
return False
successes = list(filter(if_succeded, units))
failures = list(filter(if_failed, units))
print(' - {}: {} pass, {} fail'.format(name, len(successes), len(failures)))
testsuite = ET.SubElement(testsuites, 'testsuite')
testsuite.set('name', '{}/{}'.format(args.project_name, name))
testsuite.set('tests', str(len(units)))
testsuite.set('errors', str(len(failures)))
testsuite.set('failures', str(len(failures)))
for unit in successes:
testcase = ET.SubElement(testsuite, 'testcase')
testcase.set('classname', '{}/{}'.format(args.project_name, unit['suite']))
testcase.set('name', unit['name'])
testcase.set('time', str(unit['duration']))
for unit in failures:
testcase = ET.SubElement(testsuite, 'testcase')
testcase.set('classname', '{}/{}'.format(args.project_name, unit['suite']))
testcase.set('name', unit['name'])
testcase.set('time', str(unit['duration']))
failure = ET.SubElement(testcase, 'failure')
failure.set('classname', '{}/{}'.format(args.project_name, unit['suite']))
failure.set('name', unit['name'])
failure.set('type', 'error')
failure.text = unit['stdout']
output = ET.tostring(testsuites, encoding='unicode')
outfile.write(output)
#!/bin/bash
set +e
meson test -C _build
exit_code=$?
python3 .gitlab-ci/meson-junit-report.py \
--project-name=gcr \
--job-id "${CI_JOB_NAME}" \
--output "_build/${CI_JOB_NAME}-report.xml" \
_build/meson-logs/testlog.json
exit $exit_code
gcr 3.41.1:
- meson: Fix unknown kw argument in gnome.generate_gir [GNOME/gcr!68]
- gcr: Add G_SPAWN_CLOEXEC_PIPES flag to all the g_spawn commands
- docs: Port from gtk-doc to gi-docgen [GNOME/gcr!76]
- Unbreak build without systemd [GNOME/gcr!75]
- Several CI fixes
- Updated translations
gcr 3.41.0:
- Port ssh-agent from gnome-keyring [GNOME/gcr!67]
- build: Fix parallel build failure due to missing marshal dependency [GNOME/gcr!68]
......
......@@ -27,6 +27,16 @@ https://gitlab.gnome.org/GNOME/gcr.
If you would like to get involved with GNOME projects, please also visit our
[Newcomers page] on the Wiki.
Documentation
-------------
The documentation for GCR and GCK is built using [gi-docgen].
You can find the nightly documentation at:
* Gck: https://gnome.pages.gitlab.gnome.org/gcr/gck-1/
* Gcr: https://gnome.pages.gitlab.gnome.org/gcr/gcr-3/
* GcrUI: https://gnome.pages.gitlab.gnome.org/gcr/gcr-ui-3/
Debug tracing
-------------
The Gcr and Gck libraries contain statements which help debug flow
......@@ -56,5 +66,6 @@ To discuss issues with developers and other users, you can post to the
[gi-docgen]: https://gnome.pages.gitlab.gnome.org/gi-docgen/
[Meson]: https://mesonbuild.com
[Newcomers page]: https://wiki.gnome.org/TranslationProject/JoiningTranslation
[library]
namespace = "Gck"
version = "@GCK_VERSION@"
browse_url = "https://gitlab.gnome.org/GNOME/gcr/"
repository_url = "https://gitlab.gnome.org/GNOME/gcr.git"
authors = "GCK contributors"
license = "LGPL-2.0-or-later"
description = "GObject bindings for PKCS#11"
dependencies = [ "GObject-2.0", "Gio-2.0" ]
devhelp = true
search_index = true
[dependencies."GObject-2.0"]
name = "GObject"
description = "The base type system library"
docs_url = "https://developer.gnome.org/gobject/stable"
[dependencies."Gio-2.0"]
name = "Gio"
description = "GObject interfaces and objects"
docs_url = "https://developer.gnome.org/gio/stable"
[theme]
name = "basic"
show_index_summary = true
show_class_hierarchy = true
[source-location]
base_url = "https://gitlab.gnome.org/GNOME/gcr/-/blob/master/"
[extra]
content_files = [
'pkcs11-links.md',
]
gck_content_files = [
'pkcs11-links.md',
]
gck_toml = configure_file(
input: 'gck.toml.in',
output: 'gck.toml',
configuration: {
'GCK_VERSION': gck_major_version,
},
)
gck_docs = custom_target('gck-docs',
input: gck_gir[0],
output: 'gck-@0@'.format(gck_major_version),
command: [
gi_docgen,
'generate',
'--quiet',
'--fatal-warnings',
'--config', gck_toml,
'--output-dir=@OUTPUT@',
'--no-namespace-dir',
'--content-dir=@0@'.format(meson.current_source_dir()),
'@INPUT@',
],
depend_files: [
gck_toml,
gck_content_files,
],
build_by_default: true,
install: true,
install_dir: get_option('datadir') / 'doc',
)
Title: About PKCS#11
About PKCS#11
=============
PKCS#11 is an API for storing and using crypto objects, and performing crypto
operations on them.
It is specified at the [RSA website] and a [handy PKCS#11 reference] is also
available.
## PKCS#11 URIs
[PKCS#11 URIs] are a standard for referring to PKCS#11 modules, tokens, or
objects. What the PKCS#11 URI refers to depends on the context in which it is
used.
A PKCS#11 URI can always resolve to more than one object, token or module. A
PKCS#11 URI that refers to a token, would (when used in a context that expects
objects) refer to all the token on that module.
To parse a PKCS#11 URI, use the [func@uri_parse] function passing in the type of
context in which you're using the URI. To build a URI, use the [func@uri_build]
function.
In most cases, the parsing or building of URIs is already handled for you in the
GCK library. For example: to enumerate objects that match a PKCS#11 URI use the
[func@modules_enumerate_uri] function.
[RSA website]: http://www.rsa.com/rsalabs/node.asp?id=2133
[handy PKCS#11 reference]: http://www.cryptsoft.com/pkcs11doc/
[PKCS#11 URIs]: http://tools.ietf.org/html/draft-pechanec-pkcs11uri-03
[library]
namespace = "Gcr"
version = "@GCR_VERSION@"
browse_url = "https://gitlab.gnome.org/GNOME/gcr/"
repository_url = "https://gitlab.gnome.org/GNOME/gcr.git"
authors = "GCR contributors"
license = "LGPL-2.0-or-later"
description = "GObject and GUI library for high level crypto handling"
dependencies = [ "GObject-2.0", "Gio-2.0", "Gck-@GCK_VERSION@" ]
devhelp = true
search_index = true
[dependencies."GObject-2.0"]
name = "GObject"
description = "The base type system library"
docs_url = "https://developer.gnome.org/gobject/stable"
[dependencies."Gio-2.0"]
name = "Gio"
description = "GObject interfaces and objects"
docs_url = "https://developer.gnome.org/gio/stable"
[dependencies."Gck-@GCK_VERSION@"]
name = "Gck"
description = "GObject bindings for PKCS#11"
docs_url = "https://gnome.pages.gitlab.gnome.org/gcr/gck-@GCK_VERSION@"
[theme]
name = "basic"
show_index_summary = true
show_class_hierarchy = true
[source-location]
base_url = "https://gitlab.gnome.org/GNOME/gcr/-/blob/master/"
[extra]
content_files = [
'non-pageable-memory.md',
'pkcs11-configuration.md',
'trust-store.md',
]
gcr_base_content_files = [
'non-pageable-memory.md',
'pkcs11-configuration.md',
'trust-store.md',
]
gcr_base_toml = configure_file(
input: 'gcr-base.toml.in',
output: '@BASENAME@',
configuration: {
'GCR_VERSION': gcr_major_version,
'GCK_VERSION': gck_major_version,
},
)
gcr_base_docs = custom_target('gcr-docs',
input: gcr_gir[0],
output: 'gcr-@0@'.format(gcr_major_version),
command: [
gi_docgen,
'generate',
'--quiet',
'--fatal-warnings',
'--add-include-path=@0@'.format(build_root / 'gck'),
'--config', gcr_base_toml,
'--output-dir=@OUTPUT@',
'--no-namespace-dir',
'--content-dir=@0@'.format(meson.current_source_dir()),
'@INPUT@',
],
depend_files: [ gcr_base_toml, gcr_base_content_files ],
depends: [ gck_gir[0] ],
build_by_default: true,
install: true,
install_dir: get_option('datadir') / 'doc',
)
Title: Non-pageable memory
Non-pageable memory
===================
Normal allocated memory can be paged to disk at the whim of the operating
system. This can be a problem for sensitive information like passwords, keys
and secrets.
The Gcr library holds passwords and keys in *non-pageable*, or *locked* memory.
This is only possible if the OS contains support for it.
The set of `gcr_secure_memory_*()` functions allow applications to use secure
memory to hold passwords and other sensitive information.
* [func@Gcr.secure_memory_alloc]
* [func@Gcr.secure_memory_try_alloc]
* [func@Gcr.secure_memory_realloc]
* [func@Gcr.secure_memory_try_realloc]
* [func@Gcr.secure_memory_is_secure]
* [func@Gcr.secure_memory_strdup]
* [func@Gcr.secure_memory_strfree]
Title: PKCS#11 configuration
PKCS#11 configuration
=====================
The GCR library maintains a global list of PKCS#11 modules to use for
its various lookups and storage operations. Each module is represented by
a [class@Gck.Module] object. You can examine this list by using
[func@pkcs11_get_modules].
The list is configured automatically by looking for system installed
PKCS#11 modules. It's not not normally necessary to modify this list. But
if you have special needs, you can use the [func@pkcs11_set_modules] and
[func@pkcs11_add_module] (or [func@pkcs11_add_module_from_file]) to do so.
Trust assertions are stored and looked up in specific PKCS#11 slots.
You can examine this list with [func@pkcs11_get_trust_lookup_slots].
Title: Trust store
Description: Store/Lookup bits of information used for verifying certificates.
Trust store
===========
GCR provides functions to access information about which certificates the system
and user trusts, such as certificate authority trust anchors, or overrides
to the normal verification of certificates.
These functions do not constitute a viable method for verifying certificates
used in TLS or other locations. Instead they support such verification by
providing some of the needed data for a trust decision.
The storage is provided by pluggable PKCS#11 modules.
Trust Anchors
-------------
Trust anchors are used to verify the certificate authority in a certificate
chain. Trust anchors are always valid for a given purpose. The most common
purpose is [const@PURPOSE_SERVER_AUTH] and is used for a client application to
verify that the certificate at the server side of a TLS connection is authorized
to act as such. To check if a certificate is a trust anchor, use
[func@Gcr.trust_is_certificate_anchored], or
[func@Gcr.trust_is_certificate_anchored_async] for the asynchronous version
Pinned certificates
-------------------
Pinned certificates are used when a user overrides the default trust decision
for a given certificate. They're often used with self-signed certificates.
Pinned certificates are always only valid for a single peer such as the remote
host with which TLS is being performed. To lookup pinned certificates, use
[func@Gcr.trust_is_certificate_pinned], or
[func@Gcr.trust_is_certificate_pinned_async] for the asynchronous version.
After the user has requested to override the trust decision about a given
certificate then a pinned certificates can be added by using the
[func@Gcr.trust_add_pinned_certificate] function, or
[func@Gcr.trust_add_pinned_certificate_async] for the asynchronous version.
subdir('reference/gck')
subdir('reference/gcr')
gi_docgen = find_program('gi-docgen')
subdir('gck')
subdir('gcr')
subdir('ui')
# Create a pseudo target that build all docs at once
alias_target('docs',
gck_docs,
gcr_base_docs,
gcr_ui_docs,
)
<?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" [
<!ENTITY version SYSTEM "version.xml">
]>
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
<bookinfo>
<title>Gck Library Reference Manual</title>
<releaseinfo>
For Gck &version;.
An online version of this documentation can be found at
<ulink role="online-location" url="http://developer.gnome.org/gck/stable/">http://developer.gnome.org/gck/stable/</ulink>.
</releaseinfo>
</bookinfo>
<chapter id="reference">
<title>PKCS#11 GObject Bindings</title>
<xi:include href="xml/gck-module.xml"/>
<xi:include href="xml/gck-slot.xml"/>
<xi:include href="xml/gck-session.xml"/>
<xi:include href="xml/gck-object.xml"/>
<xi:include href="xml/gck-attribute.xml"/>
<xi:include href="xml/gck-attributes.xml"/>
<xi:include href="xml/gck-object-cache.xml"/>
<xi:include href="xml/gck-enumerator.xml"/>
<xi:include href="xml/gck-modules.xml"/>
<xi:include href="xml/gck-error.xml"/>
<xi:include href="xml/gck-uri.xml"/>
<xi:include href="xml/gck-library.xml"/>
<xi:include href="xml/gck-misc.xml"/>
</chapter>
<xi:include href="gck-pkcs11-links.xml"/>
<xi:include href="xml/annotation-glossary.xml">
<xi:fallback />
</xi:include>
</book>
# These are manually-edited to override or add declarations to those scanned
# from the header files.
<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<chapter xml:id="pkcs11-links">
<title>About PKCS#11</title>
<anchor id="CK-NOTIFY:CAPS"/>
<anchor id="CK-SLOT-ID:CAPS"/>
<anchor id="CK-FUNCTION-LIST-PTR:CAPS"/>
<anchor id="CK-RV:CAPS"/>
<anchor id="CK-SESSION-HANDLE:CAPS"/>
<anchor id="CK-OBJECT-HANDLE:CAPS"/>
<anchor id="CK-OBJECT-HANDLE-PTR:CAPS"/>
<anchor id="CK-ULONG:CAPS"/>
<anchor id="CK-BBOOL:CAPS"/>
<para>PKCS#11 is an API for storing and using crypto objects, and performing
crypto operations on them.</para>
<para>It is specified at the
<ulink href="http://www.rsa.com/rsalabs/node.asp?id=2133">RSA website</ulink>
and a <ulink href="http://www.cryptsoft.com/pkcs11doc/">handy reference</ulink> is also
available.</para>
</chapter>
<SECTION>
<TITLE>Library Utilities</TITLE>
<FILE>gck-library</FILE>
GCK_CHECK_VERSION
GCK_MAJOR_VERSION
GCK_MICRO_VERSION
GCK_MINOR_VERSION
</SECTION>
<SECTION>
<FILE>gck-attribute</FILE>
GckAttribute
gck_attribute_is_invalid
gck_attribute_get_boolean
gck_attribute_get_ulong
gck_attribute_get_string
gck_attribute_get_date
gck_attribute_get_data
gck_attribute_dump
gck_attribute_equal
gck_attribute_hash
gck_attribute_init
gck_attribute_init_boolean
gck_attribute_init_date
gck_attribute_init_string
gck_attribute_init_ulong
gck_attribute_init_empty
gck_attribute_init_invalid
gck_attribute_init_copy
gck_attribute_new
gck_attribute_new_boolean
gck_attribute_new_date
gck_attribute_new_string
gck_attribute_new_ulong
gck_attribute_new_empty
gck_attribute_new_invalid
gck_attribute_dup
gck_attribute_clear
gck_attribute_free
<SUBSECTION Standard>
GCK_TYPE_ATTRIBUTE
gck_attribute_get_type
</SECTION>
<SECTION>
<FILE>gck-attributes</FILE>
GckAttributes
gck_attributes_new_empty
gck_attributes_at
gck_attributes_find
gck_attributes_find_boolean
gck_attributes_find_ulong
gck_attributes_find_string
gck_attributes_find_date
gck_attributes_count
gck_attributes_ref
gck_attributes_ref_sink
gck_attributes_unref
gck_attributes_contains
gck_attributes_to_string
gck_attributes_dump
GckBuilder
GckBuilderFlags
GCK_BUILDER_INIT
gck_builder_init
gck_builder_init_full
gck_builder_new
gck_builder_add_boolean
gck_builder_set_boolean
gck_builder_add_data
gck_builder_set_data
gck_builder_take_data
gck_builder_add_date
gck_builder_set_date
gck_builder_add_string
gck_builder_set_string
gck_builder_add_ulong
gck_builder_set_ulong
gck_builder_add_empty
gck_builder_set_empty
gck_builder_add_invalid
gck_builder_set_invalid
gck_builder_add_attribute
gck_builder_add_all
gck_builder_set_all
gck_builder_add_except
gck_builder_add_exceptv
gck_builder_add_only
gck_builder_add_onlyv
gck_builder_end
gck_builder_clear
gck_builder_steal
gck_builder_ref
gck_builder_unref
gck_builder_copy
gck_builder_find
gck_builder_find_boolean
gck_builder_find_date
gck_builder_find_string
gck_builder_find_ulong
gck_attributes_new
gck_attributes_add
gck_attributes_add_all
gck_attributes_add_boolean
gck_attributes_add_data
gck_attributes_add_date
gck_attributes_add_empty
gck_attributes_add_invalid
gck_attributes_add_string
gck_attributes_add_ulong
gck_attributes_dup
gck_attributes_new_full
gck_attributes_set
gck_attributes_set_all
gck_attributes_set_boolean
gck_attributes_set_date
gck_attributes_set_string
gck_attributes_set_ulong
<SUBSECTION Standard>
GCK_TYPE_BUILDER
GCK_TYPE_BUILDER_FLAGS
GCK_TYPE_ATTRIBUTES
gck_attributes_get_type
gck_attributes_get_boxed_type
gck_builder_flags_get_type
gck_builder_get_type
GckAllocator
</SECTION>
<SECTION>
<FILE>gck-module</FILE>
GckModule
gck_module_initialize
gck_module_initialize_async
gck_module_initialize_finish
gck_module_new
gck_module_equal
gck_module_hash
gck_module_match
gck_module_get_path
gck_module_get_functions
gck_module_get_info
gck_module_get_slots
GckModuleInfo
gck_module_info_copy
gck_module_info_free
<SUBSECTION Standard>
GckModuleClass
gck_module_get_type
GCK_IS_MODULE
GCK_IS_MODULE_CLASS
GCK_MODULE
GCK_MODULE_CLASS
GCK_MODULE_GET_CLASS
GCK_TYPE_MODULE
GckModulePrivate
GCK_TYPE_MODULE_INFO
gck_module_info_get_type
</SECTION>
<SECTION>
<FILE>gck-modules</FILE>
gck_modules_initialize_registered
gck_modules_initialize_registered_async
gck_modules_initialize_registered_finish
gck_modules_enumerate_objects
gck_modules_enumerate_uri
gck_modules_get_slots
gck_modules_object_for_uri
gck_modules_objects_for_uri
gck_modules_token_for_uri
gck_modules_tokens_for_uri
</SECTION>
<SECTION>
<FILE>gck-slot</FILE>
GckMechanismInfo
gck_mechanism_info_copy
gck_mechanism_info_free
gck_mechanisms_length
gck_mechanisms_at
gck_mechanisms_check
GckSessionOptions
GckSlot
gck_slot_equal
gck_slot_hash
gck_slot_get_module
gck_slot_get_handle
gck_slot_get_info
gck_slot_match
gck_slot_get_token_info
gck_slot_get_mechanisms
gck_slot_get_mechanism_info
gck_slot_has_flags
gck_slot_enumerate_objects
gck_slots_enumerate_objects
gck_slot_open_session
gck_slot_open_session_full
gck_slot_open_session_full_async
gck_slot_open_session_async
gck_slot_open_session_finish
gck_slot_from_handle
GckSlotInfo
gck_slot_info_copy
gck_slot_info_free
GckTokenInfo
gck_token_info_copy
gck_token_info_free
<SUBSECTION Standard>
GckSlotClass
gck_slot_get_type
GCK_IS_SLOT
GCK_IS_SLOT_CLASS
GCK_SLOT
GCK_SLOT_CLASS
GCK_SLOT_GET_CLASS
GCK_TYPE_SLOT
GckSlotPrivate
GCK_TYPE_MECHANISM_INFO
GCK_TYPE_SLOT_INFO
GCK_TYPE_TOKEN_INFO
GckMechanisms
gck_mechanisms_free
gck_mechanism_info_get_type
gck_slot_info_get_type
gck_token_info_get_type
GCK_TYPE_SESSION_OPTIONS
gck_session_options_get_type
</SECTION>
<SECTION>
<FILE>gck-session</FILE>
GckSession
gck_session_from_handle
gck_session_open
gck_session_open_async
gck_session_open_finish
gck_session_get_module
gck_session_get_slot
gck_session_get_handle
gck_session_get_info
gck_session_get_interaction
gck_session_login
gck_session_login_async
gck_session_login_finish
gck_session_logout
gck_session_logout_async
gck_session_logout_finish
gck_session_create_object
gck_session_create_object_async
gck_session_create_object_finish
gck_session_enumerate_objects
gck_session_find_handles
gck_session_find_handles_async
gck_session_find_handles_finish
gck_session_find_objects
gck_session_find_objects_async
gck_session_find_objects_finish
gck_session_encrypt
gck_session_encrypt_full
gck_session_encrypt_async
gck_session_encrypt_finish
gck_session_decrypt
gck_session_decrypt_full
gck_session_decrypt_async
gck_session_decrypt_finish
gck_session_login_interactive
gck_session_login_interactive_async
gck_session_login_interactive_finish
gck_session_set_interaction
gck_session_sign
gck_session_sign_full
gck_session_sign_async
gck_session_sign_finish
gck_session_verify
gck_session_verify_full
gck_session_verify_async
gck_session_verify_finish
gck_session_derive_key
gck_session_derive_key_async
gck_session_derive_key_finish
gck_session_derive_key_full
gck_session_generate_key_pair
gck_session_generate_key_pair_async
gck_session_generate_key_pair_finish
gck_session_generate_key_pair_full
gck_session_get_options
gck_session_get_state
gck_session_init_pin
gck_session_init_pin_async
gck_session_init_pin_finish
gck_session_set_pin
gck_session_set_pin_async
gck_session_set_pin_finish
gck_session_unwrap_key
gck_session_unwrap_key_async
gck_session_unwrap_key_finish
gck_session_unwrap_key_full
gck_session_wrap_key
gck_session_wrap_key_async
gck_session_wrap_key_finish
gck_session_wrap_key_full
GckSessionInfo
gck_session_info_copy
gck_session_info_free
GckMechanism
<SUBSECTION Standard>
gck_session_get_type
GckSessionClass
GCK_IS_SESSION
GCK_IS_SESSION_CLASS
GCK_SESSION
GCK_SESSION_CLASS
GCK_SESSION_GET_CLASS
GCK_TYPE_SESSION
GckSessionPrivate
GCK_TYPE_SESSION_INFO
gck_session_info_get_type
</SECTION>
<SECTION>
<FILE>gck-object</FILE>
GckObject
GckObjectClass
gck_object_from_handle
gck_objects_from_handle_array
gck_object_equal
gck_object_hash
gck_object_get_module
gck_object_get_handle
gck_object_get_session
gck_object_destroy
gck_object_destroy_async
gck_object_destroy_finish
gck_object_set
gck_object_set_async
gck_object_set_finish
gck_object_get
gck_object_get_async
gck_object_get_finish
gck_object_get_data
gck_object_get_data_full
gck_object_get_data_async
gck_object_get_data_finish
gck_object_get_full
gck_object_get_template
gck_object_get_template_async
gck_object_get_template_finish
gck_object_set_template
gck_object_set_template_async
gck_object_set_template_finish
<SUBSECTION Standard>
gck_object_get_type
GCK_IS_OBJECT
GCK_IS_OBJECT_CLASS
GCK_OBJECT
GCK_OBJECT_CLASS
GCK_OBJECT_GET_CLASS
GCK_TYPE_OBJECT
GckObjectPrivate
</SECTION>
<SECTION>
<FILE>gck-object-cache</FILE>
GckObjectCache
GckObjectCacheIface
gck_object_cache_get_attributes
gck_object_cache_set_attributes
gck_object_cache_fill
gck_object_cache_lookup
gck_object_cache_lookup_async
gck_object_cache_lookup_finish
gck_object_cache_update
gck_object_cache_update_async
gck_object_cache_update_finish
<SUBSECTION Standard>
gck_object_cache_get_type
GCK_IS_OBJECT_CACHE
GCK_OBJECT_CACHE
GCK_OBJECT_CACHE_GET_INTERFACE
GCK_TYPE_OBJECT_CACHE
</SECTION>
<SECTION>
<FILE>gck-error</FILE>
GCK_VENDOR_CODE
GCK_ERROR
gck_message_from_rv
</SECTION>
<SECTION>
<FILE>gck-uri</FILE>
GckUriData
GckUriError
GckUriFlags
GCK_URI_FOR_MODULE_WITH_VERSION
GCK_URI_FOR_OBJECT_ON_TOKEN
GCK_URI_FOR_OBJECT_ON_TOKEN_AND_MODULE
gck_uri_data_new
gck_uri_parse
gck_uri_build
gck_uri_data_copy
gck_uri_data_free
GCK_URI_ERROR
<SUBSECTION Private>
gck_uri_get_error_quark
GCK_URI_DATA_TYPE
gck_uri_data_get_type
gck_uri_error_get_quark
GCK_TYPE_URI_ERROR
GCK_TYPE_URI_FLAGS
gck_uri_error_get_type
gck_uri_flags_get_type
</SECTION>
<SECTION>
<FILE>gck-enumerator</FILE>
GckEnumerator
gck_enumerator_next
gck_enumerator_next_async
gck_enumerator_next_finish
gck_enumerator_next_n
gck_enumerator_get_interaction
gck_enumerator_set_interaction
gck_enumerator_get_object_type
gck_enumerator_set_object_type
gck_enumerator_set_object_type_full
gck_enumerator_get_chained
gck_enumerator_set_chained
<SUBSECTION Standard>
GckEnumeratorClass
gck_enumerator_get_type
GckEnumeratorPrivate
GCK_ENUMERATOR
GCK_ENUMERATOR_CLASS
GCK_ENUMERATOR_GET_CLASS
GCK_IS_ENUMERATOR
GCK_IS_ENUMERATOR_CLASS
GCK_TYPE_ENUMERATOR
</SECTION>
<SECTION>
<FILE>gck-password</FILE>
GckPassword
GckPasswordClass
gck_password_get_key
gck_password_get_module
gck_password_get_token
<SUBSECTION Private>
gck_password_get_type
GckPasswordPrivate
GCK_IS_PASSWORD
GCK_IS_PASSWORD_CLASS
GCK_PASSWORD
GCK_PASSWORD_CLASS
GCK_PASSWORD_GET_CLASS
GCK_TYPE_PASSWORD
</SECTION>
<SECTION>
<FILE>gck-misc</FILE>
GckError
gck_list_ref_copy
gck_list_unref_free
gck_string_from_chars
gck_string_to_chars
gck_value_to_boolean
gck_value_to_ulong
GCK_INVALID
<SUBSECTION Private>
gck_get_error_quark
gck_error_get_quark
GCK_TYPE_LIST
gck_list_get_boxed_type
GCK_TYPE_ERROR
gck_error_get_type
</SECTION>
<SECTION>
<FILE>gck-private</FILE>
<SUBSECTION Private>
GCK_URI_BAD_PREFIX
CKR_GCK_MODULE_PROBLEM
</SECTION>