made the pack completely portable and wrote relevent bat files to go with it

This commit is contained in:
Draqoken
2025-04-09 17:04:56 +03:00
parent 5e77d7e9cf
commit 5e4144c3c0
7417 changed files with 2181044 additions and 19 deletions

View File

@@ -0,0 +1,135 @@
# The gvim.desktop file is generated by src/po/Makefile, do NOT edit.
# Edit the src/po/gvim.desktop.in file instead.
[Desktop Entry]
# Translators: This is the Application Name used in the GVim desktop file
Name[ca]=GVim
Name[de]=GVim
Name[eo]=GVim
Name[es]=GVim
Name[fi]=GVim
Name[fr]=GVim
Name[ga]=GVim
Name[it]=GVim
Name[ru]=GVim
Name[sr]=GVim
Name[tr]=GVim
Name[uk]=GVim
Name[zh_CN]=GVim
Name=GVim
# Translators: This is the Generic Application Name used in the Vim desktop file
GenericName[ca]=Editor de text
GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
GenericName[es]=Editor de texto
GenericName[fi]=Tekstinmuokkain
GenericName[fr]=Éditeur de texte
GenericName[ga]=Eagarthóir Téacs
GenericName[it]=Editor di testi
GenericName[ja]=テキストエディタ
GenericName[ru]=Текстовый редактор
GenericName[sr]=Едитор текст
GenericName[tr]=Metin Düzenleyici
GenericName[uk]=Редактор Тексту
GenericName[zh_CN]=文本编辑器
GenericName=Text Editor
# Translators: This is the comment used in the Vim desktop file
Comment[ca]=Edita fitxers de text
Comment[de]=Textdateien bearbeiten
Comment[eo]=Redakti tekstajn dosierojn
Comment[es]=Editar archivos de texto
Comment[fi]=Muokkaa tekstitiedostoja
Comment[fr]=Éditer des fichiers texte
Comment[ga]=Cuir comhaid téacs in eagar
Comment[it]=Edita file di testo
Comment[ja]=テキストファイルを編集します
Comment[ru]=Редактирование текстовых файлов
Comment[sr]=Уређујте текст фајлове
Comment[tr]=Metin dosyaları düzenleyin
Comment[uk]=Редагувати текстові файли
Comment[zh_CN]=编辑文本文件
Comment=Edit text files
# The translations should come from the po file. Leave them here for now, they will
# be overwritten by the po file when generating the desktop.file!
GenericName[da]=Teksteditor
GenericName[pl]=Edytor tekstu
GenericName[is]=Ritvinnsluforrit
Comment[af]=Redigeer tekslêers
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
Comment[ar]=حرّر ملفات نصية
Comment[az]=Mətn fayllarını redaktə edin
Comment[be]=Рэдагаваньне тэкставых файлаў
Comment[bg]=Редактиране на текстови файлове
Comment[bn]=টেক্স্ট ফাইল এডিট করুন
Comment[bs]=Izmijeni tekstualne datoteke
Comment[cs]=Úprava textových souborů
Comment[cy]=Golygu ffeiliau testun
Comment[da]=Rediger tekstfiler
Comment[el]=Επεξεργασία αρχείων κειμένου
Comment[en_CA]=Edit text files
Comment[en_GB]=Edit text files
Comment[et]=Redigeeri tekstifaile
Comment[eu]=Editatu testu-fitxategiak
Comment[fa]=ویرایش پرونده‌های متنی
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
Comment[he]=ערוך קבצי טקסט
Comment[hi]=पाठ फ़ाइलें संपादित करें
Comment[hr]=Uređivanje tekstualne datoteke
Comment[hu]=Szövegfájlok szerkesztése
Comment[id]=Edit file teks
Comment[is]=Vinna með textaskrár
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
Comment[ko]=텍스트 파일을 편집합니다
Comment[lt]=Redaguoti tekstines bylas
Comment[lv]=Rediģēt teksta failus
Comment[mk]=Уреди текстуални фајлови
Comment[ml]=വാചക രചനകള് തിരുത്തുക
Comment[mn]=Текст файл боловсруулах
Comment[mr]=गद्य फाइल संपादित करा
Comment[ms]=Edit fail teks
Comment[nb]=Rediger tekstfiler
Comment[ne]=पाठ फाइललाई संशोधन गर्नुहोस्
Comment[nl]=Tekstbestanden bewerken
Comment[nn]=Rediger tekstfiler
Comment[no]=Rediger tekstfiler
Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
Comment[pl]=Edytuj pliki tekstowe
Comment[pt]=Editar ficheiros de texto
Comment[pt_BR]=Edite arquivos de texto
Comment[ro]=Editare fişiere text
Comment[sk]=Úprava textových súborov
Comment[sl]=Urejanje datotek z besedili
Comment[sq]=Përpuno files teksti
Comment[sr@Latn]=Izmeni tekstualne datoteke
Comment[sv]=Redigera textfiler
Comment[ta]=உரை கோப்புகளை தொகுக்கவும்
Comment[th]=แก้ไขแฟ้มข้อความ
Comment[tk]=Metin faýllary editle
Comment[vi]=Soạn thảo tập tin văn bản
Comment[wa]=Asspougnî des fitcs tecses
Comment[zh_TW]=編輯文字檔
TryExec=gvim
Exec=gvim -f %F
Terminal=false
Type=Application
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
Keywords[ca]=Text;editor;
Keywords[de]=Text;Editor;
Keywords[eo]=Teksto;redaktilo;
Keywords[es]=Texto;editor;
Keywords[fi]=Teksti;muokkain;editori;
Keywords[fr]=Texte;éditeur;
Keywords[ga]=Téacs;eagarthóir;
Keywords[it]=Testo;editor;
Keywords[ja]=テキスト;エディタ;
Keywords[ru]=текст;текстовый редактор;
Keywords[sr]=Текст;едитор;
Keywords[tr]=Metin;düzenleyici;
Keywords[uk]=текст;редактор;
Keywords[zh_CN]=Text;editor;文本;编辑器;
Keywords=Text;editor;
# Translators: This is the Icon file name. Do NOT translate
Icon=gvim
Categories=Utility;TextEditor;
StartupNotify=true
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;

View File

@@ -0,0 +1,135 @@
# The vim.desktop file is generated by src/po/Makefile, do NOT edit.
# Edit the src/po/vim.desktop.in file instead.
[Desktop Entry]
# Translators: This is the Application Name used in the Vim desktop file
Name[ca]=Vim
Name[de]=Vim
Name[eo]=Vim
Name[es]=Vim
Name[fi]=Vim
Name[fr]=Vim
Name[ga]=Vim
Name[it]=Vim
Name[ru]=Vim
Name[sr]=Vim
Name[tr]=Vim
Name[uk]=Vim
Name[zh_CN]=Vim
Name=Vim
# Translators: This is the Generic Application Name used in the Vim desktop file
GenericName[ca]=Editor de text
GenericName[de]=Texteditor
GenericName[eo]=Tekstoredaktilo
GenericName[es]=Editor de texto
GenericName[fi]=Tekstinmuokkain
GenericName[fr]=Éditeur de texte
GenericName[ga]=Eagarthóir Téacs
GenericName[it]=Editor di testi
GenericName[ja]=テキストエディタ
GenericName[ru]=Текстовый редактор
GenericName[sr]=Едитор текст
GenericName[tr]=Metin Düzenleyici
GenericName[uk]=Редактор Тексту
GenericName[zh_CN]=文本编辑器
GenericName=Text Editor
# Translators: This is the comment used in the Vim desktop file
Comment[ca]=Edita fitxers de text
Comment[de]=Textdateien bearbeiten
Comment[eo]=Redakti tekstajn dosierojn
Comment[es]=Editar archivos de texto
Comment[fi]=Muokkaa tekstitiedostoja
Comment[fr]=Éditer des fichiers texte
Comment[ga]=Cuir comhaid téacs in eagar
Comment[it]=Edita file di testo
Comment[ja]=テキストファイルを編集します
Comment[ru]=Редактирование текстовых файлов
Comment[sr]=Уређујте текст фајлове
Comment[tr]=Metin dosyaları düzenleyin
Comment[uk]=Редагувати текстові файли
Comment[zh_CN]=编辑文本文件
Comment=Edit text files
# The translations should come from the po file. Leave them here for now, they will
# be overwritten by the po file when generating the desktop.file.
GenericName[da]=Teksteditor
GenericName[pl]=Edytor tekstu
GenericName[is]=Ritvinnsluforrit
Comment[af]=Redigeer tekslêers
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
Comment[ar]=حرّر ملفات نصية
Comment[az]=Mətn fayllarını redaktə edin
Comment[be]=Рэдагаваньне тэкставых файлаў
Comment[bg]=Редактиране на текстови файлове
Comment[bn]=টেক্স্ট ফাইল এডিট করুন
Comment[bs]=Izmijeni tekstualne datoteke
Comment[cs]=Úprava textových souborů
Comment[cy]=Golygu ffeiliau testun
Comment[da]=Rediger tekstfiler
Comment[el]=Επεξεργασία αρχείων κειμένου
Comment[en_CA]=Edit text files
Comment[en_GB]=Edit text files
Comment[et]=Redigeeri tekstifaile
Comment[eu]=Editatu testu-fitxategiak
Comment[fa]=ویرایش پرونده‌های متنی
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
Comment[he]=ערוך קבצי טקסט
Comment[hi]=पाठ फ़ाइलें संपादित करें
Comment[hr]=Uređivanje tekstualne datoteke
Comment[hu]=Szövegfájlok szerkesztése
Comment[id]=Edit file teks
Comment[is]=Vinna með textaskrár
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
Comment[ko]=텍스트 파일을 편집합니다
Comment[lt]=Redaguoti tekstines bylas
Comment[lv]=Rediģēt teksta failus
Comment[mk]=Уреди текстуални фајлови
Comment[ml]=വാചക രചനകള് തിരുത്തുക
Comment[mn]=Текст файл боловсруулах
Comment[mr]=गद्य फाइल संपादित करा
Comment[ms]=Edit fail teks
Comment[nb]=Rediger tekstfiler
Comment[ne]=पाठ फाइललाई संशोधन गर्नुहोस्
Comment[nl]=Tekstbestanden bewerken
Comment[nn]=Rediger tekstfiler
Comment[no]=Rediger tekstfiler
Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
Comment[pl]=Edytuj pliki tekstowe
Comment[pt]=Editar ficheiros de texto
Comment[pt_BR]=Edite arquivos de texto
Comment[ro]=Editare fişiere text
Comment[sk]=Úprava textových súborov
Comment[sl]=Urejanje datotek z besedili
Comment[sq]=Përpuno files teksti
Comment[sr@Latn]=Izmeni tekstualne datoteke
Comment[sv]=Redigera textfiler
Comment[ta]=உரை கோப்புகளை தொகுக்கவும்
Comment[th]=แก้ไขแฟ้มข้อความ
Comment[tk]=Metin faýllary editle
Comment[vi]=Soạn thảo tập tin văn bản
Comment[wa]=Asspougnî des fitchîs tecses
Comment[zh_TW]=編輯文字檔
TryExec=vim
Exec=vim %F
Terminal=true
Type=Application
# Translators: Search terms to find this application. Do NOT change the semicolons! The list MUST also end with a semicolon!
Keywords[ca]=Text;editor;
Keywords[de]=Text;Editor;
Keywords[eo]=Teksto;redaktilo;
Keywords[es]=Texto;editor;
Keywords[fi]=Teksti;muokkain;editori;
Keywords[fr]=Texte;éditeur;
Keywords[ga]=Téacs;eagarthóir;
Keywords[it]=Testo;editor;
Keywords[ja]=テキスト;エディタ;
Keywords[ru]=текст;текстовый редактор;
Keywords[sr]=Текст;едитор;
Keywords[tr]=Metin;düzenleyici;
Keywords[uk]=текст;редактор;
Keywords[zh_CN]=Text;editor;文本;编辑器;
Keywords=Text;editor;
# Translators: This is the Icon file name. Do NOT translate
Icon=gvim
Categories=Utility;TextEditor;
StartupNotify=false
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;

View File

@@ -0,0 +1,20 @@
# assert --- assert that a condition is true. Otherwise, exit.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May, 1993
function assert(condition, string)
{
if (! condition) {
printf("%s:%d: assertion failed: %s\n",
FILENAME, FNR, string) > "/dev/stderr"
_assert_exit = 1
exit 1
}
}
END {
if (_assert_exit)
exit 1
}

View File

@@ -0,0 +1,16 @@
# bits2str --- turn an integer into readable ones and zeros
function bits2str(bits, data, mask)
{
if (bits == 0)
return "0"
mask = 1
for (; bits != 0; bits = rshift(bits, 1))
data = (and(bits, mask) ? "1" : "0") data
while ((length(data) % 8) != 0)
data = "0" data
return data
}

View File

@@ -0,0 +1,14 @@
# cliff_rand.awk --- generate Cliff random numbers
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# December 2000
BEGIN { _cliff_seed = 0.1 }
function cliff_rand()
{
_cliff_seed = (100 * log(_cliff_seed)) % 1
if (_cliff_seed < 0)
_cliff_seed = - _cliff_seed
return _cliff_seed
}

View File

@@ -0,0 +1,12 @@
# ctime.awk
#
# awk version of C ctime(3) function
function ctime(ts, format)
{
format = "%a %b %e %H:%M:%S %Z %Y"
if (ts == 0)
ts = systime() # use current time as default
return strftime(format, ts)
}

View File

@@ -0,0 +1,15 @@
# ftrans.awk --- handle datafile transitions
#
# user supplies beginfile() and endfile() functions
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# November 1992
FNR == 1 {
if (_filename_ != "")
endfile(_filename_)
_filename_ = FILENAME
beginfile(FILENAME)
}
END { endfile(_filename_) }

View File

@@ -0,0 +1,79 @@
# getopt.awk --- Do C library getopt(3) function in awk
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
#
# Initial version: March, 1991
# Revised: May, 1993
# External variables:
# Optind -- index in ARGV of first nonoption argument
# Optarg -- string value of argument to current option
# Opterr -- if nonzero, print our own diagnostic
# Optopt -- current option letter
# Returns:
# -1 at end of options
# "?" for unrecognized option
# <c> a character representing the current option
# Private Data:
# _opti -- index in multiflag option, e.g., -abc
function getopt(argc, argv, options, thisopt, i)
{
if (length(options) == 0) # no options given
return -1
if (argv[Optind] == "--") { # all done
Optind++
_opti = 0
return -1
} else if (argv[Optind] !~ /^-[^:[:space:]]/) {
_opti = 0
return -1
}
if (_opti == 0)
_opti = 2
thisopt = substr(argv[Optind], _opti, 1)
Optopt = thisopt
i = index(options, thisopt)
if (i == 0) {
if (Opterr)
printf("%c -- invalid option\n", thisopt) > "/dev/stderr"
if (_opti >= length(argv[Optind])) {
Optind++
_opti = 0
} else
_opti++
return "?"
}
if (substr(options, i + 1, 1) == ":") {
# get option argument
if (length(substr(argv[Optind], _opti + 1)) > 0)
Optarg = substr(argv[Optind], _opti + 1)
else
Optarg = argv[++Optind]
_opti = 0
} else
Optarg = ""
if (_opti == 0 || _opti >= length(argv[Optind])) {
Optind++
_opti = 0
} else
_opti++
return thisopt
}
BEGIN {
Opterr = 1 # default is to diagnose
Optind = 1 # skip ARGV[0]
# test program
if (_getopt_test) {
while ((_go_c = getopt(ARGC, ARGV, "ab:cd")) != -1)
printf("c = <%c>, Optarg = <%s>\n",
_go_c, Optarg)
printf("non-option arguments:\n")
for (; Optind < ARGC; Optind++)
printf("\tARGV[%d] = <%s>\n",
Optind, ARGV[Optind])
}
}

View File

@@ -0,0 +1,62 @@
# getlocaltime.awk --- get the time of day in a usable format
#
# Arnold Robbins, arnold@skeeve.com, Public Domain, May 1993
#
# Returns a string in the format of output of date(1)
# Populates the array argument time with individual values:
# time["second"] -- seconds (0 - 59)
# time["minute"] -- minutes (0 - 59)
# time["hour"] -- hours (0 - 23)
# time["althour"] -- hours (0 - 12)
# time["monthday"] -- day of month (1 - 31)
# time["month"] -- month of year (1 - 12)
# time["monthname"] -- name of the month
# time["shortmonth"] -- short name of the month
# time["year"] -- year modulo 100 (0 - 99)
# time["fullyear"] -- full year
# time["weekday"] -- day of week (Sunday = 0)
# time["altweekday"] -- day of week (Monday = 0)
# time["dayname"] -- name of weekday
# time["shortdayname"] -- short name of weekday
# time["yearday"] -- day of year (0 - 365)
# time["timezone"] -- abbreviation of timezone name
# time["ampm"] -- AM or PM designation
# time["weeknum"] -- week number, Sunday first day
# time["altweeknum"] -- week number, Monday first day
function getlocaltime(time, ret, now, i)
{
# get time once, avoids unnecessary system calls
now = systime()
# return date(1)-style output
ret = strftime("%a %b %e %H:%M:%S %Z %Y", now)
# clear out target array
delete time
# fill in values, force numeric values to be
# numeric by adding 0
time["second"] = strftime("%S", now) + 0
time["minute"] = strftime("%M", now) + 0
time["hour"] = strftime("%H", now) + 0
time["althour"] = strftime("%I", now) + 0
time["monthday"] = strftime("%d", now) + 0
time["month"] = strftime("%m", now) + 0
time["monthname"] = strftime("%B", now)
time["shortmonth"] = strftime("%b", now)
time["year"] = strftime("%y", now) + 0
time["fullyear"] = strftime("%Y", now) + 0
time["weekday"] = strftime("%w", now) + 0
time["altweekday"] = strftime("%u", now) + 0
time["dayname"] = strftime("%A", now)
time["shortdayname"] = strftime("%a", now)
time["yearday"] = strftime("%j", now) + 0
time["timezone"] = strftime("%Z", now)
time["ampm"] = strftime("%p", now)
time["weeknum"] = strftime("%U", now) + 0
time["altweeknum"] = strftime("%W", now) + 0
return ret
}

View File

@@ -0,0 +1,83 @@
# group.awk --- functions for dealing with the group file
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May 1993
# Revised October 2000
# Revised December 2010
BEGIN {
# Change to suit your system
_gr_awklib = "/usr/lib/awk/"
}
function _gr_init( oldfs, oldrs, olddol0, grcat,
using_fw, using_fpat, n, a, i)
{
if (_gr_inited)
return
oldfs = FS
oldrs = RS
olddol0 = $0
using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
using_fpat = (PROCINFO["FS"] == "FPAT")
FS = ":"
RS = "\n"
grcat = _gr_awklib "grcat"
while ((grcat | getline) > 0) {
if ($1 in _gr_byname)
_gr_byname[$1] = _gr_byname[$1] "," $4
else
_gr_byname[$1] = $0
if ($3 in _gr_bygid)
_gr_bygid[$3] = _gr_bygid[$3] "," $4
else
_gr_bygid[$3] = $0
n = split($4, a, "[ \t]*,[ \t]*")
for (i = 1; i <= n; i++)
if (a[i] in _gr_groupsbyuser)
_gr_groupsbyuser[a[i]] = _gr_groupsbyuser[a[i]] " " $1
else
_gr_groupsbyuser[a[i]] = $1
_gr_bycount[++_gr_count] = $0
}
close(grcat)
_gr_count = 0
_gr_inited++
FS = oldfs
if (using_fw)
FIELDWIDTHS = FIELDWIDTHS
else if (using_fpat)
FPAT = FPAT
RS = oldrs
$0 = olddol0
}
function getgrnam(group)
{
_gr_init()
return _gr_byname[group]
}
function getgrgid(gid)
{
_gr_init()
return _gr_bygid[gid]
}
function getgruser(user)
{
_gr_init()
return _gr_groupsbyuser[user]
}
function getgrent()
{
_gr_init()
if (++_gr_count in _gr_bycount)
return _gr_bycount[_gr_count]
return ""
}
function endgrent()
{
_gr_count = 0
}

View File

@@ -0,0 +1,9 @@
# adequate_math_precision --- return true if we have enough bits
#
# Andrew Schorr, aschorr@telemetry-investments.com, Public Domain
# May 2017
function adequate_math_precision(n)
{
return (1 != (1+(1/(2^(n-1)))))
}

View File

@@ -0,0 +1,61 @@
# inplace --- load and invoke the inplace extension.
#
# Copyright (C) 2013, 2017 the Free Software Foundation, Inc.
#
# This file is part of GAWK, the GNU implementation of the
# AWK Programming Language.
#
# GAWK is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GAWK is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#
# Andrew J. Schorr, aschorr@telemetry-investments.com
# January 2013
#
# Revised for namespaces
# Arnold Robbins, arnold@skeeve.com
# July 2017
@load "inplace"
# Please set inplace::suffix to make a backup copy. For example, you may
# want to set inplace::suffix to .bak on the command line or in a BEGIN rule.
# By default, each filename on the command line will be edited inplace.
# But you can selectively disable this by adding an inplace=0 argument
# prior to files that you do not want to process this way. You can then
# reenable it later on the commandline by putting inplace=1 before files
# that you wish to be subject to inplace editing.
# N.B. We call inplace::end() in the BEGINFILE and END rules so that any
# actions in an ENDFILE rule will be redirected as expected.
@namespace "inplace"
BEGIN {
enable = 1 # enabled by default
}
BEGINFILE {
if (filename != "")
end(filename, suffix)
if (enable)
begin(filename = FILENAME, suffix)
else
filename = ""
}
END {
if (filename != "")
end(filename, suffix)
}

View File

@@ -0,0 +1,23 @@
# intdiv0 --- do integer division
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# July, 2014
#
# Name changed from div() to intdiv()
# April, 2015
#
# Changed to intdiv0()
# April, 2016
function intdiv0(numerator, denominator, result)
{
split("", result)
numerator = int(numerator)
denominator = int(denominator)
result["quotient"] = int(numerator / denominator)
result["remainder"] = int(numerator % denominator)
return 0.0
}

View File

@@ -0,0 +1,16 @@
# join.awk --- join an array into a string
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May 1993
function join(array, start, end, sep, result, i)
{
if (sep == "")
sep = " "
else if (sep == SUBSEP) # magic value
sep = ""
result = array[start]
for (i = start + 1; i <= end; i++)
result = result sep array[i]
return result
}

View File

@@ -0,0 +1,14 @@
function bindtextdomain(dir, domain)
{
return dir
}
function dcgettext(string, domain, category)
{
return string
}
function dcngettext(string1, string2, number, domain, category)
{
return (number == 1 ? string1 : string2)
}

View File

@@ -0,0 +1,17 @@
# noassign.awk --- library file to avoid the need for a
# special option that disables command-line assignments
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# October 1999
function disable_assigns(argc, argv, i)
{
for (i = 1; i < argc; i++)
if (argv[i] ~ /^[a-zA-Z_][a-zA-Z0-9_]*=.*/)
argv[i] = ("./" argv[i])
}
BEGIN {
if (No_command_assign)
disable_assigns(ARGC, ARGV)
}

View File

@@ -0,0 +1,72 @@
# ns_passwd.awk --- access password file information
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May 1993
# Revised October 2000
# Revised December 2010
#
# Reworked for namespaces June 2017, with help from
# Andrew J.: Schorr, aschorr@telemetry-investments.com
@namespace "passwd"
BEGIN {
# tailor this to suit your system
Awklib = "/usr/local/libexec/awk/"
}
function Init( oldfs, oldrs, olddol0, pwcat, using_fw, using_fpat)
{
if (Inited)
return
oldfs = FS
oldrs = RS
olddol0 = $0
using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
using_fpat = (PROCINFO["FS"] == "FPAT")
FS = ":"
RS = "\n"
pwcat = Awklib "pwcat"
while ((pwcat | getline) > 0) {
Byname[$1] = $0
Byuid[$3] = $0
Bycount[++Total] = $0
}
close(pwcat)
Count = 0
Inited = 1
FS = oldfs
if (using_fw)
FIELDWIDTHS = FIELDWIDTHS
else if (using_fpat)
FPAT = FPAT
RS = oldrs
$0 = olddol0
}
function awk::getpwnam(name)
{
Init()
return Byname[name]
}
function awk::getpwuid(uid)
{
Init()
return Byuid[uid]
}
function awk::getpwent()
{
Init()
if (Count < Total)
return Bycount[++Count]
return ""
}
function awk::endpwent()
{
Count = 0
}

View File

@@ -0,0 +1,44 @@
# ord.awk --- do ord and chr
# Global identifiers:
# _ord_: numerical values indexed by characters
# _ord_init: function to initialize _ord_
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# 16 January, 1992
# 20 July, 1992, revised
BEGIN { _ord_init() }
function _ord_init( low, high, i, t)
{
low = sprintf("%c", 7) # BEL is ascii 7
if (low == "\a") { # regular ascii
low = 0
high = 127
} else if (sprintf("%c", 128 + 7) == "\a") {
# ascii, mark parity
low = 128
high = 255
} else { # ebcdic(!)
low = 0
high = 255
}
for (i = low; i <= high; i++) {
t = sprintf("%c", i)
_ord_[t] = i
}
}
function ord(str, c)
{
# only first character is of interest
c = substr(str, 1, 1)
return _ord_[c]
}
function chr(c)
{
# force c to be numeric by adding 0
return sprintf("%c", c + 0)
}

View File

@@ -0,0 +1,63 @@
# passwd.awk --- access password file information
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May 1993
# Revised October 2000
# Revised December 2010
BEGIN {
# tailor this to suit your system
_pw_awklib = "/usr/lib/awk/"
}
function _pw_init( oldfs, oldrs, olddol0, pwcat, using_fw, using_fpat)
{
if (_pw_inited)
return
oldfs = FS
oldrs = RS
olddol0 = $0
using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
using_fpat = (PROCINFO["FS"] == "FPAT")
FS = ":"
RS = "\n"
pwcat = _pw_awklib "pwcat"
while ((pwcat | getline) > 0) {
_pw_byname[$1] = $0
_pw_byuid[$3] = $0
_pw_bycount[++_pw_total] = $0
}
close(pwcat)
_pw_count = 0
_pw_inited = 1
FS = oldfs
if (using_fw)
FIELDWIDTHS = FIELDWIDTHS
else if (using_fpat)
FPAT = FPAT
RS = oldrs
$0 = olddol0
}
function getpwnam(name)
{
_pw_init()
return _pw_byname[name]
}
function getpwuid(uid)
{
_pw_init()
return _pw_byuid[uid]
}
function getpwent()
{
_pw_init()
if (_pw_count < _pw_total)
return _pw_bycount[++_pw_count]
return ""
}
function endpwent()
{
_pw_count = 0
}

View File

@@ -0,0 +1,12 @@
function process_array(arr, name, process, do_arrays, i, new_name)
{
for (i in arr) {
new_name = (name "[" i "]")
if (isarray(arr[i])) {
if (do_arrays)
@process(new_name, arr[i])
process_array(arr[i], new_name, process, do_arrays)
} else
@process(new_name, arr[i])
}
}

View File

@@ -0,0 +1,35 @@
# quicksort.awk --- Quicksort algorithm, with user-supplied
# comparison function
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# January 2009
# quicksort --- C.A.R. Hoare's quicksort algorithm. See Wikipedia
# or almost any algorithms or computer science text.
#
# Adapted from K&R-II, page 110
function quicksort(data, left, right, less_than, i, last)
{
if (left >= right) # do nothing if array contains fewer
return # than two elements
quicksort_swap(data, left, int((left + right) / 2))
last = left
for (i = left + 1; i <= right; i++)
if (@less_than(data[i], data[left]))
quicksort_swap(data, ++last, i)
quicksort_swap(data, left, last)
quicksort(data, left, last - 1, less_than)
quicksort(data, last + 1, right, less_than)
}
# quicksort_swap --- helper function for quicksort, should really be inline
function quicksort_swap(data, i, j, temp)
{
temp = data[i]
data[i] = data[j]
data[j] = temp
}

View File

@@ -0,0 +1,17 @@
# readable.awk --- library file to skip over unreadable files
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# October 2000
# December 2010
BEGIN {
for (i = 1; i < ARGC; i++) {
if (ARGV[i] ~ /^[a-zA-Z_][a-zA-Z0-9_]*=.*/ \
|| ARGV[i] == "-" || ARGV[i] == "/dev/stdin")
continue # assignment or standard input
else if ((getline junk < ARGV[i]) < 0) # unreadable
delete ARGV[i]
else
close(ARGV[i])
}
}

View File

@@ -0,0 +1,15 @@
# readfile.awk --- read an entire file at once
#
# Original idea by Denis Shirokov, cosmogen@gmail.com, April 2013
#
function readfile(file, tmp, save_rs)
{
save_rs = RS
RS = "^$"
getline tmp < file
close(file)
RS = save_rs
return tmp
}

View File

@@ -0,0 +1,20 @@
# rewind.awk --- rewind the current file and start over
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# September 2000
function rewind( i)
{
# shift remaining arguments up
for (i = ARGC; i > ARGIND; i--)
ARGV[i] = ARGV[i-1]
# make sure gawk knows to keep going
ARGC++
# make current file next to get done
ARGV[ARGIND+1] = FILENAME
# do it
nextfile
}

View File

@@ -0,0 +1,29 @@
# round.awk --- do normal rounding
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# August, 1996
function round(x, ival, aval, fraction)
{
ival = int(x) # integer part, int() truncates
# see if fractional part
if (ival == x) # no fraction
return ival # ensure no decimals
if (x < 0) {
aval = -x # absolute value
ival = int(aval)
fraction = aval - ival
if (fraction >= .5)
return int(x) - 1 # -2.5 --> -3
else
return int(x) # -2.3 --> -2
} else {
fraction = x - ival
if (fraction >= .5)
return ival + 1
else
return ival
}
}

View File

@@ -0,0 +1,22 @@
# shell_quote --- quote an argument for passing to the shell
#
# Michael Brennan
# brennan@madronabluff.com
# September 2014
function shell_quote(s, # parameter
SINGLE, QSINGLE, i, X, n, ret) # locals
{
if (s == "")
return "\"\""
SINGLE = "\x27" # single quote
QSINGLE = "\"\x27\""
n = split(s, X, SINGLE)
ret = SINGLE X[1] SINGLE
for (i = 2; i <= n; i++)
ret = ret QSINGLE SINGLE X[i] SINGLE
return ret
}

View File

@@ -0,0 +1,58 @@
# mystrtonum --- convert string to number
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# February, 2004
# Revised June, 2014
function mystrtonum(str, ret, n, i, k, c)
{
if (str ~ /^0[0-7]*$/) {
# octal
n = length(str)
ret = 0
for (i = 1; i <= n; i++) {
c = substr(str, i, 1)
# index() returns 0 if c not in string,
# includes c == "0"
k = index("1234567", c)
ret = ret * 8 + k
}
} else if (str ~ /^0[xX][[:xdigit:]]+$/) {
# hexadecimal
str = substr(str, 3) # lop off leading 0x
n = length(str)
ret = 0
for (i = 1; i <= n; i++) {
c = substr(str, i, 1)
c = tolower(c)
# index() returns 0 if c not in string,
# includes c == "0"
k = index("123456789abcdef", c)
ret = ret * 16 + k
}
} else if (str ~ \
/^[-+]?([0-9]+([.][0-9]*([Ee][0-9]+)?)?|([.][0-9]+([Ee][-+]?[0-9]+)?))$/) {
# decimal number, possibly floating point
ret = str + 0
} else
ret = "NOT-A-NUMBER"
return ret
}
# BEGIN { # gawk test harness
# a[1] = "25"
# a[2] = ".31"
# a[3] = "0123"
# a[4] = "0xdeadBEEF"
# a[5] = "123.45"
# a[6] = "1.e3"
# a[7] = "1.32"
# a[8] = "1.32E2"
#
# for (i = 1; i in a; i++)
# print a[i], strtonum(a[i]), mystrtonum(a[i])
# }

View File

@@ -0,0 +1,9 @@
function walk_array(arr, name, i)
{
for (i in arr) {
if (isarray(arr[i]))
walk_array(arr[i], (name "[" i "]"))
else
printf("%s[%s] = %s\n", name, i, arr[i])
}
}

View File

@@ -0,0 +1,19 @@
# zerofile.awk --- library file to process empty input files
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# June 2003
BEGIN { Argind = 0 }
ARGIND > Argind + 1 {
for (Argind++; Argind < ARGIND; Argind++)
zerofile(ARGV[Argind], Argind)
}
ARGIND != Argind { Argind = ARGIND }
END {
if (ARGIND > Argind)
for (Argind++; Argind <= ARGIND; Argind++)
zerofile(ARGV[Argind], Argind)
}

View File

@@ -0,0 +1,253 @@
# =========================================================================
#
# Schema Extension for Cygwin User and Group auxiliary classes
#
# Extend your Active Directory using
#
# ldifde -i -f <path>\<this>.ldif -b <username> <domain> <password> \
# -k -c "CN=schema,CN=Configuration,DC=X" #schemaNamingContext
#
# Remember:
# - you have to be schema admin for your active directory
# - you have to run the above command directly from your schema master
#
# For further information read
# http://technet.microsoft.com/en-us/magazine/2008.05.schema.aspx
#
# ----------------------------------------------------------------------
#
# Explanation for the OIDs:
#
# Value Meaning Description
# 1 ISO Identifies the root authority.
# 3 IANA Group designation assigned by ISO.
# 6.1.4.1.2312 Red Hat Organization assigned by IANA.
# 15 Cygwin Assigned by Organization.
# Y Object Type Number defining the different object type
# (category) such as classSchema or
# attributeSchema. For example, 5 defines
# object class.
# Z Object Number identifying a particular object
# within the category. For example, the user
# class has the number 9 assigned to it.
#
# ----------------------------------------------------------------------
# Attribute definition for cygwinHome
dn: CN=cygwin-Home,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-Home
attributeID: 1.3.6.1.4.1.2312.15.2.1
# attributeSyntax 2.5.5.12 is String(Unicode) with oMSyntax == 64
# see http://technet.microsoft.com/en-us/library/cc961740.aspx
attributeSyntax: 2.5.5.12
isSingleValued: TRUE
adminDisplayName: cygwin-Home
adminDescription: cygwin-Home
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: cygwinHome
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinShell
dn: CN=cygwin-Shell,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-Shell
attributeID: 1.3.6.1.4.1.2312.15.2.2
attributeSyntax: 2.5.5.12
isSingleValued: TRUE
adminDisplayName: cygwin-Shell
adminDescription: cygwin-Shell
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: cygwinShell
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinGecos
dn: CN=cygwin-Gecos,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-Gecos
attributeID: 1.3.6.1.4.1.2312.15.2.3
attributeSyntax: 2.5.5.12
isSingleValued: TRUE
adminDisplayName: cygwin-Gecos
adminDescription: cygwin-Gecos
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: cygwinGecos
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinFstab
dn: CN=cygwin-Fstab,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-Fstab
attributeID: 1.3.6.1.4.1.2312.15.2.4
attributeSyntax: 2.5.5.12
isSingleValued: FALSE
adminDisplayName: cygwin-Fstab
adminDescription: cygwin-Fstab
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: cygwinFstab
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinUnixUid
dn: CN=cygwin-UnixUid,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-UnixUid
attributeID: 1.3.6.1.4.1.2312.15.2.5
# attributeSyntax 2.5.5.9 is Integer with oMSyntax == 2
attributeSyntax: 2.5.5.9
isSingleValued: TRUE
adminDisplayName: cygwin-UnixUid
adminDescription: cygwin-UnixUid
oMSyntax: 2
searchFlags: 1
lDAPDisplayName: cygwinUnixUid
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinUnixGid
dn: CN=cygwin-UnixGid,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-UnixGid
attributeID: 1.3.6.1.4.1.2312.15.2.6
attributeSyntax: 2.5.5.9
isSingleValued: TRUE
adminDisplayName: cygwin-UnixGid
adminDescription: cygwin-UnixGid
oMSyntax: 2
searchFlags: 1
lDAPDisplayName: cygwinUnixGid
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# cygwin-User auxiliary class
dn: CN=cygwin-User,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: classSchema
cn: cygwin-User
governsID: 1.3.6.1.4.1.2312.15.1.1
mayContain: cygwinHome
mayContain: cygwinShell
mayContain: cygwinGecos
mayContain: cygwinFstab
mayContain: cygwinUnixUid
rDNAttID: cn
adminDisplayName: cygwin-User
adminDescription: cygwin-User
objectClassCategory: 3
lDAPDisplayName: cygwinUser
name: cygwin-User
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# cygwin-Group auxiliary class
dn: CN=cygwin-Group,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: classSchema
cn: cygwin-Group
governsID: 1.3.6.1.4.1.2312.15.1.2
mayContain: cygwinUnixGid
rDNAttID: cn
adminDisplayName: cygwin-Group
adminDescription: cygwin-Group
objectClassCategory: 3
lDAPDisplayName: cygwinGroup
name: cygwin-Group
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attach cygwin-User to User
dn: CN=User,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemamodify
add: auxiliaryClass
auxiliaryClass: cygwinUser
-
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attach cygwin-Group to Group
dn: CN=Group,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemamodify
add: auxiliaryClass
auxiliaryClass: cygwinGroup
-
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-

View File

@@ -0,0 +1,10 @@
# Set path to perl scriptdirs if they exist
# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_scripts
if status --is-login
for perldir in /usr/bin/site_perl /usr/bin/vendor_perl /usr/bin/core_perl
if test -d $perldir
set PATH $PATH $perldir
end
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,279 @@
# help.de.txt - German GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
# Die Datei help.txt beschreibt das verwendete Format.
# Diese Datei muß UTF-8 kodiert sein.
.#pinentry.qualitybar.tooltip
# Dies ist lediglich eine kommentiertes Beispiel. Es ist am sinnvolssten
# einen individuellen Text in /etc/gnupg/help.de.txt zu erstellen.
Die Qualität der Passphrase, die Sie oben eingegeben haben. Bitte
fragen sie Ihren Systembeauftragten nach den Kriterien für die Messung
der Qualität.
.
.gpg.edit_ownertrust.value
Sie müssen selbst entscheiden, welchen Wert Sie hier eintragen; dieser Wert
wird niemals an eine dritte Seite weitergegeben. Wir brauchen diesen Wert,
um das "Netz des Vertrauens" aufzubauen. Dieses hat nichts mit dem
(implizit erzeugten) "Netz der Zertifikate" zu tun.
.
.gpg.edit_ownertrust.set_ultimate.okay
Um das Web-of-Trust aufzubauen muß GnuPG wissen, welchen Schlüsseln
ultimativ vertraut wird. Das sind üblicherweise die Schlüssel
auf deren geheimen Schlüssel Sie Zugruff haben.
Antworten Sie mit "yes" um diesen Schlüssel ultimativ zu vertrauen
.
.gpg.untrusted_key.override
Wenn Sie diesen nicht vertrauenswürdigen Schlüssel trotzdem benutzen wollen,
so antworten Sie mit "ja".
.
.gpg.pklist.user_id.enter
Geben Sie die User-ID dessen ein, dem Sie die Botschaft senden wollen.
.
.gpg.keygen.algo
Wählen Sie das zu verwendene Verfahren.
DSA (alias DSS) ist der "Digital Signature Algorithm" und kann nur für
Unterschriften genutzt werden.
Elgamal ist ein Verfahren nur für Verschlüsselung.
RSA kann sowohl für Unterschriften als auch für Verschlüsselung genutzt
werden.
Der erste Schlüssel (Hauptschlüssel) muß immer ein Schlüssel sein, mit dem
unterschrieben werden kann.
.
.gpg.keygen.algo.rsa_se
Normalerweise ist es nicht gut, denselben Schlüssel zum unterschreiben
und verschlüsseln zu nutzen. Dieses Verfahren sollte in speziellen
Anwendungsgebiten benutzt werden. Bitte lassen Sie sich zuerst von
einem Sicherheistexperten beraten.
.
.gpg.keygen.size
Wählen Sie die gewünschte Schlüssellänge
.
.gpg.keygen.size.huge.okay
Geben Sie "ja" oder "nein" ein
.
.gpg.keygen.size.large.okay
Geben Sie "ja" oder "nein" ein
.
.gpg.keygen.valid
Geben Sie den benötigten Wert so an, wie er im Prompt erscheint.
Es ist zwar möglich ein "ISO"-Datum (JJJJ-MM-DD) einzugeben, aber man
erhält dann ggfs. keine brauchbaren Fehlermeldungen - stattdessen versucht
der Rechner den Wert als Intervall (von-bis) zu deuten.
.
.gpg.keygen.valid.okay
Geben Sie "ja" oder "nein" ein
.
.gpg.keygen.name
Geben Sie den Namen des Schlüsselinhabers ein.
Beispiel: Heinrich Heine.
.
.gpg.keygen.email
Geben Sie eine Email-Adresse ein. Dies ist zwar nicht unbedingt notwendig,
aber sehr empfehlenswert.
Beispiel: heinrichh@duesseldorf.de
.
.gpg.keygen.comment
Geben Sie - bei Bedarf - einen Kommentar ein.
.
.gpg.keygen.userid.cmd
N um den Namen zu ändern.
K um den Kommentar zu ändern.
E um die Email-Adresse zu ändern.
F um mit der Schlüsselerzeugung fortzusetzen.
B um die Schlüsselerzeugung abbrechen.
.
.gpg.keygen.sub.okay
Geben Sie "ja" (oder nur "j") ein, um den Unterschlüssel zu erzeugen.
.
.gpg.sign_uid.okay
Geben Sie "ja" oder "nein" ein
.
.gpg.sign_uid.class
Wenn Sie die User-ID eines Schlüssels beglaubigen wollen, sollten Sie zunächst
sicherstellen, daß der Schlüssel demjenigen gehört, der in der User-ID genannt
ist. Für Dritte ist es hilfreich zu wissen, wie gut diese Zuordnung überprüft
wurde.
"0" zeigt, daß Sie keine bestimmte Aussage über die Sorgfalt der
Schlüsselzuordnung machen.
"1" Sie glauben, daß der Schlüssel der benannten Person gehört,
aber Sie konnten oder nahmen die Überpüfung überhaupt nicht vor.
Dies ist hilfreich für eine "persona"-Überprüfung, wobei man den
Schlüssel eines Pseudonym-Trägers beglaubigt
"2" Sie nahmen eine flüchtige Überprüfung vor. Das heißt Sie haben z.B.
den Schlüsselfingerabdruck kontrolliert und die User-ID des Schlüssels
anhand des Fotos geprüft.
"3" Sie haben eine ausführlich Kontrolle des Schlüssels vorgenommen.
Das kann z.B. die Kontrolle des Schlüsselfingerabdrucks mit dem
Schlüsselinhaber persönlich vorgenommen haben; daß Sie die User-ID des
Schlüssel anhand einer schwer zu fälschenden Urkunde mit Foto (wie z.B.
einem Paß) abgeglichen haben und schließlich per Email-Verkehr die
Email-Adresse als zum Schlüsselbesitzer gehörig erkannt haben.
Beachten Sie, daß diese Beispiele für die Antworten 2 und 3 *nur* Beispiele
sind. Schlußendlich ist es Ihre Sache, was Sie unter "flüchtig" oder
"ausführlich" verstehen, wenn Sie Schlüssel Dritter beglaubigen.
Wenn Sie nicht wissen, wie Sie antworten sollen, wählen Sie "0".
.
.gpg.change_passwd.empty.okay
Geben Sie "ja" oder "nein" ein
.
.gpg.keyedit.save.okay
Geben Sie "ja" oder "nein" ein
.
.gpg.keyedit.cancel.okay
Geben Sie "ja" oder "nein" ein
.
.gpg.keyedit.sign_all.okay
Geben Sie "ja" (oder nur "j") ein, um alle User-IDs zu beglaubigen
.
.gpg.keyedit.remove.uid.okay
Geben Sie "ja" (oder nur "j") ein, um diese User-ID zu LÖSCHEN.
Alle Zertifikate werden dann auch weg sein!
.
.gpg.keyedit.remove.subkey.okay
Geben Sie "ja" (oder nur "j") ein, um diesen Unterschlüssel zu löschen
.
.gpg.keyedit.delsig.valid
Dies ist eine gültige Beglaubigung für den Schlüssel. Es ist normalerweise
unnötig sie zu löschen. Sie ist möglicherweise sogar notwendig, um einen
Trust-Weg zu diesem oder einem durch diesen Schlüssel beglaubigten Schlüssel
herzustellen.
.
.gpg.keyedit.delsig.unknown
Diese Beglaubigung kann nicht geprüft werden, da Sie den passenden Schlüssel
nicht besitzen. Sie sollten die Löschung der Beglaubigung verschieben, bis
sie wissen, welcher Schlüssel verwendet wurde. Denn vielleicht würde genau
diese Beglaubigung den "Trust"-Weg komplettieren.
.
.gpg.keyedit.delsig.invalid
Diese Beglaubigung ist ungültig. Es ist sinnvoll sie aus Ihrem
Schlüsselbund zu entfernen.
.
.gpg.keyedit.delsig.selfsig
Diese Beglaubigung bindet die User-ID an den Schlüssel. Normalerweise ist
es nicht gut, solche Beglaubigungen zu entfernen. Um ehrlich zu sein:
Es könnte dann sein, daß GnuPG diesen Schlüssel gar nicht mehr benutzen kann.
Sie sollten diese Eigenbeglaubigung also nur dann entfernen, wenn sie aus
irgendeinem Grund nicht gültig ist und eine zweite Beglaubigung verfügbar ist.
.
.gpg.keyedit.updpref.okay
Ändern der Voreinstellung aller User-IDs (oder nur der ausgewählten)
auf die aktuelle Liste der Voreinstellung. Die Zeitangaben aller betroffenen
Eigenbeglaubigungen werden um eine Sekunde vorgestellt.
.
.gpg.passphrase.enter
Bitte geben Sie die Passphrase ein. Dies ist ein geheimer Satz
.
.gpg.passphrase.repeat
Um sicher zu gehen, daß Sie sich bei der Eingabe der Passphrase nicht
vertippt haben, geben Sie diese bitte nochmal ein. Nur wenn beide Eingaben
übereinstimmen, wird die Passphrase akzeptiert.
.
.gpg.detached_signature.filename
Geben Sie den Namen der Datei an, zu dem die abgetrennte Unterschrift gehört
.
.gpg.openfile.overwrite.okay
Geben Sie "ja" ein, wenn Sie die Datei überschreiben möchten
.
.gpg.openfile.askoutname
Geben Sie bitte einen neuen Dateinamen ein. Falls Sie nur die
Eingabetaste betätigen, wird der (in Klammern angezeigte) Standarddateiname
verwendet.
.
.gpg.ask_revocation_reason.code
Sie sollten einen Grund für die Zertifizierung angeben. Je nach
Zusammenhang können Sie aus dieser Liste auswählen:
"Schlüssel wurde kompromitiert"
Falls Sie Grund zu der Annahme haben, daß nicht berechtigte Personen
Zugriff zu Ihrem geheimen Schlüssel hatten
"Schlüssel ist überholt"
Falls Sie diesen Schlüssel durch einem neuen ersetzt haben.
"Schlüssel wird nicht mehr benutzt"
Falls Sie diesen Schlüssel zurückgezogen haben.
"User-ID ist nicht mehr gültig"
Um bekanntzugeben, daß die User-ID nicht mehr benutzt werden soll.
So weist man normalerweise auf eine ungültige Emailadresse hin.
.
.gpg.ask_revocation_reason.text
Wenn Sie möchten, können Sie hier einen Text eingeben, der darlegt, warum
Sie diesen Widerruf herausgeben. Der Text sollte möglichst knapp sein.
Eine Leerzeile beendet die Eingabe.
.
# Local variables:
# mode: default-generic
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,251 @@
# help.es.txt - es GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Está en su mano asignar un valor aquí. Dicho valor nunca será exportado a
terceros. Es necesario para implementar la red de confianza, no tiene nada
que ver con la red de certificados (implícitamente creada).
.
.gpg.edit_ownertrust.set_ultimate.okay
Para construir la Red-de-Confianza, GnuPG necesita saber qué claves
tienen confianza absoluta - normalmente son las claves para las que usted
puede acceder a la clave secreta. Conteste "sí" para hacer que esta
clave se considere como de total confianza
.
.gpg.untrusted_key.override
Si quiere usar esta clave no fiable de todos modos, conteste "sí".
.
.gpg.pklist.user_id.enter
Introduzca el ID de usuario al que quiere enviar el mensaje.
.
.gpg.keygen.algo
Seleccione el algoritmo que usar.
DSA (alias DSS) es el Algoritmo de Firma Digital y sólo se usa para firmas.
Elgamal es un algoritmo sólo para cifrar.
RSA sirve tanto para firmar como para cifrar.
La primera clave (clave primaria) debe ser siempre de tipo capaz de firmar.
.
.gpg.keygen.algo.rsa_se
En general no es una buena idea usar la misma clave para firmar y
cifrar. Este algoritmo debéria usarse solo en ciertos contextos.
Por favor consulte primero a un experto en seguridad.
.
.gpg.keygen.size
Introduzca la longitud de la clave
.
.gpg.keygen.size.huge.okay
Responda "sí" o "no"
.
.gpg.keygen.size.large.okay
Responda "sí" o "no"
.
.gpg.keygen.valid
Introduzca el valor requerido conforme se muestra.
Es posible introducir una fecha ISO (AAAA-MM-DD), pero no se obtendrá una
buena respuesta a los errores; el sistema intentará interpretar el valor
introducido como un intervalo.
.
.gpg.keygen.valid.okay
Responda "sí" o "no"
.
.gpg.keygen.name
Introduzca el nombre del dueño de la clave
.
.gpg.keygen.email
Introduzca una dirección de correo electrónico (opcional pero muy
recomendable)
.
.gpg.keygen.comment
Introduzca un comentario opcional
.
.gpg.keygen.userid.cmd
N para cambiar el nombre.
C para cambiar el comentario.
E para cambiar la dirección.
O para continuar con la generación de clave.
S para interrumpir la generación de clave.
.
.gpg.keygen.sub.okay
Responda "sí" (o sólo "s") para generar la subclave.
.
.gpg.sign_uid.okay
Responda "sí" o "no"
.
.gpg.sign_uid.class
Cuando firme un ID de usuario en una clave, debería verificar que la clave
pertenece a la persona que se nombra en el ID de usuario. Es útil para
otros saber cómo de cuidadosamente lo ha verificado.
"0" significa que no hace ninguna declaración concreta sobre como ha
comprobado la validez de la clave.
"1" significa que cree que la clave pertenece a la persona que declara
poseerla pero no pudo o no verificó la clave en absoluto. Esto es útil
para una verificación en persona cuando firmas la clave de un usuario
pseudoanónimo.
"2" significa que hizo una comprobación informal de la clave. Por ejemplo
podría querer decir que comprobó la huella dactilar de la clave y
comprobó el ID de usuario en la clave con un ID fotográfico.
"3" significa que hizo una comprobación exhaustiva de la clave. Por
ejemplo verificando la huella dactilar de la clave con el propietario
de la clave, y que comprobó, mediante un documento difícil de falsificar
con ID fotográfico (como un pasaporte) que el nombre del poseedor de la
clave coincide con el ID de usuario en la clave y finalmente que verificó
(intercambiando email) que la dirección de email de la clave pertenece
al poseedor de la clave.
Observe que los ejemplos dados en los niveles 2 y 3 son *solo* ejemplos.
En definitiva, usted decide lo que significa "informal" y "exhaustivo"
para usted cuando firma las claves de otros.
Si no sabe qué contestar, conteste "0".
.
.gpg.change_passwd.empty.okay
Responda "sí" o "no"
.
.gpg.keyedit.save.okay
Responda "sí" o "no"
.
.gpg.keyedit.cancel.okay
Responda "sí" o "no"
.
.gpg.keyedit.sign_all.okay
Responda "sí" si quiere firmar TODOS los IDs de usuario
.
.gpg.keyedit.remove.uid.okay
Responda "sí" si realmente quiere borrar este ID de usuario.
¡También se perderán todos los certificados!
.
.gpg.keyedit.remove.subkey.okay
Responda "sí" si quiere borrar esta subclave
.
.gpg.keyedit.delsig.valid
Esta es una firma válida de esta clave. Normalmente no será deseable
borrar esta firma ya que puede ser importante para establecer una conexión
de confianza con la clave o con otra clave certificada por ésta.
.
.gpg.keyedit.delsig.unknown
Esta firma no puede ser comprobada porque no tiene Vd. la clave
correspondiente. Debería posponer su borrado hasta conocer qué clave
se usó, ya que dicha clave podría establecer una conexión de confianza
a través de otra clave certificada.
.
.gpg.keyedit.delsig.invalid
Esta firma no es válida. Tiene sentido borrarla de su anillo.
.
.gpg.keyedit.delsig.selfsig
Esta es una firma que une el ID de usuario a la clave. No suele ser una
buena idea borrar dichas firmas. De hecho, GnuPG podría no ser capaz de
volver a usar esta clave. Así que bórrela tan sólo si esta autofirma no
es válida por alguna razón y hay otra disponible.
.
.gpg.keyedit.updpref.okay
Cambiar las preferencias de todos los IDs de usuario (o sólo los
seleccionados) a la lista actual de preferencias. El sello de tiempo
de todas las autofirmas afectadas se avanzará en un segundo.
.
.gpg.passphrase.enter
Por favor introduzca la contraseña: una frase secreta
.
.gpg.passphrase.repeat
Repita la última frase contraseña para asegurarse de lo que tecleó.
.
.gpg.detached_signature.filename
Introduzca el nombre del fichero al que corresponde la firma
.
.gpg.openfile.overwrite.okay
Responda "sí" para sobreescribir el fichero
.
.gpg.openfile.askoutname
Introduzca un nuevo nombre de fichero. Si pulsa INTRO se usará el fichero
por omisión (mostrado entre corchetes).
.
.gpg.ask_revocation_reason.code
Debería especificar un motivo para la certificación. Dependiendo del
contexto puede elegir una opción de esta lista:
"La clave ha sido comprometida"
Use esto si tiene razones para pensar que personas no autorizadas
tuvieron acceso a su clave secreta.
"La clave ha sido sustituida"
Use esto si ha reemplazado la clave por otra más nueva.
"La clave ya no está en uso"
Use esto si ha dejado de usar esta clave.
"La identificación de usuario ya no es válida"
Use esto para señalar que la identificación de usuario no debería
seguir siendo usada; esto se utiliza normalmente para marcar una
dirección de correo-e como inválida.
.
.gpg.ask_revocation_reason.text
Si lo desea puede introducir un texto explicando por qué emite
este certificado de revocación. Por favor, que el texto sea breve.
Una línea vacía pone fin al texto.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,256 @@
# help.fi.txt - fi GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Tämän arvon määrittäminen on sinun tehtäväsi, tätä arvoa ei koskaan
kerrota kolmansille osapuolille. Tarvitsemme sitä toteuttamaan
luottamusverkko eikä sillä ei ole mitään tekemistä (epäsuorasti luotujen)
varmenneverkkojen kanssa.
.
.gpg.edit_ownertrust.set_ultimate.okay
Rakentaakseen luottamusverkon, GnuPG:n täytyy tietää mihin avaimiin
luotetaan ehdottomasti - nämä ovat tavallisesti ne avaimet, joiden salainen
pari on sinulla. Vastaa "kyllä" luottaaksesi tähän avaimeen ehdoitta
.
.gpg.untrusted_key.override
Vastaa "kyllä" jos haluat kaikesta huolimatta käyttää tätä epäluotettavaa
avainta.
.
.gpg.pklist.user_id.enter
Syötä vastaanottajan, jolle haluat lähettää viestin, käyttäjätunnus.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.gpg.keygen.algo.rsa_se
Yleensä ei ole järkevää käyttää samaa avainta allekirjoitukseen
ja salaamiseen. Tätä algorimiä tulisi käyttää vain määrätyissä ympäristöissä.
Ole hyvä ja kysy tietoturva-asiantuntijaltasi ensin
.
.gpg.keygen.size
Syötä avaimen koko
.
.gpg.keygen.size.huge.okay
Vastaa "kyllä" tai " ei"
.
.gpg.keygen.size.large.okay
Vastaa "kyllä" tai " ei"
.
.gpg.keygen.valid
Syötä pyydetty arvo kuten näkyy kehotteessa.
On mahdollista syöttää ISO-muotoinen päivä (VVVV-KK-PP),
mutta sen seurauksena et saa kunnollista virheilmoitusta
vaan järjestelmä yrittää tulkita arvon aikajaksona.
.
.gpg.keygen.valid.okay
Vastaa "kyllä" tai " ei"
.
.gpg.keygen.name
Anna avaimen haltijan nimi
.
.gpg.keygen.email
anna vapaaehtoinen, mutta erittäin suositeltava sähköpostiosoite
.
.gpg.keygen.comment
Kirjoita vapaaehtoinen huomautus
.
.gpg.keygen.userid.cmd
N muuta nimeä
C muuta kommenttia
E muuta sähköpostiosoitetta
O jatka avaimen luomista
L lopeta
.
.gpg.keygen.sub.okay
Vastaa "kyllä" (tai vain "k") jos haluat luoda aliavaimen.
.
.gpg.sign_uid.okay
Vastaa "kyllä" tai " ei"
.
.gpg.sign_uid.class
Allekirjoittaessasi avaimen käyttäjätunnuksen sinun tulisi varmista, että
avain todella kuuluu henkilölle, joka mainitaan käyttäjätunnuksessa. Muiden
on hyvä tietää kuinka huolellisesti olet varmistanut tämän.
"0" tarkoittaa, että et väitä mitään siitä, kuinka huolellisesti olet
varmistanut avaimen.
"1" tarkoittaa, että uskot avaimen kuuluvan henkilölle, joka väittää
hallitsevan sitä, mutta et voinut varmistaa tai et varmistanut avainta
lainkaan. Tämä on hyödyllinen "persoonan" varmistamiseen, jossa
allekirjoitat pseudonyymin käyttäjän avaimen.
"2" tarkoittaa arkista varmistusta. Esimerkiksi olet varmistanut
avaimen sormenjäljen ja tarkistanut käyttäjätunnuksen ja
valokuvatunnisteen täsmäävän.
"3" tarkoittaa syvällistä henkilöllisyyden varmistamista. Esimerkiksi
tämä voi tarkoittaa avaimen sormenjäljen tarkistamista avaimen haltijan
kanssa henkilökohtaisesti, ja että tarkistit nimen avaimessa täsmäävän
vaikeasti väärennettävän kuvallisen henkilöllisyystodistuksen (kuten
passi) kanssa, ja lopuksi varmistit (sähköpostin vaihtamisella), että
sähköpostiosoite kuuluu avaimen haltijalle.
Huomaa, että yllä annetut esimerkit tasoille 2 ja 3 ovat todellakin *vain*
esimerkkejä. Lopullisesti se on sinun päätöksesi mitä "arkinen" ja
"syvällinen" tarkoittaa allekirjoittaessasi muita avaimia.
Jos et tiedä mikä olisi sopiva vastaus, vastaa "0".
.
.gpg.change_passwd.empty.okay
Vastaa "kyllä" tai " ei"
.
.gpg.keyedit.save.okay
Vastaa "kyllä" tai " ei"
.
.gpg.keyedit.cancel.okay
Vastaa "kyllä" tai " ei"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.gpg.keyedit.remove.uid.okay
Vastaa "kyllä", jos haluat poistaa tämän käyttäjätunnuksen.
Menetät samalla kaikki siihen liittyvät varmenteet!
.
.gpg.keyedit.remove.subkey.okay
Vastaa "kyllä", jos aliavaimen voi poistaa
.
.gpg.keyedit.delsig.valid
Tämä on voimassa oleva allekirjoitus tälle avaimelle, tavallisesti ei
kannata poistaa tätä allekirjoitusta koska se saattaa olla tarpeen
luottamussuhteen luomiseksi avaimeen tai johonkin toiseen tämän avaimen
varmentamaan avaimeen.
.
.gpg.keyedit.delsig.unknown
Allekirjoitusta ei voida tarkistaa koska sinulla ei ole
siihen liittyvää avainta. Lykkää sen poistamista kunnes
tiedät mitä avainta on käytetty, koska allekirjoitus
avain saattaa luoda luottamusketjun toisen, jo ennalta
varmennetun avaimen kautta.
.
.gpg.keyedit.delsig.invalid
Allekirjoitus ei ole pätevä. Järkevintä olisi poistaa se
avainrenkaastasi.
.
.gpg.keyedit.delsig.selfsig
Tämä allekirjoitus takaa avaimen haltijan henkilöllisyyden.
Tällaisen allekirjoituksen poistaminen on tavallisesti huono
ajatus. GnuPG ei kenties voi käyttää avainta enää. Poista
allekirjoitus vain, jos se ei ole jostain syystä pätevä, ja
avaimella on jo toinen allekirjoitus.
.
.gpg.keyedit.updpref.okay
Muuta valinnat kaikille käyttäjätunnuksille (tai vain valituille)
nykyiseen luetteloon valinnoista. Kaikkien muutettujen
oma-allekirjoitusten aikaleima siirretään yhdellä sekunnilla eteenpäin.
.
.gpg.passphrase.enter
Ole hyvä ja syötä salasana, tämän on salainen lause
.
.gpg.passphrase.repeat
Toista edellinen salasanasi varmistuaksesi siitä, mitä kirjoitit.
.
.gpg.detached_signature.filename
Anna allekirjoitetun tiedoston nimi
.
.gpg.openfile.overwrite.okay
Vastaa "kyllä", jos tiedoston voi ylikirjoittaa
.
.gpg.openfile.askoutname
Syötä uusi tiedostonimi. Jos painat vain RETURN, käytetään
oletustiedostoa (joka näkyy sulkeissa).
.
.gpg.ask_revocation_reason.code
Sinun tulisi määrittää syy varmenteelle. Riippuen asiayhteydestä
voit valita tästä listasta:
"Avain on paljastunut"
Käytä tätä, jos sinulla on syytä uskoa, että luvattomat henkilöt
ovat saaneet salaisen avaimesi käsiinsä.
"Avain on korvattu"
Käytä tätä, jos olet korvannut tämän uudemmalla avaimella.
"Avain ei ole enää käytössä"
Käytä tätä, jost ole lopettanut tämän avaimen käytön.
"Käyttäjätunnus ei ole enää voimassa"
Käytä tätä ilmoittamaan, että käyttäjätunnusta ei pitäisi käyttää;
tätä normaalisti käytetään merkitsemään sähköpostiosoite vanhenneeksi.
.
.gpg.ask_revocation_reason.text
Halutessasi voit kirjoittaa tähän kuvauksen miksi julkaiset tämän
mitätöintivarmenteen. Kirjoita lyhyesti.
Tyhjä rivi päättää tekstin.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,256 @@
# help.fr.txt - fr GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
C'est à vous d'assigner une valeur ici; cette valeur ne sera jamais
envoyée à une tierce personne. Nous en avons besoin pour créer le réseau
de confiance (web-of-trust); cela n'a rien à voir avec le réseau des
certificats (créé implicitement)
.
.gpg.edit_ownertrust.set_ultimate.okay
Pour mettre en place le Réseau de confiance (Web of Trust), GnuPG a
besoin de savoir en quelles clés votre confiance est ultime - ce sont
en général les clés dont vous avez accès à la clé secrète. Répondez
"oui" pour indiquer que votre confiance en cette clé est ultime
.
.gpg.untrusted_key.override
Si vous voulez utiliser cette clé peu sûre quand-même, répondez «oui».
.
.gpg.pklist.user_id.enter
Entrez le nom d'utilisateur de la personne à qui vous voulez envoyer
le message.
.
.gpg.keygen.algo
Sélectionnez l'algorithme à utiliser.
DSA (connu également sous le nom de DSS) est un algorithme de signature
digitale et ne peut être utilisé que pour des signatures.
Elgamal est un algorithme pour le chiffrement seul.
RSA peut être utilisé pour les signatures et le chiffrement.
La première clé (clé principale) doit toujours être une clé capable
de signer.
.
.gpg.keygen.algo.rsa_se
En général ce n'est pas une bonne idée d'utiliser la même clé pour
signer et pour chiffrer. Cet algorithme ne doit être utilisé que
pour certains domaines.
Consultez votre expert en sécurité d'abord.
.
.gpg.keygen.size
Entrez la taille de la clé
.
.gpg.keygen.size.huge.okay
Répondez «oui» ou «non»
.
.gpg.keygen.size.large.okay
Répondez «oui» ou «non»
.
.gpg.keygen.valid
Entrez la valeur demandée comme indiqué dans la ligne de commande.
On peut entrer une date ISO (AAAA-MM-JJ) mais le résultat d'erreur sera
mauvais - le système essaierait d'interpréter la valeur donnée comme un
intervalle.
.
.gpg.keygen.valid.okay
Répondez «oui» ou «non»
.
.gpg.keygen.name
Entrez le nom du propriétaire de la clé
.
.gpg.keygen.email
entrez une adresse e-mail optionnelle mais hautement recommandée
.
.gpg.keygen.comment
Entrez un commentaire optionnel
.
.gpg.keygen.userid.cmd
N pour changer le nom.
C pour changer le commentaire.
E pour changer l'adresse e-mail.
O pour continuer à générer la clé.
Q pour arrêter de générer de clé.
.
.gpg.keygen.sub.okay
Répondez «oui» (ou simplement «o») pour générer la sous-clé
.
.gpg.sign_uid.okay
Répondez «oui» ou «non»
.
.gpg.sign_uid.class
Quand vous signez un nom d'utilisateur d'une clé, vous devriez d'abord
vérifier que la clé appartient à la personne nommée. Il est utile que
les autres personnes sachent avec quel soin vous l'avez vérifié.
"0" signifie que vous n'avez pas d'opinon.
"1" signifie que vous croyez que la clé appartient à la personne qui
dit la posséder mais vous n'avez pas pu vérifier du tout la clé.
C'est utile lorsque vous signez la clé d'un pseudonyme.
"2" signifie que vous avez un peu vérifié la clé. Par exemple, cela
pourrait être un vérification de l'empreinte et du nom de
l'utilisateur avec la photo.
"3" signifie que vous avez complètement vérifié la clé. Par exemple,
cela pourrait être une vérification de l'empreinte, du nom de
l'utilisateur avec un document difficile à contrefaire (comme un
passeport) et de son adresse e-mail (vérifié par un échange de
courrier électronique).
Notez bien que les exemples donnés ci-dessus pour les niveaux 2 et
3 ne sont *que* des exemples.
C'est à vous de décider quelle valeur mettre quand vous signez
les clés des autres personnes.
Si vous ne savez pas quelle réponse est la bonne, répondez "0".
.
.gpg.change_passwd.empty.okay
Répondez «oui» ou «non»
.
.gpg.keyedit.save.okay
Répondez «oui» ou «non»
.
.gpg.keyedit.cancel.okay
Répondez «oui» ou «non»
.
.gpg.keyedit.sign_all.okay
Répondez «oui» si vous voulez signer TOUS les noms d'utilisateurs
.
.gpg.keyedit.remove.uid.okay
Répondez «oui» si vous voulez vraiment supprimer ce nom
d'utilisateur. Tous les certificats seront alors perdus en même temps !
.
.gpg.keyedit.remove.subkey.okay
Répondez «oui» s'il faut vraiment supprimer la sous-clé
.
.gpg.keyedit.delsig.valid
C'est une signature valide dans la clé; vous n'avez pas normalement
intérêt à supprimer cette signature car elle peut être importante pour
établir une connection de confiance vers la clé ou une autre clé certifiée
par celle-là.
.
.gpg.keyedit.delsig.unknown
Cette signature ne peut pas être vérifiée parce que vous n'avez pas la
clé correspondante. Vous devriez remettre sa supression jusqu'à ce que
vous soyez sûr de quelle clé a été utilisée car cette clé de signature
peut établir une connection de confiance vers une autre clé déjà certifiée.
.
.gpg.keyedit.delsig.invalid
Cette signature n'est pas valide. Vous devriez la supprimer de votre
porte-clés.
.
.gpg.keyedit.delsig.selfsig
Cette signature relie le nom d'utilisateur à la clé. Habituellement
enlever une telle signature n'est pas une bonne idée. En fait GnuPG peut
ne plus être capable d'utiliser cette clé. Donc faites ceci uniquement si
cette auto-signature est invalide pour une certaine raison et si une autre
est disponible.
.
.gpg.keyedit.updpref.okay
Changer les préférences de tous les noms d'utilisateurs (ou juste
ceux qui sont sélectionnés) vers la liste actuelle. La date de toutes
les auto-signatures affectées seront avancées d'une seconde.
.
.gpg.passphrase.enter
Entrez le mot de passe ; c'est une phrase secrète
.
.gpg.passphrase.repeat
Répétez la dernière phrase de passe pour être sûr de ce que vous
avez tapé.
.
.gpg.detached_signature.filename
Donnez le nom du fichier auquel la signature se rapporte
.
.gpg.openfile.overwrite.okay
Répondez «oui» s'il faut vraiment réécrire le fichier
.
.gpg.openfile.askoutname
Entrez le nouveau nom de fichier. Si vous tapez simplement ENTRÉE le
fichier par défaut (indiqué entre crochets) sera utilisé.
.
.gpg.ask_revocation_reason.code
Vous devriez donner une raison pour la certification. Selon le contexte
vous pouvez choisir dans cette liste:
«La clé a été compromise»
Utilisez cette option si vous avez une raison de croire que des
personnes ont pu accéder à votre clé secrète sans autorisation.
«La clé a été remplacée»
Utilisez cette option si vous avez remplacé la clé par une nouvelle.
«La clé n'est plus utilisée»
Utilisez cette option si cette clé n'a plus d'utilité.
«Le nom d'utilisateur n'est plus valide»
Utilisez cette option si le nom d'utilisateur ne doit plus être
utilisé. Cela sert généralement à indiquer qu'une adresse e-mail
est invalide.
.
.gpg.ask_revocation_reason.text
Si vous le désirez, vous pouvez entrer un texte qui explique pourquoi vous
avez émis ce certificat de révocation. Essayez de garder ce texte concis.
Une ligne vide délimite la fin du texte.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,257 @@
# help.hu.txt - hu GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Az Ön döntésén múlik, hogy milyen értéket ad meg itt. Ezt az értéket soha
nem exportáljuk mások részére. Ez a bizalmak hálózatához (web-of-trust)
szükséges, semmi köze az igazolások hálózatához (web-of-certificates).
.
.gpg.edit_ownertrust.set_ultimate.okay
Hogy a bizalmak hálózatát felépítsük, a GnuPG-nek tudnia kell, hogy
mely kulcsok alapvetően megbízhatóak - általában ezek azok a kulcsok,
melyek titkos kulcsához hozzáfér. Válaszoljon "igen"-nel, ha kulcsot
alapvetően megbízhatónak jelöli!
.
.gpg.untrusted_key.override
Ha mégis használni akarja ezt a kulcsot, melyben nem bízunk,
válaszoljon "igen"-nel!
.
.gpg.pklist.user_id.enter
Adja meg a címzett felhasználói azonosítóját!
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.gpg.keygen.algo.rsa_se
Általában nem jó ötlet ugyanazt a kulcsot használni aláíráshoz és
titkosításhoz. Ezt az algoritmust csak bizonyos területeken ajánlatos
használni. Kérem, először konzultáljon a biztonsági szakértőjével!
.
.gpg.keygen.size
Adja meg a kulcs méretét!
.
.gpg.keygen.size.huge.okay
Kérem, adjon "igen" vagy "nem" választ!
.
.gpg.keygen.size.large.okay
Kérem, adjon "igen" vagy "nem" választ!
.
.gpg.keygen.valid
Adja meg a szükséges értéket, ahogy a prompt mutatja!
Lehetséges ISO dátumot is beírni (ÉÉÉÉ-HH-NN), de nem fog rendes
hibaüzenetet kapni, hanem a rendszer megpróbálja az értéket
intervallumként értelmezni.
.
.gpg.keygen.valid.okay
Kérem, adjon "igen" vagy "nem" választ!
.
.gpg.keygen.name
Adja meg a kulcs tulajdonosának a nevét!
.
.gpg.keygen.email
Kérem, adjon meg egy opcionális, de nagyon ajánlott e-mail címet!
.
.gpg.keygen.comment
Kérem, adjon meg egy opcionális megjegyzést!
.
.gpg.keygen.userid.cmd
N név változtatása
M megjegyzés változtatása
E e-mail változtatása
R kulcsgenerálás folytatása
Q kilépés a kulcsgenerálásból
.
.gpg.keygen.sub.okay
Válaszoljon "igen"-nel (vagy csak "i"-vel), ha kezdhetjük az alkulcs
létrehozását!
.
.gpg.sign_uid.okay
Kérem, adjon "igen" vagy "nem" választ!
.
.gpg.sign_uid.class
Mielőtt aláír egy felhasználói azonosítót egy kulcson, ellenőriznie kell,
hogy a kulcs a felhasználói azonosítóban megnevezett személyhez tartozik.
Mások számára hasznos lehet, ha tudják, hogy milyen gondosan ellenőrizte
Ön ezt.
"0" azt jelenti, hogy nem tesz az ellenőrzés gondosságára vonatkozó
kijelentést.
"1" azt jelenti, hogy Ön hiszi, hogy a kulcs annak a személynek a
tulajdona, aki azt állítja, hogy az övé, de Ön nem tudta ezt
ellenőrizni, vagy egyszerűen nem ellenőrizte ezt. Ez hasznos egy
"persona" típusú ellenőrzéshez, mikor Ön egy pszeudonim felhasználó
kulcsát írja alá.
"2" azt jelenti, hogy Ön a kulcsot hétköznapi alapossággal ellenőrizte.
Például ez azt jelentheti, hogy ellenőrizte a kulcs ujjlenyomatát, és
összevetette a kulcson szereplő felhasználóazonosítót egy fényképes
igazolvánnyal.
"3" azt jelenti, hogy alaposan ellenőrizte a kulcsot. Például ez azt
jelentheti, hogy a kulcs ujjlenyomatát a tulajdonossal személyesen
találkozva ellenőrizte, egy nehezen hamisítható, fényképes igazolvánnyal
(mint az útlevél) meggyőződött arról, hogy a személy neve egyezik a
kulcson levővel, és végül (e-mail váltással) ellenőrizte, hogy a kulcson
szereplő e-mail cím a kulcs tulajdonosához tartozik.
A 2-es és 3-as szintekhez adott példák *csak* példák. Végső soron Ön dönti
el, hogy mit jelentenek Önnek a "hétköznapi" és "alapos" kifejezések,
amikor mások kulcsát aláírja.
Ha nem tudja, hogy mit válaszoljon, írjon "0"-t!
.
.gpg.change_passwd.empty.okay
Kérem, adjon "igen" vagy "nem" választ!
.
.gpg.keyedit.save.okay
Kérem, adjon "igen" vagy "nem" választ!
.
.gpg.keyedit.cancel.okay
Kérem, adjon "igen" vagy "nem" választ!
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.gpg.keyedit.remove.uid.okay
Válaszoljon "igen"-nel, ha valóban törölni akarja ezt a felhasználóazonosítót!
Minden igazolás törlődik vele együtt!
.
.gpg.keyedit.remove.subkey.okay
Válaszoljon "igen"-nel, ha az alkulcs törölhető.
.
.gpg.keyedit.delsig.valid
Ez egy érvényes aláírás a kulcson. Normál esetben nincs értelme
törölni, mert fontos lehet ahhoz, hogy érvényesítse ezt a kulcsot,
vagy egy másikat, melyet ezzel a kulccsal igazolnak.
.
.gpg.keyedit.delsig.unknown
Ezt az aláírást nem tudom ellenőrizni, mert nincs meg a hozzá tartozó
kulcs. Ajánlatos lenne elhalasztani a törlést addig, amíg meg nem tudja,
hogy melyik kulcsot használták, mert ez az aláíró kulcs bizalmi
kapcsolatot hozhat létre egy már hitelesített kulcson keresztül.
.
.gpg.keyedit.delsig.invalid
Ez az aláírás nem érvényes. Értelmetlen eltávolítani a kulcskarikáról.
.
.gpg.keyedit.delsig.selfsig
Ez egy olyan aláírás, amely összeköti a felhasználóazonosítót
a kulccsal. Általában nem jó ötlet egy ilyen aláírást eltávolítani.
Az is lehetséges, hogy a GnuPG többé nem tudja használni ezt
a kulcsot. Csak akkor tegye ezt, ha valami okból ez az önaláírás nem
érvényes, és rendelkezésre áll egy másik!
.
.gpg.keyedit.updpref.okay
Lecseréli az összes felhasználóazonosítóhoz (vagy csak a kijelöltekhez)
tartozó preferenciákat az aktuális preferenciákra. Minden érintett
önaláírás időpontját egy másodperccel növeli.
.
.gpg.passphrase.enter
Kérem, adja meg a jelszót! Ezt egy titkos mondat.
.
.gpg.passphrase.repeat
Kérem, ismételje meg az előző jelszót ellenőrzésképpen!
.
.gpg.detached_signature.filename
Adja meg az állomány nevét, melyhez az aláírás tartozik!
.
.gpg.openfile.overwrite.okay
Válaszoljon "igen"-nel, ha felülírható az állomány!
.
.gpg.openfile.askoutname
Kérem, adjon meg egy új fájlnevet! Ha RETURN-t/ENTER-t nyom, akkor
a szögletes zárójelben levő alapértelmezett nevet használom.
.
.gpg.ask_revocation_reason.code
Ajánlatos megadni a visszavonás okát. A helyzettől függően válasszon
a következő listából:
"A kulcs kompromittálódott."
Használja ezt akkor, ha oka van azt hinni, hogy titkos kulcsa
illetéktelen kezekbe került!
"A kulcsot lecserélték."
Használja ezt akkor, ha a kulcsot lecserélte egy újabbra!
"A kulcs már nem használatos."
Használja ezt akkor, ha már nem használja a kulcsot!
"A felhasználóazonosító már nem érvényes."
Használja ezt akkor, ha azt állítja, hogy a felhasználóazonosító
már nem használatos! Általában érvénytelen e-mail címet jelent.
.
.gpg.ask_revocation_reason.text
Ha akarja, megadhat egy szöveget, melyben megindokolja, hogy miért
adta ki ezt a visszavonó igazolást. Kérem, fogalmazzon tömören!
Egy üres sor jelzi a szöveg végét.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,251 @@
# help.id.txt - id GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Terserah anda untuk memberi nilai baru di sini; nilai ini tidak akan diekspor
ke pihak ketiga. Kami perlu untuk mengimplementasikan web-of-trust; tidak ada
kaitan dengan (membuat secara implisit) web-of-certificates.
.
.gpg.edit_ownertrust.set_ultimate.okay
Untuk membuat Web-of-Trust, GnuPG perlu tahu kunci mana yang
sangat dipercaya - mereka biasanya adalah kunci yang anda punya
akses ke kunci rahasia. Jawab "yes" untuk menset kunci ini ke
sangat dipercaya
.
.gpg.untrusted_key.override
Jika anda ingin menggunakan kunci tidak terpercaya ini, jawab "ya".
.
.gpg.pklist.user_id.enter
Masukkan ID user penerima pesan.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.gpg.keygen.algo.rsa_se
Secara umum bukan ide baik untuk menggunakan kunci yang sama untuk menandai dan
mengenkripsi. Algoritma ini seharusnya digunakan dalam domain tertentu.
Silakan berkonsultasi dulu dengan ahli keamanan anda.
.
.gpg.keygen.size
Masukkan ukuran kunci
.
.gpg.keygen.size.huge.okay
Jawab "ya" atau "tidak"
.
.gpg.keygen.size.large.okay
Jawab "ya" atau "tidak"
.
.gpg.keygen.valid
Masukkan nilai yang diperlukan seperti pada prompt.
Dapat digunakan format (YYYY-MM-DD) untuk mengisi tanggal ISO tetapi anda
tidak akan mendapat respon kesalahan yang baik - sebaiknya sistem akan
berusaha menginterprestasi nilai yang diberikan sebagai sebuah interval.
.
.gpg.keygen.valid.okay
Jawab "ya" atau "tidak"
.
.gpg.keygen.name
Masukkan nama pemegang kunci
.
.gpg.keygen.email
silakan masukkan alamat email (pilihan namun sangat dianjurkan)
.
.gpg.keygen.comment
Silakan masukkan komentar tambahan
.
.gpg.keygen.userid.cmd
N untuk merubah nama.
K untuk merubah komentar.
E untuk merubah alamat email.
O untuk melanjutkan dengan pembuatan kunci.
K untuk menghentikan pembuatan kunci.
.
.gpg.keygen.sub.okay
Jawab "ya" (atau "y") jika telah siap membuat subkey.
.
.gpg.sign_uid.okay
Jawab "ya" atau "tidak"
.
.gpg.sign_uid.class
Ketika anda menandai user ID pada kunci, anda perlu memverifikasi bahwa kunci
milik orang yang disebut dalam user ID. Ini penting bagi orang lain untuk tahu
seberapa cermat anda memverifikasi ini.
"0" berarti anda tidak melakukan klaim tentang betapa cermat anda memverifikasi kunci.
"1" berarti anda percaya bahwa kunci dimiliki oleh orang yang mengklaim memilikinya
namun anda tidak dapat, atau tidak memverifikasi kunci sama sekali. Hal ini bergunabagi
verifikasi "persona", yaitu anda menandai kunci user pseudonymous
"2" berarti anda melakukan verifikasi kasual atas kunci. Sebagai contoh, halini dapat
berarti bahwa anda memverifikasi fingerprint kunci dan memeriksa user ID pada kunci
dengan photo ID.
"3" berarti anda melakukan verifikasi ekstensif atas kunci. Sebagai contoh, hal ini
dapat berarti anda memverifikasi fingerprint kunci dengan pemilik kunci
secara personal, dan anda memeriksa, dengan menggunakan dokumen yang sulit dipalsukan yang memiliki
photo ID (seperti paspor) bahwa nama pemilik kunci cocok dengan
nama user ID kunci, dan bahwa anda telah memverifikasi (dengan pertukaran
email) bahwa alamat email pada kunci milik pemilik kunci.
Contoh-contoh pada level 2 dan 3 hanyalah contoh.
Pada akhirnya, terserah anda untuk memutuskan apa arti "kasual" dan "ekstensif"
bagi anda ketika menandai kunci lain.
Jika anda tidak tahu jawaban yang tepat, jawab "0".
.
.gpg.change_passwd.empty.okay
Jawab "ya" atau "tidak"
.
.gpg.keyedit.save.okay
Jawab "ya" atau "tidak"
.
.gpg.keyedit.cancel.okay
Jawab "ya" atau "tidak"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.gpg.keyedit.remove.uid.okay
Jawab "ya" jika anda benar-benar ingin menghapus ID user ini.
Seluruh sertifikat juga akan hilang!
.
.gpg.keyedit.remove.subkey.okay
Jawab "ya" jika ingin menghapus subkey
.
.gpg.keyedit.delsig.valid
Ini adalah signature valid untuk kunci; anda normalnya tdk ingin menghapus
signature ini karena mungkin penting membangun koneksi trust ke kunci atau
ke kunci tersertifikasi lain dengan kunci ini.
.
.gpg.keyedit.delsig.unknown
Signature ini tidak dapat diperiksa karena anda tidak memiliki kunci
korespondennya. Anda perlu menunda penghapusannya hingga anda tahu
kunci yang digunakan karena kunci penanda ini mungkin membangun suatu
koneksi trust melalui kunci yang telah tersertifikasi lain.
.
.gpg.keyedit.delsig.invalid
Signature tidak valid. Adalah hal yang masuk akal untuk menghapusnya dari
keyring anda
.
.gpg.keyedit.delsig.selfsig
Ini adalah signature yang menghubungkan ID pemakai ke kunci. Biasanya
bukan ide yang baik untuk menghapus signature semacam itu. Umumnya
GnuPG tidak akan dapat menggunakan kunci ini lagi. Sehingga lakukan hal
ini bila self-signature untuk beberapa alasan tidak valid dan
tersedia yang kedua.
.
.gpg.keyedit.updpref.okay
Rubah preferensi seluruh user ID (atau hanya yang terpilih)
ke daftar preferensi saat ini. Timestamp seluruh self-signature
yang terpengaruh akan bertambah satu detik.
.
.gpg.passphrase.enter
Silakan masukkan passphrase; ini kalimat rahasia
.
.gpg.passphrase.repeat
Silakan ulangi passphrase terakhir, sehingga anda yakin yang anda ketikkan.
.
.gpg.detached_signature.filename
Beri nama file tempat berlakunya signature
.
.gpg.openfile.overwrite.okay
Jawab "ya" jika tidak apa-apa menimpa file
.
.gpg.openfile.askoutname
Silakan masukan nama file baru. Jika anda hanya menekan RETURN nama
file baku (yang diapit tanda kurung) akan dipakai.
.
.gpg.ask_revocation_reason.code
Anda harus menspesifikasikan alasan pembatalan. Semua ini tergantung
konteks, anda dapat memilih dari daftar berikut:
"Key has been compromised"
Gunakan ini jika anda punya alasan untuk percaya bahwa orang yang tidak berhak
memiliki akses ke kunci pribadi anda.
"Key is superseded"
Gunakan ini bila anda mengganti kunci anda dengan yang baru.
"Key is no longer used"
Gunakan ini bila anda telah mempensiunkan kunci ini.
"User ID is no longer valid"
Gunakan ini untuk menyatakan user ID tidak boleh digunakan lagi;
normalnya digunakan untuk menandai bahwa alamat email tidak valid lagi.
.
.gpg.ask_revocation_reason.text
Jika anda suka, anda dapat memasukkan teks menjelaskan mengapa anda
mengeluarkan sertifikat pembatalan ini. Buatlah ringkas.
Baris kosong mengakhiri teks.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,251 @@
# help.it.txt - Italian GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
E compito tuo assegnare un valore; questo valore non sarà mai esportato a
terzi. Ci serve per implementare il web-of-trust; non ha nulla a che fare
con il web-of-certificates (creato implicitamente).
.
.gpg.edit_ownertrust.set_ultimate.okay
Per costruire il Web-Of-Trust, GnuPG ha bisogno di sapere quali chiavi sono
definitivamente affidabili - di solito quelle per cui hai accesso alla chiave
segreta.
Rispondi "sì" per impostare questa chiave come definitivamente affidabile
.
.gpg.untrusted_key.override
Se vuoi usare comunque questa chiave non fidata, rispondi "si".
.
.gpg.pklist.user_id.enter
Inserisci l'user ID del destinatario a cui vuoi mandare il messaggio.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.gpg.keygen.algo.rsa_se
In generale non è una buona idea usare la stessa chiave per le firme e la
cifratura. Questo algoritmo dovrebbe solo essere usato in determinati campi.
Per favore consulta prima il tuo esperto di sicurezza.
.
.gpg.keygen.size
Inserisci le dimensioni della chiave
.
.gpg.keygen.size.huge.okay
Rispondi "si" o "no"
.
.gpg.keygen.size.large.okay
Rispondi "si" o "no"
.
.gpg.keygen.valid
Inserisci il valore richiesto come indicato dal prompt.
È possibile inserire una data in formato ISO (YYYY-MM-DD) ma non avrai un
messaggio di errore corretto: il sistema cerca di interpretare il valore
dato come un intervallo.
.
.gpg.keygen.valid.okay
Rispondi "si" o "no"
.
.gpg.keygen.name
Inserisci il nome del proprietario della chiave
.
.gpg.keygen.email
Inserisci un indirizzo di email opzionale (ma fortemente suggerito)
.
.gpg.keygen.comment
Inserisci un commento opzionale
.
.gpg.keygen.userid.cmd
N per cambiare il nome.
C per cambiare il commento.
E per cambiare l'indirizzo di email.
O per continuare con la generazione della chiave.
Q per abbandonare il processo di generazione della chiave.
.
.gpg.keygen.sub.okay
Rispondi "si" (o "y") se va bene generare la subchiave.
.
.gpg.sign_uid.okay
Rispondi "si" o "no"
.
.gpg.sign_uid.class
Quando firmi l'user ID di una chiave dovresti prima verificare che questa
appartiene alla persona indicata nell'user ID. È utile agli altri sapere
con quanta attenzione lo hai verificato.
"0" significa che non fai particolari affermazioni sull'attenzione con cui
hai ferificato la chiave.
"1" significa che credi che la chiave sia posseduta dalla persona che dice di
possederla, ma non hai o non hai potuto verificare per niente la chiave.
"2" significa che hai fatto una verifica superficiale della chiave. Per esempio
potrebbe significare che hai verificato l'impronta digitale e confrontato
l'user ID della chiave con un documento di identità con fotografia.
"3" significa che hai fatto una verifica approfondita della chiave. Per esempio
potrebbe significare che hai verificato di persona l'impronta digitale con
il possessore della chiave e hai controllato, per esempio per mezzo di
un documento di identità con fotografia difficile da falsificare (come
un passaporto), che il nome del proprietario della chiave corrisponde a
quello nell'user ID della chiave, e per finire che hai verificato
(scambiando dei messaggi) che l'indirizzo di email sulla chiave appartiene
al proprietario.
Nota che gli esempi indicati per i livelli 2 e 3 sono *solo* esempi. Alla fine
sta a te decidere cosa significano "superficiale" e "approfondita" quando
firmi chiavi di altri.
Se non sai cosa rispondere, rispondi "0".
.
.gpg.change_passwd.empty.okay
Rispondi "si" o "no"
.
.gpg.keyedit.save.okay
Rispondi "si" o "no"
.
.gpg.keyedit.cancel.okay
Rispondi "si" o "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.gpg.keyedit.remove.uid.okay
Rispondi "si" se vuoi davvero cancellare questo user ID.
Tutti i certificati saranno persi!
.
.gpg.keyedit.remove.subkey.okay
Rispondi "si" se va bene cancellare la subchiave
.
.gpg.keyedit.delsig.valid
Questa è una firma valida per la chiave. Normalmente non vorresti cancellare
questa firma perchè può essere importante per stabilire una connessione di
fiducia alla chiave o a un'altra chiave certificata da questa chiave.
.
.gpg.keyedit.delsig.unknown
Questa firma non può essere verificata perchè non hai la chiave corrispondente.
Dovresti rimandare la sua cancellazione finchè non saprai quale chiave è stata
usata perchè questa chiave potrebbe stabilire una connessione di fiducia
attraverso una chiave già certificata.
.
.gpg.keyedit.delsig.invalid
La firma non è valida. Ha senso rimuoverla dal tuo portachiavi.
.
.gpg.keyedit.delsig.selfsig
Questa è una firma che collega l'user id alla chiave. Solitamente non è una
buona idea rimuovere questo tipo di firma. In realtà GnuPG potrebbe non essere
più in grado di usare questa chiave. Quindi fallo solo se questa autofirma non
è valida per qualche ragione e ne è disponibile un'altra.
.
.gpg.keyedit.updpref.okay
Cambia le preferenze di tutti gli user ID (o solo di quelli selezionati) con
la lista di preferenze corrente. L'orario di tutte le autofirme coinvolte
sarà aumentato di un secondo.
.
.gpg.passphrase.enter
Inserisci la passphrase, cioè una frase segreta
.
.gpg.passphrase.repeat
Ripeti l'ultima passphrase per essere sicuro di cosa hai scritto.
.
.gpg.detached_signature.filename
Inserisci il nome del file a cui si riferisce la firma.
.
.gpg.openfile.overwrite.okay
Rispondi "si" se va bene sovrascrivere il file.
.
.gpg.openfile.askoutname
Inserisci il nuovo nome del file. Se premi INVIO sarà usato il nome
predefinito (quello indicato tra parentesi).
.
.gpg.ask_revocation_reason.code
Dovresti specificare un motivo per questa certificazione. A seconda del
contesto hai la possibilità di scegliere tra questa lista:
"Key has been compromised"
Usa questo se hai un motivo per credere che una persona non autorizzata
abbia avuto accesso alla tua chiave segreta.
"Key is superseded"
Usa questo se hai sostituito questa chiave con una più recente.
"Key is no longer used"
Usa questo se hai mandato in pensione questa chiave.
"User ID is no longer valid"
Usa questo per affermare che l'user ID non dovrebbe più essere usato;
solitamente è usato per indicare un indirizzo di email non valido.
.
.gpg.ask_revocation_reason.text
Se vuoi, puoi digitare un testo che descrive perché hai emesso
questo certificato di revoca. Per favore sii conciso.
Una riga vuota termina il testo.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,368 @@
# help.ja.txt - Japanese GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#pinentry.qualitybar.tooltip
# [ このエントリは有効にするには、上記のキーの # を削除してください。]
# これは例です。
このバーは、入力されたパスフレーズの品質を示しています。
バーが赤い色となっている場合、GnuPGはパスフレーズが弱すぎると判断し、受
け付けません。管理者にパスフレーズの制限の設定について詳細を問い合わせ
てください。
.
.gnupg.agent-problem
# There was a problem accessing or starting the agent.
動作中のGpg-Agentへの接続ができなかったか、通信の問題が発生しました。
システムは、Gpg-Agentと呼ばれるバックグラウンド・プロセスを利用し、秘密
鍵とパスフレーズの問い合わせを処理します。このエージェントは通常、ユー
ザがログインするときに開始され、ログインしている間、動いています。もし、
エージェントが利用可能でない場合、システムは、その場でエージェントの起
動を試しますが、この場合、機能がやや制限され、若干の問題がある場合があ
ります。
もしかしたら、管理者に問い合わせて、この問題をどのように解決したら良い
か聞いた方が良いかもしれません。とりあえずの方策としては、一度ログアウ
トしてもう一度ログインし、改善が見られるか試してみることがあります。も
し、これがうまくいくようであれば管理者に報告してください。それはおそら
く、ソフトウェアのバグであることを示していますので。
.
.gnupg.dirmngr-problem
# There was a problen accessing the dirmngr.
動作中のDirmngrへの接続ができなかったか、通信の問題が発生しました。
証明書失効リスト(CRL)を検索し、OCSPの検証とLDAPサーバを通じて鍵を検索す
るため、システムは、Dirmngrと呼ばれる外部サービス・プログラムを利用しま
す。Dirmngrは通常、システムサービス(daemon)として実効されます、一般ユー
ザは気にする必要はありません。問題がある場合、システムは、要求に応じて、
Dirmngrを起動することがありますが、これは対応策であり、性能に制限が生じ
ます。
この問題がある場合、システム管理者に連絡し、どのように進めたら良いか問
い合わせてください。とりあえずの解決策としては、gpgsmの設定でCRLの検証
を停止させることが考えられます。
.
.gpg.edit_ownertrust.value
ここでの値の指定は、あなたに任されています。この値は、第三者に開示され
ることは決してありません。ウェブ・オブ・トラストを実装するためにこの値
が必要となりますが、(暗黙的に作られる)証明書の網には何も関係しません。
.
.gpg.edit_ownertrust.set_ultimate.okay
ウェブ・オブ・トラストを構築するためにGnuPGは、どの鍵が究極的に信頼でき
るかを知る必要があります。その鍵は通常は、あなたが秘密鍵へアクセスでき
るものです。この鍵が究極的に信頼できる場合、"yes" と答えてください。
.
.gpg.untrusted_key.override
この信頼されてない鍵をどちらにせよ使いたい場合、"yes" と答えてください。
.
.gpg.pklist.user_id.enter
このメッセージを送りたい宛先のユーザIDを入力してください。
.
.gpg.keygen.algo
使用するアルゴリズムを選択してください。
DSA (別名 DSS)は電子署名アルゴリズムであり、署名にのみ使えます。
Elgamal は暗号化のみのアルゴリズムです。
RSA は署名と暗号化のどちらにも使えます。
主鍵は常に、署名が可能の鍵である必要があります。
.
.gpg.keygen.algo.rsa_se
一般的に、署名と暗号化に同一の鍵を用いることは良いことではありません。
このアルゴリズムはある特定の領域だけに使うべきです。まず、セキュリティ
の専門家に相談してください。
.
.gpg.keygen.cardkey
カードからどの鍵を使用するか選択する。
リストには、選択の番号、keygrip (16進数の文字列)、カード固有の鍵参照、
この鍵に使うアルゴリズム、そして、鍵の使用目的(cert, sign, auth, encr)
が括弧内に示されます。鍵の標準的な使用がわかっている場合には、アスタリ
スクでマークされます。.
.gpg.keygen.flags
鍵の機能をトグルする。
選択されたアルゴリズムで可能な機能だけがトグルできます。
すばやく一度ですべての機能を設定するには、'=' の文字を最初の文字として、
続けて設定する機能の列を入力します: 's' は署名、'e' は暗号化、'a'は認
証です。無効な文字と不可能な機能は無視されます。このサブメニューはこの
ショートカットを利用したのちにただちに閉じられます。
.
.gpg.keygen.size
鍵の長さを入力してください。
提案されたデフォルトが通常良い選択です。
大きな鍵長を使いたい場合、たとえば4096ビットなど、本当に意味があるか再
検討してください。こちらのウェブページを見るのも良いと思います:
http://www.xkcd.com/538/
.
.gpg.keygen.size.huge.okay
"yes" か "no" で答えてください。
.
.gpg.keygen.size.large.okay
"yes" か "no" で答えてください。
.
.gpg.keygen.valid
プロンプトで示された必要な値を入力してください。
ISO形式の日付(YYYY-MM-DD)の入力が可能ですが、わかりやすいエラーの反応
が得られないままにシステムが与えられた値を期間と解釈して扱うことがあり
ます。
.gpg.keygen.valid.okay
"yes" か "no" で答えてください。
.
.gpg.keygen.name
鍵の持ち主の名前を入力してください。
文字 "<" と ">" は許されていません。
例: Heinrich Heine
.
.gpg.keygen.email
オプションですが推奨される電子メールアドレスを入力してください。
例: heinrichh@duesseldorf.de
.
.gpg.keygen.comment
オプションのコメントを入力してください。
文字 "(" と ")" は許されていません。
一般的にコメントは必要ではありません。
.
.gpg.keygen.userid.cmd
# (Keep a leading empty line)
N 名前の変更。
C コメントの変更。
E 電子メールアドレスの変更。
O 鍵生成に進む。
Q 鍵生成を止める。
.
.gpg.keygen.sub.okay
副鍵を生成してよければ、"yes" (あるいは単に "y") と答えてください。
.
.gpg.sign_uid.okay
"yes" か "no" で答えてください。
.
.gpg.sign_uid.class
ある鍵のユーザIDに署名するとき、まず、その鍵がそのユーザIDの人に属する
かどうかをあなたは確認しなければなりません。あなたがどれくらいこれを慎
重に確認したかについて、ほかの人が知ることは有用です。
"0" は、どれくらい慎重に確認したかについて特になにも主張しないことを意味します。
"1" は、主張するその人が所有する鍵であるとあなたは信じるが、その鍵について、
検証できなかった、あるいはしなかったことを意味します。これは、ペンネームの
ユーザの鍵に署名するような "persona" 確認に有用です。
"2" は、その鍵に対し、通常の検証を行ったことを意味します。たとえば、鍵
のフィンガープリントを確認し、写真付きIDでユーザIDを確認したことを
意味します。
"3" は、その鍵に対し、広範な検証を行ったことを意味します。たとえば、鍵
のフィンガープリントを対面で確認し、パスポートなど偽造することが難
しい写真付きIDでユーザIDを確認し、所有者の名前が鍵のユーザIDに適合
し、メールの交換で、メールアドレスが所有者に属することを確認したこ
とを意味します。
上記のレベル2とレベル3で示した例は、単に例であることに注意してください。
結局は、ほかの鍵に署名するとき、なにがあなたにとって「通常」で、なにが
「広範」かをを決めるのは、あなた自身に任されています。
正しい答えがなにかわからないときは "0" と答えてください。
.
.gpg.change_passwd.empty.okay
"yes" か "no" で答えてください。
.
.gpg.keyedit.save.okay
"yes" か "no" で答えてください。
.
.gpg.keyedit.cancel.okay
"yes" か "no" で答えてください。
.
.gpg.keyedit.sign_all.okay
すべてのユーザIDに対して署名したい場合、"yes"と答えてください。
.
.gpg.keyedit.remove.uid.okay
このユーザIDを本当に削除したい場合、"yes"と答えてください。
そうすると全部の証明書が失われます!
.
.gpg.keyedit.remove.subkey.okay
副鍵を削除してよい場合、"yes"と答えてください。
.
.gpg.keyedit.delsig.valid
これは、この鍵の有効な署名です。通常、この署名を削除することは望まない
でしょう。この鍵(または、この鍵で証明された別の鍵)への信頼のコネクショ
ンが成立することが重要となる場合があるからです。
.
.gpg.keyedit.delsig.unknown
この署名は検証できませんでした。対応する鍵を持っていないからです。どの
鍵が使われたかわかるまでこの削除を延期すべきです。この署名の鍵は、別の
すでに証明された鍵を通じて信頼のコネクションを成立することがあるからで
す。
.
.gpg.keyedit.delsig.invalid
この署名は有効ではありません。鍵リングから削除することに意味があります。
.
.gpg.keyedit.delsig.selfsig
これはこのユーザIDとこの鍵とを結ぶ署名です。通常、このような署名を削除
することは良いことではありません。実際、GnuPGはこの鍵を使うことができな
くなってしまうかもしれません。ですから、この自己署名がなんらかの理由に
よって無効であり、第二のものが利用可能である場合にだけ、実行してくださ
い。
.
.gpg.keyedit.updpref.okay
すべてのユーザID(もしくは単に選択された一つ)の優先指定を現行の優先指定
に変更します。すべての関係する自己署名のタイムスタンプは、一秒進んだも
のとなります。
.
.gpg.passphrase.enter
# (keep a leading empty line)
パスフレーズを入力してください。秘密の文です。
.
.gpg.passphrase.repeat
もう一度パスフレーズを入力し、間違いなく入力されたことを確認してください。
.
.gpg.detached_signature.filename
署名が適用されるファイルの名前を与えてください。
.
.gpg.openfile.overwrite.okay
# openfile.c (overwrite_filep)
ファイルを上書きしてよければ、"yes"と答えてください。
.
.gpg.openfile.askoutname
# openfile.c (ask_outfile_name)
新しいファイル名を入力してください。単にEnterを打つと、カッコで示された
デフォルトのファイルが使われます。
.
.gpg.ask_revocation_reason.code
# revoke.c (ask_revocation_reason)
証明書の理由を指定します。下記のリストから選択してください:
"鍵が危うくなった"
承認していない人があなたの秘密鍵へのアクセスを得たと考える理由が
ある場合に、これを指定します。
"鍵を取り替えた"
新しい鍵でこの鍵を置き換えた場合に、これを指定します。
"鍵はもう使われない"
この鍵を使わなくなった場合に、これを指定します。
"ユーザIDが無効となった"
ユーザIDをもはや使うべきでない場合に、これを指定します。通常、こ
れは、電子メールアドレスが無効となった場合です。
.
.gpg.ask_revocation_reason.text
# revoke.c (ask_revocation_reason)
必要であれば、この失効証明書を発行する理由を記述する文章を入力する
ことができます。この文章は簡潔にしてください。空行は文章の終わりを
意味します。
.
.gpg.tofu.conflict
# tofu.c
TOFUが同一(もしくはとてもよく似ている)メールアドレスの別の鍵を検出しま
した。そのユーザが新しい鍵を作ったかもしれません。この場合には、あなた
は新しい鍵を安全に信じることができます(が、その人に聞いて確かめましょ
う)。しかし、また、その鍵が偽造であるか、中間者(MitM)攻撃が行われてい
るのかもしれません。この場合には、あなたはこの鍵を信じられないものとな
るように不正としてマークすべきです。ある鍵を信じられないものとなるよう
にマークするとは、どんな署名も不正と考えられるようになる、その鍵への暗
号化はフラグが立てられることを意味します。わからなくて今は確認できない
場合、一度だけ認める、あるいは、一度だけ拒絶するを選択すべきです。
.
.gpgsm.root-cert-not-trusted
# This text gets displayed by the audit log if
# a root certificates was not trusted.
ルート証明書(信頼の拠り所)が信頼できるとされていません。設定にもよりま
すが、そのルート証明書を信頼できるものと指定するように既に問われたかも
しれませんし、手動でGnuPGがその証明書を信頼できると扱うように設定する必
要があります。信頼できる証明書は、GnuPGのホームディレクトリのファイル
trustlist.txt に設定します。疑問のある場合、システム管理者にこの証明書
を信頼してよいものかどうか問い合わせてください。
.
.gpgsm.crl-problem
# This tex is displayed by the audit log for problems with
# the CRL or OCSP checking.
設定によりますが、CRLの取得か、OCSP検証の際に問題が起きました。これが動
かない場合、実に様々な理由がありえます。解決策は、マニュアルを見てくだ
さい。
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,250 @@
# help.pl.txt - pl GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Te wartości użytkownik przydziela wg swojego uznania; nie będą nigdy
eksportowane poza ten system. Potrzebne są one do zbudowania sieci
zaufania, i nie ma to nic wspólnego z tworzoną automatycznie siecią
certyfikatów.
.
.gpg.edit_ownertrust.set_ultimate.okay
Aby zbudować Sieć Zaufania, GnuPG potrzebuje znać klucze do których
masz absolutne zaufanie. Zwykle są to klucze do których masz klucze
tajne. Odpowiedz ,,tak'', jeśli chcesz określić ten klucz jako klucz
do którego masz absolutne zaufanie.
.
.gpg.untrusted_key.override
Jeśli mimo wszystko chcesz użyć tego klucza, klucza, co do którego nie ma
żadnej pewności do kogo należy, odpowiedz ,,tak''.
.
.gpg.pklist.user_id.enter
Podaj adresatów tej wiadomości.
.
.gpg.keygen.algo
Proszę wybrać algorytm.
DSA (znany także jako DSS) to algorytm podpisu cyfrowego (Digital Signature
Algorithm) i może być używany tylko do podpisów.
Elgamal to algorytm tylko do szyfrowania.
RSA może być używany do podpisów lub szyfrowania.
Pierwszy (główny) klucz zawsze musi być kluczem nadającym się do podpisywania.
.
.gpg.keygen.algo.rsa_se
Używanie tego samego klucza do podpisywania i szyfrowania nie jest dobrym
pomysłem. Można tak postępować tylko w niektórych zastosowaniach. Proszę się
najpierw skonsultować z ekspertem od bezpieczeństwa.
.
.gpg.keygen.size
Wprowadź rozmiar klucza
.
.gpg.keygen.size.huge.okay
Odpowiedz "tak" lub "nie".
.
.gpg.keygen.size.large.okay
Odpowiedz "tak" lub "nie".
.
.gpg.keygen.valid
Wprowadź żądaną wartość (jak w znaku zachęty).
Można tu podać datę w formacie ISO (RRRR-MM-DD) ale nie da to
właściwej obsługi błędów - system próbuje interpretować podaną wartość
jako okres.
.
.gpg.keygen.valid.okay
Odpowiedz "tak" lub "nie".
.
.gpg.keygen.name
Nazwa właściciela klucza.
.
.gpg.keygen.email
proszę wprowadzić opcjonalny ale wysoce doradzany adres e-mail
.
.gpg.keygen.comment
Proszę wprowadzić opcjonalny komentarz
.
.gpg.keygen.userid.cmd
N aby zmienić nazwę (nazwisko).
C aby zmienić komentarz.<
E aby zmienić adres e-mail.
O aby kontynuować tworzenie klucza.
Q aby zrezygnować z tworzenia klucza.
.
.gpg.keygen.sub.okay
Jeśli ma zostać wygenerowany podklucz, należy odpowiedzieć "tak".
.
.gpg.sign_uid.okay
Odpowiedz "tak" lub "nie".
.
.gpg.sign_uid.class
Przy podpisywaniu identyfikatora użytkownika na kluczu należy sprawdzić,
czy tożsamość użytkownika odpowiada temu, co jest wpisane w identyfikatorze.
Innym użytkownikom przyda się informacja, jak dogłębnie zostało to przez
Ciebie sprawdzone.
"0" oznacza, że nie podajesz żadnych informacji na temat tego jak dogłębnie
tożsamość użytkownika została przez Ciebie potwierdzona.
"1" oznacza, że masz przekonanie, że tożsamość użytkownika odpowiada
identyfikatorowi klucza, ale nie było możliwości sprawdzenia tego.
Taka sytuacja występuje też kiedy podpisujesz identyfikator będący
pseudonimem.
"2" oznacza, że tożsamość użytkownika została przez Ciebie potwierdzona
pobieżnie - sprawdziliście odcisk klucza, sprawdziłaś/eś tożsamość
na okazanym dokumencie ze zdjęciem.
"3" to dogłębna weryfikacja tożsamości. Na przykład sprawdzenie odcisku
klucza, sprawdzenie tożsamości z okazanego oficjalnego dokumentu ze
zdjęciem (np paszportu) i weryfikacja poprawności adresu poczty
elektronicznej przez wymianę poczty z tym adresem.
Zauważ, że podane powyżej przykłady dla poziomów "2" i "3" to *tylko*
przykłady. Do Ciebie należy decyzja co oznacza "pobieżny" i "dogłębny" w
kontekście poświadczania i podpisywania kluczy.
Jeśli nie wiesz co odpowiedzieć, podaj "0".
.
.gpg.change_passwd.empty.okay
Odpowiedz "tak" lub "nie".
.
.gpg.keyedit.save.okay
Odpowiedz "tak" lub "nie".
.
.gpg.keyedit.cancel.okay
Odpowiedz "tak" lub "nie".
.
.gpg.keyedit.sign_all.okay
Odpowiedz "tak", aby podpisać WSZYSTKIE identyfikatory użytkownika.
.
.gpg.keyedit.remove.uid.okay
Aby skasować ten identyfikator użytkownika (co wiąże się ze utratą
wszystkich jego poświadczeń!) należy odpowiedzieć ,,tak''.
.
.gpg.keyedit.remove.subkey.okay
Aby skasować podklucz należy odpowiedzieć "tak".
.
.gpg.keyedit.delsig.valid
To jest poprawny podpis na tym kluczu; normalnie nie należy go usuwać
ponieważ może być ważny dla zestawienia połączenia zaufania do klucza
którym go złożono lub do innego klucza nim poświadczonego.
.
.gpg.keyedit.delsig.unknown
Ten podpis nie może zostać potwierdzony ponieważ nie ma
odpowiadającego mu klucza publicznego. Należy odłożyć usunięcie tego
podpisu do czasu, kiedy okaże się który klucz został użyty, ponieważ
w momencie uzyskania tego klucza może pojawić się ścieżka zaufania
pomiędzy tym a innym, już poświadczonym kluczem.
.
.gpg.keyedit.delsig.invalid
Ten podpis jest niepoprawny. Można usunąć go ze zbioru kluczy.
.
.gpg.keyedit.delsig.selfsig
To jest podpis wiążący identyfikator użytkownika z kluczem. Nie należy
go usuwać - GnuPG może nie móc posługiwać się dalej kluczem bez
takiego podpisu. Bezpiecznie można go usunąć tylko jeśli ten podpis
klucza nim samym z jakichś przyczyn nie jest poprawny, i klucz jest
drugi raz podpisany w ten sam sposób.
.
.gpg.keyedit.updpref.okay
Przestawienie wszystkich (lub tylko wybranych) identyfikatorów na aktualne
ustawienia. Data na odpowiednich podpisach zostane przesunięta do przodu o
jedną sekundę.
.
.gpg.passphrase.enter
Podaj długie, skomplikowane hasło, np. całe zdanie.
.
.gpg.passphrase.repeat
Proszę powtórzyć hasło, aby upewnić się że nie było pomyłki.
.
.gpg.detached_signature.filename
Podaj nazwę pliku którego dotyczy ten podpis
.
.gpg.openfile.overwrite.okay
Jeśli można nadpisać ten plik, należy odpowiedzieć ,,tak''
.
.gpg.openfile.askoutname
Nazwa pliku. Naciśnięcie ENTER potwierdzi nazwę domyślną (w nawiasach).
.
.gpg.ask_revocation_reason.code
Nalezy podać powód unieważnienia klucza. W zależności od kontekstu można
go wybrać z listy:
"Klucz został skompromitowany"
Masz powody uważać że twój klucz tajny dostał się w niepowołane ręce.
"Klucz został zastąpiony"
Klucz został zastąpiony nowym.
"Klucz nie jest już używany"
Klucz został wycofany z użycia.
"Identyfikator użytkownika przestał być poprawny"
Identyfikator użytkownika (najczęściej adres e-mail przestał być
poprawny.
.
.gpg.ask_revocation_reason.text
Jeśli chcesz, możesz podać opis powodu wystawienia certyfikatu
unieważnienia. Opis powinien byc zwięzły.
Pusta linia kończy wprowadzanie tekstu.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,442 @@
# help.pt.txt - Portuguese GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
# Note that this help file needs to be UTF-8 encoded. When looking
# for a help item, GnuPG scans the help files in the following order
# (assuming a GNU or Unix system):
#
# /etc/gnupg/help.LL_TT.txt
# /etc/gnupg/help.LL.txt
# /etc/gnupg/help.txt
# /usr/share/gnupg/help.LL_TT.txt
# /usr/share/gnupg/help.LL.txt
# /usr/share/gnupg/help.txt
#
# Here LL_TT denotes the full name of the current locale with the
# territory (.e.g. "de_DE"), LL denotes just the locale name
# (e.g. "de"). The first matching item is returned. To put a dot or
# a hash mark at the beginning of a help text line, it needs to be
# prefixed with ". ". A single dot may be used to terminated a help
# entry.
.pinentry.qualitybar.tooltip
# [remove the hash mark from the key to enable this text]
# This entry is just an example on how to customize the tooltip shown
# when hovering over the quality bar of the pinentry. We don't
# install this text so that the hardcoded translation takes
# precedence. An administrator should write up a short help to tell
# the users about the configured passphrase constraints and save that
# to /etc/gnupg/help.txt. The help text should not be longer than
# about 800 characters.
Esta barra indica a qualidade da frase-secreta introduzida acima.
Enquanto a barra estiver vermelha, o GnuPG considera a frase-secreta
demasiada fraca para a aceitar. Peça ao seu administrador detalhes
sobre as restrições de frase-secreta configuradas.
.
.pinentry.constraints.hint.short
# [remove the hash mark from the key to enable this hint]
# This entry is used by some pinentries to display a hint about
# enabled passphrase constraints. These constraints are configurable
# and the admin may give a hint about them by using this help entry.
Use letras e dígitos.
.
.pinentry.constraints.hint.long
# [remove the hash mark from the key to enable this hint]
# This entry is used by some pinentries to show a tooltip with more
# information about the configured passphrase constraints.
Use letras e dígitos.
Restrições extras são impostas, por exemplo
o uso de matrículas comuns de veículos.
.
.pinentry.formatted_passphrase.hint",
# [remove the hash mark from the key to enable this hint]
# If this entry is not set a standard text is shown
Nota: Os espaços em branco não fazem parte da frase-secreta.
.
.gnupg.agent-problem
# There was a problem accessing or starting the agent.
Não foi possível conectar-se a um Gpg-Agent em execução ou
ocorreu um problema de comunicação com um agent em execução.
O sistema usa um processo em segundo plano, chamado Gpg-Agent, para
procestamento chaves privadas e pedir frase-secretas. O agent
geralmente é iniciado quando o utilizador faz login e é executado,
enquanto o utilizador estiver logado. Caso nenhum agent esteja
disponível, o sistema tenta iniciar um em tempo real mas esta versão
do agent é um pouco limitada em funcionalidade e assim, pode levar a
pequenos problemas.
Você provavelmente precisa perguntar ao seu administrador sobre como
resolver o problema. Como solução alternativa, você pode tentar sair
e entrar na sua sessão e ver se isso ajuda. Se isso ajudar, por
favor, informe mesmo assim o administrador, porque isto indica um bug
no software.
.
.gnupg.dirmngr-problem
# There was a problen accessing the dirmngr.
Não foi possível conectar-se a um Dirmngr em execução ou ocorreu um
problema de comunicação com um Dirmngr em execução.
Para pesquisar listas de revogação de certificados (CRLs), executar
validação OCSP e para pesquisar chaves através de servidores LDAP, o
sistema usa um programa de serviço externo chamado Dirmngr. O Dirmngr
geralmente está em execução como um serviço do sistema (daemon) e não
precisa de qualquer atenção por parte do utilizador. Em caso de
problemas, o sistema poderá iniciar sua própria cópia do Dirmngr tendo
por base uma requisição; esta é a solução alternativa e produz
desempenho limitado.
Se você encontrar este problema, você deve perguntar ao seu
administrador de sistema como proceder. Como uma solução provisória,
você pode tentar desabilitar a verificação de CRL na configuração do
gpgsm.
.
.gpg.edit_ownertrust.value
# The help identies prefixed with "gpg." used to be hard coded in gpg
# but may now be overridden by help texts from this file.
Cabe a você atribuir um valor aqui; este valor nunca será exportado a
quaisquer terceiros. Precisamos dele para implementar a
Rede-da-Confiança; que tem nada a ver com a rede-de-certificados
(criada implicitamente).
.
.gpg.edit_ownertrust.set_ultimate.okay
Para construir a Rede-da-Confiança, o GnuPG precisa saber quais são as
chaves plenamente confiáveis - essas são geralmente as chaves
para as quais você tem acesso à chave secreta. Responder "sim" para
definir esta chave como plenamente confiável.
.
.gpg.untrusted_key.override
Se você, mesmo assim, quiser usar esta chave não confiável, responder
"sim".
.
.gpg.pklist.user_id.enter
Introduzir a ID de utilizador do destinatário para quem você deseja
enviar a mensagem.
.
.gpg.keygen.algo
Selecionar o algoritmo a ser usado.
DSA (aka DSS) é o Algoritmo de Assinatura Digital e só pode ser usado
para assinaturas.
Elgamal é um algoritmo só para cifração.
O RSA pode ser usado para assinaturas ou cifração.
A primeira chave (principal) deve ser sempre uma chave capaz de
assinar.
.
.gpg.keygen.algo.rsa_se
De modo geral, não é uma boa ideia usar a mesma chave para assinar e
cifrar. Este algoritmo só deve ser usado em determinados domínios.
Consulte primeiro o seu especialista em segurança.
.
.gpg.keygen.cardkey
Selecionar qual chave do cartão será utilizada.
A listagem mostra o índice de seleção, o keygrip (uma string de
dígitos hex), a referência da chave específica do cartão, o algoritmo
que foi usado para esta chave, e, entre parênteses, a utilização da
chave (cert, sign, auth, encr). Se conhecida, a utilização padrão de
uma chave está marcada com um asterisco.
.
.gpg.keygen.keygrip
Introduzir o keygrip da chave a ser adicionada.
O keygrip é uma string de 40 dígitos hex que identifica uma chave.
Ele deve pertencer a uma chave secreta ou a uma subchave secreta
armazenada no seu porta-chaves.
.
.gpg.keygen.flags
Alterne as capacidades da chave.
Só é possível alternar as capacidades que são possíveis para o
algoritmo selecionado.
Para definir rapidamente os recursos de uma só vez, é possível inserir
um '=' como primeiro caractere seguido de uma lista de letras
indicando a capacidade a definir: 's' para assinatura, 'e' para
cifração e 'a' para autenticação. Letras inválidas e capacidades
impossíveis são ignoradas. Este submenu é imediatamente fechado
depois de usar este atalho.
.
.gpg.keygen.size
Introduzir o tamanho da chave.
A pré-definição sugerida geralmente é uma boa escolha.
Se você quiser usar um tamanho de chave grande, por exemplo, 4096 bit,
pense novamente se realmente faz sentido para você. Você poderá
querer ver a página web https://www.xkcd.com/538/ .
.
.gpg.keygen.size.huge.okay
Responder "sim" ou "não".
.
.gpg.keygen.size.large.okay
Responder "sim" ou "não".
.
.gpg.keygen.valid
Introduzir o valor exigido, conforme mostrado no prompt.
É possível inserir uma data ISO (AAAA-MM-DD), mas você não vai obter
uma boa resposta de erro - em vez disso, o sistema tenta interpretar o
valor dado como um intervalo.
.
.gpg.keygen.valid.okay
Responder "sim" ou "não".
.
.gpg.keygen.name
Introduzir o nome do titular da chave.
Os caracteres "<" e ">" não são permitidos.
Exemplo: Heinrich Heine
.
.gpg.keygen.email
Introduza um endereço de email opcional, mas altamente sugerido.
Exemplo: heinrichh@duesteldorf.de
.
.gpg.keygen.comment
Introduza um comentário opcional.
Os caracteres "(" e ")" não são permitidos.
De modo geral, não há necessidade de comentários.
.
.gpg.keygen.userid.cmd
# (Keep a leading empty line)
N para alterar o nome.
C para alterar o comentário.
E para alterar o endereço de email.
O para continuar com a geração de chaves.
Q para sair da geração de chaves.
.
.gpg.keygen.sub.okay
Responder "sim" (ou apenas "s") se não houver problema em gerar a
subchave.
.
.gpg.sign_uid.okay
Responder "sim" ou "não".
.
.gpg.sign_uid.class
Ao assinar uma ID de utilizador de uma chave, você deve primeiro
verificar que a chave pertence à pessoa correta da ID de utilizador.
É útil para os outros saber com que cuidado você verificou isso.
"0" significa que você faz nenhuma reivindicação específica sobre o
quão cuidadosamente você verificou o chave.
"1" significa que você acredita que a pessoa é dona da chave que
afirma possuí-la mas você não pôde, ou não verificou a chave.
Isto é útil para uma verificação de "persona", onde você assina a
chave de um utilizador pseudónimo.
"2" significa que você fez uma verificação casual da chave. Por
exemplo, isso poderia significar que você verificou a impressão
digital da chave e verificou a ID de utilizador da chave em
relação a uma ID fotográfica.
"3" significa que você fez uma verificação completa da chave. Por
exemplo, isto poderia significa que você verificou a impressão
digital da chave com o dono da chave em pessoa, e que você
verificou, por meio de um documento difícil de falsificar com uma
ID fotográfica (como um passaporte) que o nome do dono da chave
corresponde ao na ID de utilizador na chave e, finalmente, que
você verificou (por troca de email) que o endereço de email na
chave pertence ao dono da chave.
Note que os exemplos dados acima para os níveis 2 e 3 são *apenas*
exemplos. No final, cabe a você decidir o que "casual" e "completo"
significa para você quando você assina outras chaves.
Se você não sabe qual é a resposta certa, responda "0".
.
.gpg.change_passwd.empty.okay
Responder "sim" ou "não".
.
.gpg.keyedit.save.okay
Responder "sim" ou "não".
.
.gpg.keyedit.cancel.okay
Responder "sim" ou "não".
.
.gpg.keyedit.sign_all.okay
Responder "sim" se quiser assinar TODAS as IDs de utilizador.
.
.gpg.keyedit.remove.uid.okay
Responda "sim" se tem a certeza que você quer apagar esta ID de
utilizador. Todos os certificados também são perdidos!
.
.gpg.keyedit.remove.subkey.okay
Responder "sim" se não houver problema em apagar a subchave.
.
.gpg.keyedit.delsig.valid
Esta é uma assinatura válida na chave; você normalmente não quer
apagar esta assinatura porque pode ser importante para estabelecer uma
conexão de confiança com a chave ou com outra chave certificada por
esta chave.
.
.gpg.keyedit.delsig.unknown
Esta assinatura não pode ser verificada porque você não tem a chave
correspondente. Você deve adiar apagar, até quando você souber qual
chave foi usada, porque esta chave de assinatura pode estabelecer uma
conexão de confiança por meio de outra chave já certificada.
.
.gpg.keyedit.delsig.invalid
A assinatura não é válida. Faz sentido removê-la de seu porta-chaves.
.
.gpg.keyedit.delsig.selfsig
Esta é uma assinatura que vincula a ID de utilizador à chave.
Geralmente não é uma boa ideia remover tal assinatura. Até porque o
GnuPG pode deixar de ser capaz de usar esta chave. Por isso, faça
isso só se, por algum motivo, esta auto-assinatura não for válida e
uma segunda assinatura estiver disponível.
.
.gpg.keyedit.updpref.okay
Alterar as preferências de todas as IDs de utilizador (ou apenas das
selecionadas) para a lista atual de preferências. O timestamp de todas
as auto-assinaturas afetadas serão adiantadas em um segundo.
.
.gpg.passphrase.enter
# (keep a leading empty line)
Introduza a frase-secreta; esta é uma frase que é secreta.
.
.gpg.passphrase.repeat
Repita a última frase-secreta, para ter certeza da que introduziu.
.
.gpg.detached_signature.filename
Fornecer o nome do ficheiro ao qual a assinatura se aplica.
.
.gpg.openfile.overwrite.okay
# openfile.c (overwrite_filep)
Responder "sim" se não houver problema em sobrescrever o ficheiro.
.
.gpg.openfile.askoutname
# openfile.c (ask_outfile_name)
Introduza um novo nome de ficheiro. Se você apenas carregar RETURN o
ficheiro pré-definido (que está entre parênteses) será usado.
.
.gpg.ask_revocation_reason.code
# revoke.c (ask_revocation_reason)
Você deve especificar um motivo para a revogação. Dependendo do
contexto que você pode escolher a partir desta lista:
"Chave foi comprometida"
Usar isto se você tiver um motivo para acreditar que pessoas não
autorizadas tiveram acesso à sua chave secreta.
"Chave foi substituída"
Usar isto se você tiver substituído esta chave por uma mais
recente.
"Chave não é mais usada"
Usar isto se você tiver desativado esta chave.
"ID de utilizador não é mais válido"
Usar isto para declarar que a ID de utilizador não deve ser mais
utilizada; isto normalmente é usado para marcar um endereço de
email como inválido.
.
.gpg.ask_revocation_reason.text
# revoke.c (ask_revocation_reason)
Se desejar, você pode introduzir um texto descrevendo porque você emite
este certificado de revogação. Mantenha este texto conciso.
Uma linha vazia termina o texto.
.
.gpg.tofu.conflict
# tofu.c
TOFU detetou outra chave com o mesmo endereço de email (ou um muito
semelhante). Pode ser que o utilizador tenha criado uma nova
chave. Neste caso, você pode confiar com segurança na nova chave (mas
confirme perguntando à pessoa). No entanto, também pode ser que a
chave seja uma falsificação ou esteja a occorrer um ataque de
Man-in-the-Middle (MitM). Neste caso, você deve marcar a chave como
sendo incorreta, para que não seja confiável. Marcar uma chave como
sendo não confiável significa que quaisquer assinaturas serão
consideradas incorretas e que as tentativas de cifrar para a chave
serão sinalizadas. Se você tem dúvidas e não pode verificar de
momento, você deve ou aceitar uma vez ou rejeitar uma vez.
.
.gpgsm.root-cert-not-trusted
# This text gets displayed by the audit log if
# a root certificates was not trusted.
O certificado raiz (a âncora-de-confiança) não é confiável. Dependendo
da configuração, você poderá aparecer-lhe um prompt, para marcar esse
certificado raiz como confiável ou você poderá precisar de dizer
manualmente ao GnuPG para confiar nesse certificado. Os certificados
confiáveis são configurados no ficheiro trustlist.txt da pasta home do
GnuPG. Em caso de dúvida, pergunte ao seu administrador de sistema se
deve confiar neste certificado.
.
.gpgsm.crl-problem
# This text is displayed by the audit log for problems with
# the CRL or OCSP checking.
Dependendo da sua configuração, ocorreu um problema ao obter a CRL ou
a realizar de uma verificação OCSP. Há uma grande variedade de razões
pelas quais isto não funcionou. Verifique o manual para possíveis
soluções.
.
# Local variables:
# mode: default-generic
# coding: utf-8
# End:

View File

@@ -0,0 +1,253 @@
# help.pt_BR.txt - Brazilian GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Você decide que valor usar aqui; este valor nunca será exportado para
terceiros. Precisamos dele implementar a rede de confiança, que não tem
nada a ver com a rede de certificados (implicitamente criada).
.
.gpg.edit_ownertrust.set_ultimate.okay
Para construir a Teia-de-Confiança ('Web-of-Trust'), o GnuPG precisa de
saber quais são as chaves em que deposita confiança absoluta - normalmente
estas são as chaves a que tem acesso à chave privada. Responda "sim" para
que esta chave seja de confiança absoluta.
.
.gpg.untrusted_key.override
Se você quiser usar esta chave não confiável assim mesmo, responda "sim".
.
.gpg.pklist.user_id.enter
Digite o ID de usuário do destinatário para o qual você quer enviar a
mensagem.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.gpg.keygen.algo.rsa_se
Em geral não é uma boa ideia utilizar a mesma chave para assinar e para
cifrar. Este algoritmo só deve ser utilizado em alguns domínios.
Por favor consulte primeiro o seu perito em segurança.
.
.gpg.keygen.size
Digite o tamanho da chave
.
.gpg.keygen.size.huge.okay
Responda "sim" ou "não"
.
.gpg.keygen.size.large.okay
Responda "sim" ou "não"
.
.gpg.keygen.valid
Digite o valor necessário conforme pedido.
É possível digitar uma data ISO (AAAA-MM-DD) mas você não terá uma boa
reação a erros - o sistema tentará interpretar o valor dado como um intervalo.
.
.gpg.keygen.valid.okay
Responda "sim" ou "não"
.
.gpg.keygen.name
Digite o nome do possuidor da chave
.
.gpg.keygen.email
por favor digite um endereço de email (opcional mas recomendado)
.
.gpg.keygen.comment
Por favor digite um comentário (opcional)
.
.gpg.keygen.userid.cmd
N para mudar o nome.
C para mudar o comentário.
E para mudar o endereço de correio eletrônico.
O para continuar a geração da chave.
S para interromper a geração da chave.
.
.gpg.keygen.sub.okay
Responda "sim" (ou apenas "s") se quiser gerar a subchave.
.
.gpg.sign_uid.okay
Responda "sim" ou "não"
.
.gpg.sign_uid.class
Quando assina uma chave de identificação de um utilizador, deve primeiro
verificar que a chave pertence realmente à pessoa em questão. É útil para
terceiros saberem com que cuidado é que efectuou esta verificação.
"0" significa que não deseja declarar a forma com verificou a chave
"1" significa que acredita que a chave pertence à pessoa em questão, mas
não conseguiu ou não tentou verificar. Este grau é útil para quando
assina a chave de uma utilizador pseudo-anónimo.
"2" significa que efectuou uma verificação normal da chave. Por exemplo,
isto pode significar que verificou a impressão digital da chave e
verificou o identificador de utilizador da chave contra uma identificação
fotográfica.
"3" significa que efectuou uma verificação exaustiva da chave. Por exemplo,
isto pode significar que efectuou a verificação pessoalmente, e que
utilizou um documento, com fotografia, difícil de falsificar
(como por exemplo um passaporte) que o nome do dono da chave é o
mesmo do que o identificador da chave, e que, finalmente, verificou
(através de troca de e-mail) que o endereço de email da chave pertence
ao done da chave.
Atenção: os exemplos dados para os níveis 2 e 3 são *apenas* exemplos.
Compete-lhe a si decidir o que considera, ao assinar chaves, uma verificação
"normal" e uma verificação "exaustiva".
Se não sabe qual é a resposta correcta, responda "0".
.
.gpg.change_passwd.empty.okay
Responda "sim" ou "não"
.
.gpg.keyedit.save.okay
Responda "sim" ou "não"
.
.gpg.keyedit.cancel.okay
Responda "sim" ou "não"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.gpg.keyedit.remove.uid.okay
Responda "sim" se quiser realmente remover este ID de usuário.
Todos os certificados também serão perdidos!
.
.gpg.keyedit.remove.subkey.okay
Responda "sim" se quiser remover a subchave
.
.gpg.keyedit.delsig.valid
Esta é uma assinatura válida na chave; normalmente não é desejável
remover esta assinatura porque ela pode ser importante para estabelecer
uma conexão de confiança à chave ou a outra chave certificada por esta.
.
.gpg.keyedit.delsig.unknown
Esta assinatura não pode ser verificada porque você não tem a chave
correspondente. Você deve adiar sua remoção até saber que chave foi usada
porque a chave desta assinatura pode estabelecer uma conexão de confiança
através de outra chave já certificada.
.
.gpg.keyedit.delsig.invalid
A assinatura não é válida. Faz sentido removê-la de seu chaveiro.
.
.gpg.keyedit.delsig.selfsig
Esta é uma assinatura que liga o ID de usuário à chave. Geralmente
não é uma boa idéia remover tal assinatura. É possível que o GnuPG
não consiga mais usar esta chave. Faça isto apenas se por alguma
razão esta auto-assinatura não for válida e há uma segunda disponível.
.
.gpg.keyedit.updpref.okay
Muda as preferências de todos os identificadores de utilizadores
(ou apenas dos seleccionados) para a lista actual de preferências.
O 'timestamp' de todas as auto-assinaturas afectuadas será avançado
em um segundo.
.
.gpg.passphrase.enter
Por favor digite a frase secreta
.
.gpg.passphrase.repeat
Por favor repita a última frase secreta, para ter certeza do que você digitou.
.
.gpg.detached_signature.filename
Dê o nome para o arquivo ao qual a assinatura se aplica
.
.gpg.openfile.overwrite.okay
Responda "sim" se quiser sobrescrever o arquivo
.
.gpg.openfile.askoutname
Por favor digite um novo nome de arquivo. Se você apenas apertar RETURN o
arquivo padrão (que é mostrado em colchetes) será usado.
.
.gpg.ask_revocation_reason.code
Deve especificar uma razão para a emissão do certificado. Dependendo no
contexto, pode escolher as seguintes opções desta lista:
"A chave foi comprometida"
Utilize esta opção se tem razões para acreditar que indivíduos não
autorizados obtiveram acesso à sua chave secreta.
"A chave foi substituida"
Utilize esta opção se substituiu esta chave com uma mais recente.
"A chave já não é utilizada"
Utilize esta opção se já não utiliza a chave.
"O identificador do utilizador já não é válido"
Utilize esta opção para comunicar que o identificador do utilizador
não deve ser mais utilizado; normalmente utilizada para indicar
que um endereço de email é inválido.
.
.gpg.ask_revocation_reason.text
Se desejar, pode inserir uma texto descrevendo a razão pela qual criou
este certificado de revogação. Por favor mantenha este texto conciso.
Uma linha vazia termina o texto.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,251 @@
# help.ro.txt - ro GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Este sarcina d-voastră să atribuiţi o valoare aici; această valoare
nu va fi niciodată exportată pentru o terţă parte. Trebuie să
implementăm reţeaua-de-încredere; aceasta nu are nimic în comun cu
certificatele-de-reţea (create implicit).
.
.gpg.edit_ownertrust.set_ultimate.okay
Pentru a construi Reţeaua-de-Încredere, GnuPG trebuie să ştie care chei
au nivel de încredere suprem - acestea de obicei sunt cheile pentru care
aveţi acces la cheia secretă. Răspundeţi "da" pentru a seta
această cheie cu nivel de încredere suprem
.
.gpg.untrusted_key.override
Dacă doriţi oricum să folosiţi această cheie fără încredere, răspundeţi "da".
.
.gpg.pklist.user_id.enter
Introduceţi ID-ul utilizator al destinatarului mesajului.
.
.gpg.keygen.algo
Selectaţi algoritmul de folosit.
DSA (aka DSS) este Digital Signature Algorithm şi poate fi folosit numai
pentru semnături.
Elgamal este un algoritm numai pentru cifrare.
RSA poate fi folosit pentru semnături sau cifrare.
Prima cheie (primară) trebuie să fie întotdeauna o cheie cu care se poate semna.
.
.gpg.keygen.algo.rsa_se
În general nu este o idee bună să folosiţi aceeaşi cheie şi pentru
semnare şi pentru cifrare. Acest algoritm ar trebui folosit numai
în anumite domenii. Vă rugăm consultaţi mai întâi un expert în domeniu.
.
.gpg.keygen.size
Introduceţi lungimea cheii
.
.gpg.keygen.size.huge.okay
Răspundeţi "da" sau "nu"
.
.gpg.keygen.size.large.okay
Răspundeţi "da" sau "nu"
.
.gpg.keygen.valid
Introduceţi valoarea cerută precum a arătat la prompt.
Este posibil să introduceţi o dată ISO (AAAA-LL-ZZ) dar nu veţi
obţine un răspuns de eroare bun - în loc sistemul încearcă să
interpreteze valoare dată ca un interval.
.
.gpg.keygen.valid.okay
Răspundeţi "da" sau "nu"
.
.gpg.keygen.name
Introduceţi numele deţinătorului cheii
.
.gpg.keygen.email
vă rugăm introduceţi o adresă de email (opţională dar recomandată)
.
.gpg.keygen.comment
Vă rugăm introduceţi un comentriu opţional
.
.gpg.keygen.userid.cmd
N pentru a schimba numele.
C pentru a schimba comentariul.
E pentru a schimba adresa de email.
O pentru a continua cu generarea cheii.
T pentru a termina generarea cheii.
.
.gpg.keygen.sub.okay
Răspundeţi "da" (sau numai "d") dacă sunteţi OK să generaţi subcheia.
.
.gpg.sign_uid.okay
Răspundeţi "da" sau "nu"
.
.gpg.sign_uid.class
Când semnaţi un ID utilizator pe o cheie ar trebui să verificaţi mai întâi
că cheia aparţine persoanei numite în ID-ul utilizator. Este util şi altora
să ştie cât de atent aţi verificat acest lucru.
"0" înseamnă că nu pretindeţi nimic despre cât de atent aţi verificat cheia
"1" înseamnă că credeţi că cheia este a persoanei ce pretinde că este
proprietarul ei, dar n-aţi putut, sau nu aţi verificat deloc cheia.
Aceasta este utilă pentru verificare "persona", unde semnaţi cheia
unui utilizator pseudonim.
"2" înseamnă că aţi făcut o verificare supericială a cheii. De exemplu,
aceasta ar putea însemna că aţi verificat amprenta cheii şi aţi verificat
ID-ul utilizator de pe cheie cu un ID cu poză.
"3" înseamnă că aţi făcut o verificare extensivă a cheii. De exemplu,
aceasta ar putea însemna că aţi verificat amprenta cheii cu proprietarul
cheii în persoană, că aţi verificat folosind un document dificil de
falsificat cu poză (cum ar fi un paşaport) că numele proprietarului cheii
este acelaşi cu numele ID-ului utilizator al cheii şi că aţi verificat
(schimbând emailuri) că adresa de email de pe cheie aparţine proprietarului
cheii.
De notat că exemplele date pentru nivelele 2 şi 3 ceva mai sus sunt *numai*
exemple. La urma urmei, d-voastră decideţi ce înseamnă "superficial" şi
"extensiv" pentru d-voastră când semnaţi alte chei.
Dacă nu ştiţi care este răspunsul, răspundeţi "0".
.
.gpg.change_passwd.empty.okay
Răspundeţi "da" sau "nu"
.
.gpg.keyedit.save.okay
Răspundeţi "da" sau "nu"
.
.gpg.keyedit.cancel.okay
Răspundeţi "da" sau "nu"
.
.gpg.keyedit.sign_all.okay
Răspundeţi "da" dacă doriţi să semnaţi TOATE ID-urile utilizator
.
.gpg.keyedit.remove.uid.okay
Răspundeţi "da" dacă într-adevăr doriţi să ştergeţi acest ID utilizator.
Toate certificatele sunt de asemenea pierdute!
.
.gpg.keyedit.remove.subkey.okay
Răspundeţi "da" dacă este OK să ştergeţi subcheia
.
.gpg.keyedit.delsig.valid
Aceasta este o semnătură validă pe cheie; în mod normal n-ar trebui
să ştergeţi această semnătură pentru că aceasta ar putea fi importantăla stabilirea conexiunii de încredere la cheie sau altă cheie certificată
de această cheie.
.
.gpg.keyedit.delsig.unknown
Această semnătură nu poate fi verificată pentru că nu aveţi cheia
corespunzătoare. Ar trebui să amânaţi ştergerea sa până ştiţi care
cheie a fost folosită pentru că această cheie de semnare ar putea
constitui o conexiune de încredere spre o altă cheie deja certificată.
.
.gpg.keyedit.delsig.invalid
Semnătura nu este validă. Aceasta ar trebui ştearsă de pe inelul
d-voastră de chei.
.
.gpg.keyedit.delsig.selfsig
Aceasta este o semnătură care leagă ID-ul utilizator de cheie.
De obicei nu este o idee bună să ştergeţi o asemenea semnătură.
De fapt, GnuPG ar putea să nu mai poată folosi această cheie.
Aşa că faceţi acest lucru numai dacă această auto-semnătură este
dintr-o oarecare cauză invalidă şi o a doua este disponibilă.
.
.gpg.keyedit.updpref.okay
Schimbaţi toate preferinţele ale tuturor ID-urilor utilizator (sau doar
cele selectate) conform cu lista curentă de preferinţe. Timestamp-urile
tuturor auto-semnăturilor afectate vor fi avansate cu o secundă.
.
.gpg.passphrase.enter
Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă
.
.gpg.passphrase.repeat
Vă rugăm repetaţi ultima frază-parolă, pentru a fi sigur(ă) ce aţi tastat.
.
.gpg.detached_signature.filename
Daţi numele fişierului la care se aplică semnătura
.
.gpg.openfile.overwrite.okay
Răspundeţi "da" dacă este OK să suprascrieţi fişierul
.
.gpg.openfile.askoutname
Vă rugăm introduceţi un nou nume-fişier. Dacă doar apăsaţi RETURN,
va fi folosit fişierul implicit (arătat în paranteze).
.
.gpg.ask_revocation_reason.code
Ar trebui să specificaţi un motiv pentru certificare. În funcţie de
context aveţi posibilitatea să alegeţi din această listă:
"Cheia a fost compromisă"
Folosiţi această opţiune dacă aveţi un motiv să credeţi că persoane
neautorizate au avut acces la cheia d-voastră secretă.
"Cheia este înlocuită"
Folosiţi această opţiune dacă înlocuiţi cheia cu una nouă.
"Cheia nu mai este folosită"
Folosiţi această opţiune dacă pensionaţi cheia.
"ID-ul utilizator nu mai este valid"
Folosiţi această opţiune dacă ID-ul utilizator nu mai trebuie folosit;
de obicei folosită pentru a marca o adresă de email ca invalidă.
.
.gpg.ask_revocation_reason.text
Dacă doriţi, puteţi introduce un text descriind de ce publicaţi acest
certificat de revocare. Vă rugăm fiţi concis.
O linie goală termină textul.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,369 @@
# help.ru.txt - Russian GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
# Copyright (C) 2016 Ineiev <ineiev@gnu.org> (translation)
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
# The translated revision was taken from HEAD b8bb16c6c08d3c2947f1ff67
# which is the same as the revision from STABLE-BRANCH-2-0 776bee6d370
.#pinentry.qualitybar.tooltip
# [remove the hash mark from the key to enable this text]
# This entry is just an example on how to customize the tooltip shown
# when hovering over the quality bar of the pinentry. We don't
# install this text so that the hardcoded translation takes
# precedence. An administrator should write up a short help to tell
# the users about the configured passphrase constraints and save that
# to /etc/gnupg/help.txt. The help text should not be longer than
# about 800 characters.
Этот индикатор показывает качество введенной выше фразы-пароля.
Пока индикатор красный, GnuPG считает фразу-пароль неприемлемо слабой.
Уточните у своего администратора принятые требования к фразе-паролю.
.
.gnupg.agent-problem
# There was a problem accessing or starting the agent.
К запущенному Gpg-Agent было невозможно подключиться, либо возникла
проблема соединения с ним.
Система использует фоновый процесс под названием Gpg-Agent
для обработки секретных ключей и запроса фраз-паролей. Обычно процесс
запускается при входе пользователя в систему и работает, пока
пользователь не выйдет. Если процесс недоступен, система пытается
запустить его на ходу, но функции этой версий несколько ограничены,
это может привести к небольшим проблемам.
Вероятно, для решения проблемы нужно обратиться к администратору.
В качестве временной меры можно выйти и снова войти в систему;
может быть, это поможет. В любом случае сообщите об этом
администратору, потому что это указывает на недочет в программе.
.
.gnupg.dirmngr-problem
# There was a problen accessing the dirmngr.
К запущенному Dirmngr было невозможно подключиться, либо возникла
проблема соединения с ним.
Для просмотра списков отзыва сертификатов во время проверки
сертификатов и для поиска ключей на локальных серверах система
пользуется внешней служебной программой Dirmngr. Обычно она работает
как системная служба (демон) и не нуждается в каких-либо действиях
со стороны пользователя. В случае проблем система может запускать
новую копию Dirmngr по каждому запросу; это запасной вариант
с ухудшенными характеристиками.
Если Вы столкнулись с этой проблемой, обратитесь к системному
администратору. В качестве временного решения можно попробовать
отключить проверку списков отзыва сертификатов в настройках gpgsm.
.
.gpg.edit_ownertrust.value
# The help identies prefixed with "gpg." used to be hard coded in gpg
# but may now be overridden by help texts from this file.
Если хотите, поставьте здесь значение; оно никогда не будет выводиться
для третьих сторон. Нам оно нужно для реализации сети доверия; оно
никак не связано с (неявно создаваемой) сетью сертификатов.
.
.gpg.edit_ownertrust.set_ultimate.okay
Для построения Сети доверия GnuPG нужно знать, каким ключам доверять
полностью - обычно это ключи, секретные части которых у Вас есть.
Ответ "да" установит полное доверие этому ключу.
.gpg.untrusted_key.override
Если Вы хотите все равно пользоваться этим недоверенным ключом,
ответьте "да".
.
.gpg.pklist.user_id.enter
Введите ID пользователя - получателя Вашего сообщения.
.
.gpg.keygen.algo
Выберите алгоритм.
DSA (он же DSS) можно применять только для подписей.
Elgamal - алгоритм только для шифрования.
RSA можно применять для шифрования или подписей.
Первый (первичный) ключ всегда должен быть пригоден для подписей.
.
.gpg.keygen.algo.rsa_se
В целом неразумно пользоваться одним и тем же ключом и для подписи,
и для шифрования. Это может быть полезно только в определенных
случаях. Проконсультируйтесь со своим экспертом по безопасности.
.
.gpg.keygen.flags
Поменять функции ключа.
Переключать можно только функции, доступные для выбранного
алгоритма.
Для быстрой установки сразу всех возможностей введите сначала '=',
а за ним список букв, задающих набор функций: '1' - подпись, '2' -
шифрование, '3' - аутентификация. Неправильные буквы и функции
не учитываются. Сразу после быстрого ввода это подменю закрывается.
.
.gpg.keygen.size
Введите размер ключа.
Предлагаемое значение обычно хорошо подходит.
Если Вам нужен ключ большого размера, например, 4096 бит, подумайте,
действительно ли это для Вас имеет смысл. См. комикс на странице
http://www.xkcd.com/538/ .
.
.gpg.keygen.size.huge.okay
Отвечайте "да" или "нет".
.
.gpg.keygen.size.large.okay
Отвечайте "да" или "нет".
.
.gpg.keygen.valid
Введите нужное значение, как показано в приглашении.
Можно ввести дату ИСО (ГГГГ-ММ-ДД), но сообщения об ошибках будут
неудобочитаемыми: система пытается интерпретировать данное значение
как интервал.
.
.gpg.keygen.valid.okay
Отвечайте "да" или "нет".
.
.gpg.keygen.name
Введите имя владельца ключа.
Символы "<" и ">" недопустимы.
Пример: Вася Пушкин
.
.gpg.keygen.email
Введите, пожалуйста, адрес электронной почты (необязательно,
но очень рекомендуется).
Пример: vp@test.ru
.
.gpg.keygen.comment
Введите, пожалуйста, необязательное примечание.
Символы "(" и ")" недопустимы.
В общем и целом оно не нужно.
.
.gpg.keygen.userid.cmd
# (Keep a leading empty line)
N сменить имя.
C сменить примечание.
E сменить адрес.
O продолжить создание ключа.
Q прекратить создание ключа.
.
.gpg.keygen.sub.okay
Введите "да" (или "y"), чтобы разрешить создание ключа.
.
.gpg.sign_uid.okay
Отвечайте "да" или "нет".
.
.gpg.sign_uid.class
Когда Вы подписываете идентификатор пользователя в ключе, нужно сначала
удостовериться, что ключ принадлежит указанному в идентификаторе лицу.
Другим полезно знать, насколько тщательно Вы это проверили.
"0" значит, что Вы не указываете, насколько тщательно вы проверяли ключ.
"1" значит, что Вы считаете, что ключ принадлежит заявленному лицу, но Вы
не могли проверить или не проверяли ключ. Это полезно для проверки
"инкогнито", когда вы подписываете ключ с псевдонимом.
"2" значит, что Вы провели частичную проверку ключа. Например, проверили
отпечаток ключа и идентификатор пользователя из ключа
по фотоидентификатору.
"3" значит, что Вы провели тщательную проверку ключа. Например,
Вы проверили отпечаток ключа, а также проверили по удостоверению
личности (такому как паспорт), что имя владельца ключа совпадает
с именем человека, записанным в идентификаторе пользователя ключа;
наконец, Вы удостоверились (обменявшись электронной почтой), что
адрес электронной почты принадлежит владельцу ключа.
Имейте в виду, что примеры, данные для уровней 2 и 3 - это *только*
примеры. В конечном счете Вы сами решаете, что значит "частичная"
и "тщательная" проверка, когда Вы подписываете другие ключи.
Если затрудняетесь с ответом, поставьте "0".
.
.gpg.change_passwd.empty.okay
Отвечайте "да" или "нет".
.
.gpg.keyedit.save.okay
Отвечайте "да" или "нет".
.
.gpg.keyedit.cancel.okay
Отвечайте "да" или "нет".
.
.gpg.keyedit.sign_all.okay
Ответьте "да", если хотите подписать ВСЕ идентификаторы пользователя.
.
.gpg.keyedit.remove.uid.okay
Ответьте "да", если действительно хотите удалить этот идентификатор
пользователя.
Все сертификаты будут также удалены!
.
.gpg.keyedit.remove.subkey.okay
Ответьте "да", если подключ можно удалить.
.
.gpg.keyedit.delsig.valid
Это верная подпись ключа; как правило, ее не нужно удалять,
поскольку может быть важно установить отношение доверия между
этим ключом и другими ключами.
.
.gpg.keyedit.delsig.unknown
Эту подпись нельзя проверить, поскольку отсутствует соответствующий
ключ. Удаление ее нужно отложить до тех пор, пока не станет
известно, какой из ключей был использован, так как подпись
этого ключа могло бы установить отношение доверия через
другой, уже сертифицированный ключ.
.
.gpg.keyedit.delsig.invalid
Подпись недействительна. Имеет смысл удалить ее из Вашей таблицы
ключей.
.
.gpg.keyedit.delsig.selfsig
Эта подпись связывает идентификатор пользователя с ключом. Обычно
удалять такие подписи не следует. Это может сделать ключ непригодным
для пользования с GnuPG. Так что делайте это только если эта
самоподпись по какой-то причине недействительна и есть другая.
.
.gpg.keyedit.updpref.okay
Изменить предпочтения для всех идентификаторов пользователя (или
только для выбранных) на текущий список предпочтений. Дата всех
самоподписей, которых это касается, будет сдвинута вперед
на одну секунду.
.
.gpg.passphrase.enter
# (keep a leading empty line)
Введите, пожалуйста, фразу-пароль (секретное предложение).
.
.gpg.passphrase.repeat
Повторите введенную фразу-пароль, чтобы проверить, что Вы не ошиблись.
.
.gpg.detached_signature.filename
Задайте имя файла, который подписывается.
.
.gpg.openfile.overwrite.okay
# openfile.c (overwrite_filep)
Ответьте "да", если файл можно перезаписать.
.
.gpg.openfile.askoutname
# openfile.c (ask_outfile_name)
Введите новое имя файла. Если просто нажать "Enter", будет
использован файл по умолчанию (указан в скобках).
.
.gpg.ask_revocation_reason.code
# revoke.c (ask_revocation_reason)
Нужно указать причину отзыва. Можно выбрать из списка:
"Ключ был раскрыт"
Есть основания полагать, что какие-то лица получили
несанкционированный доступ к секретному ключу.
"Ключ заменен другим"
Вы заменили ключ на новый.
"Ключ больше не используется"
Вы дали ключу отставку.
"ID пользователя больше не действителен"
ID пользователя больше не должен употребляться; обычно это значит,
что адрес электронной почты недействителен.
.
.gpg.ask_revocation_reason.text
# revoke.c (ask_revocation_reason)
Если хотите, можете ввести текст, поясняющий причину, по которой
выпущен этот сертификат отзыва. Выражайтесь, пожалуйста, ясно.
Текст заканчивается пустой строкой.
.
.gpgsm.root-cert-not-trusted
# This text gets displayed by the audit log if
# a root certificates was not trusted.
Нет доверия к корневому сертификату. В зависимости от настроек
Вам могли предложить пометить этот корневой сертификат как доверенный
или вручную указать GnuPG, что этому сертификату нужно доверять.
Доверенные сертификаты задаются в файле trustlist.txt в домашнем
каталоге GnuPG. Если сомневаетесь, спросите своего системного
администратора, следует ли Вам доверять этому сертификату.
.gpgsm.crl-problem
# This tex is displayed by the audit log for problems with
# the CRL or OCSP checking.
В зависимости от настроек возникла проблема в получении списка
отозванных сертификатов или в выполнении проверки по протоколу
OCSP. Это могло случиться по очень многим причинам. Обратитесь
к документации за возможными решениями.
# Local variables:
# mode: default-generic
# coding: utf-8
# End:

View File

@@ -0,0 +1,254 @@
# help.sk.txt - sk GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Je na Vás, aby ste sem priradili hodnotu; táto hodnota nebude nikdy
exportovaná tretej strane. Potrebujeme ju k implementácii "pavučiny
dôvery"; nemá to nič spoločné s (implicitne vytvorenou) "pavučinou
certifikátov".
.
.gpg.edit_ownertrust.set_ultimate.okay
Aby bolo možné vybudovať pavučinu dôvery, musí GnuPG vedieť, ktorým kľúčom
dôverujete absolútne - obyčajne sú to tie kľúče, pre ktoré máte prístup
k tajným kľúčom. Odpovedzte "ano", aby ste nastavili tieto kľúče
ako absolútne dôveryhodné
.
.gpg.untrusted_key.override
Pokiaľ aj tak chcete použiť tento nedôveryhodný kľúč, odpovedzte "ano".
.
.gpg.pklist.user_id.enter
Vložte identifikátor adresáta, ktorému chcete poslať správu.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.gpg.keygen.algo.rsa_se
Všebecne nemožno odporúčať používať rovnaký kľúč na šifrovanie a podeisovanie
Tento algoritmus je vhodné použiť len za určitých podmienok.
Kontaktujte prosím najprv bezpečnostného špecialistu.
.
.gpg.keygen.size
Vložte dĺžku kľúča
.
.gpg.keygen.size.huge.okay
Odpovedzte "ano" alebo "nie"
.
.gpg.keygen.size.large.okay
Odpovedzte "ano" alebo "nie"
.
.gpg.keygen.valid
Vložte požadovanú hodnotu tak, ako je uvedené v príkazovom riadku.
Je možné vložiť dátum vo formáte ISO (RRRR-MM-DD), ale nedostanete
správnu chybovú hlášku - miesto toho systém skúsi interpretovať
zadanú hodnotu ako interval.
.
.gpg.keygen.valid.okay
Odpovedzte "ano" alebo "nie"
.
.gpg.keygen.name
Vložte meno držiteľa kľúča
.
.gpg.keygen.email
prosím, vložte e-mailovú adresu (nepovinné, ale veľmi odporúčané)
.
.gpg.keygen.comment
Prosím, vložte nepovinný komentár
.
.gpg.keygen.userid.cmd
N pre zmenu názvu.
C pre zmenu komentára.
E pre zmenu e-mailovej adresy.
O pre pokračovanie generovania kľúča.
Q pre ukončenie generovania kľúča.
.
.gpg.keygen.sub.okay
Ak chcete generovať podkľúč, odpovedzte "ano" (alebo len "a").
.
.gpg.sign_uid.okay
Odpovedzte "ano" alebo "nie"
.
.gpg.sign_uid.class
Skôr ako podpíšete id užívateľa, mali by ste najprv overiť, či kľúč
patrí osobe, ktorej meno je uvedené v identifikátore užívateľa.
Je veľmi užitočné, keď ostatní vedia, ako dôsledne ste previedli
takéto overenie.
"0" znamená, že neuvádzate, ako dôsledne ste pravosť kľúča overili
"1" znamená, že veríte tomu, že kľúč patrí osobe, ktorá je uvedená,
v užívateľskom ID, ale nemohli ste alebo jste nepreverili túto skutočnosť.
To je užitočné pre "osobnú" verifikáciu, keď podpisujete kľúče, ktoré
používajú pseudonym užívateľa.
"2" znamená, že ste čiastočne overili pravosť kľúča. Napr. ste overili
fingerprint kľúča a skontrolovali identifikátor užívateľa
uvedený na kľúči s fotografickým id.
"3" Znamená, že ste vykonali veľmi dôkladné overenie pravosti kľúča.
To môže napríklad znamenať, že ste overili fingerprint kľúča
jeho vlastníka osobne a ďalej ste pomocou tažko falšovateľného
dokumentu s fotografiou (napríklad pasu) overili, že meno majiteľa
kľúča sa zhoduje s menom uvedeným v užívateľskom ID a ďalej ste
overili (výmenou elektronických dopisov), že elektronická adresa uvedená
v ID užívateľa patrí majiteľovi kľúča.
Prosím nezabúdajte, že príklady uvedené pre úroveň 2 a 3 sú *len*
príklady.
Je len na Vašom rozhodnutí, čo "čiastočné" a "dôkladné" overenie znamená
keď budete podpisovať kľúče iným užívateľom.
Pokiaľ neviete, aká je správna odpoveď, odpovedzte "0".
.
.gpg.change_passwd.empty.okay
Odpovedzte "ano" alebo "nie"
.
.gpg.keyedit.save.okay
Odpovedzte "ano" alebo "nie"
.
.gpg.keyedit.cancel.okay
Odpovedzte "ano" alebo "nie"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.gpg.keyedit.remove.uid.okay
Pokiaľ skutočne chcete zmazať tento identifikátor užívateľa, odpovedzte "ano".
Všetky certifikáty budú tiež stratené!
.
.gpg.keyedit.remove.subkey.okay
Odpovedzte "ano", pokiaľ chcete zmazať podkľúč
.
.gpg.keyedit.delsig.valid
Toto je platný podpis kľúča; normálne nechcete tento podpis zmazať,
pretože môže byť dôležitý pri vytváraní dôvery kľúča alebo iného kľúča
ceritifikovaného týmto kľúčom.
.
.gpg.keyedit.delsig.unknown
Tento podpis nemôže byť overený, pretože nemáte zodpovedajúci verejný kľúč.
Jeho zmazanie by ste mali odložiť do času, keď budete vedieť, ktorý kľúč
bol použitý, pretože tento podpisovací kľúč môže vytvoriť dôveru
prostredníctvom iného už certifikovaného kľúča.
.
.gpg.keyedit.delsig.invalid
Podpis je neplatný. Je rozumné ho odstrániť z Vášho súboru kľúčov.
.
.gpg.keyedit.delsig.selfsig
Toto je podpis, ktorý viaže identifikátor užívateľa ku kľúču. Zvyčajne
nie je dobré takýto podpis odstrániť. GnuPG nemôže tento kľúč naďalej
používať. Urobte to len v prípade, keď je tento podpis kľúča
ním samým z nejakého dôvodu neplatný a keď je k dispozícii iný kľúč.
.
.gpg.keyedit.updpref.okay
Zmeniť predvoľby pre všetky užívateľské ID (alebo len pre označené)
na aktuálny zoznam predvolieb. Časové razítka všetkých dotknutých podpisov
kľúčov nimi samotnými budú posunuté o jednu sekundu dopredu.
.
.gpg.passphrase.enter
Prosím, vložte heslo; toto je tajná veta
.
.gpg.passphrase.repeat
Prosím, zopakujte posledné heslo, aby ste si boli istý, čo ste napísali.
.
.gpg.detached_signature.filename
Zadajte názov súboru, ku ktorému sa podpis vzťahuje
.
.gpg.openfile.overwrite.okay
Ak si prajete prepísanie súboru, odpovedzte "ano"
.
.gpg.openfile.askoutname
Prosím, vložte nový názov súboru. Ak len stlačíte RETURN, bude
použitý implicitný súbor (ktorý je zobrazený v zátvorkách).
.
.gpg.ask_revocation_reason.code
Mali by ste špecifikovať dôvod certifikácie. V závislosti na kontexte
máte možnosť si vybrať zo zoznamu:
"kľúč bol kompromitovaný"
Toto použite, pokiaľ si myslíte, že k Vášmu tajnému kľúču získali
prístup neoprávnené osoby.
"kľúč je nahradený"
Toto použite, pokiaľ ste tento kľúč nahradili novším kľúčom.
"kľúč sa už nepoužíva"
Toto použite, pokiaľ tento kľúč už nepoužívate.
"Identifikátor užívateľa už nie je platný"
Toto použite, pokiaľ by sa identifikátor užívateľa už nemal používať;
normálne sa používa na označenie neplatnej e-mailové adresy.
.
.gpg.ask_revocation_reason.text
Ak chcete, môžete vložiť text popisujúcí pôvod vzniku tohto revokačného
ceritifikátu. Prosím, stručne.
Text končí prázdnym riadkom.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,286 @@
# help..txt - GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.#gpg.edit_ownertrust.value
# fixme: Please translate and remove the hash mark from the key line.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.#gpg.edit_ownertrust.set_ultimate.okay
# fixme: Please translate and remove the hash mark from the key line.
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted
.
.#gpg.untrusted_key.override
# fixme: Please translate and remove the hash mark from the key line.
If you want to use this untrusted key anyway, answer "yes".
.
.#gpg.pklist.user_id.enter
# fixme: Please translate and remove the hash mark from the key line.
Enter the user ID of the addressee to whom you want to send the message.
.
.#gpg.keygen.algo
# fixme: Please translate and remove the hash mark from the key line.
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.#gpg.keygen.algo.rsa_se
# fixme: Please translate and remove the hash mark from the key line.
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.#gpg.keygen.size
# fixme: Please translate and remove the hash mark from the key line.
Enter the size of the key
.
.#gpg.keygen.size.huge.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.size.large.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.valid
# fixme: Please translate and remove the hash mark from the key line.
Enter the required value as shown in the prompt.
It is possible to enter a ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.#gpg.keygen.valid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keygen.name
# fixme: Please translate and remove the hash mark from the key line.
Enter the name of the key holder
.
.#gpg.keygen.email
# fixme: Please translate and remove the hash mark from the key line.
please enter an optional but highly suggested email address
.
.#gpg.keygen.comment
# fixme: Please translate and remove the hash mark from the key line.
Please enter an optional comment
.
.#gpg.keygen.userid.cmd
# fixme: Please translate and remove the hash mark from the key line.
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to to quit the key generation.
.
.#gpg.keygen.sub.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.#gpg.sign_uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.sign_uid.class
# fixme: Please translate and remove the hash mark from the key line.
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.#gpg.change_passwd.empty.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.save.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.cancel.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" or "no"
.
.#gpg.keyedit.sign_all.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you want to sign ALL the user IDs
.
.#gpg.keyedit.remove.uid.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.#gpg.keyedit.remove.subkey.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to delete the subkey
.
.#gpg.keyedit.delsig.valid
# fixme: Please translate and remove the hash mark from the key line.
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.#gpg.keyedit.delsig.unknown
# fixme: Please translate and remove the hash mark from the key line.
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.#gpg.keyedit.delsig.invalid
# fixme: Please translate and remove the hash mark from the key line.
The signature is not valid. It does make sense to remove it from
your keyring.
.
.#gpg.keyedit.delsig.selfsig
# fixme: Please translate and remove the hash mark from the key line.
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.#gpg.keyedit.updpref.okay
# fixme: Please translate and remove the hash mark from the key line.
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.#gpg.passphrase.enter
# fixme: Please translate and remove the hash mark from the key line.
Please enter the passphrase; this is a secret sentence
.
.#gpg.passphrase.repeat
# fixme: Please translate and remove the hash mark from the key line.
Please repeat the last passphrase, so you are sure what you typed in.
.
.#gpg.detached_signature.filename
# fixme: Please translate and remove the hash mark from the key line.
Give the name of the file to which the signature applies
.
.#gpg.openfile.overwrite.okay
# fixme: Please translate and remove the hash mark from the key line.
Answer "yes" if it is okay to overwrite the file
.
.#gpg.openfile.askoutname
# fixme: Please translate and remove the hash mark from the key line.
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.#gpg.ask_revocation_reason.code
# fixme: Please translate and remove the hash mark from the key line.
You should specify a reason for the certification. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.#gpg.ask_revocation_reason.text
# fixme: Please translate and remove the hash mark from the key line.
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,242 @@
# help.tr.txt - tr GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
.gpg.edit_ownertrust.value
Bir değeri buraya işaretlemek size kalmış; bu değer herhangi bir 3. şahsa
gönderilmeyecek. Bir güvence ağı sağlamak için bizim buna ihtiyacımız var;
bunun (açıkça belirtilmeden oluşturulmuş) sertifikalar ağıyla
hiçbir alakası yok.
.
.gpg.edit_ownertrust.set_ultimate.okay
Web-of-Trust oluşturulabilmesi için GnuPG'ye hangi anahtarların son derece
güvenli (bunlar gizli anahtarlarına erişiminiz olan anahtarlardır) olduğunun
bildirilmesi gerekir. "evet" yanıtı bu anahtarın son derece güvenli
olduğunun belirtilmesi için yeterlidir.
.
.gpg.untrusted_key.override
Bu güvencesiz anahtarı yine de kullanmak istiyorsanız cevap olarak
"evet" yazın.
.
.gpg.pklist.user_id.enter
Bu iletiyi göndereceğiniz adresin kullanıcı kimliğini giriniz.
.
.gpg.keygen.algo
Kullanılacak algoritmayı seçiniz.
DSA (nam-ı diğer DSS) Sayısal İmza Algortimasıdır ve
sadece imzalar için kullanılabilir.
Elgamal sadece şifreleme amacıyla kullanılabilen bir algoritmadır.
RSA hem imzalamak hem de şifrelemek amacıyla kullanılabilir.
İlk (asıl) anahtar daima imzalama yeteneğine sahip bir anahtar olmalıdır.
.
.gpg.keygen.algo.rsa_se
Genelde imzalama ve şifreleme için aynı anahtarı kullanmak iyi bir fikir
değildir. Bu algoritma sadece belli alanlarda kullanılabilir.
Lütfen güvenlik uzmanınıza danışın.
.
.gpg.keygen.size
Anahtar uzunluğunu giriniz
.
.gpg.keygen.size.huge.okay
Cevap "evet" ya da "hayır"
.
.gpg.keygen.size.large.okay
Cevap "evet" ya da "hayır"
.
.gpg.keygen.valid
İstenen değeri girin. ISO tarihi (YYYY-AA-GG) girmeniz mümkündür fakat
iyi bir hata cevabı alamazsınız -- onun yerine sistem verilen değeri
bir zaman aralığı olarak çözümlemeyi dener.
.
.gpg.keygen.valid.okay
Cevap "evet" ya da "hayır"
.
.gpg.keygen.name
Anahtar tutucunun ismini giriniz
.
.gpg.keygen.email
lütfen bir E-posta adresi girin (isteğe bağlı ancak kuvvetle tavsiye edilir)
.
.gpg.keygen.comment
Lütfen önbilgi girin (isteğe bağlı)
.
.gpg.keygen.userid.cmd
S iSim değiştirmek için.
B önBilgiyi değiştirmek için.
P e-Posta adresini değiştirmek için.
D anahtar üretimine Devam etmek için.
K anahtar üretiminden çıKmak için.
.
.gpg.keygen.sub.okay
Yardımcı anahtarı üretmek istiyorsanız "evet" ya da "e" girin.
.
.gpg.sign_uid.okay
Cevap "evet" ya da "hayır"
.
.gpg.sign_uid.class
Bir anahtarı bir kullanıcı kimlikle imzalamadan önce kullanıcı kimliğin
içindeki ismin, anahtarın sahibine ait olup olmadığını kontrol etmelisiniz.
"0" bu kontrolu yapmadığınız ve yapmayı da bilmediğiniz anlamındadır.
"1" anahtar size sahibi tarafından gönderildi ama siz bu anahtarı başka
kaynaklardan doğrulamadınız anlamındadır. Bu kişisel doğrulama için
yeterlidir. En azında yarı anonim bir anahtar imzalaması yapmış
olursunuz.
"2" ayrıntılı bir inceleme yapıldığı anlamındadır. Örneğin parmakizi ve
bir anahtarın foto kimliğiyle kullanıcı kimliğini karşılaştırmak
gibi denetimleri yapmışsınızdır.
"3" inceden inceye bir doğrulama anlatır. Örneğin, şahıstaki anahtarın
sahibi ile anahtar parmak izini karşılaştırmışsınızdır ve anahtardaki
kullanıcı kimlikte belirtilen isme ait bir basılı kimlik belgesindeki
bir fotoğrafla şahsı karşılaştırmışsınızdır ve son olarak anahtar
sahibinin e-posta adresini kendisinin kullanmakta olduğunu da
denetlemişsinizdir.
Burada 2 ve 3 için verilen örnekler *sadece* örnektir.
Eninde sonunda bir anahtarı imzalarken "ayrıntılı" ve "inceden inceye" kontroller arasındaki ayrıma siz karar vereceksiniz.
Bu kararı verebilecek durumda değilseniz "0" cevabını verin.
.
.gpg.change_passwd.empty.okay
Cevap "evet" ya da "hayır"
.
.gpg.keyedit.save.okay
Cevap "evet" ya da "hayır"
.
.gpg.keyedit.cancel.okay
Cevap "evet" ya da "hayır"
.
.gpg.keyedit.sign_all.okay
Kullanıcı kimliklerinin TÜMünü imzalamak istiyorsanız "evet" ya da "yes" yazın
.
.gpg.keyedit.remove.uid.okay
Bu kullanıcı kimliğini gerçekten silmek istiyorsanız "evet" girin.
Böylece bütün sertifikaları kaybedeceksiniz!
.
.gpg.keyedit.remove.subkey.okay
Bu yardımcı anahtarı silme izni vermek istiyorsanız "evet" girin
.
.gpg.keyedit.delsig.valid
Bu, anahtar üzerinde geçerli bir imzadır; anahtara ya da bu anahtarla
sertifikalanmış bir diğer anahtara bir güvence bağlantısı sağlamakta
önemli olabileceğinden normalde bu imzayı silmek istemezsiniz.
.
.gpg.keyedit.delsig.unknown
Bu imza, anahtarına sahip olmadığınızdan, kontrol edilemez. Bu imzanın
silinmesini hangi anahtarın kullanıldığını bilene kadar
ertelemelisiniz çünkü bu imzalama anahtarı başka bir sertifikalı
anahtar vasıtası ile bir güvence bağlantısı sağlayabilir.
.
.gpg.keyedit.delsig.invalid
İmza geçersiz. Anahtarlıktan kaldırmak uygun olacak.
.
.gpg.keyedit.delsig.selfsig
Bu imza kullanıcı kimliğini anahtara bağlar. Öz-imzayı silmek hiç iyi
bir fikir değil. GnuPG bu anahtarı bir daha hiç kullanamayabilir.
Bunu sadece, eğer bu öz-imza bazı durumlarda geçerli değilse ya da
kullanılabilir bir ikincisi var ise yapın.
.
.gpg.keyedit.updpref.okay
Tüm kullanıcı kimlik tercihlerini (ya da seçilen birini) mevcut tercihler
listesine çevirir. Tüm etkilenen öz-imzaların zaman damgaları bir sonraki
tarafından öne alınacaktır.
.
.gpg.passphrase.enter
Lütfen bir anahtar parolası giriniz; yazdıklarınız görünmeyecek
.
.gpg.passphrase.repeat
Lütfen son parolayı tekrarlayarak ne yazdığınızdan emin olun.
.
.gpg.detached_signature.filename
İmzanın uygulanacağı dosyanın ismini verin
.
.gpg.openfile.overwrite.okay
Dosyanın üzerine yazılacaksa lütfen "evet" yazın
.
.gpg.openfile.askoutname
Lütfen yeni dosya ismini girin. Dosya ismini yazmadan RETURN tuşlarsanız
parantez içinde gösterilen öntanımlı dosya kullanılacak.
.
.gpg.ask_revocation_reason.code
Sertifikalama için bir sebep belirtmelisiniz. İçeriğine bağlı olarak
bu listeden seçebilirsiniz:
"Anahtar tehlikede"
Yetkisiz kişilerin gizli anahtarınıza erişebildiğine inanıyorsanız
bunu seçin.
"Anahtar geçici"
Mevcut anahtarı daha yeni bir anahtar ile değiştirmişseniz bunu seçin.
"Anahtar artık kullanılmayacak"
Anahtarı emekliye ayıracaksanız bunu seçin.
"Kullanıcı kimliği artık geçersiz"
Kullanıcı kimliği artık kullanılamayacak durumdaysa bunu
seçin; genelde Eposta adresi geçersiz olduğunda kullanılır.
.
.gpg.ask_revocation_reason.text
İsterseniz, neden bu yürürlükten kaldırma sertifikasını
verdiğinizi açıklayan bir metin girebilirsiniz.
Lütfen bu metin kısa olsun. Bir boş satır metni bitirir.
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,441 @@
# help.txt - English GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
# Note that this help file needs to be UTF-8 encoded. When looking
# for a help item, GnuPG scans the help files in the following order
# (assuming a GNU or Unix system):
#
# /etc/gnupg/help.LL_TT.txt
# /etc/gnupg/help.LL.txt
# /etc/gnupg/help.txt
# /usr/share/gnupg/help.LL_TT.txt
# /usr/share/gnupg/help.LL.txt
# /usr/share/gnupg/help.txt
#
# Here LL_TT denotes the full name of the current locale with the
# territory (.e.g. "de_DE"), LL denotes just the locale name
# (e.g. "de"). The first matching item is returned. To put a dot or
# a hash mark at the beginning of a help text line, it needs to be
# prefixed with ". ". A single dot may be used to terminated a help
# entry.
.#pinentry.qualitybar.tooltip
# [remove the hash mark from the key to enable this text]
# This entry is just an example on how to customize the tooltip shown
# when hovering over the quality bar of the pinentry. We don't
# install this text so that the hardcoded translation takes
# precedence. An administrator should write up a short help to tell
# the users about the configured passphrase constraints and save that
# to /etc/gnupg/help.txt. The help text should not be longer than
# about 800 characters.
This bar indicates the quality of the passphrase entered above.
As long as the bar is shown in red, GnuPG considers the passphrase too
weak to accept. Please ask your administrator for details about the
configured passphrase constraints.
.
.#pinentry.constraints.hint.short
# [remove the hash mark from the key to enable this hint]
# This entry is used by some pinentries to display a hint about
# enabled passphrase constraints. These constraints are configurable
# and the admin may give a hint about them by using this help entry.
Please use letters and digits.
.
.#pinentry.constraints.hint.long
# [remove the hash mark from the key to enable this hint]
# This entry is used by some pinentries to show a tooltip with more
# information about the configured passphrase constraints.
Please use letters and digits.
Extra constraints are enforced, for example
the use of common car number plates.
.
.#pinentry.formatted_passphrase.hint",
# [remove the hash mark from the key to enable this hint]
# If this entry is not set a standard text is shown
Note: The blanks are not part of the passphrase.
.
.gnupg.agent-problem
# There was a problem accessing or starting the agent.
It was either not possible to connect to a running Gpg-Agent or a
communication problem with a running agent occurred.
The system uses a background process, called Gpg-Agent, for processing
private keys and to ask for passphrases. The agent is usually started
when the user logs in and runs as long the user is logged in. In case
that no agent is available, the system tries to start one on the fly
but that version of the agent is somewhat limited in functionality and
thus may lead to little problems.
You probably need to ask your administrator on how to solve the
problem. As a workaround you might try to log out and in to your
session and see whether this helps. If this helps please tell the
administrator anyway because this indicates a bug in the software.
.
.gnupg.dirmngr-problem
# There was a problen accessing the dirmngr.
It was either not possible to connect to a running Dirmngr or a
communication problem with a running Dirmngr occurred.
To lookup certificate revocation lists (CRLs), performing OCSP
validation and to lookup keys through LDAP servers, the system uses an
external service program named Dirmngr. The Dirmngr is usually running
as a system service (daemon) and does not need any attention by the
user. In case of problems the system might start its own copy of the
Dirmngr on a per request base; this is a workaround and yields limited
performance.
If you encounter this problem, you should ask your system
administrator how to proceed. As an interim solution you may try to
disable CRL checking in gpgsm's configuration.
.
.gpg.edit_ownertrust.value
# The help identies prefixed with "gpg." used to be hard coded in gpg
# but may now be overridden by help texts from this file.
It's up to you to assign a value here; this value will never be exported
to any 3rd party. We need it to implement the web-of-trust; it has nothing
to do with the (implicitly created) web-of-certificates.
.
.gpg.edit_ownertrust.set_ultimate.okay
To build the Web-of-Trust, GnuPG needs to know which keys are
ultimately trusted - those are usually the keys for which you have
access to the secret key. Answer "yes" to set this key to
ultimately trusted.
.gpg.untrusted_key.override
If you want to use this untrusted key anyway, answer "yes".
.
.gpg.pklist.user_id.enter
Enter the user ID of the addressee to whom you want to send the message.
.
.gpg.keygen.algo
Select the algorithm to use.
DSA (aka DSS) is the Digital Signature Algorithm and can only be used
for signatures.
Elgamal is an encrypt-only algorithm.
RSA may be used for signatures or encryption.
The first (primary) key must always be a key which is capable of signing.
.
.gpg.keygen.algo.rsa_se
In general it is not a good idea to use the same key for signing and
encryption. This algorithm should only be used in certain domains.
Please consult your security expert first.
.
.gpg.keygen.cardkey
Select which key from the card shall be used.
The listing shows the selection index, the keygrip (a string of hex
digits), the card specific key reference, the algorithm used for this
key, and in parentheses the usage of the key (cert, sign, auth, encr).
If known the standard usage for a key is marked with an asterisk.
.
.gpg.keygen.keygrip
Enter the keygrip of the key to add.
The keygrip is a string of 40 hex digits that identifies a key. It
must belong to a secret key or a secret subkey stored in your keyring.
.
.gpg.keygen.flags
Toggle the capabilities of the key.
It is only possible to toggle those capabilities which are possible
for the selected algorithm.
To quickly set the capabilities all at once it is possible to enter a
'=' as first character followed by a list of letters indicating the
capability to set: 's' for signing, 'e' for encryption, and 'a' for
authentication. Invalid letters and impossible capabilities are
ignored. This submenu is immediately closed after using this
shortcut.
.
.gpg.keygen.size
Enter the size of the key.
The suggested default is usually a good choice.
If you want to use a large key size, for example 4096 bit, please
think again whether it really makes sense for you. You may want
to view the web page https://www.xkcd.com/538/ .
.
.gpg.keygen.size.huge.okay
Answer "yes" or "no".
.
.gpg.keygen.size.large.okay
Answer "yes" or "no".
.
.gpg.keygen.valid
Enter the required value as shown in the prompt.
It is possible to enter an ISO date (YYYY-MM-DD) but you won't
get a good error response - instead the system tries to interpret
the given value as an interval.
.
.gpg.keygen.valid.okay
Answer "yes" or "no".
.
.gpg.keygen.name
Enter the name of the key holder.
The characters "<" and ">" are not allowed.
Example: Heinrich Heine
.
.gpg.keygen.email
Please enter an optional but highly suggested email address.
Example: heinrichh@duesseldorf.de
.
.gpg.keygen.comment
Please enter an optional comment.
The characters "(" and ")" are not allowed.
In general there is no need for a comment.
.
.gpg.keygen.userid.cmd
# (Keep a leading empty line)
N to change the name.
C to change the comment.
E to change the email address.
O to continue with key generation.
Q to quit the key generation.
.
.gpg.keygen.sub.okay
Answer "yes" (or just "y") if it is okay to generate the sub key.
.
.gpg.sign_uid.okay
Answer "yes" or "no".
.
.gpg.sign_uid.class
When you sign a user ID on a key, you should first verify that the key
belongs to the person named in the user ID. It is useful for others to
know how carefully you verified this.
"0" means you make no particular claim as to how carefully you verified the
key.
"1" means you believe the key is owned by the person who claims to own it
but you could not, or did not verify the key at all. This is useful for
a "persona" verification, where you sign the key of a pseudonymous user.
"2" means you did casual verification of the key. For example, this could
mean that you verified the key fingerprint and checked the user ID on the
key against a photo ID.
"3" means you did extensive verification of the key. For example, this could
mean that you verified the key fingerprint with the owner of the key in
person, and that you checked, by means of a hard to forge document with a
photo ID (such as a passport) that the name of the key owner matches the
name in the user ID on the key, and finally that you verified (by exchange
of email) that the email address on the key belongs to the key owner.
Note that the examples given above for levels 2 and 3 are *only* examples.
In the end, it is up to you to decide just what "casual" and "extensive"
mean to you when you sign other keys.
If you don't know what the right answer is, answer "0".
.
.gpg.change_passwd.empty.okay
Answer "yes" or "no".
.
.gpg.keyedit.save.okay
Answer "yes" or "no".
.
.gpg.keyedit.cancel.okay
Answer "yes" or "no".
.
.gpg.keyedit.sign_all.okay
Answer "yes" if you want to sign ALL the user IDs.
.
.gpg.keyedit.remove.uid.okay
Answer "yes" if you really want to delete this user ID.
All certificates are then also lost!
.
.gpg.keyedit.remove.subkey.okay
Answer "yes" if it is okay to delete the subkey.
.
.gpg.keyedit.delsig.valid
This is a valid signature on the key; you normally don't want
to delete this signature because it may be important to establish a
trust connection to the key or another key certified by this key.
.
.gpg.keyedit.delsig.unknown
This signature can't be checked because you don't have the
corresponding key. You should postpone its deletion until you
know which key was used because this signing key might establish
a trust connection through another already certified key.
.
.gpg.keyedit.delsig.invalid
The signature is not valid. It does make sense to remove it from
your keyring.
.
.gpg.keyedit.delsig.selfsig
This is a signature which binds the user ID to the key. It is
usually not a good idea to remove such a signature. Actually
GnuPG might not be able to use this key anymore. So do this
only if this self-signature is for some reason not valid and
a second one is available.
.
.gpg.keyedit.updpref.okay
Change the preferences of all user IDs (or just of the selected ones)
to the current list of preferences. The timestamp of all affected
self-signatures will be advanced by one second.
.
.gpg.passphrase.enter
# (keep a leading empty line)
Please enter the passphrase; this is a secret sentence.
.
.gpg.passphrase.repeat
Please repeat the last passphrase, so you are sure what you typed in.
.
.gpg.detached_signature.filename
Give the name of the file to which the signature applies.
.
.gpg.openfile.overwrite.okay
# openfile.c (overwrite_filep)
Answer "yes" if it is okay to overwrite the file.
.
.gpg.openfile.askoutname
# openfile.c (ask_outfile_name)
Please enter a new filename. If you just hit RETURN the default
file (which is shown in brackets) will be used.
.
.gpg.ask_revocation_reason.code
# revoke.c (ask_revocation_reason)
You should specify a reason for the revocation. Depending on the
context you have the ability to choose from this list:
"Key has been compromised"
Use this if you have a reason to believe that unauthorized persons
got access to your secret key.
"Key is superseded"
Use this if you have replaced this key with a newer one.
"Key is no longer used"
Use this if you have retired this key.
"User ID is no longer valid"
Use this to state that the user ID should not longer be used;
this is normally used to mark an email address invalid.
.
.gpg.ask_revocation_reason.text
# revoke.c (ask_revocation_reason)
If you like, you can enter a text describing why you issue this
revocation certificate. Please keep this text concise.
An empty line ends the text.
.
.gpg.tofu.conflict
# tofu.c
TOFU has detected another key with the same (or a very similar) email
address. It might be that the user created a new key. In this case,
you can safely trust the new key (but, confirm this by asking the
person). However, it could also be that the key is a forgery or there
is an active Man-in-the-Middle (MitM) attack. In this case, you
should mark the key as being bad, so that it is untrusted. Marking a
key as being untrusted means that any signatures will be considered
bad and attempts to encrypt to the key will be flagged. If you are
unsure and can't currently check, you should select either accept once
or reject once.
.
.gpgsm.root-cert-not-trusted
# This text gets displayed by the audit log if
# a root certificates was not trusted.
The root certificate (the trust-anchor) is not trusted. Depending on
the configuration you may have been prompted to mark that root
certificate as trusted or you need to manually tell GnuPG to trust that
certificate. Trusted certificates are configured in the file
trustlist.txt in GnuPG's home directory. If you are in doubt, ask
your system administrator whether you should trust this certificate.
.gpgsm.crl-problem
# This text is displayed by the audit log for problems with
# the CRL or OCSP checking.
Depending on your configuration a problem retrieving the CRL or
performing an OCSP check occurred. There are a great variety of
reasons why this did not work. Check the manual for possible
solutions.
# Local variables:
# mode: default-generic
# coding: utf-8
# End:

View File

@@ -0,0 +1,382 @@
# help.zh_CN.txt - zh_CN GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
# Update by bobwxc<bobwxc@yeah.net> 2020
# Note that this help file needs to be UTF-8 encoded. When looking
# for a help item, GnuPG scans the help files in the following order
# (assuming a GNU or Unix system):
#
# /etc/gnupg/help.LL_TT.txt
# /etc/gnupg/help.LL.txt
# /etc/gnupg/help.txt
# /usr/share/gnupg/help.LL_TT.txt
# /usr/share/gnupg/help.LL.txt
# /usr/share/gnupg/help.txt
#
# Here LL_TT denotes the full name of the current locale with the
# territory (.e.g. "de_DE"), LL denotes just the locale name
# (e.g. "de"). The first matching item is returned. To put a dot or
# a hash mark at the beginning of a help text line, it needs to be
# prefixed with ". ". A single dot may be used to terminated ahelp
# entry.
.#pinentry.qualitybar.tooltip
# [remove the hash mark from the key to enable this text]
# This entry is just an example on how to customize the tooltip shown
# when hovering over the quality bar of the pinentry. We don't
# install this text so that the hardcoded translation takes
# precedence. An administrator should write up a short help to tell
# the users about the configured passphrase constraints and save that
# to /etc/gnupg/help.txt. The help text should not be longer than
# about 800 characters.
This bar indicates the quality of the passphrase entered above.
As long as the bar is shown in red, GnuPG considers the passphrase too
weak to accept. Please ask your administrator for details about the
configured passphrase constraints.
.
.gnupg.agent-problem
# 无法连接或启动 Gpg-Agent 。
无法连接到运行的 Gpg-Agent 或与正在运行的 Gpg-Agent 发生通信问题。
本系统使用一个称为 Gpg-Agent (Gpg-代理)的后台进程来处理私钥和请求密
码。代理通常在用户登录时启动,并在用户在线时运行。如果没有可用的代
理,系统会尝试动态启动一个代理,但该状态的代理在功能上有一定的限制,
可能会导致一些小问题。
您可能需要询问管理员以解决该问题。您也可以尝试注销并重新登录来尝试
解决此问题。无论如何,请通知管理员此错误,因为这表明软件中存在错误。
.
.gnupg.dirmngr-problem
# 无法连接到 dirmngr
无法连接到一个运行的 Dirmngr 或与正在运行的 Dirmngr 发生通信问题。
若要查找证书吊销列表CRL请执行OCSP验证并通过LDAP服务器查找公钥
本系统依赖于名为 Dirmngr 的外部服务程序。Dirmngr 通常作为系统服务
(守护进程)运行,无需用户管理。当守护进程出现问题时,系统可能会为每
个请求启动自己的Dirmngr副本这是一种性能有限的解决方法。
如果遇到此问题,应询问系统管理员如何解决。作为一个临时解决方案,您可
以尝试在 gpgsm 的配置中禁用 CRL 检查。
.
.gpg.edit_ownertrust.value
#标识前缀为“gpg”的帮助曾经为gpg的硬编码
#现在可能被此文件中的帮助文本覆盖。
在这里指定的数值完全由您自己决定;这些数值永远不会被导出给任何第三方。
我们需要它来实现“信任网络”;这与被隐式创建的“证书验证网络”无关。
.
.gpg.edit_ownertrust.set_ultimate.okay
要建立起信任网络GnuPG 需要知道哪些密钥是可绝对信任的――通常就是
您拥有私钥的那些密钥。回答“yes”将此密钥设成可绝对信任的。
.
.gpg.untrusted_key.override
如果您坚持要求使用这把未被信任的公钥请回答“yes”。
.
.gpg.pklist.user_id.enter
输入您要所发送报文的接收者的用户标识。
.
.gpg.keygen.algo
选择使用的算法。
DSA 即“数字签名算法”(曾用于美国国家标准DSS),只能够用作签名。
Elgamal 是一种只能用作加密的算法。
RSA 可以用作签名或加密。
第一把密钥(主钥)必须具有签名的能力。
.
.gpg.keygen.algo.rsa_se
通常来说用同一把密钥签名和加密并不是个好主意。这个算法只在特定的情况
下使用。请事先咨询您的安全指导专家。
.
.gpg.keygen.cardkey
从卡中选择要使用的密钥。
列表显示了密钥索引钥柄keygrip一个十六进制数字串卡特别的密
钥引用,密钥算法。
括注为密钥允许的用法cert 验证, sign 签名, auth 授权, encr 加密),
有星号标记的为密钥的标准用法。
.
.gpg.keygen.flags
选择密钥的功能。
密钥功能受限于所选算法。
要快速完成功能设置,可以输入“=”作为第一个字符,后跟字母列表;
指示设置的功能“s”用于签名“e”用于加密而“a”用于身份验证
无效字母和不可选的功能将被忽略。
使用快速设置后,此子菜单将立即结束。
.
.gpg.keygen.size
请输入密钥长度。
默认选项通常是个不错的选择。
如果您想使用一个较大的密钥长度例如4096位请认真考虑它是否真的对
你有意义,长密钥可能会降低性能。您可以参考该网页
http://www.xkcd.com/538/
.
.gpg.keygen.size.huge.okay
请回答“yes”或“no”
.
.gpg.keygen.size.large.okay
请回答“yes”或“no”
.
.gpg.keygen.valid
请按提示输入所要求的数值。
您可以输入 ISO 日期格式(YYYY-MM-DD),但出错时您可能不会得到友好的提
示――系统可能会尝试将其解释为时间间隔。
.
.gpg.keygen.valid.okay
请回答“yes”或“no”
.
.gpg.keygen.name
请输入密钥持有人的名字
“<”与“>”字符是不允许的。
例如ZhangSan
.
.gpg.keygen.email
请输入电子邮件地址(可选项,但强烈推荐使用)
例如zhangsan@example.com
.
.gpg.keygen.comment
请输入注释(可选项)
“(”与“)”字符是不允许的。
通常无需输入注释。
.
.gpg.keygen.userid.cmd
# (开头来一个空行)—— help.txt要求的
N 修改姓名。
C 修改注释。
E 修改电子邮件地址。
O 继续生成密钥。
Q 中止生成密钥。
.
.gpg.keygen.sub.okay
如果您允许生成子钥请回答“yes”(或者“y”)。
.
.gpg.sign_uid.okay
请回答“yes”或“no”
.
.gpg.sign_uid.class
当您对某把密钥上某个用户标识进行签名认证时,您必须首先验证这把密钥
是否确实属于在用户标识上署名的那个人。而让他人了解您对此进行了多么
仔细的验证是非常必要的。
“0” 表示您对验证这把密钥所属者真实性问题不表态。
“1” 表示您相信这把密钥属于那个声称是主人的人,但是您不能或根本没
有验证过。如果您为一把属于类似虚拟人物的密钥签名,这个选项很
有用。
“2” 表示您随意地验证了那把密钥。例如,您验证了这把密钥的指纹,或
比对了照片以验证用户标识。
“3” 表示您做了大量而详尽的验证密钥工作。例如,您同密钥持有人直接
联系验证了密钥指纹,而且通过查验附带照片且难以伪造的证件(如
身份证)确认了密钥持有人的姓名与密钥上的用户标识一致,最后您还
(通过电子邮件往来)验证了密钥上的电子邮件地址确实属于密钥持
有人。
请注意上述关于验证级别 2 和 3 的说明仅是例子而已,最终还是由您自己
决定当您为其他密钥签名时,什么是“随意”,而什么是“大量而详尽”。
如果您不知道应该选什么请选“0”。
.
.gpg.change_passwd.empty.okay
请回答“yes”或“no”
.
.gpg.keyedit.save.okay
请回答“yes”或“no”
.
.gpg.keyedit.cancel.okay
请回答“yes”或“no”
.
.gpg.keyedit.sign_all.okay
如果您想要为所有用户标识签名的话就选“yes”
.
.gpg.keyedit.remove.uid.okay
如果您真的想要删除这个用户标识的话就回答“yes”。
所有相关认证在此之后也会丢失!
.
.gpg.keyedit.remove.subkey.okay
如果要删除这把子钥请回答“yes”
.
.gpg.keyedit.delsig.valid
这是一份在这把密钥上有效的签名;通常您不会想要删除这份签名,因为要
与“这把密钥”或“拥有这把密钥的签名的密钥”建立认证关系可能相当重
要。
.
.gpg.keyedit.delsig.unknown
这份签名无法被检验,因为您没有相应的公钥。您应该暂缓删除它,直到您
知道此签名使用了哪一把密钥;因为用来签名的密钥可能与其他已经验证的
密钥存在信任关系。
.
.gpg.keyedit.delsig.invalid
这份签名无效。应当把它从您的钥匙环里删除。
.
.gpg.keyedit.delsig.selfsig
这是一份将密钥与用户标识相联系的签名,通常不应删除这样的签名。一旦
删除GnuPG 将可能无法再使用这把密钥。因此,只有在这把密钥的第一个
自签名因某些原因失效,而拥有另一个可用自签名的情况下才这么做。
.
.gpg.keyedit.updpref.okay
用现有的首选项更新所有(或选定的)用户标识的首选项。所有受影响的自
签名的时间戳都会增加一秒钟。
.
.gpg.passphrase.enter
# (开头来一个空行)—— help.txt要求的
请输入密码:
.
.gpg.passphrase.repeat
请再次输入密码,以确认输入了正确的密码。
.
.gpg.detached_signature.filename
请给定要添加签名的文件名
.
.gpg.openfile.overwrite.okay
如果要覆盖这个文件请回答“yes”
.
.gpg.openfile.askoutname
请输入一个新的文件名。直接按下回车以使用默认文件名(括号中)。
.
.gpg.ask_revocation_reason.code
您需要为这份吊销证书指定一个原因。根据情况的不同,您可以从下列清单中
选出一项:
“密钥已泄漏”
如果您相信有某个未经许可的人已取得了您的私钥,请选此项。
“密钥已替换”
如果您已用一把新密钥代替旧的,请选此项。
“密钥不再被使用”
如果您已决定让这把密钥退休,请选此项
“用户标识不再有效”
如果这个用户标识不再被使用了,请选此项;这通常用表明某个电子
邮件地址已不再有效。
.
.gpg.ask_revocation_reason.text
# revoke.c (ask_revocation_reason)
您也可以输入一串文字,描述发布这份吊销证书的理由,请尽量简明扼要。
输入一个空行以结束输入。
.
.gpg.tofu.conflict
# tofu.c
TOFU 检测到了另一个电子邮件地址相同(或非常相似)的密钥。可能是用户
创建了一个新的密钥;在这种情况下,您可以放心地信任新密钥(请通过询
问此人来确认这一点)。但此密钥也可能是伪造的,或者有一个活跃的中间
MitM攻击在这种情况下应该将密钥标记为不受信的这样它就不
可信了。将密钥标记为不受信任意味着其任何签名都将被认为是无效的,并
将标记所有使用该密钥进行的加密。如果您不确定且当前无法检查,则应选
择接受一次或拒绝一次。
.
.gpgsm.root-cert-not-trusted
# This text gets displayed by the audit log if
# a root certificates was not trusted.
#如果根证书不受信任,审核日志将显示此文本。
根证书(信任基础)不受信任。根据配置,可能会提示您将根证书标记为受
信任的,或者您需要手动告诉 GnuPG 信任该证书。记载了受信任证书的
trustlist.txt 在GnuPG的主目录中。如有疑问请询问系统管理员是否应信
任此证书。
.
.gpgsm.crl-problem
#当CRL或OCSP检查出现问题审核日志将显示此文本。
您的配置在检索CRL或执行OCSP检查时出现问题。有很多不同的原因查看手
册以了解可能的解决方案。
.
# Local variables:
# mode: fundamental
# coding: utf-8
# End:

View File

@@ -0,0 +1,367 @@
# help.zh_TW.txt - zh_TW GnuPG online help
# Copyright (C) 2007 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
# Note that this help file needs to be UTF-8 encoded. When looking
# for a help item, GnuPG scans the help files in the following order
# (assuming a GNU or Unix system):
#
# /etc/gnupg/help.LL_TT.txt
# /etc/gnupg/help.LL.txt
# /etc/gnupg/help.txt
# /usr/share/gnupg/help.LL_TT.txt
# /usr/share/gnupg/help.LL.txt
# /usr/share/gnupg/help.txt
#
# Here LL_TT denotes the full name of the current locale with the
# territory (.e.g. "de_DE"), LL denotes just the locale name
# (e.g. "de"). The first matching item is returned. To put a dot or
# a hash mark at the beginning of a help text line, it needs to be
# prefixed with ". ". A single dot may be used to terminated ahelp
# entry.
.#pinentry.qualitybar.tooltip
# [remove the hash mark from the key to enable this text]
# This entry is just an example on how to customize the tooltip shown
# when hovering over the quality bar of the pinentry. We don't
# install this text so that the hardcoded translation takes
# precedence. An administrator should write up a short help to tell
# the users about the configured passphrase constraints and save that
# to /etc/gnupg/help.txt. The help text should not be longer than
# about 800 characters.
本指示條顯示上方輸入的密語的強度。
本處若顯示為紅色,代表該密語強度不足,不能被 GnuPG 接受。請與管理者詢
問關於密語強度的細節。
.
.gnupg.agent-problem
# There was a problem accessing or starting the agent.
無法連接執行中的 Gpg-Agent或與執行中的 Gpg-Agent 通訊時出現異常。
本系統使用稱為 Gpg-Agent 的背景程式,以代理處理私鑰或詢問密文。該代理
程式會在使用者登入時執行,並持續執行直到使用者登出為止。若沒有代理程
式,系統會在執行時嘗試使用一個功能受限的代理程式,該版本的代理程式可能
會導致一些問題。
您可能需要詢問管理者如何解決這個問題,作為臨時方案,您可以嘗試登出後重
新登入,並檢查問題是否能改善。即使以上方法有用,也請告知系統管理者,因
為這代表軟體可能存在瑕疵。
.
.gnupg.dirmngr-problem
# There was a problen accessing the dirmngr.
無法連接到執行中的 Dirmngr或與執行中的 Dirmngr 通訊時出現異常。
為了查詢憑證吊銷列表 (CRL)、執行 OCSP 金鑰驗證、與 LDAP 伺服器查詢金
鑰,本系統會使用一個外部工具稱為 Dirmngr。Dirmngr 通常會以系統服務(常
駐程式)的形式執行,使用者無須注意。若此處出現問題,作為臨時方案,系統
每次在接到請求時會執行內建版本的 Dirmngr因而導致效能上的限制。
若您遇上這個問題,您可以與系統管理者詢問如何處理。作為暫代方案,您可以
關閉在 gpgsm 的設定中關閉 CRL 的檢查。
.
.gpg.edit_ownertrust.value
# The help identies prefixed with "gpg." used to be hard coded in gpg
# but may now be overridden by help texts from this file.
您可以自由決定是否要設定本值,該值不會輸出到任何第三方。本值只是為了實
作信任網路而設,與(隱式建立的)憑證網路沒有關係。
.
.gpg.edit_ownertrust.set_ultimate.okay
要建構信任網絡, GnuPG 需要知道哪些是徹底信任的金鑰——通常是指您可以存取
到私鑰的金鑰。若要設定為徹底信任的金鑰,請回答 "yes"。
.gpg.untrusted_key.override
如果您仍要使用這把不受信任的金鑰, 請回答 "yes"。
.
.gpg.pklist.user_id.enter
請輸入本訊息接收者的使用者 ID。
.
.gpg.keygen.algo
請選擇要使用的金鑰演算法。
DSA又稱 DSS是數位簽章演算法 (Digital Signature Algorithm)
只能用於簽署。
Elgamal 是只能用於加密的演算法。
RSA 可以作為簽署及加密使用。
第一把(主要的)金鑰必須要是能用於簽署的金鑰。
.
.gpg.keygen.algo.rsa_se
通常來說用同一把金鑰簽署及加密並不是個好主意。這個演算法應該只能用於特
定的領域。請先聯絡您的安全專家。
.
.gpg.keygen.cardkey
請從本卡片選擇要使用的金鑰。
本清單依序顯示選擇索引、鑰柄(十六進位字串)、卡片特定的金鑰參照、該
金鑰的演算法括號內會顯示金鑰的用途cert 證書、sign 簽名、auth 認證
、encr 加密)。若能得知預設的金鑰用途,會以星號標示。
.
.gpg.keygen.flags
切換金鑰的功能。
金鑰可以擁有哪些功能,受限於使用的金鑰演算法。
若要快速設定金鑰的功能,您可以輸入 '=' 後接以下字元組合的字串:
's' 簽名、'e' 加密、'a' 認證。無效的字元跟無法設定的功能會被忽略。本子
選單會在使用此快速設定的方法後立即關閉。
.
.gpg.keygen.size
請輸入金鑰的大小。
建議的金鑰大小通常是良好的選擇。
若您要使用較大的金鑰大小,例如 4096 位元,請再三考慮是否合理。
您可以參考以下網址https://www.xkcd.com/538/。
.
.gpg.keygen.size.huge.okay
請回答 "yes" 或 "no"。
.
.gpg.keygen.size.large.okay
請回答 "yes" 或 "no"。
.
.gpg.keygen.valid
請輸入提示裡要求的值。
輸入 ISO 日期格式 (YYYY-MM-DD) 雖然會被接受,但是因為系統會解析成區
間,因此不會得到正常的錯誤回應。
.
.gpg.keygen.valid.okay
請回答 "yes" 或 "no"。
.
.gpg.keygen.name
請輸入金鑰持有人的名字。
字元 "<" 跟 ">" 不會被接受。
Heinrich Heine
.
.gpg.keygen.email
請輸入 Email 地址(非必要,但強烈建議使用)。
heinrichh@duesseldorf.de
.
.gpg.keygen.comment
請輸入註釋(非必要)。
字元 "(" 跟 ")" 不會被接受。
通常不需要寫入註釋。
.
.gpg.keygen.userid.cmd
# (Keep a leading empty line)
N 修改姓名。
C 修改註釋。
E 修改 Email 地址。
O 繼續產生金鑰。
Q 中止產生金鑰。
.
.gpg.keygen.sub.okay
如果要產生子鑰的話, 請回答 "yes" (或 "y")。
.
.gpg.sign_uid.okay
請回答 "yes" 或 "no"。
.
.gpg.sign_uid.class
當您在某把金鑰上簽署某個使用者 ID您首先必須先驗證那把金鑰確實屬於該使用者
ID 上所代表的人。可以讓其他人知道您驗證該金鑰的詳細程度。
"0" 表示您不特別聲明您驗證那把金鑰的詳細程度。
"1" 表示您相信這把金鑰屬於那個主張是主人的人,但是您不能,或是完全沒有驗證
那把金鑰。這對「人格上」的驗證,亦即簽署化名使用者的金鑰來說是有用的。
"2" 表示您做了快速的金鑰驗證。例如,這能表示您驗證了這把金鑰的指紋並將使用
者 ID 與相片證件對照。
"3" 表示您做了仔細的金鑰驗證。例如,這能表示您當面向金鑰持有人驗證了金鑰指
紋,並透過附帶照片而難以偽造的文件(像是護照)確認了金鑰持有人的姓名與
金鑰上的使用者 ID 一致,最後您(透過 Email 往來)驗證了金鑰上的 Email
位址確實屬於金鑰持有人。
請注意上述關於等級 2 和 3 的範例 *只是* 範例而已。到頭來還是得由您來決定當
您簽署其他的金鑰時,「快速」與「仔細」的意義。
若您不知道正確回答為何,請回答 "0"。
.
.gpg.change_passwd.empty.okay
請回答 "yes" 或 "no"。
.
.gpg.keyedit.save.okay
請回答 "yes" 或 "no"。
.
.gpg.keyedit.cancel.okay
請回答 "yes" 或 "no"。
.
.gpg.keyedit.sign_all.okay
如果您想要簽署 *所有* 使用者 ID 的話請回答 "yes"。
.
.gpg.keyedit.remove.uid.okay
如果您真的想要刪除這個使用者 ID 的話請回答 "yes"。
所有的憑證也會因此刪除!
.
.gpg.keyedit.remove.subkey.okay
如果要刪除這把子鑰的話請回答 "yes"。
.
.gpg.keyedit.delsig.valid
這是一份在這把金鑰上有效的簽章;通常您不會想要刪除這份簽章,因為
建立與該金鑰(或與由該金鑰信任的其他金鑰)的信任連結,會是一件重
要的事情。
.
.gpg.keyedit.delsig.unknown
因為您沒有持有對應的金鑰,這份簽章無法被檢驗。
您應該在知道哪一把金鑰被用來簽署前,暫緩刪除簽章的動作;因為這把
來簽署的金鑰可能透過其他已經驗證的金鑰建立了信任連結。
.
.gpg.keyedit.delsig.invalid
這份簽章無效。把它從您的鑰匙圈裡移除是合理的。
.
.gpg.keyedit.delsig.selfsig
這是一份和這個金鑰使用者 ID 相繫的簽章。通常把這樣的簽章移除不會
是個好主意。實際上 GnuPG 可能從此就不能再使用這把金鑰了。所以只
有在這把金鑰的第一個自我簽章因某些原因無效,而第二個還可用的情況
下才這麼做。
.
.gpg.keyedit.updpref.okay
變更所有 (或只有被選取的那幾個) 使用者 ID 的偏好成現用的偏好清單。
所有受到影響的自我簽章的時間戳記都會增加一秒鐘。
.
.gpg.passphrase.enter
# (keep a leading empty line)
請輸入密語; 密語代表為一個秘密的句子。
.
.gpg.passphrase.repeat
請重新輸入先前的密語, 以確定您到底輸入了什麼。
.
.gpg.detached_signature.filename
請給定簽章所要套用的檔案名稱。
.
.gpg.openfile.overwrite.okay
# openfile.c (overwrite_filep)
若要覆寫這個檔案的話,請回答 "yes"。
.
.gpg.openfile.askoutname
# openfile.c (ask_outfile_name)
請輸入一個新的檔名。若直接按下 Enter 則會使用預設的檔案 (顯示在括號
中)。
.
.gpg.ask_revocation_reason.code
# revoke.c (ask_revocation_reason)
您應該為這份憑證指定一個原因。根據情境不同,您能夠從這個清單中選擇一
個:
「金鑰已經被洩漏了」
使用此選項,若您相信有某個未經許可的人取得了您的私鑰。
「金鑰被代換了」
使用此選項,如果您把您的金鑰換成新的了。
「金鑰不再被使用了」
使用此選項,如果您已經撤回了這把金鑰。
「使用者 ID 不再有效了」
使用此選項,如果這個使用者 ID 已不再使用;這通常用來表示某
個 Email 地址已經無效。
.
.gpg.ask_revocation_reason.text
# revoke.c (ask_revocation_reason)
您也可以輸入文字來描述為甚麼發佈這份撤銷憑證的理由。請讓這段文字
保持簡明扼要。
請輸入一個空行以結束文字。
.
.gpg.tofu.conflict
# tofu.c
TOFU 偵測到其他的金鑰持有一樣(或是非常類似)的 Email 地址。可能是該使
用者建立了新的金鑰,若為如此,您可以安全地信任該金鑰(但請與該使用者確
認)。但也有可能是偽造的金鑰,或是有中間人攻擊 (MitM) 正在進行中,若為
如此,您應該要標記該不良金鑰,該金鑰將會不受信任。標記一個金鑰為「不受
信任」代表該金鑰的簽名也會被當成不良簽章,且使用該金鑰加密也會出現警
告。若您無法確定,並且不能檢查該金鑰,您應選擇「接受一次」或「拒絕一
次」。
.
.gpgsm.root-cert-not-trusted
# This text gets displayed by the audit log if
# a root certificates was not trusted.
根憑證(信任的基點)不受信任。根據設定,您可能已被要求需要設定根憑證
為信任憑證,或是您需要手動告知 GnuPG 信任該憑證。信任憑證的設定在
GnuPG 的家目錄下的 trustlist.txt。若有疑慮請詢問系統管理者是否該信
任此憑證。
.gpgsm.crl-problem
# This text is displayed by the audit log for problems with
# the CRL or OCSP checking.
根據您的設定,在取得憑證吊銷列表 (CRL) 或是透過 OCSP 檢查憑證狀態時
出現問題。該問題的產生有很多因素,請詳閱說明文件以找出可能解法。
# Local variables:
# mode: default-generic
# coding: utf-8
# End:

View File

@@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFizCCA3OgAwIBAgIJAK9zyLTPn4CPMA0GCSqGSIb3DQEBBQUAMFwxCzAJBgNV
BAYTAk5PMQ0wCwYDVQQIDARPc2xvMR4wHAYDVQQKDBVza3Mta2V5c2VydmVycy5u
ZXQgQ0ExHjAcBgNVBAMMFXNrcy1rZXlzZXJ2ZXJzLm5ldCBDQTAeFw0xMjEwMDkw
MDMzMzdaFw0yMjEwMDcwMDMzMzdaMFwxCzAJBgNVBAYTAk5PMQ0wCwYDVQQIDARP
c2xvMR4wHAYDVQQKDBVza3Mta2V5c2VydmVycy5uZXQgQ0ExHjAcBgNVBAMMFXNr
cy1rZXlzZXJ2ZXJzLm5ldCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBANdsWy4PXWNUCkS3L//nrd0GqN3dVwoBGZ6w94Tw2jPDPifegwxQozFXkG6I
6A4TK1CJLXPvfz0UP0aBYyPmTNadDinaB9T4jIwd4rnxl+59GiEmqkN3IfPsv5Jj
MkKUmJnvOT0DEVlEaO1UZIwx5WpfprB3mR81/qm4XkAgmYrmgnLXd/pJDAMk7y1F
45b5zWofiD5l677lplcIPRbFhpJ6kDTODXh/XEdtF71EAeaOdEGOvyGDmCO0GWqS
FDkMMPTlieLA/0rgFTcz4xwUYj/cD5e0ZBuSkYsYFAU3hd1cGfBue0cPZaQH2HYx
Qk4zXD8S3F4690fRhr+tki5gyG6JDR67aKp3BIGLqm7f45WkX1hYp+YXywmEziM4
aSbGYhx8hoFGfq9UcfPEvp2aoc8u5sdqjDslhyUzM1v3m3ZGbhwEOnVjljY6JJLx
MxagxnZZSAY424ZZ3t71E/Mn27dm2w+xFRuoy8JEjv1d+BT3eChM5KaNwrj0IO/y
u8kFIgWYA1vZ/15qMT+tyJTfyrNVV/7Df7TNeWyNqjJ5rBmt0M6NpHG7CrUSkBy9
p8JhimgjP5r0FlEkgg+lyD+V79H98gQfVgP3pbJICz0SpBQf2F/2tyS4rLm+49rP
fcOajiXEuyhpcmzgusAj/1FjrtlynH1r9mnNaX4e+rLWzvU5AgMBAAGjUDBOMB0G
A1UdDgQWBBTkwyoJFGfYTVISTpM8E+igjdq28zAfBgNVHSMEGDAWgBTkwyoJFGfY
TVISTpM8E+igjdq28zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAR
OXnYwu3g1ZjHyley3fZI5aLPsaE17cOImVTehC8DcIphm2HOMR/hYTTL+V0G4P+u
gH+6xeRLKSHMHZTtSBIa6GDL03434y9CBuwGvAFCMU2GV8w92/Z7apkAhdLToZA/
X/iWP2jeaVJhxgEcH8uPrnSlqoPBcKC9PrgUzQYfSZJkLmB+3jEa3HKruy1abJP5
gAdQvwvcPpvYRnIzUc9fZODsVmlHVFBCl2dlu/iHh2h4GmL4Da2rRkUMlbVTdioB
UYIvMycdOkpH5wJftzw7cpjsudGas0PARDXCFfGyKhwBRFY7Xp7lbjtU5Rz0Gc04
lPrhDf0pFE98Aw4jJRpFeWMjpXUEaG1cq7D641RpgcMfPFvOHY47rvDTS7XJOaUT
BwRjmDt896s6vMDcaG/uXJbQjuzmmx3W2Idyh3s5SI0GTHb0IwMKYb4eBUIpQOnB
cE77VnCYqKvN1NVYAqhWjXbY7XasZvszCRcOG+W3FqNaHOK/n/0ueb0uijdLan+U
f4p1bjbAox8eAOQS/8a3bzkJzdyBNUKGx1BIK2IBL9bn/HravSDOiNRSnZ/R3l9G
ZauX0tu7IIDlRCILXSyeazu0aj/vdT3YFQXPcvt5Fkf5wiNTo53f72/jYEJd6qph
WrpoKqrwGwTpRUCMhYIUt65hsTxCiJJ5nKe39h46sg==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Example: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="config.html" title="PKCS#11 Configuration">
<link rel="prev" href="config.html" title="PKCS#11 Configuration">
<link rel="next" href="config-files.html" title="Configuration Files">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="config.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="config.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="config-files.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="config-example"></a>Example</h2></div></div></div>
<p>The following sections describe the config format in detail. But first
an example which shows the various features. The configuration below, loads
two modules called 'my-module' and 'nss'. The user settings override some
aspects of the system settings.</p>
<p>Global configuration file: <code class="literal">/etc/pkcs11/pkcs11.conf</code></p>
<pre class="programlisting">
# This setting controls whether to load user configuration from the
# ~/.config/pkcs11 directory. Possible values:
# none: No user configuration
# merge: Merge the user config over the system configuration (default)
# only: Only user configuration, ignore system configuration
user-config: merge
</pre>
<p>One module configuration file per module: <code class="literal">/etc/pkcs11/modules/my-module</code></p>
<pre class="programlisting">
# This setting controls the actual module library to load. This config file
# might be installed by the package that installs this module library. This
# is not an absolute path name. Relative path names are loaded from the
# $(libdir)/pkcs11 directory by default.
module: my-pkcs11-module.so
# This controls whether the module is required to successfully initialize. If 'yes', then
# a failure to load or initialize this module will result in a p11-kit system failure.
critical: no
</pre>
<p>User configuration file: <code class="literal">~/.config/pkcs11/pkcs11.conf</code></p>
<pre class="programlisting">
# This is an empty file. Files that do not exist are treated as empty.
</pre>
<p>User configuration file: <code class="literal">~/.config/pkcs11/modules/my-module</code></p>
<pre class="programlisting">
# Merge with the settings in the system my-module config file. In this case
# a developer has overridden to load a different module for my-module instead.
module: /home/user/src/custom-module/my-module.so
</pre>
<p>User configuration file: <code class="literal">~/.config/pkcs11/modules/nss</code></p>
<pre class="programlisting">
# Load the NSS libsoftokn.so.3 PKCS#11 library as a module. Note that we pass
# some custom non-standard initialization arguments, as NSS expects.
module: /usr/lib/libsoftokn3.so
x-init-reserved: configdir='sql:/home/test/.pki/nssdb' certPrefix='' keyPrefix='' secmod='socmod.db'
critical: yes
</pre>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,38 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Configuration Files: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="config.html" title="PKCS#11 Configuration">
<link rel="prev" href="config-example.html" title="Example">
<link rel="next" href="sharing.html" title="Sharing PKCS#11 modules">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="config.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="config-example.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="sharing.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="config-files"></a>Configuration Files</h2></div></div></div>
<p>A complete configuration consists of several files. These files are
text files. Since <code class="literal">p11-kit</code> is built to be used in all
sorts of environments and at very low levels of the software stack, we
cannot make use of high level configuration APIs that you may find on a
modern desktop.</p>
<p><a class="link" href="pkcs11-conf.html" title="pkcs11.conf">See the manual page</a> for more details
on the format and available options.</p>
<p>Note that user configuration files are not loaded from the home
directory if running inside a setuid or setgid program.</p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,48 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PKCS#11 Configuration: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="index.html" title="p11-kit">
<link rel="prev" href="index.html" title="p11-kit">
<link rel="next" href="config-example.html" title="Example">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="config-example.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="config"></a>PKCS#11 Configuration</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="config.html#config-introduction">Consistent configuration</a></span></dt>
<dt><span class="section"><a href="config-example.html">Example</a></span></dt>
<dt><span class="section"><a href="config-files.html">Configuration Files</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="config-introduction"></a>Consistent configuration</h2></div></div></div>
<p>In order for multiple applications on the user's desktop to use
PKCS#11 modules in a consistent manner, there must be a configuration
or registry to specify which modules to load and how to use them. The
PKCS#11 specification does not specify such a configuration standard.
</p>
<p>Because of the multi-library module initialization problem, use of
PKCS#11 modules must be coordinated within an application. p11-kit
provides that coordination. Since coordination is required, it follows
that p11-kit can also implement a consistent module configuration.
</p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,57 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Coding Style: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="devel.html" title="Building, Packaging, and Contributing to p11-kit">
<link rel="prev" href="devel-building.html" title="Compiling p11-kit from Source">
<link rel="next" href="devel-testing.html" title="Testing and Code Coverage">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="devel.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="devel-building.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="devel-testing.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="devel-building-style"></a>Coding Style</h2></div></div></div>
<p>We use a code style similar to the linux kernel. Use tabs
to indent and spaces to align/wrap beyond the indentation level.</p>
<p>We don't try to guarantee completely robust and problem free
behavior in cases where the caller or system isn't behaving. We
consider these to be outside of our control:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>Broken input from callers. We use preconditions
to check input and immediately return. We don't try to provide
error codes for all the various ways callers can screw
around.</p></li>
<li class="listitem">
<p>Out of memory. It is pretty much impossible to handle out
of memory errors correctly. Handling them alongside other errors
is naive and broken. We don't try to guarantee library state
(such as locks or memory leaks) when memory allocation fails.</p>
<p>We do check the results from all memory allocations, but
treat them as unexpected conditions. As a nod to the behavior
of callers of this library, we don't abort on memory allocation
failures. We use preconditions with somewhat sane results.</p>
<p>Exception: when reading files or allocating potentially
unbounded amounts of memory, we should respond robustly to memory
allocation failures.</p>
</li>
</ul></div>
<p>These unexpected conditions indicate a bug either in p11-kit or
in the system. All bets are off once this occurs.</p>
<p>Use the <code class="literal">return_val_xxx()</code> precondition macros to
check for unexpected conditions.</p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,181 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Compiling p11-kit from Source: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="devel.html" title="Building, Packaging, and Contributing to p11-kit">
<link rel="prev" href="devel-commands.html" title="Customizing installed commands">
<link rel="next" href="devel-building-style.html" title="Coding Style">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="devel.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="devel-commands.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="devel-building-style.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="devel-building"></a>Compiling p11-kit from Source</h2></div></div></div>
<p>This describes how to compiling the p11-kit package from
source code. This is normally only necessary for those wishing to
contribute to the project or package p11-kit.</p>
<p>You can download
<a class="ulink" href="https://github.com/p11-glue/p11-kit/releases" target="_top">tarballs
of the releases</a> of p11-kit or
<a class="ulink" href="https://github.com/p11-glue/p11-kit/" target="_top">check
out the source code from git</a>. This documentation will not
go into all the details of how to get your development environment
set up and instead focus on the what's unique to compiling p11-kit.</p>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="devel-building-unix"></a>Building on UNIX</h3></div></div></div>
<p>p11-kit uses the standard GNU build system, using autoconf for package
configuration and resolving portability issues, automake for building makefiles
that comply with the GNU Coding Standards, and libtool for building shared
libraries on multiple platforms. The normal sequence for compiling and
installing the p11-kit library is thus:</p>
<pre class="programlisting">
$ ./configure --prefix=/path/to/prefix ...
$ make
$ make install
</pre>
<p>If you've checked out the source code from git, then the
<span class="command"><strong>configure</strong></span> script does not yet exist. So use
the following instead:</p>
<pre class="programlisting">
$ ./autogen.sh --prefix=/path/to/prefix ...
$ make
$ make install
</pre>
<p>The standard options provided by GNU autoconf may be passed to the configure
script. Please see the autoconf documentation or run <code class="literal">./configure --help</code>
for information about the standard options. In particular you probably want to adjust
the <code class="literal">--prefix=/xxx</code> argument depending on your system and development
environment.</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="devel-building-dependencies"></a>Optional Dependencies</h3></div></div></div>
<p>On a modern GNU Linux system, p11-kit has no required dependencies other
than the standard C library. However on older UNIX systems, some of the following
may be required.</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><span class="command"><strong>gettext</strong></span> is required if your system doesn't
have the <code class="literal">gettext()</code> functionality for handling message
translation databases. This can be provided by the libintl library from
the <a class="ulink" href="http://www.gnu.org/software/gettext" target="_top">GNU gettext
package</a>.</p></li>
<li class="listitem"><p><span class="command"><strong>pthread</strong></span> is required if your (ancient) system
doesn't have this included in the base system. How this is provided is platform
specific.</p></li>
</ul></div>
<p>In addition p11-kit has several optional dependencies. If these are not available
during the build, then certain features will be disabled.</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><span class="command"><strong>libffi</strong></span> for sharing of PKCS#11 modules
between multiple callers in the same process. It is highly recommended that
this dependency be treated as a required dependency.</p></li>
<li class="listitem"><p><span class="command"><strong>gtk-doc</strong></span> is required to build the reference
manual. Use <code class="literal">--enable-doc</code> to control this
dependency.</p></li>
<li class="listitem"><p><span class="command"><strong>xsltproc</strong></span> is required to build the command
manual pages. Use <code class="literal">--enable-doc</code> to control this
dependency.</p></li>
<li class="listitem"><p><span class="command"><strong>libtasn1</strong></span> is required to build the trust
module and code that interacts with certificates.</p></li>
<li class="listitem"><p><span class="command"><strong>freebl3</strong></span> (developed as part of the NSS
code base) is an optional dependency that may be used to meet policy
requirements of system builders. Enabling this dependency provides no other
advantage.</p></li>
</ul></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="devel-building-configure"></a>Extra Configuration Options</h3></div></div></div>
<p>In addition to the normal options, the configure script in the p11-kit library
supports these additional arguments:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--disable-trust-module</code></span></p></td>
<td><p>Disables building of the trust policy module.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--disable-debug</code>, <code class="option">--enable-debug</code></span></p></td>
<td><p>By default p11-kit is built with debug symbols assertions and
and precondition checks. Enabling the debug option configures even more
detailed debug build, including disabling optimization. Disabling the debug
option is not recommended, as it disables all assertions, preconditions and
internal consistency checks, although it may result it a slightly faster
library.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--enable-doc</code></span></p></td>
<td><p>Enables building of the documentation and command line manual.
The documentation is built in the <code class="literal">doc/html/</code> directory of
the build. Requires the <code class="literal">gtk-doc</code> and <code class="literal">xsltproc</code>
dependencies.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--enable-strict</code></span></p></td>
<td><p>Enables strict checks during building of p11-kit. All
compiler warnings become errors.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--with-hash-impl=freebl</code></span></p></td>
<td><p>Instead of using internal hash code, link to the freebl3
library and use its hash implementations. The only advantage this brings is to
meet the policy requirements of system builders.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--with-libtasn1</code>, <code class="option">--without-libtasn1</code></span></p></td>
<td><p>Build with a dependency on the libtasn1 library. This dependency
allows the trust policy module to be built as well as other code that interacts with
certificates.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--with-module-path</code></span></p></td>
<td><p>Specify the path to look for PKCS#11 modules which were
listed in a module config file with a relative path.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--with-trust-paths</code></span></p></td>
<td><p>Specify the files or directories to look for certificate
anchors and blocklists. Multiple files and/or directories are specified with
a <code class="literal">:</code> in between them. The first path has the highest
priority when searching for certificates.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--with-system-config</code></span></p></td>
<td><p>Specify the path to look for p11-kit config files. This
usually defaults to something like <code class="literal">/etc/pkcs11</code></p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--with-user-config</code></span></p></td>
<td><p>Specify the path to look for user specific p11-kit config files. If
specify a path that begins with <code class="literal">~/</code> then this is expanded to the
home directory of the user running p11-kit. If you specify a path that begins with
<code class="literal">~/.config/</code> then this is expanded to the $XDG_CONFIG_HOME directory,
as outlined in the
<a class="ulink" href="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables" target="_top">XDG Base Dir specification</a>.
This option defaults to <code class="literal">~/.pkcs11</code></p></td>
</tr>
</tbody>
</table></div>
<p></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,44 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Customizing installed commands: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="devel.html" title="Building, Packaging, and Contributing to p11-kit">
<link rel="prev" href="devel-paths.html" title="Packaging PKCS#11 module configs">
<link rel="next" href="devel-building.html" title="Compiling p11-kit from Source">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="devel.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="devel-paths.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="devel-building.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="devel-commands"></a>Customizing installed commands</h2></div></div></div>
<p>The <code class="literal">p11-kit</code> tool provides a
<code class="literal">extract-trust</code> command which extracts trust
policy information such as certificate anchors and so on
into files for use with libraries that cannot read this trust
information directly.</p>
<p>In order to be useful the <code class="literal">extract-trust</code>
command needs to be customized per distribution or site. You can
find this file in at <code class="literal">tools/p11-kit-trust-extract.in</code>
in the p11-kit source code.</p>
<p>The command is implemented as a simple script which
performs the various <code class="literal">p11-kit extract</code> commands
necessary to extract the information.</p>
<p>Using this script as a standard way to extract this
information allows for consistency between distributions and ease
of system administration.</p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Debugging Tips: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="devel.html" title="Building, Packaging, and Contributing to p11-kit">
<link rel="prev" href="devel-testing.html" title="Testing and Code Coverage">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="devel.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="devel-testing.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="devel-debugging"></a>Debugging Tips</h2></div></div></div>
<p>Unexpected conditions will produce critical warnings by p11-kit.
These are often failed internal preconditions, and usually indicate a
bug either in p11-kit or the software calling it.</p>
<p>You can use the environment variable <code class="literal">P11_KIT_STRICT=yes</code>
to make p11-kit do an <code class="literal">abort()</code> (and core dump depending on
your configuration) when a critical warning occurs.</p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,59 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Packaging PKCS#11 module configs: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="devel.html" title="Building, Packaging, and Contributing to p11-kit">
<link rel="prev" href="devel.html" title="Building, Packaging, and Contributing to p11-kit">
<link rel="next" href="devel-commands.html" title="Customizing installed commands">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="devel.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="devel.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="devel-commands.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="devel-paths"></a>Packaging PKCS#11 module configs</h2></div></div></div>
<p>Developers or packagers of PKCS#11 modules need to install various
files into specific locations so that p11-kit will recognize and load the
module correctly.</p>
<p>You should use <code class="literal">pkg-config</code> as described below
to determine configuration paths. p11-kit installs a
<code class="literal">pkg-config</code> file called <code class="literal">p11-kit-1.pc</code>.
This file contains all the information about the various paths that p11-kit
looks for files at.</p>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="devel-paths-config"></a>Path to place module configuration</h3></div></div></div>
<p>As described in the <a class="link" href="pkcs11-conf.html#config-module" title="Module Configuration">module configuration</a>
documentation, each PKCS#11 module should install a config file describing
that module. These config files should be installed to a specific directory which
can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_configs</strong></span>
/usr/share/p11-kit/modules</pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="devel-paths-modules"></a>Default path for modules with relative paths</h3></div></div></div>
<p>If a <a class="link" href="pkcs11-conf.html#config-module" title="Module Configuration">module configuration</a>
contains a relative path in its <code class="literal">module:</code> setting,
then that module will be loaded from the default module path. This
path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,46 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Testing and Code Coverage: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="devel.html" title="Building, Packaging, and Contributing to p11-kit">
<link rel="prev" href="devel-building-style.html" title="Coding Style">
<link rel="next" href="devel-debugging.html" title="Debugging Tips">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="devel.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="devel-building-style.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="devel-debugging.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="devel-testing"></a>Testing and Code Coverage</h2></div></div></div>
<p>As a general rule changes to p11-kit should have a tests exercising
that change. Use the <code class="literal">make check</code> command to run all
the tests. If you run it from a subdirectory only the tests in that
directory will be run.</p>
<p>To check for memory errors or memory leaks, run <code class="literal">make memcheck</code>
or <code class="literal">make leakcheck</code> respectively. This requires valgrind
be installed.</p>
<p>Build p11-kit with the <code class="option">--enable-coverage</code> configure
option to build code coverage support.</p>
<p>Once you've done that you can either use <code class="literal">make coverage</code>
to build code coverage information. Alternatively (and this is usually
easier) you can use
<a class="ulink" href="http://stef.thewalter.net/2012/12/git-coverage-useful-code-coverage.html" target="_top">
<code class="literal">git coverage</code></a> to easily check whether
you've tested the lines changed by a patch.</p>
<p>A code coverage report is
<a class="ulink" href="https://coveralls.io/github/p11-glue/p11-kit" target="_top">available online</a></p>.
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,58 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Building, Packaging, and Contributing to p11-kit: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="index.html" title="p11-kit">
<link rel="prev" href="p11-kit-Deprecated.html" title="Deprecated">
<link rel="next" href="devel-paths.html" title="Packaging PKCS#11 module configs">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="p11-kit-Deprecated.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="devel-paths.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="devel"></a>Building, Packaging, and Contributing to p11-kit</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="devel.html#devel-links">Helpful Resources</a></span></dt>
<dt><span class="section"><a href="devel-paths.html">Packaging PKCS#11 module configs</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="devel-paths.html#devel-paths-config">Path to place module configuration</a></span></dt>
<dt><span class="section"><a href="devel-paths.html#devel-paths-modules">Default path for modules with relative paths</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="devel-commands.html">Customizing installed commands</a></span></dt>
<dt><span class="section"><a href="devel-building.html">Compiling p11-kit from Source</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="devel-building.html#devel-building-unix">Building on UNIX</a></span></dt>
<dt><span class="section"><a href="devel-building.html#devel-building-dependencies">Optional Dependencies</a></span></dt>
<dt><span class="section"><a href="devel-building.html#devel-building-configure">Extra Configuration Options</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="devel-building-style.html">Coding Style</a></span></dt>
<dt><span class="section"><a href="devel-testing.html">Testing and Code Coverage</a></span></dt>
<dt><span class="section"><a href="devel-debugging.html">Debugging Tips</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="devel-links"></a>Helpful Resources</h2></div></div></div>
<p>Use the following to find more information about
contributing to p11-kit beyond what's in this manual:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><a class="ulink" href="https://p11-glue.github.io/p11-glue/p11-kit.html" target="_top">Website</a></p></li>
<li class="listitem"><p><a class="ulink" href="mail:p11-glue@lists.freedesktop.org" target="_top">Mailing list</a></p></li>
<li class="listitem"><p><a class="ulink" href="https://github.com/p11-glue/p11-kit/issues/" target="_top">Issue tracker</a></p></li>
</ul></div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

View File

@@ -0,0 +1,101 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>p11-kit: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="next" href="config.html" title="PKCS#11 Configuration">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="book">
<div class="titlepage">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">p11-kit</p></th></tr></table></div>
<div><p class="releaseinfo">for p11-kit 0.25.5</p></div>
</div>
<hr>
</div>
<div class="toc"><dl class="toc">
<dt><span class="chapter"><a href="config.html">PKCS#11 Configuration</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="config.html#config-introduction">Consistent configuration</a></span></dt>
<dt><span class="section"><a href="config-example.html">Example</a></span></dt>
<dt><span class="section"><a href="config-files.html">Configuration Files</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="sharing.html">Sharing PKCS#11 modules</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="sharing.html#sharing-problem">Multiple consumers of PKCS#11 in a process</a></span></dt>
<dt><span class="section"><a href="sharing-managed.html">Managed modules</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="sharing.html">Proxy Module</a></span></dt>
<dt><span class="chapter"><a href="remoting.html">Remoting / Forwarding</a></span></dt>
<dt><span class="chapter"><a href="trust-module.html">Trust Policy Module</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="trust-module.html#trust-files">Paths loaded by the Module</a></span></dt>
<dt><span class="section"><a href="trust-nss.html">Using the Trust Policy Module with NSS</a></span></dt>
<dt><span class="section"><a href="trust-glib-networking.html">Using the Trust Policy Module with glib-networking</a></span></dt>
<dt><span class="section"><a href="trust-disable.html">Disabling the Trust Policy Module</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="tools.html">Manual Pages</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="p11-kit.html">p11-kit</a></span><span class="refpurpose"> — Tool for operating on configured PKCS#11 modules</span>
</dt>
<dt>
<span class="refentrytitle"><a href="pkcs11-conf.html">pkcs11.conf</a></span><span class="refpurpose"> — Configuration files for PKCS#11 modules</span>
</dt>
<dt>
<span class="refentrytitle"><a href="trust.html">trust</a></span><span class="refpurpose"> — Tool for operating on the trust policy store</span>
</dt>
</dl></dd>
<dt><span class="chapter"><a href="reference.html">API Reference</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="p11-kit-Modules.html">Modules</a></span><span class="refpurpose"> — Module loading and initializing</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-URIs.html">URIs</a></span><span class="refpurpose"> — Parsing and formatting PKCS#11 URIs</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-PIN-Callbacks.html">PIN Callbacks</a></span><span class="refpurpose"> — PIN Callbacks</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-Utilities.html">Utilities</a></span><span class="refpurpose"> — PKCS#11 utilities</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-Future.html">Future</a></span><span class="refpurpose"> — Future Unstable API</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-Deprecated.html">Deprecated</a></span><span class="refpurpose"> — Deprecated functions</span>
</dt>
<dt><span class="index"><a href="reference.html#api-index-full">API Index</a></span></dt>
<dt><span class="glossary"><a href="reference.html#annotation-glossary">Annotation Glossary</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="devel.html">Building, Packaging, and Contributing to p11-kit</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="devel.html#devel-links">Helpful Resources</a></span></dt>
<dt><span class="section"><a href="devel-paths.html">Packaging PKCS#11 module configs</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="devel-paths.html#devel-paths-config">Path to place module configuration</a></span></dt>
<dt><span class="section"><a href="devel-paths.html#devel-paths-modules">Default path for modules with relative paths</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="devel-commands.html">Customizing installed commands</a></span></dt>
<dt><span class="section"><a href="devel-building.html">Compiling p11-kit from Source</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="devel-building.html#devel-building-unix">Building on UNIX</a></span></dt>
<dt><span class="section"><a href="devel-building.html#devel-building-dependencies">Optional Dependencies</a></span></dt>
<dt><span class="section"><a href="devel-building.html#devel-building-configure">Extra Configuration Options</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="devel-building-style.html">Coding Style</a></span></dt>
<dt><span class="section"><a href="devel-testing.html">Testing and Code Coverage</a></span></dt>
<dt><span class="section"><a href="devel-debugging.html">Debugging Tips</a></span></dt>
</dl></dd>
</dl></div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

View File

@@ -0,0 +1,460 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Deprecated: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="p11-kit-Future.html" title="Future">
<link rel="next" href="devel.html" title="Building, Packaging, and Contributing to p11-kit">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#p11-kit-Deprecated.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="p11-kit-Future.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="devel.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="p11-kit-Deprecated"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="p11-kit-Deprecated.top_of_page"></a>Deprecated</span></h2>
<p>Deprecated — Deprecated functions</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="p11-kit-Deprecated.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-registered" title="p11_kit_initialize_registered ()">p11_kit_initialize_registered</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-finalize-registered" title="p11_kit_finalize_registered ()">p11_kit_finalize_registered</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_FUNCTION_LIST_PTR</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-modules" title="p11_kit_registered_modules ()">p11_kit_registered_modules</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-module-to-name" title="p11_kit_registered_module_to_name ()">p11_kit_registered_module_to_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_FUNCTION_LIST_PTR</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-name-to-module" title="p11_kit_registered_name_to_module ()">p11_kit_registered_name_to_module</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-option" title="p11_kit_registered_option ()">p11_kit_registered_option</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-module" title="p11_kit_initialize_module ()">p11_kit_initialize_module</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-load-initialize-module" title="p11_kit_load_initialize_module ()">p11_kit_load_initialize_module</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#p11-kit-finalize-module" title="p11_kit_finalize_module ()">p11_kit_finalize_module</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="p11-kit-Deprecated.html#P11-KIT-DEPRECATED-FOR:CAPS" title="P11_KIT_DEPRECATED_FOR()">P11_KIT_DEPRECATED_FOR</a><span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-Deprecated.description"></a><h2>Description</h2>
<p>These functions have been deprecated from p11-kit and are not recommended for
general usage. In large part they were deprecated because they did not adequately
insulate multiple callers of a PKCS#11 module from another, and could not
support the 'managed' mode needed to do this.</p>
</div>
<div class="refsect1">
<a name="p11-kit-Deprecated.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="p11-kit-initialize-registered"></a><h3>p11_kit_initialize_registered ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_initialize_registered (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_initialize_registered</code> is deprecated and should not be used in newly-written code.</p>
<p>Since: 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a> instead.</p>
</div>
<p>Initialize all the registered PKCS#11 modules.</p>
<p>If this is the first time this function is called multiple times
consecutively within a single process, then it merely increments an
initialization reference count for each of these modules.</p>
<p>Use <a class="link" href="p11-kit-Deprecated.html#p11-kit-finalize-registered" title="p11_kit_finalize_registered ()"><code class="function">p11_kit_finalize_registered()</code></a> to finalize these registered modules once
the caller is done with them.</p>
<p>If this function fails, then an error message will be available via the
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()"><code class="function">p11_kit_message()</code></a> function.</p>
<div class="refsect3">
<a name="p11-kit-initialize-registered.returns"></a><h4>Returns</h4>
<p> CKR_OK if the initialization succeeded, or an error code.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-finalize-registered"></a><h3>p11_kit_finalize_registered ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_finalize_registered (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_finalize_registered</code> is deprecated and should not be used in newly-written code.</p>
<p>Since 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-modules-release" title="p11_kit_modules_release ()"><code class="function">p11_kit_modules_release()</code></a> instead.</p>
</div>
<p>Finalize all the registered PKCS#11 modules. These should have been
initialized with <a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-registered" title="p11_kit_initialize_registered ()"><code class="function">p11_kit_initialize_registered()</code></a>.</p>
<p>If <a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-registered" title="p11_kit_initialize_registered ()"><code class="function">p11_kit_initialize_registered()</code></a> has been called more than once in this
process, then this function must be called the same number of times before
actual finalization will occur.</p>
<p>If this function fails, then an error message will be available via the
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()"><code class="function">p11_kit_message()</code></a> function.</p>
<div class="refsect3">
<a name="p11-kit-finalize-registered.returns"></a><h4>Returns</h4>
<p> CKR_OK if the finalization succeeded, or an error code.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-registered-modules"></a><h3>p11_kit_registered_modules ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_FUNCTION_LIST_PTR</span> *
p11_kit_registered_modules (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_registered_modules</code> is deprecated and should not be used in newly-written code.</p>
<p>Since 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a> instead.</p>
</div>
<p>Get a list of all the registered PKCS#11 modules. This list will be valid
once the <a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-registered" title="p11_kit_initialize_registered ()"><code class="function">p11_kit_initialize_registered()</code></a> function has been called.</p>
<p>The returned value is a <code class="code">NULL</code> terminated array of</p>
<code class="code">CK_FUNCTION_LIST_PTR</code> pointers.
<p>The returned modules are unmanaged.</p>
<div class="refsect3">
<a name="p11-kit-registered-modules.returns"></a><h4>Returns</h4>
<p> A list of all the registered modules. Use the <code class="function">free()</code> function to
free the list.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-registered-module-to-name"></a><h3>p11_kit_registered_module_to_name ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
p11_kit_registered_module_to_name (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST_PTR</span> module</code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_registered_module_to_name</code> is deprecated and should not be used in newly-written code.</p>
<p>Since 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-module-get-name" title="p11_kit_module_get_name ()"><code class="function">p11_kit_module_get_name()</code></a> instead.</p>
</div>
<p>Get the name of a registered PKCS#11 module.</p>
<p>You can use <a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-modules" title="p11_kit_registered_modules ()"><code class="function">p11_kit_registered_modules()</code></a> to get a list of all the registered
modules. This name is specified by the registered module configuration.</p>
<div class="refsect3">
<a name="p11-kit-registered-module-to-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>pointer to a registered module</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-registered-module-to-name.returns"></a><h4>Returns</h4>
<p> A newly allocated string containing the module name, or</p>
<code class="code">NULL</code> if no such registered module exists. Use <code class="function">free()</code> to
<p> free this string.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-registered-name-to-module"></a><h3>p11_kit_registered_name_to_module ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_FUNCTION_LIST_PTR</span>
p11_kit_registered_name_to_module (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_registered_name_to_module</code> is deprecated and should not be used in newly-written code.</p>
<p>Since 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-module-for-name" title="p11_kit_module_for_name ()"><code class="function">p11_kit_module_for_name()</code></a> instead.</p>
</div>
<p>Lookup a registered PKCS#11 module by its name. This name is specified by
the registered module configuration.</p>
<div class="refsect3">
<a name="p11-kit-registered-name-to-module.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>name of a registered module</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-registered-name-to-module.returns"></a><h4>Returns</h4>
<p> a pointer to a PKCS#11 module, or <code class="code">NULL</code> if this name was
not found.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-registered-option"></a><h3>p11_kit_registered_option ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
p11_kit_registered_option (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST_PTR</span> module</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *field</code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_registered_option</code> is deprecated and should not be used in newly-written code.</p>
<p>Since 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-config-option" title="p11_kit_config_option ()"><code class="function">p11_kit_config_option()</code></a> instead.</p>
</div>
<p>Lookup a configured option for a registered PKCS#11 module. If a</p>
<code class="code">NULL</code> module argument is specified, then this will lookup
<p>the configuration option in the global config file.</p>
<div class="refsect3">
<a name="p11-kit-registered-option.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>a pointer to a registered module</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>field</p></td>
<td class="parameter_description"><p>the name of the option to lookup.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-registered-option.returns"></a><h4>Returns</h4>
<p> A newly allocated string containing the option value, or</p>
<code class="code">NULL</code> if the registered module or the option were not found.
<p> Use <code class="function">free()</code> to free the returned string.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-initialize-module"></a><h3>p11_kit_initialize_module ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_initialize_module (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST_PTR</span> module</code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_initialize_module</code> is deprecated and should not be used in newly-written code.</p>
<p>Since 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-module-initialize" title="p11_kit_module_initialize ()"><code class="function">p11_kit_module_initialize()</code></a> instead.</p>
</div>
<p>Initialize an arbitrary PKCS#11 module. Normally using the
<a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-registered" title="p11_kit_initialize_registered ()"><code class="function">p11_kit_initialize_registered()</code></a> is preferred.</p>
<p>Using this function to initialize modules allows coordination between
multiple users of the same module in a single process. It should be called
on modules that have been loaded (with <code class="function">dlopen()</code> for example) but not yet
initialized. The caller should not yet have called the module's</p>
<code class="code">C_Initialize</code> method. This function will call
<code class="code">C_Initialize</code> as necessary.
<p>Subsequent calls to this function for the same module will result in an
initialization count being incremented for the module. It is safe (although
usually unnecessary) to use this function on registered modules.</p>
<p>The module must be finalized with <a class="link" href="p11-kit-Deprecated.html#p11-kit-finalize-module" title="p11_kit_finalize_module ()"><code class="function">p11_kit_finalize_module()</code></a> instead of
calling its <code class="code">C_Finalize</code> method directly.</p>
<p>This function does not accept a <code class="code">CK_C_INITIALIZE_ARGS</code> argument.
Custom initialization arguments cannot be supported when multiple consumers
load the same module.</p>
<p>If this function fails, then an error message will be available via the
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()"><code class="function">p11_kit_message()</code></a> function.</p>
<div class="refsect3">
<a name="p11-kit-initialize-module.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>loaded module to initialize.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-initialize-module.returns"></a><h4>Returns</h4>
<p> CKR_OK if the initialization was successful.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-load-initialize-module"></a><h3>p11_kit_load_initialize_module ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_load_initialize_module (<em class="parameter"><code>const <span class="type">char</span> *module_path</code></em>,
<em class="parameter"><code><span class="type">CK_FUNCTION_LIST_PTR</span> *module</code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_load_initialize_module</code> is deprecated and should not be used in newly-written code.</p>
<p>Since 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-module-load" title="p11_kit_module_load ()"><code class="function">p11_kit_module_load()</code></a> instead.</p>
</div>
<p>Load an arbitrary PKCS#11 module from a dynamic library file, and
initialize it. Normally using the <a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-registered" title="p11_kit_initialize_registered ()"><code class="function">p11_kit_initialize_registered()</code></a> function
is preferred.</p>
<p>Using this function to load and initialize modules allows coordination between
multiple users of the same module in a single process. The caller should not
call the module's <code class="code">C_Initialize</code> method. This function will call</p>
<code class="code">C_Initialize</code> as necessary.
<p>If a module has already been loaded, then use of this function is unnecesasry.
Instead use the <a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-module" title="p11_kit_initialize_module ()"><code class="function">p11_kit_initialize_module()</code></a> function to initialize it.</p>
<p>Subsequent calls to this function for the same module will result in an
initialization count being incremented for the module. It is safe (although
usually unnecessary) to use this function on registered modules.</p>
<p>The module must be finalized with <a class="link" href="p11-kit-Deprecated.html#p11-kit-finalize-module" title="p11_kit_finalize_module ()"><code class="function">p11_kit_finalize_module()</code></a> instead of
calling its <code class="code">C_Finalize</code> method directly.</p>
<p>This function does not accept a <code class="code">CK_C_INITIALIZE_ARGS</code> argument.
Custom initialization arguments cannot be supported when multiple consumers
load the same module.</p>
<p>If this function fails, then an error message will be available via the
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()"><code class="function">p11_kit_message()</code></a> function.</p>
<div class="refsect3">
<a name="p11-kit-load-initialize-module.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>module_path</p></td>
<td class="parameter_description"><p>full file path of module library</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>location to place loaded module pointer</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-load-initialize-module.returns"></a><h4>Returns</h4>
<p> CKR_OK if the initialization was successful.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-finalize-module"></a><h3>p11_kit_finalize_module ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_finalize_module (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST_PTR</span> module</code></em>);</pre>
<div class="warning">
<p><code class="literal">p11_kit_finalize_module</code> is deprecated and should not be used in newly-written code.</p>
<p>Since 0.19.0: Use <a class="link" href="p11-kit-Modules.html#p11-kit-module-finalize" title="p11_kit_module_finalize ()"><code class="function">p11_kit_module_finalize()</code></a> and
<a class="link" href="p11-kit-Modules.html#p11-kit-module-release" title="p11_kit_module_release ()"><code class="function">p11_kit_module_release()</code></a> instead.</p>
</div>
<p>Finalize an arbitrary PKCS#11 module. The module must have been initialized
using <a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-module" title="p11_kit_initialize_module ()"><code class="function">p11_kit_initialize_module()</code></a>. In most cases callers will want to use
<a class="link" href="p11-kit-Deprecated.html#p11-kit-finalize-registered" title="p11_kit_finalize_registered ()"><code class="function">p11_kit_finalize_registered()</code></a> instead of this function.</p>
<p>Using this function to finalize modules allows coordination between
multiple users of the same module in a single process. The caller should not
call the module's <code class="code">C_Finalize</code> method. This function will call</p>
<code class="code">C_Finalize</code> as necessary.
<p>If the module was initialized more than once, then this function will
decrement an initialization count for the module. When the count reaches zero
the module will be truly finalized. It is safe (although usually unnecessary)
to use this function on registered modules if (and only if) they were
initialized using <a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-module" title="p11_kit_initialize_module ()"><code class="function">p11_kit_initialize_module()</code></a> for some reason.</p>
<p>If this function fails, then an error message will be available via the
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()"><code class="function">p11_kit_message()</code></a> function.</p>
<div class="refsect3">
<a name="p11-kit-finalize-module.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>loaded module to finalize.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-finalize-module.returns"></a><h4>Returns</h4>
<p> CKR_OK if the finalization was successful.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="P11-KIT-DEPRECATED-FOR:CAPS"></a><h3>P11_KIT_DEPRECATED_FOR()</h3>
<pre class="programlisting">#define P11_KIT_DEPRECATED_FOR(f) __attribute__((deprecated("Use " #f " instead")))
</pre>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,833 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Modules: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="reference.html" title="API Reference">
<link rel="next" href="p11-kit-URIs.html" title="URIs">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#p11-kit-Modules.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="reference.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="p11-kit-URIs.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="p11-kit-Modules"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="p11-kit-Modules.top_of_page"></a>Modules</span></h2>
<p>Modules — Module loading and initializing</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="p11-kit-Modules.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">CK_FUNCTION_LIST</span> **
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-load-and-initialize" title="p11_kit_modules_load_and_initialize ()">p11_kit_modules_load_and_initialize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-finalize-and-release" title="p11_kit_modules_finalize_and_release ()">p11_kit_modules_finalize_and_release</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_FUNCTION_LIST</span> **
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()">p11_kit_modules_load</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-initialize" title="p11_kit_modules_initialize ()">p11_kit_modules_initialize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-finalize" title="p11_kit_modules_finalize ()">p11_kit_modules_finalize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-release" title="p11_kit_modules_release ()">p11_kit_modules_release</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_FUNCTION_LIST</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-module-load" title="p11_kit_module_load ()">p11_kit_module_load</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-module-initialize" title="p11_kit_module_initialize ()">p11_kit_module_initialize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_RV</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-module-finalize" title="p11_kit_module_finalize ()">p11_kit_module_finalize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-module-release" title="p11_kit_module_release ()">p11_kit_module_release</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">CK_FUNCTION_LIST</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-module-for-name" title="p11_kit_module_for_name ()">p11_kit_module_for_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-module-get-name" title="p11_kit_module_get_name ()">p11_kit_module_get_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-module-get-flags" title="p11_kit_module_get_flags ()">p11_kit_module_get_flags</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-module-get-filename" title="p11_kit_module_get_filename ()">p11_kit_module_get_filename</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Modules.html#p11-kit-config-option" title="p11_kit_config_option ()">p11_kit_config_option</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-Modules.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-CRITICAL:CAPS" title="P11_KIT_MODULE_CRITICAL">P11_KIT_MODULE_CRITICAL</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-UNMANAGED:CAPS" title="P11_KIT_MODULE_UNMANAGED">P11_KIT_MODULE_UNMANAGED</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-Modules.description"></a><h2>Description</h2>
<p>PKCS#11 modules are used by crypto libraries and applications to access
crypto objects (like keys and certificates) and to perform crypto operations.</p>
<p>In order for applications to behave consistently with regard to the user's
installed PKCS#11 modules, each module must be configured so that applications
or libraries know that they should load it.</p>
<p>When multiple consumers of a module (such as libraries or applications) are
in the same process, coordination of the initialization and finalization
of PKCS#11 modules is required. To do this modules are managed by p11-kit.
This means that various unsafe methods are coordinated between callers. Unmanaged
modules are simply the raw PKCS#11 module pointers without p11-kit getting in the
way. It is highly recommended that the default managed behavior is used.</p>
<p>The functions here provide support for initializing configured modules. The
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a> function should be used to load and initialize
the configured modules. When done, the <a class="link" href="p11-kit-Modules.html#p11-kit-modules-release" title="p11_kit_modules_release ()"><code class="function">p11_kit_modules_release()</code></a> function
should be used to release those modules and associated resources.</p>
<p>In addition <a class="link" href="p11-kit-Modules.html#p11-kit-config-option" title="p11_kit_config_option ()"><code class="function">p11_kit_config_option()</code></a> can be used to access other parts
of the module configuration.</p>
<p>If a consumer wishes to load an arbitrary PKCS#11 module that's not
configured use <a class="link" href="p11-kit-Modules.html#p11-kit-module-load" title="p11_kit_module_load ()"><code class="function">p11_kit_module_load()</code></a> to do so. And use <a class="link" href="p11-kit-Modules.html#p11-kit-module-release" title="p11_kit_module_release ()"><code class="function">p11_kit_module_release()</code></a>
to later release it.</p>
<p>Modules are represented by a pointer to their <code class="code">CK_FUNCTION_LIST</code>
entry points.</p>
</div>
<div class="refsect1">
<a name="p11-kit-Modules.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="p11-kit-modules-load-and-initialize"></a><h3>p11_kit_modules_load_and_initialize ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_FUNCTION_LIST</span> **
p11_kit_modules_load_and_initialize (<em class="parameter"><code><span class="type">int</span> flags</code></em>);</pre>
<p>Load and initialize configured modules.</p>
<p>If a critical module fails to load or initialize then the function will
return <code class="literal">NULL</code>. Non-critical modules will be skipped
and not included in the returned module list.</p>
<p>Use <a class="link" href="p11-kit-Modules.html#p11-kit-modules-finalize-and-release" title="p11_kit_modules_finalize_and_release ()"><code class="function">p11_kit_modules_finalize_and_release()</code></a> when you're done with the
modules returned by this function.</p>
<p>The <em class="parameter"><code>flags</code></em>
allowed by this function, as well as their meaning, are the
same as with <a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a>.</p>
<div class="refsect3">
<a name="p11-kit-modules-load-and-initialize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>flags to use to load the modules</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-modules-load-and-initialize.returns"></a><h4>Returns</h4>
<p> a <code class="literal">NULL</code> terminated list of modules, or
<code class="literal">NULL</code> on failure</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-modules-finalize-and-release"></a><h3>p11_kit_modules_finalize_and_release ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
p11_kit_modules_finalize_and_release (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> **modules</code></em>);</pre>
<p>Finalize and then release the a set of loaded PKCS#11 modules.</p>
<p>The modules may be either managed or unmanaged. The array containing
the module pointers is also freed by this function.</p>
<p>Modules are released even if their finalization returns an error code.
Managed modules will not be actually finalized or released until all
callers using them have done so.</p>
<p>For managed modules the <code class="literal">C_Finalize</code> function
is overridden so that multiple callers can finalize the same
modules. In addition for managed modules multiple callers can
finalize from different threads, and still guarantee consistent
thread-safe behavior.</p>
<p>For unmanaged modules if multiple callers try to finalize
a module, then one of the calls will return
<code class="literal">CKR_CRYPTOKI_NOT_INITIALIZED</code> according to the
PKCS#11 specification. In addition there are no guarantees that
thread-safe behavior will occur if multiple callers initialize from
different threads.</p>
<div class="refsect3">
<a name="p11-kit-modules-finalize-and-release.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>modules</p></td>
<td class="parameter_description"><p>the modules to release</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-modules-load"></a><h3>p11_kit_modules_load ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_FUNCTION_LIST</span> **
p11_kit_modules_load (<em class="parameter"><code>const <span class="type">char</span> *reserved</code></em>,
<em class="parameter"><code><span class="type">int</span> flags</code></em>);</pre>
<p>Load the configured PKCS#11 modules.</p>
<p>If <em class="parameter"><code>flags</code></em>
contains the <a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-UNMANAGED:CAPS" title="P11_KIT_MODULE_UNMANAGED"><code class="literal">P11_KIT_MODULE_UNMANAGED</code></a> flag, then the
modules will be not be loaded in 'managed' mode regardless of its
configuration. This is not recommended for general usage.</p>
<p>If <em class="parameter"><code>flags</code></em>
contains the <a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-CRITICAL:CAPS" title="P11_KIT_MODULE_CRITICAL"><code class="literal">P11_KIT_MODULE_CRITICAL</code></a> flag then the
modules will all be treated as 'critical', regardless of the module
configuration. This means that a failure to load any module will
cause this function to fail.</p>
<p>For unmanaged modules there is no guarantee to the state of the
modules. Other callers may be using the modules. Using unmanaged
modules haphazardly is not recommended for this reason. Some
modules (such as those configured with RPC) cannot be loaded in
unmanaged mode, and will be skipped.</p>
<p>If <em class="parameter"><code>flags</code></em>
contains the <code class="literal">P11_KIT_MODULE_TRUSTED</code> flag then only the
marked as trusted modules will be loaded.</p>
<p>Use <a class="link" href="p11-kit-Modules.html#p11-kit-modules-release" title="p11_kit_modules_release ()"><code class="function">p11_kit_modules_release()</code></a> to release the modules returned by
this function.</p>
<p>If this function fails, then an error message will be available via the
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()"><code class="function">p11_kit_message()</code></a> function.</p>
<div class="refsect3">
<a name="p11-kit-modules-load.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>reserved</p></td>
<td class="parameter_description"><p>set to <code class="literal">NULL</code></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>flags to use to load the module</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-modules-load.returns"></a><h4>Returns</h4>
<p> a null terminated list of modules represented as PKCS#11
function lists, or <code class="literal">NULL</code> on failure</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-modules-initialize"></a><h3>p11_kit_modules_initialize ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_modules_initialize (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> **modules</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-Future.html#p11-kit-destroyer" title="p11_kit_destroyer ()"><span class="type">p11_kit_destroyer</span></a> failure_callback</code></em>);</pre>
<p>Initialize all the modules in the <em class="parameter"><code>modules</code></em>
list by calling their
<code class="literal">C_Initialize</code> function.</p>
<p>For managed modules the <code class="literal">C_Initialize</code> function
is overridden so that multiple callers can initialize the same
modules. In addition for managed modules multiple callers can
initialize from different threads, and still guarantee consistent
thread-safe behavior.</p>
<p>For unmanaged modules if multiple callers try to initialize
a module, then one of the calls will return
<code class="literal">CKR_CRYPTOKI_ALREADY_INITIALIZED</code> according to the
PKCS#11 specification. In addition there are no guarantees that
thread-safe behavior will occur if multiple callers initialize from
different threads.</p>
<p>When a module fails to initialize it is removed from the <em class="parameter"><code>modules</code></em>
list.
If the <em class="parameter"><code>failure_callback</code></em>
is not <code class="literal">NULL</code> then it is called with the modules that
fail to initialize. For example, you may pass <a class="link" href="p11-kit-Modules.html#p11-kit-module-release" title="p11_kit_module_release ()"><code class="function">p11_kit_module_release()</code></a>
as a <em class="parameter"><code>failure_callback</code></em>
if the <em class="parameter"><code>modules</code></em>
list was loaded wit <a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a>.</p>
<p>The return value will return the failure code of the last critical
module that failed to initialize. Non-critical module failures do not affect
the return value. If no critical modules failed to initialize then the
return value will be <code class="literal">CKR_OK</code>.</p>
<p>When modules are removed, the list will be <code class="literal">NULL</code> terminated at the
appropriate place so it can continue to be used as a modules list.</p>
<p>This function does not accept a <code class="code">CK_C_INITIALIZE_ARGS</code> argument.
Custom initialization arguments cannot be supported when multiple consumers
load the same module.</p>
<div class="refsect3">
<a name="p11-kit-modules-initialize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>modules</p></td>
<td class="parameter_description"><p>a <code class="literal">NULL</code> terminated list of modules</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>failure_callback</p></td>
<td class="parameter_description"><p>called with modules that fail to initialize</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-modules-initialize.returns"></a><h4>Returns</h4>
<p> <code class="literal">CKR_OK</code> or the failure code of the last critical
module that failed to initialize.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-modules-finalize"></a><h3>p11_kit_modules_finalize ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_modules_finalize (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> **modules</code></em>);</pre>
<p>Finalize each module in the <em class="parameter"><code>modules</code></em>
list by calling its
<code class="literal">C_Finalize</code> function. Regardless of failures, all
<em class="parameter"><code>modules</code></em>
will have their <code class="literal">C_Finalize</code> function called.</p>
<p>If a module returns a failure from its <code class="literal">C_Finalize</code>
method it will be returned. If multiple modules fail, the last failure
will be returned.</p>
<p>For managed modules the <code class="literal">C_Finalize</code> function
is overridden so that multiple callers can finalize the same
modules. In addition for managed modules multiple callers can
finalize from different threads, and still guarantee consistent
thread-safe behavior.</p>
<p>For unmanaged modules if multiple callers try to finalize
a module, then one of the calls will return
<code class="literal">CKR_CRYPTOKI_NOT_INITIALIZED</code> according to the
PKCS#11 specification. In addition there are no guarantees that
thread-safe behavior will occur if multiple callers finalize from
different threads.</p>
<div class="refsect3">
<a name="p11-kit-modules-finalize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>modules</p></td>
<td class="parameter_description"><p>a <code class="literal">NULL</code> terminated list of modules</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-modules-finalize.returns"></a><h4>Returns</h4>
<p> <code class="literal">CKR_OK</code> or the failure code of the last
module that failed to finalize</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-modules-release"></a><h3>p11_kit_modules_release ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
p11_kit_modules_release (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> **modules</code></em>);</pre>
<p>Release the a set of loaded PKCS#11 modules.</p>
<p>The modules may be either managed or unmanaged. The array containing
the module pointers is also freed by this function.</p>
<p>Managed modules will not be actually released until all
callers using them have done so. If the modules were initialized, they
should have been finalized first.</p>
<div class="refsect3">
<a name="p11-kit-modules-release.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>modules</p></td>
<td class="parameter_description"><p>the modules to release</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-module-load"></a><h3>p11_kit_module_load ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_FUNCTION_LIST</span> *
p11_kit_module_load (<em class="parameter"><code>const <span class="type">char</span> *module_path</code></em>,
<em class="parameter"><code><span class="type">int</span> flags</code></em>);</pre>
<p>Load an arbitrary PKCS#11 module from a dynamic library file, and
initialize it. Normally using the <a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a> function
is preferred.</p>
<p>A full file path or just (path/)filename relative to
P11_MODULE_PATH are accepted.</p>
<p>Using this function to load modules allows coordination between multiple
callers of the same module in a single process. If <em class="parameter"><code>flags</code></em>
contains the
<a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-UNMANAGED:CAPS" title="P11_KIT_MODULE_UNMANAGED"><code class="literal">P11_KIT_MODULE_UNMANAGED</code></a> flag, then the modules will be not be loaded
in 'managed' mode and not be coordinated. This is not recommended
for general usage.</p>
<p>Subsequent calls to this function for the same module will result in an
initialization count being incremented for the module. It is safe (although
usually unnecessary) to use this function on registered modules.</p>
<p>The module should be released with <a class="link" href="p11-kit-Modules.html#p11-kit-module-release" title="p11_kit_module_release ()"><code class="function">p11_kit_module_release()</code></a>.</p>
<p>If this function fails, then an error message will be available via the
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()"><code class="function">p11_kit_message()</code></a> function.</p>
<div class="refsect3">
<a name="p11-kit-module-load.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>module_path</p></td>
<td class="parameter_description"><p>relative or full file path of module library</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>flags to use when loading the module</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-module-load.returns"></a><h4>Returns</h4>
<p> the loaded module PKCS#11 functions or <code class="literal">NULL</code> on failure</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-module-initialize"></a><h3>p11_kit_module_initialize ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_module_initialize (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> *module</code></em>);</pre>
<p>Initialize a PKCS#11 module by calling its <code class="literal">C_Initialize</code>
function.</p>
<p>For managed modules the <code class="literal">C_Initialize</code> function
is overridden so that multiple callers can initialize the same
modules. In addition for managed modules multiple callers can
initialize from different threads, and still guarantee consistent
thread-safe behavior.</p>
<p>For unmanaged modules if multiple callers try to initialize
a module, then one of the calls will return
<code class="literal">CKR_CRYPTOKI_ALREADY_INITIALIZED</code> according to the
PKCS#11 specification. In addition there are no guarantees that
thread-safe behavior will occur if multiple callers initialize from
different threads.</p>
<p>This function does not accept a <code class="code">CK_C_INITIALIZE_ARGS</code> argument.
Custom initialization arguments cannot be supported when multiple consumers
load the same module.</p>
<div class="refsect3">
<a name="p11-kit-module-initialize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>the module to initialize</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-module-initialize.returns"></a><h4>Returns</h4>
<p> <code class="literal">CKR_OK</code> or a failure code</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-module-finalize"></a><h3>p11_kit_module_finalize ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_RV</span>
p11_kit_module_finalize (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> *module</code></em>);</pre>
<p>Finalize a PKCS#11 module by calling its <code class="literal">C_Finalize</code>
function.</p>
<p>For managed modules the <code class="literal">C_Finalize</code> function
is overridden so that multiple callers can finalize the same
modules. In addition for managed modules multiple callers can
finalize from different threads, and still guarantee consistent
thread-safe behavior.</p>
<p>For unmanaged modules if multiple callers try to finalize
a module, then one of the calls will return
<code class="literal">CKR_CRYPTOKI_NOT_INITIALIZED</code> according to the
PKCS#11 specification. In addition there are no guarantees that
thread-safe behavior will occur if multiple callers finalize from
different threads.</p>
<div class="refsect3">
<a name="p11-kit-module-finalize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>the module to finalize</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-module-finalize.returns"></a><h4>Returns</h4>
<p> <code class="literal">CKR_OK</code> or a failure code</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-module-release"></a><h3>p11_kit_module_release ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
p11_kit_module_release (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> *module</code></em>);</pre>
<p>Release the a loaded PKCS#11 modules.</p>
<p>The module may be either managed or unmanaged. The <code class="literal">C_Finalize</code>
function will be called if no other callers are using this module.</p>
<div class="refsect3">
<a name="p11-kit-module-release.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>the module to release</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-module-for-name"></a><h3>p11_kit_module_for_name ()</h3>
<pre class="programlisting"><span class="returnvalue">CK_FUNCTION_LIST</span> *
p11_kit_module_for_name (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> **modules</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
<p>Look through the list of <em class="parameter"><code>modules</code></em>
and return the module whose <em class="parameter"><code>name</code></em>
matches.</p>
<p>Only configured modules have names. Configured modules are loaded by
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a>. The module passed to this function can be either
managed or unmanaged.</p>
<p>The return value is not copied or duplicated in anyway. It is still
'owned' by the <em class="parameter"><code>modules</code></em>
list.</p>
<div class="refsect3">
<a name="p11-kit-module-for-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>modules</p></td>
<td class="parameter_description"><p>a list of modules to look through</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the module to find</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-module-for-name.returns"></a><h4>Returns</h4>
<p> the module which matches the name, or <code class="literal">NULL</code> if no match.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-module-get-name"></a><h3>p11_kit_module_get_name ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
p11_kit_module_get_name (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> *module</code></em>);</pre>
<p>Get the configured name of the PKCS#11 module.</p>
<p>Configured modules are loaded by <a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a>. The module
passed to this function can be either managed or unmanaged. Non
configured modules will return <code class="literal">NULL</code>.</p>
<p>Use <code class="function">free()</code> to release the return value when you're done with it.</p>
<div class="refsect3">
<a name="p11-kit-module-get-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>pointer to a loaded module</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-module-get-name.returns"></a><h4>Returns</h4>
<p> a newly allocated string containing the module name, or</p>
<code class="code">NULL</code> if the module is not a configured module
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-module-get-flags"></a><h3>p11_kit_module_get_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
p11_kit_module_get_flags (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> *module</code></em>);</pre>
<p>Get the flags for this module.</p>
<p>The <a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-UNMANAGED:CAPS" title="P11_KIT_MODULE_UNMANAGED"><code class="literal">P11_KIT_MODULE_UNMANAGED</code></a> flag will be set if the module is not
managed by p11-kit. It is a raw PKCS#11 module function list.</p>
<p>The <a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-CRITICAL:CAPS" title="P11_KIT_MODULE_CRITICAL"><code class="literal">P11_KIT_MODULE_CRITICAL</code></a> flag will be set if the module is configured
to be critical, and not be skipped over if it fails to initialize or
load. This flag is also set for modules that are not configured, but have
been loaded in another fashion.</p>
<div class="refsect3">
<a name="p11-kit-module-get-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>the module</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-module-get-flags.returns"></a><h4>Returns</h4>
<p> the flags for the module</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-module-get-filename"></a><h3>p11_kit_module_get_filename ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
p11_kit_module_get_filename (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> *module</code></em>);</pre>
<p>Get the configured name of the PKCS#11 module.</p>
<p>Configured modules are loaded by <a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a>. The module
passed to this function can be either managed or unmanaged. Non
configured modules will return <code class="literal">NULL</code>.</p>
<p>Use <code class="function">free()</code> to release the return value when you're done with it.</p>
<div class="refsect3">
<a name="p11-kit-module-get-filename.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>pointer to a loaded module</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-module-get-filename.returns"></a><h4>Returns</h4>
<p> a newly allocated string containing the module name, or</p>
<code class="code">NULL</code> if the module is not a configured module
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-config-option"></a><h3>p11_kit_config_option ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
p11_kit_config_option (<em class="parameter"><code><span class="type">CK_FUNCTION_LIST</span> *module</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *option</code></em>);</pre>
<p>Retrieve the value for a configured option.</p>
<p>If <em class="parameter"><code>module</code></em>
is <code class="literal">NULL</code>, then the global option with the given name will
be retrieved. Otherwise <em class="parameter"><code>module</code></em>
should point to a configured loaded module.
If no such <em class="parameter"><code>option</code></em>
or configured <em class="parameter"><code>module</code></em>
exists, then <code class="literal">NULL</code> will be returned.</p>
<p>Use <code class="function">free()</code> to release the returned value.</p>
<div class="refsect3">
<a name="p11-kit-config-option.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>the module to retrieve the option for, or <code class="literal">NULL</code> for global options</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>option</p></td>
<td class="parameter_description"><p>the option to retrieve</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-config-option.returns"></a><h4>Returns</h4>
<p> the option value or <code class="literal">NULL</code></p>
</div>
</div>
</div>
<div class="refsect1">
<a name="p11-kit-Modules.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="P11-KIT-MODULE-CRITICAL:CAPS"></a><h3>P11_KIT_MODULE_CRITICAL</h3>
<pre class="programlisting">#define P11_KIT_MODULE_CRITICAL 1
</pre>
<p>Flag to load a module in 'critical' mode. Failure to load a critical module
will prevent all other modules from loading. A failure when loading a
non-critical module skips that module.</p>
</div>
<hr>
<div class="refsect2">
<a name="P11-KIT-MODULE-UNMANAGED:CAPS"></a><h3>P11_KIT_MODULE_UNMANAGED</h3>
<pre class="programlisting">#define P11_KIT_MODULE_UNMANAGED 1
</pre>
<p>Module is loaded in non 'managed' mode. This is not recommended,
disables many features, and prevents coordination between multiple
callers of the same module.</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,892 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PIN Callbacks: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="p11-kit-URIs.html" title="URIs">
<link rel="next" href="p11-kit-Utilities.html" title="Utilities">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#p11-kit-PIN-Callbacks.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="p11-kit-URIs.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="p11-kit-Utilities.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="p11-kit-PIN-Callbacks"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="p11-kit-PIN-Callbacks.top_of_page"></a>PIN Callbacks</span></h2>
<p>PIN Callbacks — PIN Callbacks</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="p11-kit-PIN-Callbacks.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-new" title="p11_kit_pin_new ()">p11_kit_pin_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-new-for-buffer" title="p11_kit_pin_new_for_buffer ()">p11_kit_pin_new_for_buffer</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-new-for-string" title="p11_kit_pin_new_for_string ()">p11_kit_pin_new_for_string</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const unsigned <span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-get-value" title="p11_kit_pin_get_value ()">p11_kit_pin_get_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">size_t</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-get-length" title="p11_kit_pin_get_length ()">p11_kit_pin_get_length</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-ref" title="p11_kit_pin_ref ()">p11_kit_pin_ref</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref" title="p11_kit_pin_unref ()">p11_kit_pin_unref</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-register-callback" title="p11_kit_pin_register_callback ()">p11_kit_pin_register_callback</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unregister-callback" title="p11_kit_pin_unregister_callback ()">p11_kit_pin_unregister_callback</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-callback" title="p11_kit_pin_callback ()">*p11_kit_pin_callback</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-request" title="p11_kit_pin_request ()">p11_kit_pin_request</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-destroy-func" title="p11_kit_pin_destroy_func ()">*p11_kit_pin_destroy_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-file-callback" title="p11_kit_pin_file_callback ()">p11_kit_pin_file_callback</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-PIN-Callbacks.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin">P11KitPin</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPinFlags" title="enum P11KitPinFlags">P11KitPinFlags</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FALLBACK:CAPS" title="P11_KIT_PIN_FALLBACK">P11_KIT_PIN_FALLBACK</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-PIN-Callbacks.description"></a><h2>Description</h2>
<p>Applications can register a callback which will be called to provide a
password associated with a given pin source.</p>
<p>PKCS#11 URIs can contain a 'pin-source' attribute. The value of this attribute
is application dependent, but often references a file containing a PIN to
use.</p>
<p>Using these functions, an applications or libraries can register a
callback with <a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-register-callback" title="p11_kit_pin_register_callback ()"><code class="function">p11_kit_pin_register_callback()</code></a> to be called when a given
'pin-source' attribute value is requested. The application can then prompt
the user or retrieve a PIN for the given context. These registered
callbacks are only relevant and valid within the current process.</p>
<p>A fallback callback can be registered by passing the <a class="link" href="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FALLBACK:CAPS" title="P11_KIT_PIN_FALLBACK"><code class="literal">P11_KIT_PIN_FALLBACK</code></a>
value to <a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-register-callback" title="p11_kit_pin_register_callback ()"><code class="function">p11_kit_pin_register_callback()</code></a>. This fallback callback will be
called for every 'pin-source' attribute request for which no callback has been
directly registered.</p>
<p>To request a PIN for a given 'pin-source' attribute, use the
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-request" title="p11_kit_pin_request ()"><code class="function">p11_kit_pin_request()</code></a> function. If this function returns <code class="literal">NULL</code> then either
no callbacks were registered or none of them could handle the request.</p>
<p>If multiple callbacks are registered for the same PIN source, then they are
called in last-registered-first-called order. They are called in turn until
one of them can handle the request. Fallback callbacks are not called if
a callback was registered specifically for a requested 'pin-source' attribute.</p>
<p>PINs themselves are handled inside of P11KitPin structures. These are thread
safe and allow the callback to specify how the PIN is stored in memory
and freed. A callback can use <a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-new-for-string" title="p11_kit_pin_new_for_string ()"><code class="function">p11_kit_pin_new_for_string()</code></a> or related
functions to create a PIN to be returned.</p>
<p>For example in order to handle the following PKCS#11 URI with a 'pin-source'
attribute</p>
<code class="code"><div class="literallayout"><p><br>
     pkcs11:id=\%69\%95\%3e\%5c\%f4\%bd\%ec\%91;pin-source=my-application<br>
</p></div></code><p>an application could register a callback like this:</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="k">static</span><span class="w"> </span><span class="n">P11KitPin</span><span class="o">*</span>
<span class="nf">my_application_pin_callback</span><span class="w"> </span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">pin_source</span><span class="p">,</span><span class="w"> </span><span class="n">P11KitUri</span><span class="w"> </span><span class="o">*</span><span class="n">pin_uri</span><span class="p">,</span>
<span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">pin_description</span><span class="p">,</span><span class="w"> </span><span class="n">P11KitPinFlags</span><span class="w"> </span><span class="n">pin_flags</span><span class="p">,</span>
<span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">callback_data</span><span class="p">)</span>
<span class="p">{</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">p11_kit_pin_new_for_string</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;pin-value&quot;</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">p11_kit_pin_register_callback</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;my-application&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">my_application_pin_callback</span><span class="p">,</span>
<span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></pre></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="refsect1">
<a name="p11-kit-PIN-Callbacks.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="p11-kit-pin-new"></a><h3>p11_kit_pin_new ()</h3>
<pre class="programlisting"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
p11_kit_pin_new (<em class="parameter"><code>const unsigned <span class="type">char</span> *value</code></em>,
<em class="parameter"><code><span class="type">size_t</span> length</code></em>);</pre>
<p>Create a new P11KitPin with the given PIN value. This function is
usually used from within registered PIN callbacks.</p>
<p>Exactly <em class="parameter"><code>length</code></em>
bytes from <em class="parameter"><code>value</code></em>
are used. Null terminated strings,
or encodings are not considered. A copy of the <em class="parameter"><code>value</code></em>
will be made.</p>
<div class="refsect3">
<a name="p11-kit-pin-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>the value of the PIN</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
<td class="parameter_description"><p>the length of <em class="parameter"><code>value</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-new.returns"></a><h4>Returns</h4>
<p> The newly allocated P11KitPin, which should be freed with
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref" title="p11_kit_pin_unref ()"><code class="function">p11_kit_pin_unref()</code></a> when no longer needed.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-new-for-buffer"></a><h3>p11_kit_pin_new_for_buffer ()</h3>
<pre class="programlisting"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
p11_kit_pin_new_for_buffer (<em class="parameter"><code>unsigned <span class="type">char</span> *buffer</code></em>,
<em class="parameter"><code><span class="type">size_t</span> length</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-destroy-func" title="p11_kit_pin_destroy_func ()"><span class="type">p11_kit_pin_destroy_func</span></a> destroy</code></em>);</pre>
<p>Create a new P11KitPin which will use <em class="parameter"><code>buffer</code></em>
for the PIN value.
This function is usually used from within registered PIN callbacks.</p>
<p>The buffer will not be copied. String encodings and null characters
are not considered.</p>
<p>When the last reference to this PIN is lost, then the <em class="parameter"><code>destroy</code></em>
callback
function will be called passing <em class="parameter"><code>buffer</code></em>
as an argument. This allows the
caller to use a buffer as a PIN without copying it.</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="w"> </span><span class="p">(</span><span class="mi">128</span><span class="p">);</span>
<span class="n">P11KitPin</span><span class="w"> </span><span class="o">*</span><span class="n">pin</span><span class="p">;</span>
<span class="w"> </span><span class="p">....</span>
<span class="n">pin</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">p11_kit_pin_new_for_buffer</span><span class="w"> </span><span class="p">(</span><span class="n">buffer</span><span class="p">,</span><span class="w"> </span><span class="mi">128</span><span class="p">,</span><span class="w"> </span><span class="n">free</span><span class="p">);</span></pre></td>
</tr>
</tbody>
</table>
</div>
<div class="refsect3">
<a name="p11-kit-pin-new-for-buffer.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
<td class="parameter_description"><p>the value of the PIN</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
<td class="parameter_description"><p>the length of <em class="parameter"><code>buffer</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>destroy</p></td>
<td class="parameter_description"><p>if not <code class="literal">NULL</code>, then called when PIN is destroyed.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-new-for-buffer.returns"></a><h4>Returns</h4>
<p> The newly allocated P11KitPin, which should be freed with
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref" title="p11_kit_pin_unref ()"><code class="function">p11_kit_pin_unref()</code></a> when no longer needed.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-new-for-string"></a><h3>p11_kit_pin_new_for_string ()</h3>
<pre class="programlisting"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
p11_kit_pin_new_for_string (<em class="parameter"><code>const <span class="type">char</span> *value</code></em>);</pre>
<p>Create a new P11KitPin for the given null-terminated string, such as a
password. This function is usually used from within registered
PIN callbacks.</p>
<p>The PIN will consist of the string not including the null terminator.
String encoding is not considered. A copy of the <em class="parameter"><code>value</code></em>
will be made.</p>
<div class="refsect3">
<a name="p11-kit-pin-new-for-string.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>the value of the PIN</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-new-for-string.returns"></a><h4>Returns</h4>
<p> The newly allocated P11KitPin, which should be freed with
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref" title="p11_kit_pin_unref ()"><code class="function">p11_kit_pin_unref()</code></a> when no longer needed.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-get-value"></a><h3>p11_kit_pin_get_value ()</h3>
<pre class="programlisting">const unsigned <span class="returnvalue">char</span> *
p11_kit_pin_get_value (<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="type">P11KitPin</span></a> *pin</code></em>,
<em class="parameter"><code><span class="type">size_t</span> *length</code></em>);</pre>
<p>Get the PIN value from a P11KitPin. <em class="parameter"><code>length</code></em>
will be set to the
length of the value.</p>
<p>The value returned is owned by the P11KitPin and should not be modified.
It remains valid as long as a reference to the PIN is held. The PIN value
will not contain an extra null-terminator character.</p>
<div class="refsect3">
<a name="p11-kit-pin-get-value.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pin</p></td>
<td class="parameter_description"><p>the P11KitPin</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
<td class="parameter_description"><p>a location to return the value length</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-get-value.returns"></a><h4>Returns</h4>
<p> the value for the PIN.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-get-length"></a><h3>p11_kit_pin_get_length ()</h3>
<pre class="programlisting"><span class="returnvalue">size_t</span>
p11_kit_pin_get_length (<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="type">P11KitPin</span></a> *pin</code></em>);</pre>
<p>Get the length of the PIN value from a P11KitPin.</p>
<div class="refsect3">
<a name="p11-kit-pin-get-length.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pin</p></td>
<td class="parameter_description"><p>the P11KitPin</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-get-length.returns"></a><h4>Returns</h4>
<p> the length of the PIN value.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-ref"></a><h3>p11_kit_pin_ref ()</h3>
<pre class="programlisting"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
p11_kit_pin_ref (<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="type">P11KitPin</span></a> *pin</code></em>);</pre>
<p>Add a reference to a P11KitPin. This should be matched with a later call
to <a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref" title="p11_kit_pin_unref ()"><code class="function">p11_kit_pin_unref()</code></a>. As long as at least one reference is held, the PIN
will remain valid and in memory.</p>
<div class="refsect3">
<a name="p11-kit-pin-ref.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pin</p></td>
<td class="parameter_description"><p>the P11KitPin</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-ref.returns"></a><h4>Returns</h4>
<p> the <em class="parameter"><code>pin</code></em>
pointer, for convenience sake.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-unref"></a><h3>p11_kit_pin_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
p11_kit_pin_unref (<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="type">P11KitPin</span></a> *pin</code></em>);</pre>
<p>Remove a reference from a P11KitPin. When all references have been removed
then the PIN will be freed and will no longer be in memory.</p>
<div class="refsect3">
<a name="p11-kit-pin-unref.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pin</p></td>
<td class="parameter_description"><p>the P11KitPin</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-register-callback"></a><h3>p11_kit_pin_register_callback ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
p11_kit_pin_register_callback (<em class="parameter"><code>const <span class="type">char</span> *pin_source</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-callback" title="p11_kit_pin_callback ()"><span class="type">p11_kit_pin_callback</span></a> callback</code></em>,
<em class="parameter"><code><span class="type">void</span> *callback_data</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-destroy-func" title="p11_kit_pin_destroy_func ()"><span class="type">p11_kit_pin_destroy_func</span></a> callback_destroy</code></em>);</pre>
<p>Register a callback to handle PIN requests for a given 'pin-source' attribute.
If <em class="parameter"><code>pin_source</code></em>
is set to P11_KIT_PIN_FALLBACK then this will be a fallback
callback and will be called for requests for which no other callback has
been specifically registered.</p>
<p>If multiple callbacks are registered for the same <em class="parameter"><code>pin_source</code></em>
value, then
the last registered callback will be the first to be called.</p>
<div class="refsect3">
<a name="p11-kit-pin-register-callback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pin_source</p></td>
<td class="parameter_description"><p>the 'pin-source' attribute this this callback is for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>the callback function</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback_data</p></td>
<td class="parameter_description"><p>data that will be passed to the callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback_destroy</p></td>
<td class="parameter_description"><p>a function that will be called with <em class="parameter"><code>callback_data</code></em>
when
the callback is unregistered.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-register-callback.returns"></a><h4>Returns</h4>
<p> Returns negative if registering fails.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-unregister-callback"></a><h3>p11_kit_pin_unregister_callback ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
p11_kit_pin_unregister_callback (<em class="parameter"><code>const <span class="type">char</span> *pin_source</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-callback" title="p11_kit_pin_callback ()"><span class="type">p11_kit_pin_callback</span></a> callback</code></em>,
<em class="parameter"><code><span class="type">void</span> *callback_data</code></em>);</pre>
<p>Unregister a callback that was previously registered with the
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-register-callback" title="p11_kit_pin_register_callback ()"><code class="function">p11_kit_pin_register_callback()</code></a> function. If more than one registered
callback matches the given arguments, then only one of those will be
removed.</p>
<div class="refsect3">
<a name="p11-kit-pin-unregister-callback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pin_source</p></td>
<td class="parameter_description"><p>the 'pin-source' attribute the callback was registered for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>the callback function that was registered</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback_data</p></td>
<td class="parameter_description"><p>data that was registered for the callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-callback"></a><h3>p11_kit_pin_callback ()</h3>
<pre class="programlisting"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
<span class="c_punctuation">(</span>*p11_kit_pin_callback<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">char</span> *pin_source</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-URIs.html#P11KitUri" title="P11KitUri"><span class="type">P11KitUri</span></a> *pin_uri</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *pin_description</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPinFlags" title="enum P11KitPinFlags"><span class="type">P11KitPinFlags</span></a> pin_flags</code></em>,
<em class="parameter"><code><span class="type">void</span> *callback_data</code></em>);</pre>
<p>Represents a PIN callback function.</p>
<p>The various arguments are the same as the ones passed to
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-request" title="p11_kit_pin_request ()"><code class="function">p11_kit_pin_request()</code></a>. The <em class="parameter"><code>callback_data</code></em>
argument was the one passed to
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-register-callback" title="p11_kit_pin_register_callback ()"><code class="function">p11_kit_pin_register_callback()</code></a> when registering this callback.</p>
<p>The function should return <code class="literal">NULL</code> if it could not provide a PIN, either
because of an error or a user cancellation.</p>
<p>If a PIN is returned, it will be unreferenced by the caller. So it should be
either newly allocated, or referenced before returning.</p>
<div class="refsect3">
<a name="p11-kit-pin-callback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pin_source</p></td>
<td class="parameter_description"><p>a 'pin-source' attribute string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_uri</p></td>
<td class="parameter_description"><p>a PKCS#11 URI that the PIN is for, or <code class="literal">NULL</code></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_description</p></td>
<td class="parameter_description"><p>a descrption of what the PIN is for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_flags</p></td>
<td class="parameter_description"><p>flags describing the PIN request</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback_data</p></td>
<td class="parameter_description"><p>data that was provided when registering this callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-callback.returns"></a><h4>Returns</h4>
<p> A PIN or <code class="literal">NULL</code></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-request"></a><h3>p11_kit_pin_request ()</h3>
<pre class="programlisting"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
p11_kit_pin_request (<em class="parameter"><code>const <span class="type">char</span> *pin_source</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-URIs.html#P11KitUri" title="P11KitUri"><span class="type">P11KitUri</span></a> *pin_uri</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *pin_description</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPinFlags" title="enum P11KitPinFlags"><span class="type">P11KitPinFlags</span></a> pin_flags</code></em>);</pre>
<p>Request a PIN for a given 'pin-source' attribute. The result depends on the
registered callbacks.</p>
<p>If not <code class="literal">NULL</code>, then the <em class="parameter"><code>pin_uri</code></em>
attribute should point to the thing that the
PIN is being requested for. In most use cases this should be a PKCS#11 URI
pointing to a token.</p>
<p>The <em class="parameter"><code>pin_description</code></em>
should always be specified. It is a string describing
what the PIN is for. For example this would be the token label, if the PIN
is for a token.</p>
<p>If more than one callback is registered for the <em class="parameter"><code>pin_source</code></em>
, then the latest
registered one will be called first. If that callback does not return a
PIN, then the next will be called in turn.</p>
<p>If no callback is registered for <em class="parameter"><code>pin_source</code></em>
, then the fallback callbacks will
be invoked in the same way. The fallback callbacks will not be called if any
callback has been registered specifically for <em class="parameter"><code>pin_source</code></em>
.</p>
<p>The PIN returned should be released with <a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref" title="p11_kit_pin_unref ()"><code class="function">p11_kit_pin_unref()</code></a>.</p>
<div class="refsect3">
<a name="p11-kit-pin-request.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pin_source</p></td>
<td class="parameter_description"><p>the 'pin-source' attribute that is being requested</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_uri</p></td>
<td class="parameter_description"><p>a PKCS#11 URI that the PIN is being requested for, optionally <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_description</p></td>
<td class="parameter_description"><p>a description of what the PIN is for, must not be <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_flags</p></td>
<td class="parameter_description"><p>various flags for this request</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-request.returns"></a><h4>Returns</h4>
<p> the PIN which should be released with <a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref" title="p11_kit_pin_unref ()"><code class="function">p11_kit_pin_unref()</code></a>, or <code class="literal">NULL</code>
if no callback was registered or could proivde a PIN</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-destroy-func"></a><h3>p11_kit_pin_destroy_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*p11_kit_pin_destroy_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
<p>A function called to free or cleanup <em class="parameter"><code>data</code></em>
.</p>
<div class="refsect3">
<a name="p11-kit-pin-destroy-func.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the data to destroy</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-pin-file-callback"></a><h3>p11_kit_pin_file_callback ()</h3>
<pre class="programlisting"><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin"><span class="returnvalue">P11KitPin</span></a> *
p11_kit_pin_file_callback (<em class="parameter"><code>const <span class="type">char</span> *pin_source</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-URIs.html#P11KitUri" title="P11KitUri"><span class="type">P11KitUri</span></a> *pin_uri</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *pin_description</code></em>,
<em class="parameter"><code><a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPinFlags" title="enum P11KitPinFlags"><span class="type">P11KitPinFlags</span></a> pin_flags</code></em>,
<em class="parameter"><code><span class="type">void</span> *callback_data</code></em>);</pre>
<p>This is a PIN callback function that looks up the 'pin-source' attribute in
a file with that name. This can be used to enable the normal PKCS#11 URI
behavior described in the RFC.</p>
<p>If <em class="parameter"><code>pin_flags</code></em>
contains the <a class="link" href="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FLAGS-RETRY:CAPS"><code class="literal">P11_KIT_PIN_FLAGS_RETRY</code></a> flag, then this
callback will always return <code class="literal">NULL</code>. This is to prevent endless loops
where an application is expecting to interact with a prompter, but
instead is interacting with this callback reading a file over and over.</p>
<p>This callback fails on files larger than 4 Kilobytes.</p>
<p>This callback is not registered by default. It may have security
implications depending on the source of the PKCS#11 URI and the PKCS#11
in use. To register it, use code like the following:</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">p11_kit_pin_register_callback</span><span class="w"> </span><span class="p">(</span><span class="n">P11_KIT_PIN_FALLBACK</span><span class="p">,</span><span class="w"> </span><span class="n">p11_kit_pin_file_callback</span><span class="p">,</span>
<span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span></pre></td>
</tr>
</tbody>
</table>
</div>
<div class="refsect3">
<a name="p11-kit-pin-file-callback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pin_source</p></td>
<td class="parameter_description"><p>a 'pin-source' attribute string</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_uri</p></td>
<td class="parameter_description"><p>a PKCS#11 URI that the PIN is for, or <code class="literal">NULL</code></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_description</p></td>
<td class="parameter_description"><p>a descrption of what the PIN is for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pin_flags</p></td>
<td class="parameter_description"><p>flags describing the PIN request</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback_data</p></td>
<td class="parameter_description"><p>unused, should be <code class="literal">NULL</code></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-pin-file-callback.returns"></a><h4>Returns</h4>
<p> a referenced PIN with the file contents, or <code class="literal">NULL</code> if the file
could not be read</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="p11-kit-PIN-Callbacks.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="P11KitPin"></a><h3>P11KitPin</h3>
<p>A structure representing a PKCS#11 PIN. There are no public fields
visible in this structure. Use the various accessor functions.</p>
</div>
<hr>
<div class="refsect2">
<a name="P11KitPinFlags"></a><h3>enum P11KitPinFlags</h3>
<p>Flags that are passed to <a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-request" title="p11_kit_pin_request ()"><code class="function">p11_kit_pin_request()</code></a> and registered callbacks.</p>
<div class="refsect3">
<a name="P11KitPinFlags.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="P11-KIT-PIN-FLAGS-USER-LOGIN:CAPS"></a>P11_KIT_PIN_FLAGS_USER_LOGIN</p></td>
<td class="enum_member_description">
<p>The PIN is for a PKCS#11 user type login.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="P11-KIT-PIN-FLAGS-SO-LOGIN:CAPS"></a>P11_KIT_PIN_FLAGS_SO_LOGIN</p></td>
<td class="enum_member_description">
<p>The PIN is for a PKCS#11 security officer type login.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="P11-KIT-PIN-FLAGS-CONTEXT-LOGIN:CAPS"></a>P11_KIT_PIN_FLAGS_CONTEXT_LOGIN</p></td>
<td class="enum_member_description">
<p>The PIN is for a PKCS#11 contect specific type login.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="P11-KIT-PIN-FLAGS-RETRY:CAPS"></a>P11_KIT_PIN_FLAGS_RETRY</p></td>
<td class="enum_member_description">
<p>The PIN is being requested again, due to an invalid previous PIN.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="P11-KIT-PIN-FLAGS-MANY-TRIES:CAPS"></a>P11_KIT_PIN_FLAGS_MANY_TRIES</p></td>
<td class="enum_member_description">
<p>The PIN has failed too many times, and few tries are left.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="P11-KIT-PIN-FLAGS-FINAL-TRY:CAPS"></a>P11_KIT_PIN_FLAGS_FINAL_TRY</p></td>
<td class="enum_member_description">
<p>The PIN has failed too many times, and this is the last try.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="P11-KIT-PIN-FALLBACK:CAPS"></a><h3>P11_KIT_PIN_FALLBACK</h3>
<pre class="programlisting">#define P11_KIT_PIN_FALLBACK</pre>
<p>Used with <a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-register-callback" title="p11_kit_pin_register_callback ()"><code class="function">p11_kit_pin_register_callback()</code></a> to register a fallback callback.
This callback will be called if no other callback is registered for a 'pin-source'.</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,269 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Utilities: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">
<link rel="next" href="p11-kit-Future.html" title="Future">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#p11-kit-Utilities.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="p11-kit-PIN-Callbacks.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="p11-kit-Future.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="p11-kit-Utilities"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="p11-kit-Utilities.top_of_page"></a>Utilities</span></h2>
<p>Utilities — PKCS#11 utilities</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="p11-kit-Utilities.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">const <span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Utilities.html#p11-kit-strerror" title="p11_kit_strerror ()">p11_kit_strerror</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()">p11_kit_message</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="p11-kit-Utilities.html#p11-kit-space-strdup" title="p11_kit_space_strdup ()">p11_kit_space_strdup</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">size_t</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Utilities.html#p11-kit-space-strlen" title="p11_kit_space_strlen ()">p11_kit_space_strlen</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Utilities.html#p11-kit-be-quiet" title="p11_kit_be_quiet ()">p11_kit_be_quiet</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="p11-kit-Utilities.html#p11-kit-be-loud" title="p11_kit_be_loud ()">p11_kit_be_loud</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-Utilities.description"></a><h2>Description</h2>
<p>Utility functions for working with PKCS#11.</p>
</div>
<div class="refsect1">
<a name="p11-kit-Utilities.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="p11-kit-strerror"></a><h3>p11_kit_strerror ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
p11_kit_strerror (<em class="parameter"><code><span class="type">CK_RV</span> rv</code></em>);</pre>
<p>Get a message for a PKCS#11 return value or error code. Do not
pass CKR_OK or other such non errors to this function.</p>
<div class="refsect3">
<a name="p11-kit-strerror.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>rv</p></td>
<td class="parameter_description"><p>The code to get a message for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-strerror.returns"></a><h4>Returns</h4>
<p> The user readable and localized message.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-message"></a><h3>p11_kit_message ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
p11_kit_message (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Gets the failure message for a recently called p11-kit function, which
returned a failure code on this thread. Not all functions set this message.
Each function that does so, will note it in its documentation.</p>
<p>If the most recent p11-kit function did not fail, then this will return NULL.
The string is owned by the p11-kit library and is only valid on the same
thread that the failed function executed on.</p>
<div class="refsect3">
<a name="p11-kit-message.returns"></a><h4>Returns</h4>
<p> The last failure message, or <code class="literal">NULL</code>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-space-strdup"></a><h3>p11_kit_space_strdup ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
p11_kit_space_strdup (<em class="parameter"><code>const unsigned <span class="type">char</span> *string</code></em>,
<em class="parameter"><code><span class="type">size_t</span> max_length</code></em>);</pre>
<p>In PKCS#11 structures many strings are encoded in a strange way. The string
is placed in a fixed length buffer and then padded with spaces.</p>
<p>This function copies the space padded string into a normal null-terminated
string. The result is owned by the caller.</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">CK_INFO</span><span class="w"> </span><span class="n">info</span><span class="p">;</span>
<span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">description</span><span class="p">;</span>
<span class="w"> </span><span class="p">...</span>
<span class="n">description</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">p11_kit_space_strdup</span><span class="w"> </span><span class="p">(</span><span class="n">info</span><span class="o">-&gt;</span><span class="n">libraryDescription</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">info</span><span class="o">-&gt;</span><span class="n">libraryDescription</span><span class="p">));</span></pre></td>
</tr>
</tbody>
</table>
</div>
<div class="refsect3">
<a name="p11-kit-space-strdup.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>string</p></td>
<td class="parameter_description"><p>Pointer to string block</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>max_length</p></td>
<td class="parameter_description"><p>Maximum length of string block</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-space-strdup.returns"></a><h4>Returns</h4>
<p> The newly allocated string, or <code class="literal">NULL</code> if memory could not be allocated.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-space-strlen"></a><h3>p11_kit_space_strlen ()</h3>
<pre class="programlisting"><span class="returnvalue">size_t</span>
p11_kit_space_strlen (<em class="parameter"><code>const unsigned <span class="type">char</span> *string</code></em>,
<em class="parameter"><code><span class="type">size_t</span> max_length</code></em>);</pre>
<p>In PKCS#11 structures many strings are encoded in a strange way. The string
is placed in a fixed length buffer and then padded with spaces.</p>
<p>This function determines the actual length of the string. Since the string
is not null-terminated you need to pass in the size of buffer as max_length.
The string will never be longer than this buffer.</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">CK_INFO</span><span class="w"> </span><span class="n">info</span><span class="p">;</span>
<span class="kt">size_t</span><span class="w"> </span><span class="n">length</span><span class="p">;</span>
<span class="w"> </span><span class="p">...</span>
<span class="n">length</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">p11_kit_space_strlen</span><span class="w"> </span><span class="p">(</span><span class="n">info</span><span class="o">-&gt;</span><span class="n">libraryDescription</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">info</span><span class="o">-&gt;</span><span class="n">libraryDescription</span><span class="p">));</span></pre></td>
</tr>
</tbody>
</table>
</div>
<div class="refsect3">
<a name="p11-kit-space-strlen.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>string</p></td>
<td class="parameter_description"><p>Pointer to string block</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>max_length</p></td>
<td class="parameter_description"><p>Maximum length of string block</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="p11-kit-space-strlen.returns"></a><h4>Returns</h4>
<p> The length of the space padded string.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-be-quiet"></a><h3>p11_kit_be_quiet ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
p11_kit_be_quiet (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Once this function is called, the p11-kit library will no longer print
failure or warning messages to stderr.</p>
</div>
<hr>
<div class="refsect2">
<a name="p11-kit-be-loud"></a><h3>p11_kit_be_loud ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
p11_kit_be_loud (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Tell the p11-kit library will print failure or warning messages to stderr.
This is the default behavior, but can be changed using <a class="link" href="p11-kit-Utilities.html#p11-kit-be-quiet" title="p11_kit_be_quiet ()"><code class="function">p11_kit_be_quiet()</code></a>.</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,209 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<book xmlns="http://www.devhelp.net/book" title="p11-kit" link="index.html" author="" name="p11-kit" version="2" language="c">
<chapters>
<sub name="PKCS#11 Configuration" link="config.html">
<sub name="Consistent configuration" link="config.html#config-introduction"/>
<sub name="Example" link="config-example.html"/>
<sub name="Configuration Files" link="config-files.html"/>
</sub>
<sub name="Sharing PKCS#11 modules" link="sharing.html">
<sub name="Multiple consumers of PKCS#11 in a process" link="sharing.html#sharing-problem"/>
<sub name="Managed modules" link="sharing-managed.html"/>
</sub>
<sub name="Proxy Module" link="sharing.html"/>
<sub name="Remoting / Forwarding" link="remoting.html"/>
<sub name="Trust Policy Module" link="trust-module.html">
<sub name="Paths loaded by the Module" link="trust-module.html#trust-files"/>
<sub name="Using the Trust Policy Module with NSS" link="trust-nss.html"/>
<sub name="Using the Trust Policy Module with glib-networking" link="trust-glib-networking.html"/>
<sub name="Disabling the Trust Policy Module" link="trust-disable.html"/>
</sub>
<sub name="Manual Pages" link="tools.html">
<sub name="p11-kit" link="p11-kit.html"/>
<sub name="pkcs11.conf" link="pkcs11-conf.html"/>
<sub name="trust" link="trust.html"/>
</sub>
<sub name="API Reference" link="reference.html">
<sub name="Modules" link="p11-kit-Modules.html"/>
<sub name="URIs" link="p11-kit-URIs.html"/>
<sub name="PIN Callbacks" link="p11-kit-PIN-Callbacks.html"/>
<sub name="Utilities" link="p11-kit-Utilities.html"/>
<sub name="Future" link="p11-kit-Future.html"/>
<sub name="Deprecated" link="p11-kit-Deprecated.html"/>
<sub name="API Index" link="reference.html#api-index-full"/>
<sub name="Annotation Glossary" link="reference.html#annotation-glossary"/>
</sub>
<sub name="Building, Packaging, and Contributing to p11-kit" link="devel.html">
<sub name="Helpful Resources" link="devel.html#devel-links"/>
<sub name="Packaging PKCS#11 module configs" link="devel-paths.html">
<sub name="Path to place module configuration" link="devel-paths.html#devel-paths-config"/>
<sub name="Default path for modules with relative paths" link="devel-paths.html#devel-paths-modules"/>
</sub>
<sub name="Customizing installed commands" link="devel-commands.html"/>
<sub name="Compiling p11-kit from Source" link="devel-building.html">
<sub name="Building on UNIX" link="devel-building.html#devel-building-unix"/>
<sub name="Optional Dependencies" link="devel-building.html#devel-building-dependencies"/>
<sub name="Extra Configuration Options" link="devel-building.html#devel-building-configure"/>
</sub>
<sub name="Coding Style" link="devel-building-style.html"/>
<sub name="Testing and Code Coverage" link="devel-testing.html"/>
<sub name="Debugging Tips" link="devel-debugging.html"/>
</sub>
</chapters>
<functions>
<keyword type="function" name="p11_kit_modules_load_and_initialize ()" link="p11-kit-Modules.html#p11-kit-modules-load-and-initialize"/>
<keyword type="function" name="p11_kit_modules_finalize_and_release ()" link="p11-kit-Modules.html#p11-kit-modules-finalize-and-release"/>
<keyword type="function" name="p11_kit_modules_load ()" link="p11-kit-Modules.html#p11-kit-modules-load"/>
<keyword type="function" name="p11_kit_modules_initialize ()" link="p11-kit-Modules.html#p11-kit-modules-initialize"/>
<keyword type="function" name="p11_kit_modules_finalize ()" link="p11-kit-Modules.html#p11-kit-modules-finalize"/>
<keyword type="function" name="p11_kit_modules_release ()" link="p11-kit-Modules.html#p11-kit-modules-release"/>
<keyword type="function" name="p11_kit_module_load ()" link="p11-kit-Modules.html#p11-kit-module-load"/>
<keyword type="function" name="p11_kit_module_initialize ()" link="p11-kit-Modules.html#p11-kit-module-initialize"/>
<keyword type="function" name="p11_kit_module_finalize ()" link="p11-kit-Modules.html#p11-kit-module-finalize"/>
<keyword type="function" name="p11_kit_module_release ()" link="p11-kit-Modules.html#p11-kit-module-release"/>
<keyword type="function" name="p11_kit_module_for_name ()" link="p11-kit-Modules.html#p11-kit-module-for-name"/>
<keyword type="function" name="p11_kit_module_get_name ()" link="p11-kit-Modules.html#p11-kit-module-get-name"/>
<keyword type="function" name="p11_kit_module_get_flags ()" link="p11-kit-Modules.html#p11-kit-module-get-flags"/>
<keyword type="function" name="p11_kit_module_get_filename ()" link="p11-kit-Modules.html#p11-kit-module-get-filename"/>
<keyword type="function" name="p11_kit_config_option ()" link="p11-kit-Modules.html#p11-kit-config-option"/>
<keyword type="macro" name="P11_KIT_MODULE_CRITICAL" link="p11-kit-Modules.html#P11-KIT-MODULE-CRITICAL:CAPS"/>
<keyword type="macro" name="P11_KIT_MODULE_UNMANAGED" link="p11-kit-Modules.html#P11-KIT-MODULE-UNMANAGED:CAPS"/>
<keyword type="function" name="p11_kit_uri_new ()" link="p11-kit-URIs.html#p11-kit-uri-new"/>
<keyword type="function" name="p11_kit_uri_get_module_info ()" link="p11-kit-URIs.html#p11-kit-uri-get-module-info"/>
<keyword type="function" name="p11_kit_uri_match_module_info ()" link="p11-kit-URIs.html#p11-kit-uri-match-module-info"/>
<keyword type="function" name="p11_kit_uri_get_slot_info ()" link="p11-kit-URIs.html#p11-kit-uri-get-slot-info"/>
<keyword type="function" name="p11_kit_uri_match_slot_info ()" link="p11-kit-URIs.html#p11-kit-uri-match-slot-info"/>
<keyword type="function" name="p11_kit_uri_get_slot_id ()" link="p11-kit-URIs.html#p11-kit-uri-get-slot-id"/>
<keyword type="function" name="p11_kit_uri_set_slot_id ()" link="p11-kit-URIs.html#p11-kit-uri-set-slot-id"/>
<keyword type="function" name="p11_kit_uri_get_token_info ()" link="p11-kit-URIs.html#p11-kit-uri-get-token-info"/>
<keyword type="function" name="p11_kit_uri_match_token_info ()" link="p11-kit-URIs.html#p11-kit-uri-match-token-info"/>
<keyword type="function" name="p11_kit_uri_get_attributes ()" link="p11-kit-URIs.html#p11-kit-uri-get-attributes"/>
<keyword type="function" name="p11_kit_uri_set_attributes ()" link="p11-kit-URIs.html#p11-kit-uri-set-attributes"/>
<keyword type="function" name="p11_kit_uri_clear_attributes ()" link="p11-kit-URIs.html#p11-kit-uri-clear-attributes"/>
<keyword type="function" name="p11_kit_uri_match_attributes ()" link="p11-kit-URIs.html#p11-kit-uri-match-attributes"/>
<keyword type="function" name="p11_kit_uri_get_attribute ()" link="p11-kit-URIs.html#p11-kit-uri-get-attribute"/>
<keyword type="function" name="p11_kit_uri_set_attribute ()" link="p11-kit-URIs.html#p11-kit-uri-set-attribute"/>
<keyword type="function" name="p11_kit_uri_clear_attribute ()" link="p11-kit-URIs.html#p11-kit-uri-clear-attribute"/>
<keyword type="function" name="p11_kit_uri_set_unrecognized ()" link="p11-kit-URIs.html#p11-kit-uri-set-unrecognized"/>
<keyword type="function" name="p11_kit_uri_any_unrecognized ()" link="p11-kit-URIs.html#p11-kit-uri-any-unrecognized"/>
<keyword type="function" name="p11_kit_uri_get_pin_value ()" link="p11-kit-URIs.html#p11-kit-uri-get-pin-value"/>
<keyword type="function" name="p11_kit_uri_set_pin_value ()" link="p11-kit-URIs.html#p11-kit-uri-set-pin-value"/>
<keyword type="function" name="p11_kit_uri_get_pin_source ()" link="p11-kit-URIs.html#p11-kit-uri-get-pin-source"/>
<keyword type="function" name="p11_kit_uri_set_pin_source ()" link="p11-kit-URIs.html#p11-kit-uri-set-pin-source"/>
<keyword type="function" name="p11_kit_uri_get_pinfile ()" link="p11-kit-URIs.html#p11-kit-uri-get-pinfile" deprecated="use p11_kit_uri_get_pin_source()."/>
<keyword type="function" name="p11_kit_uri_set_pinfile ()" link="p11-kit-URIs.html#p11-kit-uri-set-pinfile" deprecated="use p11_kit_uri_set_pin_source()."/>
<keyword type="function" name="p11_kit_uri_get_module_name ()" link="p11-kit-URIs.html#p11-kit-uri-get-module-name"/>
<keyword type="function" name="p11_kit_uri_set_module_name ()" link="p11-kit-URIs.html#p11-kit-uri-set-module-name"/>
<keyword type="function" name="p11_kit_uri_get_module_path ()" link="p11-kit-URIs.html#p11-kit-uri-get-module-path"/>
<keyword type="function" name="p11_kit_uri_set_module_path ()" link="p11-kit-URIs.html#p11-kit-uri-set-module-path"/>
<keyword type="function" name="p11_kit_uri_get_vendor_query ()" link="p11-kit-URIs.html#p11-kit-uri-get-vendor-query"/>
<keyword type="function" name="p11_kit_uri_set_vendor_query ()" link="p11-kit-URIs.html#p11-kit-uri-set-vendor-query"/>
<keyword type="function" name="p11_kit_uri_format ()" link="p11-kit-URIs.html#p11-kit-uri-format"/>
<keyword type="function" name="p11_kit_uri_parse ()" link="p11-kit-URIs.html#p11-kit-uri-parse"/>
<keyword type="function" name="p11_kit_uri_free ()" link="p11-kit-URIs.html#p11-kit-uri-free"/>
<keyword type="function" name="p11_kit_uri_message ()" link="p11-kit-URIs.html#p11-kit-uri-message"/>
<keyword type="macro" name="P11_KIT_URI_SCHEME" link="p11-kit-URIs.html#P11-KIT-URI-SCHEME:CAPS"/>
<keyword type="macro" name="P11_KIT_URI_SCHEME_LEN" link="p11-kit-URIs.html#P11-KIT-URI-SCHEME-LEN:CAPS"/>
<keyword type="enum" name="enum P11KitUriType" link="p11-kit-URIs.html#P11KitUriType"/>
<keyword type="enum" name="enum P11KitUriResult" link="p11-kit-URIs.html#P11KitUriResult"/>
<keyword type="typedef" name="P11KitUri" link="p11-kit-URIs.html#P11KitUri"/>
<keyword type="typedef" name="p11_kit_uri" link="p11-kit-URIs.html#p11-kit-uri"/>
<keyword type="macro" name="P11_KIT_URI_NO_MEMORY" link="p11-kit-URIs.html#P11-KIT-URI-NO-MEMORY:CAPS"/>
<keyword type="function" name="p11_kit_pin_new ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-new"/>
<keyword type="function" name="p11_kit_pin_new_for_buffer ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-new-for-buffer"/>
<keyword type="function" name="p11_kit_pin_new_for_string ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-new-for-string"/>
<keyword type="function" name="p11_kit_pin_get_value ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-get-value"/>
<keyword type="function" name="p11_kit_pin_get_length ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-get-length"/>
<keyword type="function" name="p11_kit_pin_ref ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-ref"/>
<keyword type="function" name="p11_kit_pin_unref ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref"/>
<keyword type="function" name="p11_kit_pin_register_callback ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-register-callback"/>
<keyword type="function" name="p11_kit_pin_unregister_callback ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-unregister-callback"/>
<keyword type="function" name="p11_kit_pin_callback ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-callback"/>
<keyword type="function" name="p11_kit_pin_request ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-request"/>
<keyword type="function" name="p11_kit_pin_destroy_func ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-destroy-func"/>
<keyword type="function" name="p11_kit_pin_file_callback ()" link="p11-kit-PIN-Callbacks.html#p11-kit-pin-file-callback"/>
<keyword type="typedef" name="P11KitPin" link="p11-kit-PIN-Callbacks.html#P11KitPin"/>
<keyword type="enum" name="enum P11KitPinFlags" link="p11-kit-PIN-Callbacks.html#P11KitPinFlags"/>
<keyword type="macro" name="P11_KIT_PIN_FALLBACK" link="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FALLBACK:CAPS"/>
<keyword type="function" name="p11_kit_strerror ()" link="p11-kit-Utilities.html#p11-kit-strerror"/>
<keyword type="function" name="p11_kit_message ()" link="p11-kit-Utilities.html#p11-kit-message"/>
<keyword type="function" name="p11_kit_space_strdup ()" link="p11-kit-Utilities.html#p11-kit-space-strdup"/>
<keyword type="function" name="p11_kit_space_strlen ()" link="p11-kit-Utilities.html#p11-kit-space-strlen"/>
<keyword type="function" name="p11_kit_be_quiet ()" link="p11-kit-Utilities.html#p11-kit-be-quiet"/>
<keyword type="function" name="p11_kit_be_loud ()" link="p11-kit-Utilities.html#p11-kit-be-loud"/>
<keyword type="function" name="p11_kit_set_progname ()" link="p11-kit-Future.html#p11-kit-set-progname"/>
<keyword type="function" name="p11_kit_destroyer ()" link="p11-kit-Future.html#p11-kit-destroyer"/>
<keyword type="function" name="p11_kit_iter_new ()" link="p11-kit-Future.html#p11-kit-iter-new"/>
<keyword type="function" name="p11_kit_iter_set_uri ()" link="p11-kit-Future.html#p11-kit-iter-set-uri"/>
<keyword type="function" name="p11_kit_iter_add_callback ()" link="p11-kit-Future.html#p11-kit-iter-add-callback"/>
<keyword type="function" name="p11_kit_iter_add_filter ()" link="p11-kit-Future.html#p11-kit-iter-add-filter"/>
<keyword type="function" name="p11_kit_iter_callback ()" link="p11-kit-Future.html#p11-kit-iter-callback"/>
<keyword type="function" name="p11_kit_iter_begin ()" link="p11-kit-Future.html#p11-kit-iter-begin"/>
<keyword type="function" name="p11_kit_iter_begin_with ()" link="p11-kit-Future.html#p11-kit-iter-begin-with"/>
<keyword type="function" name="p11_kit_iter_next ()" link="p11-kit-Future.html#p11-kit-iter-next"/>
<keyword type="function" name="p11_kit_iter_get_kind ()" link="p11-kit-Future.html#p11-kit-iter-get-kind"/>
<keyword type="function" name="p11_kit_iter_get_module ()" link="p11-kit-Future.html#p11-kit-iter-get-module"/>
<keyword type="function" name="p11_kit_iter_get_slot ()" link="p11-kit-Future.html#p11-kit-iter-get-slot"/>
<keyword type="function" name="p11_kit_iter_get_slot_info ()" link="p11-kit-Future.html#p11-kit-iter-get-slot-info"/>
<keyword type="function" name="p11_kit_iter_get_token ()" link="p11-kit-Future.html#p11-kit-iter-get-token"/>
<keyword type="function" name="p11_kit_iter_get_session ()" link="p11-kit-Future.html#p11-kit-iter-get-session"/>
<keyword type="function" name="p11_kit_iter_keep_session ()" link="p11-kit-Future.html#p11-kit-iter-keep-session"/>
<keyword type="function" name="p11_kit_iter_get_object ()" link="p11-kit-Future.html#p11-kit-iter-get-object"/>
<keyword type="function" name="p11_kit_iter_get_attributes ()" link="p11-kit-Future.html#p11-kit-iter-get-attributes"/>
<keyword type="function" name="p11_kit_iter_load_attributes ()" link="p11-kit-Future.html#p11-kit-iter-load-attributes"/>
<keyword type="function" name="p11_kit_iter_destroy_object ()" link="p11-kit-Future.html#p11-kit-iter-destroy-object"/>
<keyword type="function" name="p11_kit_iter_free ()" link="p11-kit-Future.html#p11-kit-iter-free"/>
<keyword type="function" name="p11_kit_remote_serve_module ()" link="p11-kit-Future.html#p11-kit-remote-serve-module"/>
<keyword type="function" name="p11_kit_remote_serve_token ()" link="p11-kit-Future.html#p11-kit-remote-serve-token" deprecated="use p11_kit_remote_serve_tokens()"/>
<keyword type="function" name="p11_kit_remote_serve_tokens ()" link="p11-kit-Future.html#p11-kit-remote-serve-tokens"/>
<keyword type="typedef" name="P11KitIter" link="p11-kit-Future.html#P11KitIter"/>
<keyword type="typedef" name="p11_kit_iter" link="p11-kit-Future.html#p11-kit-iter"/>
<keyword type="enum" name="enum P11KitIterKind" link="p11-kit-Future.html#P11KitIterKind"/>
<keyword type="enum" name="enum P11KitIterBehavior" link="p11-kit-Future.html#P11KitIterBehavior"/>
<keyword type="function" name="p11_kit_initialize_registered ()" link="p11-kit-Deprecated.html#p11-kit-initialize-registered" deprecated="Since: 0.19.0: Use p11_kit_modules_load() instead."/>
<keyword type="function" name="p11_kit_finalize_registered ()" link="p11-kit-Deprecated.html#p11-kit-finalize-registered" deprecated="Since 0.19.0: Use p11_kit_modules_release() instead."/>
<keyword type="function" name="p11_kit_registered_modules ()" link="p11-kit-Deprecated.html#p11-kit-registered-modules" deprecated="Since 0.19.0: Use p11_kit_modules_load() instead."/>
<keyword type="function" name="p11_kit_registered_module_to_name ()" link="p11-kit-Deprecated.html#p11-kit-registered-module-to-name" deprecated="Since 0.19.0: Use p11_kit_module_get_name() instead."/>
<keyword type="function" name="p11_kit_registered_name_to_module ()" link="p11-kit-Deprecated.html#p11-kit-registered-name-to-module" deprecated="Since 0.19.0: Use p11_kit_module_for_name() instead."/>
<keyword type="function" name="p11_kit_registered_option ()" link="p11-kit-Deprecated.html#p11-kit-registered-option" deprecated="Since 0.19.0: Use p11_kit_config_option() instead."/>
<keyword type="function" name="p11_kit_initialize_module ()" link="p11-kit-Deprecated.html#p11-kit-initialize-module" deprecated="Since 0.19.0: Use p11_kit_module_initialize() instead."/>
<keyword type="function" name="p11_kit_load_initialize_module ()" link="p11-kit-Deprecated.html#p11-kit-load-initialize-module" deprecated="Since 0.19.0: Use p11_kit_module_load() instead."/>
<keyword type="function" name="p11_kit_finalize_module ()" link="p11-kit-Deprecated.html#p11-kit-finalize-module" deprecated=""/>
<keyword type="macro" name="P11_KIT_DEPRECATED_FOR()" link="p11-kit-Deprecated.html#P11-KIT-DEPRECATED-FOR:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_FOR_OBJECT" link="p11-kit-URIs.html#P11-KIT-URI-FOR-OBJECT:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_FOR_TOKEN" link="p11-kit-URIs.html#P11-KIT-URI-FOR-TOKEN:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_FOR_SLOT" link="p11-kit-URIs.html#P11-KIT-URI-FOR-SLOT:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_FOR_MODULE" link="p11-kit-URIs.html#P11-KIT-URI-FOR-MODULE:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_FOR_MODULE_WITH_VERSION" link="p11-kit-URIs.html#P11-KIT-URI-FOR-MODULE-WITH-VERSION:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_FOR_OBJECT_ON_TOKEN" link="p11-kit-URIs.html#P11-KIT-URI-FOR-OBJECT-ON-TOKEN:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_FOR_OBJECT_ON_TOKEN_AND_MODULE" link="p11-kit-URIs.html#P11-KIT-URI-FOR-OBJECT-ON-TOKEN-AND-MODULE:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_FOR_ANY" link="p11-kit-URIs.html#P11-KIT-URI-FOR-ANY:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_OK" link="p11-kit-URIs.html#P11-KIT-URI-OK:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_UNEXPECTED" link="p11-kit-URIs.html#P11-KIT-URI-UNEXPECTED:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_BAD_SCHEME" link="p11-kit-URIs.html#P11-KIT-URI-BAD-SCHEME:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_BAD_ENCODING" link="p11-kit-URIs.html#P11-KIT-URI-BAD-ENCODING:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_BAD_SYNTAX" link="p11-kit-URIs.html#P11-KIT-URI-BAD-SYNTAX:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_BAD_VERSION" link="p11-kit-URIs.html#P11-KIT-URI-BAD-VERSION:CAPS"/>
<keyword type="constant" name="P11_KIT_URI_NOT_FOUND" link="p11-kit-URIs.html#P11-KIT-URI-NOT-FOUND:CAPS"/>
<keyword type="constant" name="P11_KIT_PIN_FLAGS_USER_LOGIN" link="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FLAGS-USER-LOGIN:CAPS"/>
<keyword type="constant" name="P11_KIT_PIN_FLAGS_SO_LOGIN" link="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FLAGS-SO-LOGIN:CAPS"/>
<keyword type="constant" name="P11_KIT_PIN_FLAGS_CONTEXT_LOGIN" link="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FLAGS-CONTEXT-LOGIN:CAPS"/>
<keyword type="constant" name="P11_KIT_PIN_FLAGS_RETRY" link="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FLAGS-RETRY:CAPS"/>
<keyword type="constant" name="P11_KIT_PIN_FLAGS_MANY_TRIES" link="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FLAGS-MANY-TRIES:CAPS"/>
<keyword type="constant" name="P11_KIT_PIN_FLAGS_FINAL_TRY" link="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FLAGS-FINAL-TRY:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_KIND_MODULE" link="p11-kit-Future.html#P11-KIT-ITER-KIND-MODULE:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_KIND_SLOT" link="p11-kit-Future.html#P11-KIT-ITER-KIND-SLOT:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_KIND_TOKEN" link="p11-kit-Future.html#P11-KIT-ITER-KIND-TOKEN:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_KIND_OBJECT" link="p11-kit-Future.html#P11-KIT-ITER-KIND-OBJECT:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_KIND_SESSION" link="p11-kit-Future.html#P11-KIT-ITER-KIND-SESSION:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_KIND_UNKNOWN" link="p11-kit-Future.html#P11-KIT-ITER-KIND-UNKNOWN:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_BUSY_SESSIONS" link="p11-kit-Future.html#P11-KIT-ITER-BUSY-SESSIONS:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_WANT_WRITABLE" link="p11-kit-Future.html#P11-KIT-ITER-WANT-WRITABLE:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_WITH_MODULES" link="p11-kit-Future.html#P11-KIT-ITER-WITH-MODULES:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_WITH_SLOTS" link="p11-kit-Future.html#P11-KIT-ITER-WITH-SLOTS:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_WITH_TOKENS" link="p11-kit-Future.html#P11-KIT-ITER-WITH-TOKENS:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_WITHOUT_OBJECTS" link="p11-kit-Future.html#P11-KIT-ITER-WITHOUT-OBJECTS:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_WITH_LOGIN" link="p11-kit-Future.html#P11-KIT-ITER-WITH-LOGIN:CAPS"/>
<keyword type="constant" name="P11_KIT_ITER_WITH_SESSIONS" link="p11-kit-Future.html#P11-KIT-ITER-WITH-SESSIONS:CAPS"/>
</functions>
</book>

View File

@@ -0,0 +1,516 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>p11-kit: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="tools.html" title="Manual Pages">
<link rel="prev" href="tools.html" title="Manual Pages">
<link rel="next" href="pkcs11-conf.html" title="pkcs11.conf">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="tools.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="pkcs11-conf.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="p11-kit"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">p11-kit</span></h2>
<p>p11-kit — Tool for operating on configured PKCS#11 modules</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p><code class="command">p11-kit list-modules</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit list-tokens ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit list-objects ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit import-object ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit export-object ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit delete-object ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit generate-keypair ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit list-profiles ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit add-profile ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit delete-profile ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit list-mechanisms ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit print-config</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit extract ...</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">p11-kit server ...</code> </p></div>
</div>
<div class="refsect1">
<a name="p11-kit-description"></a><h2>Description</h2>
<p><span class="command"><strong>p11-kit</strong></span> is a command line tool that
can be used to perform operations on PKCS#11 modules configured on the
system.</p>
<p>See the various sub commands below. The following global options
can be used:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">-v, --verbose</code></span></p></td>
<td><p>Run in verbose mode with debug
output.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">-q, --quiet</code></span></p></td>
<td><p>Run in quiet mode without warning or
failure messages.</p></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-list-modules"></a><h2>List Modules</h2>
<p>List system configured PKCS#11 modules.</p>
<pre class="programlisting">
$ p11-kit list-modules
</pre>
<p>The modules, information about them and the tokens present in
the PKCS#11 modules will be displayed.</p>
</div>
<div class="refsect1">
<a name="p11-kit-list-tokens"></a><h2>List Tokens</h2>
<p>List all tokens available in system configured PKCS#11 modules.</p>
<pre class="programlisting">
$ p11-kit list-tokens pkcs11:token
</pre>
<p>This retrieves all tokens and displays some of their
common attributes.</p>
<p>This subcommand takes the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--only-uris</code></span></p></td>
<td><p>Print only the matching token URIs.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-list-objects"></a><h2>List Objects</h2>
<p>List objects matching given PKCS#11 URI.</p>
<pre class="programlisting">
$ p11-kit list-objects pkcs11:object_on_token
</pre>
<p>This retrieves all objects that match given PKCS#11 URI and displays
some of their common attributes. Storage objects also have their PKCS#11 URI
displayed.</p>
<p>This subcommand takes the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--login</code></span></p></td>
<td><p>Authenticate to the token before enumerating objects. The PIN value is read from either the <code class="literal">pin-value</code> attribute in the URI or from the terminal.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-import-object"></a><h2>Import Object</h2>
<p>Import object into PKCS#11 token.</p>
<pre class="programlisting">
$ p11-kit import-object --file=file.pem [--label=label] [--id=object_id] pkcs11:token
</pre>
<p>Takes either an X.509 certificate or a public key in the form of a PEM file
and imports it into the first token matched by given PKCS#11 URI.</p>
<p>The following options are required:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="option">--file=&lt;file.pem&gt;</code></span></p></td>
<td><p>File containing either an X.509 certificate
or a public key in PEM format.</p></td>
</tr></tbody>
</table></div>
<p>This subcommand also accepts the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--label=&lt;label&gt;</code></span></p></td>
<td><p>Assigns label to the imported object.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--id=&lt;object_id&gt;</code></span></p></td>
<td><p>Assigns ID to the imported object. The ID should be specified in hexadecimal format without '0x' prefix.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--login</code></span></p></td>
<td><p>Authenticate to the token before enumerating objects. The PIN value is read from either the <code class="literal">pin-value</code> attribute in the URI or from the terminal.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-export-object"></a><h2>Export Object</h2>
<p>Export object matching PKCS#11 URI.</p>
<pre class="programlisting">
$ p11-kit export-object pkcs11:object_on_token
</pre>
<p>Displays PEM formatted contents of the first object matched by given PKCS#11 URI.
The matched object has to either be an X.509 certificate or a public key.</p>
<p>This subcommand takes the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--login</code></span></p></td>
<td><p>Authenticate to the token before enumerating objects. The PIN value is read from either the <code class="literal">pin-value</code> attribute in the URI or from the terminal.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-delete-object"></a><h2>Delete Object</h2>
<p>Delete object matching PKCS#11 URI.</p>
<pre class="programlisting">
$ p11-kit delete-object pkcs11:object_on_token
</pre>
<p>Destroys the first object matched by given PKCS#11 URI.</p>
<p>This subcommand takes the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--login</code></span></p></td>
<td><p>Authenticate to the token before enumerating objects. The PIN value is read from either the <code class="literal">pin-value</code> attribute in the URI or from the terminal.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-generate-keypair"></a><h2>Generate Key-pair</h2>
<p>Generate key-pair on a PKCS#11 token.</p>
<pre class="programlisting">
$ p11-kit generate-keypair --type=algorithm {--bits=n|--curve=name} [--label=label] [--id=object_id] pkcs11:token
</pre>
<p>Generate private-public key-pair of given type on the first
token matched by given PKCS#11 URI. This command should be used
together with --type option and one of --bits or --curve options.</p>
<p>The following options are required:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--type=&lt;algorithm&gt;</code></span></p></td>
<td><p>Specify the type of keys to generate.
Supported values are rsa, ecdsa and eddsa.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--bits=&lt;n&gt;</code></span></p></td>
<td><p>Specify the number of bits for the key-pair generation.
Cannot be used together with --curve option.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--curve=&lt;name&gt;</code></span></p></td>
<td><p>Specify an elliptic curve for the key-pair generation.
Supported values are secp256r1, secp384r1, secp521r1, ed25519 and ed448.
Cannot be used together with --bits option.</p></td>
</tr>
</tbody>
</table></div>
<p>This subcommand also accepts the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--label=&lt;label&gt;</code></span></p></td>
<td><p>Assigns label to the generated key-pair objects.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--id=&lt;object_id&gt;</code></span></p></td>
<td><p>Assigns ID to the generated key-pair objects. The ID should be specified in hexadecimal format without '0x' prefix.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--login</code></span></p></td>
<td><p>Authenticate to the token before enumerating objects. The PIN value is read from either the <code class="literal">pin-value</code> attribute in the URI or from the terminal.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-list-profiles"></a><h2>List Profiles</h2>
<p>List PKCS#11 profiles supported by the token.</p>
<pre class="programlisting">
$ p11-kit list-profiles pkcs11:token
</pre>
<p>Displays profile IDs of the first token matched by given
PKCS#11 URI in human-readable form.</p>
<p>This subcommand takes the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--login</code></span></p></td>
<td><p>Authenticate to the token before enumerating objects. The PIN value is read from either the <code class="literal">pin-value</code> attribute in the URI or from the terminal.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-add-profile"></a><h2>Add Profile</h2>
<p>Add PKCS#11 profile to a token.</p>
<pre class="programlisting">
$ p11-kit add-profile --profile=profile pkcs11:token
</pre>
<p>Creates new profile object with given profile ID on the
first token matched by given PKCS#11 URI. This command fails
if the profile ID already exists on the token.</p>
<p>The following options are required:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="option">--profile=&lt;profile&gt;</code></span></p></td>
<td><p>Profile ID to add. Value can either
be numerical or textual.</p></td>
</tr></tbody>
</table></div>
<p>This subcommand also accepts the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--login</code></span></p></td>
<td><p>Authenticate to the token before enumerating objects. The PIN value is read from either the <code class="literal">pin-value</code> attribute in the URI or from the terminal.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-delete-profile"></a><h2>Delete Profile</h2>
<p>Delete PKCS#11 profile from a token.</p>
<pre class="programlisting">
$ p11-kit delete-profile --profile=profile pkcs11:token
</pre>
<p>Destroys all profile objects with given profile ID from
the first token matched by given PKCS#11 URI.</p>
<p>The following options are required:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="option">--profile=&lt;profile&gt;</code></span></p></td>
<td><p>Profile ID to delete. Value can either
be numerical or textual.</p></td>
</tr></tbody>
</table></div>
<p>This subcommand also accepts the following options:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--login</code></span></p></td>
<td><p>Authenticate to the token before enumerating objects. The PIN value is read from either the <code class="literal">pin-value</code> attribute in the URI or from the terminal.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--provider=&lt;module_path&gt;</code></span></p></td>
<td>
<p>Load only the given PKCS#11 module instead of enumerating modules installed on the system. If <em class="parameter"><code>module_path</code></em> is a relative path, the module is loaded from the default module path. This path can be determined by running:</p>
<pre class="programlisting">
$ <span class="command"><strong>pkg-config p11-kit-1 --variable p11_module_path</strong></span>
/usr/lib64/pkcs11</pre>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="p11-kit-list-mechanisms"></a><h2>List Mechanisms</h2>
<p>List PKCS#11 mechanisms supported by the token.</p>
<pre class="programlisting">
$ p11-kit list-mechanisms pkcs11:token
</pre>
<p>This lists all available mechanimsms for a PKCS#11 token</p>
</div>
<div class="refsect1">
<a name="p11-kit-print-config"></a><h2>Print Config</h2>
<p>Print merged configuration.</p>
<pre class="programlisting">
$ p11-kit print-config
</pre>
<p>P11-kit provides 3 levels of configuration: system wide, per-module, and per-user.
At run-time all 3 levels are merged into a single configuration. This command displays the
merged configuration.</p>
</div>
<div class="refsect1">
<a name="p11-kit-extract"></a><h2>Extract</h2>
<p>Extract certificates from configured PKCS#11 modules.</p>
<p>This operation has been moved to a separate command <span class="command"><strong>trust extract</strong></span>.
See </p>
<table border="0" summary="Simple list" class="simplelist"><tr><td><span class="citerefentry"><span class="refentrytitle">trust</span>(1)</span></td></tr></table>
<p>
for more information</p>
</div>
<div class="refsect1">
<a name="p11-kit-server"></a><h2>Server</h2>
<p>Run a server process that exposes PKCS#11 module remotely.</p>
<pre class="programlisting">
$ p11-kit server pkcs11:token1 pkcs11:token2 ...
$ p11-kit server --provider /path/to/pkcs11-module.so pkcs11:token1 pkcs11:token2 ...
</pre>
<p>This launches a server that exposes the given PKCS#11 tokens on a local socket. The tokens must belong to the same module. To access the socket, use <code class="literal">p11-kit-client.so</code> module. The server address and PID are printed as a shell-script snippet which sets the appropriate environment variable: <code class="literal">P11_KIT_SERVER_ADDRESS</code> and <code class="literal">P11_KIT_SERVER_PID</code>.</p>
</div>
<div class="refsect1">
<a name="p11-kit-extract-trust"></a><h2>Extract Trust</h2>
<p>Extract standard trust information files.</p>
<p>This operation has been moved to a separate command <span class="command"><strong>trust extract-compat</strong></span>.
See <span class="citerefentry"><span class="refentrytitle">trust</span>(1)</span>
for more information</p>
</div>
<div class="refsect1">
<a name="p11-kit-remote"></a><h2>Remote</h2>
<p>Run a PKCS#11 module remotely.</p>
<pre class="programlisting">
$ p11-kit remote /path/to/pkcs11-module.so
$ p11-kit remote pkcs11:token1 pkcs11:token2 ...
</pre>
<p>This is not meant to be run directly from a terminal. But rather in a
<code class="option">remote</code> option in a
<span class="citerefentry"><span class="refentrytitle">pkcs11.conf</span>(5)</span>
file.</p>
<p>This exposes the given PKCS#11 module or tokens over standard input and output. Those two forms, whether to expose a module or tokens, are mutually exclusive and if the second form is used, the tokens must belong to the same module.</p>
</div>
<div class="refsect1">
<a name="p11-kit-bugs"></a><h2>Bugs</h2>
<p>
Please send bug reports to either the distribution bug tracker
or the upstream bug tracker at
<a class="ulink" href="https://github.com/p11-glue/p11-kit/issues/" target="_top">https://github.com/p11-glue/p11-kit/issues/</a>.
</p>
</div>
<div class="refsect1">
<a name="p11-kit-see-also"></a><h2>See also</h2>
<span class="simplelist"><span class="citerefentry"><span class="refentrytitle">pkcs11.conf</span>(5)</span></span><p>
Further details available in the p11-kit online documentation at
<a class="ulink" href="https://p11-glue.github.io/p11-glue/p11-kit/manual/" target="_top">https://p11-glue.github.io/p11-glue/p11-kit/manual/</a>.
</p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,262 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>pkcs11.conf: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="tools.html" title="Manual Pages">
<link rel="prev" href="p11-kit.html" title="p11-kit">
<link rel="next" href="trust.html" title="trust">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="p11-kit.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="trust.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="pkcs11-conf"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">pkcs11.conf</span></h2>
<p>pkcs11.conf — Configuration files for PKCS#11 modules</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="pkcs11-conf-description"></a><h2>Description</h2>
<p>The <span class="command"><strong>pkcs11.conf</strong></span> configuration files are a standard
way to configure PKCS#11 modules.</p>
</div>
<div class="refsect1">
<a name="config-format"></a><h2>File format</h2>
<p>A complete configuration consists of several files. These files are
text files. Since <code class="literal">p11-kit</code> is built to be used in all
sorts of environments and at very low levels of the software stack, we
cannot make use of high level configuration APIs that you may find on a
modern desktop.</p>
<p>Each setting in the config file is specified consists of a name and
a value. The name is a simple string consisting of characters and dashes.
The name consists of alpha numeric characters, dot, hyphen and
underscore.</p>
<p>The value is specified after the name on the same line, separated
from it by a <code class="literal">:</code> (colon). White space between the
name and value is ignored.</p>
<p>Blank lines are ignored. White space at the beginning or end of
lines is stripped. Lines that begin with a <code class="literal">#</code> character
are ignored as comments. Comments are not recognized when they come after
a value on a line.</p>
<p>A fictitious module configuration file might look like:</p>
<pre class="programlisting">
module: module.so
# Here is a comment
managed: true
setting.2: A long value with text.
x-custom : text
</pre>
</div>
<div class="refsect1">
<a name="config-module"></a><h2>Module Configuration</h2>
<p>Each configured PKCS#11 module has its own config file. These files
can be <a class="link" href="pkcs11-conf.html#config-locations" title="Configuration Files">placed in various locations</a>.</p>
<p>The filename of the configuration file may consist of upper and lowercase letters
underscore, comma, dash and dots. The first characters needs to be an alphanumeric,
the filename should end with a <code class="literal">.module</code> extension.</p>
<p>Most importantly each config file specifies the path of the PKCS#11 module to
load. A module config file has the following fields:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">module:</code></span></p></td>
<td>
<p>The filename of the PKCS#11 module to load.
This should include an extension like <code class="literal">.so</code></p>
<p>If this value is blank, then the module will be ignored.
This can be used in the user configs to override loading of a module
specified in the system configuration.</p>
<p>If this is a relative path, then the module will be loaded
from the <a class="link" href="devel-paths.html#devel-paths-modules" title="Default path for modules with relative paths">default module directory</a>.</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">critical:</code></span></p></td>
<td>
<p>Set to <code class="literal">yes</code> if the module is critical and
required to load. If a critical module fails to load or initialize,
then the loading process for all registered modules will abort and
return an error code.</p>
<p>This argument is optional and defaults to <code class="literal">no</code>.</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">enable-in:</code></span></p></td>
<td>
<p>A comma and/or space separated list of names of programs that
this module should only be loaded in. The module will not be loaded
for other programs using p11-kit. The base name of the process executable
should be used here, for example
<code class="literal">seahorse, ssh</code>.</p>
<p>This option can also be used to control whether the module will be loaded by <a class="link" href="sharing.html" title="Sharing PKCS#11 modules">the proxy module</a>. To enable loading only from the proxy module, specify <code class="literal">p11-kit-proxy</code> as the value.</p>
<p>This is not a security feature. The argument is optional. If
not present, then any process will load the module.</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">disable-in:</code></span></p></td>
<td>
<p>A comma and/or space separated list of names of programs that
this module should not be loaded in. The module will be loaded for any
other programs using p11-kit. The base name of the process
executable should be used here, for example
<code class="literal">firefox, thunderbird-bin</code>.</p>
<p>This option can also be used to control whether the module will be loaded by <a class="link" href="sharing.html" title="Sharing PKCS#11 modules">the proxy module</a>. To disable loading from the proxy module, specify <code class="literal">p11-kit-proxy</code> as the value.</p>
<p>This is not a security feature. The argument is optional. If
not present, then any process will load the module.</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">managed:</code></span></p></td>
<td>
<p>Set to <code class="literal">no</code> if the module is not to be managed by
p11-kit. Making a module unmanaged is not recommended, and will cause
problems if multiple callers in a single process share a PKCS#11 module.</p>
<p>This argument is optional and defaults to <code class="literal">yes</code>.</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">priority:</code></span></p></td>
<td>
<p>The value should be an integer. When lists of modules are
returned to a caller of p11-kit, modules with a higher number are sorted
first. When applications search modules for certificates, keys and
trust policy information, this setting will affect what find
first.</p>
<p>This argument is optional, and defaults to zero. Modules
with the same <code class="option">priority</code> option will be sorted
alphabetically.</p>
</td>
</tr>
<tr>
<td><p><a name="option-remote"></a><span class="term"><code class="option">remote:</code></span></p></td>
<td>
<p>Instead of loading the PKCS#11 module locally, run the module
remotely.</p>
<p>Specify a command to run, prefixed with <code class="literal">|</code> a pipe.
The command must speak the p11-kit remoting protocol on its standard in
and standard out. For example:</p>
<pre class="programlisting">
remote: |ssh user@remote p11-kit remote /path/to/module.so
</pre>
<p>Other forms of remoting will appear in later p11-kit releases.</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">trust-policy:</code></span></p></td>
<td><p>Set to <code class="literal">yes</code> to use use this module as a source
of trust policy information such as certificate anchors and blocklists.</p></td>
</tr>
<tr>
<td><p><a name="option-log-calls"></a><span class="term"><code class="option">log-calls:</code></span></p></td>
<td>
<p>Set to <code class="literal">yes</code> to write a log to stderr of all the
calls into the module. This is only supported for managed modules.</p>
<p>This argument is optional and defaults to <code class="literal">no</code>.</p>
</td>
</tr>
</tbody>
</table></div>
<p>Do not specify both <code class="literal">enable-in</code> and <code class="literal">disable-in</code>
for the same module.</p>
<p>Other fields may be present, but it is recommended that field names
that are not specified in this document start with a <code class="literal">x-</code>
prefix.</p>
</div>
<div class="refsect1">
<a name="config-global"></a><h2>Global Configuration</h2>
<p>A global configuration may also be present. This file contains settings
that are not related to a single PKCS#11 module. The location(s) of the
global configuration are described below. The global configuration file
can contain the following fields:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">user-config:</code></span></p></td>
<td><p>This will be equal to one of the following values:
<code class="literal">none</code>, <code class="literal">merge</code>,
<code class="literal">only</code>.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">managed:</code></span></p></td>
<td>
<p>Set to <code class="literal">yes</code> or <code class="literal">no</code> to
force all modules to be managed or unmanaged by p11-kit. Setting this
setting in a global configuration file will override the
<code class="literal">managed</code> setting in the individual module configuration
files. Making modules unmanaged is not recommended, and will cause
problems if multiple callers in a single process share a PKCS#11
module.</p>
<p>This argument is optional.</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">log-calls:</code></span></p></td>
<td>
<p>Set to <code class="literal">yes</code> to write a log to stderr of all the
calls into all configured modules. This is only supported for managed
modules.</p>
<p>This argument is optional.</p>
</td>
</tr>
</tbody>
</table></div>
<p>Other fields may be present, but it is recommended that field names
that are not specified in this document start with a <code class="literal">x-</code>
prefix.</p>
</div>
<div class="refsect1">
<a name="config-locations"></a><h2>Configuration Files</h2>
<p>Each configured PKCS#11 module has its own config file. These
files are placed in a directory. In addition a global config file exists.
There is a system configuration consisting of the various module config
files and a file for global configuration. Optionally each user can provide
additional configuration or override the system configuration.</p>
<p>The system global configuration file is usually in
<code class="literal">/etc/pkcs11/pkcs11.conf</code> and the user global
configuration file is in <code class="literal">~/.config/pkcs11/pkcs11.conf</code> in the
user's home directory.</p>
<p>The module config files are usually located in the
<code class="literal">/etc/pkcs11/modules</code> directory, with one configuration
file per module. In addition the <code class="literal">~/.config/pkcs11/modules</code> directory
can be used for modules installed by the user.</p>
<p>Note that user configuration files are not loaded from the home
directory if running inside a setuid or setgid program.</p>
<p>The default system config file and module directory can be changed
when building p11-kit. Always
<a class="link" href="devel-paths.html" title="Packaging PKCS#11 module configs">lookup these paths</a> using
<code class="literal">pkg-config</code>.</p>
</div>
<div class="refsect1">
<a name="pkcs11-conf-see-also"></a><h2>See also</h2>
<span class="simplelist"><span class="citerefentry"><span class="refentrytitle">p11-kit</span>(8)</span></span><p>Further details available in the p11-kit online documentation at
<a class="ulink" href="https://p11-glue.github.io/p11-glue/p11-kit/manual/" target="_top">https://p11-glue.github.io/p11-glue/p11-kit/manual/</a>.
</p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,567 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>API Reference: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="index.html" title="p11-kit">
<link rel="prev" href="trust.html" title="trust">
<link rel="next" href="p11-kit-Modules.html" title="Modules">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="trust.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="p11-kit-Modules.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="reference"></a>API Reference</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="p11-kit-Modules.html">Modules</a></span><span class="refpurpose"> — Module loading and initializing</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-URIs.html">URIs</a></span><span class="refpurpose"> — Parsing and formatting PKCS#11 URIs</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-PIN-Callbacks.html">PIN Callbacks</a></span><span class="refpurpose"> — PIN Callbacks</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-Utilities.html">Utilities</a></span><span class="refpurpose"> — PKCS#11 utilities</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-Future.html">Future</a></span><span class="refpurpose"> — Future Unstable API</span>
</dt>
<dt>
<span class="refentrytitle"><a href="p11-kit-Deprecated.html">Deprecated</a></span><span class="refpurpose"> — Deprecated functions</span>
</dt>
<dt><span class="index"><a href="reference.html#api-index-full">API Index</a></span></dt>
<dt><span class="glossary"><a href="reference.html#annotation-glossary">Annotation Glossary</a></span></dt>
</dl></div>
<div class="index">
<div class="titlepage"><div><div><h2 class="title">
<a name="api-index-full"></a>API Index</h2></div></div></div>
<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
<dt>
<a class="link" href="p11-kit-Utilities.html#p11-kit-be-loud" title="p11_kit_be_loud ()">p11_kit_be_loud</a>, function in <a class="link" href="p11-kit-Utilities.html" title="Utilities">Utilities</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Utilities.html#p11-kit-be-quiet" title="p11_kit_be_quiet ()">p11_kit_be_quiet</a>, function in <a class="link" href="p11-kit-Utilities.html" title="Utilities">Utilities</a>
</dt>
<dd></dd>
<a name="idxC"></a><h3 class="title">C</h3>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-config-option" title="p11_kit_config_option ()">p11_kit_config_option</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<a name="idxD"></a><h3 class="title">D</h3>
<dt>
<a class="link" href="p11-kit-Deprecated.html#P11-KIT-DEPRECATED-FOR:CAPS" title="P11_KIT_DEPRECATED_FOR()">P11_KIT_DEPRECATED_FOR</a>, macro in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-destroyer" title="p11_kit_destroyer ()">p11_kit_destroyer</a>, user_function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<a name="idxF"></a><h3 class="title">F</h3>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-finalize-module" title="p11_kit_finalize_module ()">p11_kit_finalize_module</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-finalize-registered" title="p11_kit_finalize_registered ()">p11_kit_finalize_registered</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<a name="idxI"></a><h3 class="title">I</h3>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-module" title="p11_kit_initialize_module ()">p11_kit_initialize_module</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-initialize-registered" title="p11_kit_initialize_registered ()">p11_kit_initialize_registered</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter" title="p11_kit_iter">p11_kit_iter</a>, typedef in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-add-callback" title="p11_kit_iter_add_callback ()">p11_kit_iter_add_callback</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-add-filter" title="p11_kit_iter_add_filter ()">p11_kit_iter_add_filter</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-begin" title="p11_kit_iter_begin ()">p11_kit_iter_begin</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-begin-with" title="p11_kit_iter_begin_with ()">p11_kit_iter_begin_with</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-callback" title="p11_kit_iter_callback ()">p11_kit_iter_callback</a>, user_function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-destroy-object" title="p11_kit_iter_destroy_object ()">p11_kit_iter_destroy_object</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-free" title="p11_kit_iter_free ()">p11_kit_iter_free</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-get-attributes" title="p11_kit_iter_get_attributes ()">p11_kit_iter_get_attributes</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-get-kind" title="p11_kit_iter_get_kind ()">p11_kit_iter_get_kind</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-get-module" title="p11_kit_iter_get_module ()">p11_kit_iter_get_module</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-get-object" title="p11_kit_iter_get_object ()">p11_kit_iter_get_object</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-get-session" title="p11_kit_iter_get_session ()">p11_kit_iter_get_session</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-get-slot" title="p11_kit_iter_get_slot ()">p11_kit_iter_get_slot</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-get-slot-info" title="p11_kit_iter_get_slot_info ()">p11_kit_iter_get_slot_info</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-get-token" title="p11_kit_iter_get_token ()">p11_kit_iter_get_token</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-keep-session" title="p11_kit_iter_keep_session ()">p11_kit_iter_keep_session</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-load-attributes" title="p11_kit_iter_load_attributes ()">p11_kit_iter_load_attributes</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-new" title="p11_kit_iter_new ()">p11_kit_iter_new</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-next" title="p11_kit_iter_next ()">p11_kit_iter_next</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-iter-set-uri" title="p11_kit_iter_set_uri ()">p11_kit_iter_set_uri</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<a name="idxL"></a><h3 class="title">L</h3>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-load-initialize-module" title="p11_kit_load_initialize_module ()">p11_kit_load_initialize_module</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<a name="idxM"></a><h3 class="title">M</h3>
<dt>
<a class="link" href="p11-kit-Utilities.html#p11-kit-message" title="p11_kit_message ()">p11_kit_message</a>, function in <a class="link" href="p11-kit-Utilities.html" title="Utilities">Utilities</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-finalize" title="p11_kit_modules_finalize ()">p11_kit_modules_finalize</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-finalize-and-release" title="p11_kit_modules_finalize_and_release ()">p11_kit_modules_finalize_and_release</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-initialize" title="p11_kit_modules_initialize ()">p11_kit_modules_initialize</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()">p11_kit_modules_load</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-load-and-initialize" title="p11_kit_modules_load_and_initialize ()">p11_kit_modules_load_and_initialize</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-release" title="p11_kit_modules_release ()">p11_kit_modules_release</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-CRITICAL:CAPS" title="P11_KIT_MODULE_CRITICAL">P11_KIT_MODULE_CRITICAL</a>, macro in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-module-finalize" title="p11_kit_module_finalize ()">p11_kit_module_finalize</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-module-for-name" title="p11_kit_module_for_name ()">p11_kit_module_for_name</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-module-get-filename" title="p11_kit_module_get_filename ()">p11_kit_module_get_filename</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-module-get-flags" title="p11_kit_module_get_flags ()">p11_kit_module_get_flags</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-module-get-name" title="p11_kit_module_get_name ()">p11_kit_module_get_name</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-module-initialize" title="p11_kit_module_initialize ()">p11_kit_module_initialize</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-module-load" title="p11_kit_module_load ()">p11_kit_module_load</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#p11-kit-module-release" title="p11_kit_module_release ()">p11_kit_module_release</a>, function in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Modules.html#P11-KIT-MODULE-UNMANAGED:CAPS" title="P11_KIT_MODULE_UNMANAGED">P11_KIT_MODULE_UNMANAGED</a>, macro in <a class="link" href="p11-kit-Modules.html" title="Modules">Modules</a>
</dt>
<dd></dd>
<a name="idxP"></a><h3 class="title">P</h3>
<dt>
<a class="link" href="p11-kit-Future.html#P11KitIter" title="P11KitIter">P11KitIter</a>, typedef in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#P11KitIterBehavior" title="enum P11KitIterBehavior">P11KitIterBehavior</a>, enum in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#P11KitIterKind" title="enum P11KitIterKind">P11KitIterKind</a>, enum in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPin" title="P11KitPin">P11KitPin</a>, typedef in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#P11KitPinFlags" title="enum P11KitPinFlags">P11KitPinFlags</a>, enum in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#P11KitUri" title="P11KitUri">P11KitUri</a>, typedef in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#P11KitUriResult" title="enum P11KitUriResult">P11KitUriResult</a>, enum in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#P11KitUriType" title="enum P11KitUriType">P11KitUriType</a>, enum in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-callback" title="p11_kit_pin_callback ()">p11_kit_pin_callback</a>, user_function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-destroy-func" title="p11_kit_pin_destroy_func ()">p11_kit_pin_destroy_func</a>, user_function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#P11-KIT-PIN-FALLBACK:CAPS" title="P11_KIT_PIN_FALLBACK">P11_KIT_PIN_FALLBACK</a>, macro in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-file-callback" title="p11_kit_pin_file_callback ()">p11_kit_pin_file_callback</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-get-length" title="p11_kit_pin_get_length ()">p11_kit_pin_get_length</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-get-value" title="p11_kit_pin_get_value ()">p11_kit_pin_get_value</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-new" title="p11_kit_pin_new ()">p11_kit_pin_new</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-new-for-buffer" title="p11_kit_pin_new_for_buffer ()">p11_kit_pin_new_for_buffer</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-new-for-string" title="p11_kit_pin_new_for_string ()">p11_kit_pin_new_for_string</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-ref" title="p11_kit_pin_ref ()">p11_kit_pin_ref</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-register-callback" title="p11_kit_pin_register_callback ()">p11_kit_pin_register_callback</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-request" title="p11_kit_pin_request ()">p11_kit_pin_request</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unref" title="p11_kit_pin_unref ()">p11_kit_pin_unref</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-PIN-Callbacks.html#p11-kit-pin-unregister-callback" title="p11_kit_pin_unregister_callback ()">p11_kit_pin_unregister_callback</a>, function in <a class="link" href="p11-kit-PIN-Callbacks.html" title="PIN Callbacks">PIN Callbacks</a>
</dt>
<dd></dd>
<a name="idxR"></a><h3 class="title">R</h3>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-modules" title="p11_kit_registered_modules ()">p11_kit_registered_modules</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-module-to-name" title="p11_kit_registered_module_to_name ()">p11_kit_registered_module_to_name</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-name-to-module" title="p11_kit_registered_name_to_module ()">p11_kit_registered_name_to_module</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Deprecated.html#p11-kit-registered-option" title="p11_kit_registered_option ()">p11_kit_registered_option</a>, function in <a class="link" href="p11-kit-Deprecated.html" title="Deprecated">Deprecated</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-remote-serve-module" title="p11_kit_remote_serve_module ()">p11_kit_remote_serve_module</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-remote-serve-token" title="p11_kit_remote_serve_token ()">p11_kit_remote_serve_token</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-remote-serve-tokens" title="p11_kit_remote_serve_tokens ()">p11_kit_remote_serve_tokens</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<a name="idxS"></a><h3 class="title">S</h3>
<dt>
<a class="link" href="p11-kit-Future.html#p11-kit-set-progname" title="p11_kit_set_progname ()">p11_kit_set_progname</a>, function in <a class="link" href="p11-kit-Future.html" title="Future">Future</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Utilities.html#p11-kit-space-strdup" title="p11_kit_space_strdup ()">p11_kit_space_strdup</a>, function in <a class="link" href="p11-kit-Utilities.html" title="Utilities">Utilities</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Utilities.html#p11-kit-space-strlen" title="p11_kit_space_strlen ()">p11_kit_space_strlen</a>, function in <a class="link" href="p11-kit-Utilities.html" title="Utilities">Utilities</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-Utilities.html#p11-kit-strerror" title="p11_kit_strerror ()">p11_kit_strerror</a>, function in <a class="link" href="p11-kit-Utilities.html" title="Utilities">Utilities</a>
</dt>
<dd></dd>
<a name="idxU"></a><h3 class="title">U</h3>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri" title="p11_kit_uri">p11_kit_uri</a>, typedef in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-any-unrecognized" title="p11_kit_uri_any_unrecognized ()">p11_kit_uri_any_unrecognized</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-clear-attribute" title="p11_kit_uri_clear_attribute ()">p11_kit_uri_clear_attribute</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-clear-attributes" title="p11_kit_uri_clear_attributes ()">p11_kit_uri_clear_attributes</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-format" title="p11_kit_uri_format ()">p11_kit_uri_format</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-free" title="p11_kit_uri_free ()">p11_kit_uri_free</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-attribute" title="p11_kit_uri_get_attribute ()">p11_kit_uri_get_attribute</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-attributes" title="p11_kit_uri_get_attributes ()">p11_kit_uri_get_attributes</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-module-info" title="p11_kit_uri_get_module_info ()">p11_kit_uri_get_module_info</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-module-name" title="p11_kit_uri_get_module_name ()">p11_kit_uri_get_module_name</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-module-path" title="p11_kit_uri_get_module_path ()">p11_kit_uri_get_module_path</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-pinfile" title="p11_kit_uri_get_pinfile ()">p11_kit_uri_get_pinfile</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-pin-source" title="p11_kit_uri_get_pin_source ()">p11_kit_uri_get_pin_source</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-pin-value" title="p11_kit_uri_get_pin_value ()">p11_kit_uri_get_pin_value</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-slot-id" title="p11_kit_uri_get_slot_id ()">p11_kit_uri_get_slot_id</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-slot-info" title="p11_kit_uri_get_slot_info ()">p11_kit_uri_get_slot_info</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-token-info" title="p11_kit_uri_get_token_info ()">p11_kit_uri_get_token_info</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-get-vendor-query" title="p11_kit_uri_get_vendor_query ()">p11_kit_uri_get_vendor_query</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-match-attributes" title="p11_kit_uri_match_attributes ()">p11_kit_uri_match_attributes</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-match-module-info" title="p11_kit_uri_match_module_info ()">p11_kit_uri_match_module_info</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-match-slot-info" title="p11_kit_uri_match_slot_info ()">p11_kit_uri_match_slot_info</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-match-token-info" title="p11_kit_uri_match_token_info ()">p11_kit_uri_match_token_info</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-message" title="p11_kit_uri_message ()">p11_kit_uri_message</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-new" title="p11_kit_uri_new ()">p11_kit_uri_new</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#P11-KIT-URI-NO-MEMORY:CAPS" title="P11_KIT_URI_NO_MEMORY">P11_KIT_URI_NO_MEMORY</a>, macro in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-parse" title="p11_kit_uri_parse ()">p11_kit_uri_parse</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#P11-KIT-URI-SCHEME:CAPS" title="P11_KIT_URI_SCHEME">P11_KIT_URI_SCHEME</a>, macro in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#P11-KIT-URI-SCHEME-LEN:CAPS" title="P11_KIT_URI_SCHEME_LEN">P11_KIT_URI_SCHEME_LEN</a>, macro in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-attribute" title="p11_kit_uri_set_attribute ()">p11_kit_uri_set_attribute</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-attributes" title="p11_kit_uri_set_attributes ()">p11_kit_uri_set_attributes</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-module-name" title="p11_kit_uri_set_module_name ()">p11_kit_uri_set_module_name</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-module-path" title="p11_kit_uri_set_module_path ()">p11_kit_uri_set_module_path</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-pinfile" title="p11_kit_uri_set_pinfile ()">p11_kit_uri_set_pinfile</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-pin-source" title="p11_kit_uri_set_pin_source ()">p11_kit_uri_set_pin_source</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-pin-value" title="p11_kit_uri_set_pin_value ()">p11_kit_uri_set_pin_value</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-slot-id" title="p11_kit_uri_set_slot_id ()">p11_kit_uri_set_slot_id</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-unrecognized" title="p11_kit_uri_set_unrecognized ()">p11_kit_uri_set_unrecognized</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="p11-kit-URIs.html#p11-kit-uri-set-vendor-query" title="p11_kit_uri_set_vendor_query ()">p11_kit_uri_set_vendor_query</a>, function in <a class="link" href="p11-kit-URIs.html" title="URIs">URIs</a>
</dt>
<dd></dd>
</div>
<div class="glossary">
<div class="titlepage"><div><div><h2 class="title">
<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
<a name="glsA"></a><h3 class="title">A</h3>
<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
<a name="glsE"></a><h3 class="title">E</h3>
<dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
<dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
<a name="glsI"></a><h3 class="title">I</h3>
<dt><span class="glossterm"><a name="annotation-glossterm-inout"></a>inout</span></dt>
<dd class="glossdef"><p>Parameter for input and for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
<a name="glsO"></a><h3 class="title">O</h3>
<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
<a name="glsT"></a><h3 class="title">T</h3>
<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
<dd class="glossdef"><p>Free data after the code is done.</p></dd>
<dt><span class="glossterm"><a name="annotation-glossterm-type"></a>type</span></dt>
<dd class="glossdef"><p>Override the parsed C type with given type</p></dd>
<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,230 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Remoting / Forwarding: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="index.html" title="p11-kit">
<link rel="prev" href="sharing.html" title="Proxy Module">
<link rel="next" href="trust-module.html" title="Trust Policy Module">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="sharing.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="trust-module.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="remoting"></a>Remoting / Forwarding</h1></div></div></div>
<p>Smartcards or hardware security modules (HSM) are technologies to
keep private keys on devices physically isolated to a device only available
to the user. That way only the intended user can use that device to authenticate,
authorize or perform other functions that involve the private keys. These come
usually in the form of a USB device or token which is plugged into the local computer.
</p>
<p>In modern "cloud" computing, it is often desirable to virtually transfer such
a device on remote servers. For example, one can sign software or documents on a remote
server, use the local smart card to authorize itself to Kerberos, or any other
possible use. There are various approaches to tackle that problem, and on different
levels of the smart card application stack. It is possible to forward the USB
device holding the smart card, or forward the lower-level PC/SC protocol which
some smart cards talk, or forward the high-level interface used to communicate
with smart cards, the PKCS#11 interface.</p>
<p>To address that problem, in p11-kit, we allow the forwarding of
the higher level smart card interface, PKCS#11. In the following paragraphs
we describe the approach and tools needed to perform that forwarding over SSH
secure communication channels.</p>
<div class="refsect1">
<a name="remoting-scenario"></a><h2>Scenario</h2>
<p>We assume having a local workstation, and a remote server. On the local
computer we have inserted a smart card, in our examples we use a Nitrokey
card with the OpenSC drivers. We will forward the card
from the workstation to the remote server.</p>
</div>
<div class="refsect1">
<a name="remoting-setup"></a><h2>Setting up the PKCS#11 forwarding server on a local client</h2>
<p>To forward a smartcard to a remote server, we first need to identify which
smartcards are available. To list the smartcards currently attached to the local
computer, use the p11tool command from the gnutls package. For example:
</p>
<pre class="programlisting">
$ p11tool --list-tokens
...
Token 6:
URL: pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0000000;token=UserPIN%20%28Daiki%27s%20token%29
Label: UserPIN (Daiki's token)
Type: Hardware token
Manufacturer: www.CardContact.de
Model: PKCS#15 emulated
Serial: DENK0000000
Module: opensc-pkcs11.so
...
</pre>
<p>This is the entry for the card we'd like to forward to remote system. The important
pieces are the 'pkcs11:' URL listed above, and the module name. Once we determine which
smartcard to forward, we expose it to a local Unix domain socket, with the following
p11-kit server command.
</p>
<pre class="programlisting">
$ p11-kit server --provider /usr/lib64/pkcs11/opensc-pkcs11.so "pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0000000;token=UserPIN%20%28Daiki%27s%20token%29"
</pre>
<p>Here we provide to the server the module location (optional) with the --provider
option, as well as the URL of the card. We copied the values from the Module and URL
lines of the p11tool output above. When the p11-kit server command starts, it will
print the address of the PKCS#11 unix domain socket and the process ID of the server.
</p>
<pre class="programlisting">
P11_KIT_SERVER_ADDRESS=unix:path=/run/user/12345/p11-kit/pkcs11-12345
P11_KIT_SERVER_PID=12345
</pre>
<p>For later use, set the variables output by the tool on your shell prompt
(e.g., copy and paste them or call the above p11-kit server command line with
<code class="literal">eval $(p11-kit server ...)</code>).
</p>
</div>
<div class="refsect1">
<a name="remoting-forwarding-socket"></a><h2>Forwarding and using the PKCS#11 Unix socket on the remote server</h2>
<p>On the remote server, we will initially forward the previously generated PKCS#11
unix socket, and then access the smart card through it. To access the forwarded socket
as if it were a smart card, a dedicated PKCS#11 module p11-kit-client.so is provided as
part of the p11-kit-server package.
</p>
</div>
<div class="refsect1">
<a name="remoting-forwarding-socket-prep"></a><h2>Preparing the remote system for PKCS#11 socket forwarding</h2>
<p>One important detail you should be aware of, is the file system location of the
forwarded socket. By convention, the p11-kit-client.so module utilizes the "user runtime
directory", managed by systemd; the directory is created when a user logs in, and removed
upon logout, so that the user doesn't need to manually clean up the socket file.
</p>
<p>To locate your user runtime directory, do:
</p>
<pre class="programlisting">
$ systemd-path user-runtime
/run/user/1000
</pre>
<p>The <code class="literal">p11-kit-client.so</code> module looks for the socket file under a
subdirectory (<code class="literal">/run/user/1000/p11-kit</code> in this example). To enable
auto-creation of the directory, do the following.
</p>
<pre class="programlisting">
$ systemctl --user enable p11-kit-client.service
</pre>
</div>
<div class="refsect1">
<a name="remoting-finally-forwarding"></a><h2>Forwarding the PKCS#11 socket</h2>
<p>We will use ssh to forward the local PKCS#11 unix socket to the remote server.
Following the p11-kit-client convention, we will forward the socket to the remote user
run-time path so that cleaning up on disconnect is not required. The remote location
of the run-time path can be obtained as follows.
</p>
<pre class="programlisting">
$ ssh [user]@[remotehost] systemd-path user-runtime
/run/user/1000
</pre>
<p>The number at the end of the path above is your user ID in that system
(and thus will vary from user to user). You can now forward the Unix domain socket
with the -R option of the ssh command, after replacing the example path with the
actual run-time path.
</p>
<pre class="programlisting">
$ ssh -R /run/user/[userID]/p11-kit/pkcs11:${P11_KIT_SERVER_ADDRESS#*=} [user]@[remotehost]
</pre>
<p>After successfully logging in to the remote host, you can use the forwarded
smartcard as if it were directly connected to the server using the
<code class="literal">p11-kit-client.so</code>. Note that if any error occurs during the forwarding
setup, you will see something like this on your terminal:
</p>
<pre class="programlisting">
Warning: remote port forwarding failed for listen path /run/user/...
</pre>
</div>
<div class="refsect1">
<a name="remoting-using"></a><h2>Using the forwarded PKCS#11 socket</h2>
<p>Let's first make sure the smart card works on the remote system, by listing it:
</p>
<pre class="programlisting">
$ ls -l /run/user/1000/p11-kit/pkcs11
$ p11tool --provider /usr/lib64/pkcs11/p11-kit-client.so --list-tokens
...
Token 0:
URL: pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0000000;token=UserPIN%20%28Daiki%27s%20token%29
Label: UserPIN (Daiki's token)
Type: Hardware token
Manufacturer: www.CardContact.de
Model: PKCS#15 emulated
Serial: DENK0000000
Module: (null)
...
</pre>
<p>We can similarly generate, copy objects or test certificates to the card using
the same command. Any applications which support PKCS#11 can perform cryptographic
operations through the client module.
</p>
</div>
<div class="refsect1">
<a name="remoting-registering"></a><h2>Registering the client module for use with OpenSSL and GnuTLS apps</h2>
<p>To utilize the p11-kit-client module with OpenSSL (via engine_pkcs11 provided
by the libp11 package) and GnuTLS applications, you have to register it in
p11-kit. To do it for the current user, use the following commands:
</p>
<pre class="programlisting">
$ mkdir .config/pkcs11/modules/
$ echo "module: /usr/lib64/pkcs11/p11-kit-client.so" &gt;.config/pkcs11/modules/p11-kit-client.module
</pre>
<p>Once this is done both OpenSSL and GnuTLS applications should work, for example:
</p>
<pre class="programlisting">
$ URL="pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0000000;token=UserPIN%20%28Daiki%27s%20token%29"
# Generate a key using gnutls p11tool
$ p11tool --generate-ecc --login --label test-key "$URL"
# generate a certificate request with the previous key using openssl
$ openssl req -engine pkcs11 -new -key "$URL;;object=test-key;type=private;pin-value=XXXX" \
-keyform engine -out req.pem -text -subj "/CN=Test user"
</pre>
<p>Note that the token URL remains the same in the forwarded system as in the original one.
</p>
</div>
<div class="refsect1">
<a name="remoting-ssh"></a><h2>Using the client module with OpenSSH</h2>
<p>To re-use the already forwarded smartcard for authentication with another remote host, you can run ssh and provide the -I option with p11-kit-client.so. For example:
</p>
<pre class="programlisting">
$ ssh -I /usr/lib64/pkcs11/p11-kit-client.so [user]@[anotherhost]
</pre>
</div>
<div class="refsect1">
<a name="remoting-nss"></a><h2>Using the client module with NSS applications</h2>
<p>To register the forwarded smartcard in NSS applications, you can set it up with
the modutil command, as follows.
</p>
<pre class="programlisting">
$ sudo modutil -dbdir /etc/pki/nssdb -add p11-kit-client -libfile /usr/lib64/pkcs11/p11-kit-client.so
$ modutil -dbdir /etc/pki/nssdb -list
...
3. p11-kit-client
library name: /usr/lib64/pkcs11/p11-kit-client.so
uri: pkcs11:library-manufacturer=OpenSC%20Project;library-description=OpenSC%20smartcard%20framework;library-version=0.17
slots: 1 slot attached
status: loaded
slot: Nitrokey Nitrokey HSM (010000000000000000000000) 00 00
token: UserPIN (Daiki's token)
uri: pkcs11:token=UserPIN%20(Daiki's%20token);manufacturer=www.CardContact.de;serial=DENK0000000;model=PKCS%2315%20emulated
</pre>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

View File

@@ -0,0 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Managed modules: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="sharing.html" title="Sharing PKCS#11 modules">
<link rel="prev" href="sharing.html" title="Sharing PKCS#11 modules">
<link rel="next" href="sharing.html" title="Proxy Module">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="sharing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="sharing.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="sharing.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="sharing-managed"></a>Managed modules</h2></div></div></div>
<p><code class="literal">p11-kit</code> wraps PKCS#11 modules to manage
them and customize their functionality so that they are able
to be shared between multiple callers in the same process.</p>
<p>Each caller that uses the
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a>
or <a class="link" href="p11-kit-Modules.html#p11-kit-module-load" title="p11_kit_module_load ()"><code class="function">p11_kit_module_load()</code></a>
function gets independent wrapped PKCS#11 module(s). This is unless a caller
or module configuration specifies that a module should be used in an
unmanaged fashion.</p>
<p>When modules are managed, the following aspects are wrapped and
coordinated:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p>Calls to <code class="literal">C_Initialize</code> and
<code class="literal">C_Finalize</code> can be called by multiple
callers.</p>
<p>The first time that the managed module
<code class="literal">C_Initialize</code> is called, the PKCS#11 module's actual
<code class="literal">C_Initialize</code> function is called. Subsequent calls by
other callers will cause <code class="literal">p11-kit</code> to increment an
internal initialization count, rather than calling
<code class="literal">C_Initialize</code> again.</p>
<p>Multiple callers can call the managed
<code class="literal">C_Initialize</code> function concurrently from different
threads and <code class="literal">p11-kit</code> will guarantee that this managed
in a thread-safe manner.</p>
</li>
<li class="listitem">
<p>When the managed module <code class="literal">C_Finalize</code> is used
to finalize a module, each time it is called it decrements the internal
initialization count for that module. When the internal initialization
count reaches zero, the module's actual <code class="literal">C_Finalize</code>
function is called.</p>
<p>Multiple callers can call the managed <code class="literal">C_Finalize</code>
function concurrently from different threads and <code class="literal">p11-kit</code>
will guarantee that this managed in a thread-safe manner.</p>
</li>
<li class="listitem"><p>Call to <code class="literal">C_CloseAllSessions</code> only close the
sessions that the caller of the managed module has opened. This allows the
<code class="literal">C_CloseAllSessions</code> function to be used without closing
sessions for other callers of the same PKCS#11 module.</p></li>
<li class="listitem"><p>Managed modules have ability to log PKCS#11 method calls for debugging
purposes. See the <a class="link" href="pkcs11-conf.html#option-log-calls"><code class="literal">log-calls = yes</code></a>
module configuration option.</p></li>
<li class="listitem"><p>Managed modules have the ability to be remoted to another machine or
isolated in their own process.
See the <a class="link" href="pkcs11-conf.html#option-remote"><code class="literal">remote = ...</code></a>
module configuration option.</p></li>
</ul></div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Proxy Module: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="index.html" title="p11-kit">
<link rel="prev" href="sharing-managed.html" title="Managed modules">
<link rel="next" href="remoting.html" title="Remoting / Forwarding">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="sharing-managed.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="remoting.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="sharing"></a>Proxy Module</h1></div></div></div>
<p>When an application is aware of the fact that coordination
is necessary between multiple consumers of a PKCS#11 module, and wants
to load standard configured PKCS#11 modules, it can link to
<code class="literal">p11-kit</code> and use the functions there to provide this
functionality.</p>
<p>However most current consumers of PKCS#11 are ignorant of
this problem, and do not link to p11-kit. In order to solve this
multiple initialization problem for all applications,
<code class="literal">p11-kit</code> provides a proxy compatibility
module.</p>
<p>This proxy module acts like a normal PKCS#11 module, but
internally loads a preconfigured set of PKCS#11 modules and
manages their features as described earlier. Each slot in the configured modules
is exposed as a slot of the <code class="literal">p11-kit</code> proxy module. The proxy
module is then used as a normal PKCS#11 module would be. It can be loaded by
crypto libraries like NSS and behaves as expected.</p>
<p>The <code class="literal">C_GetFunctionList</code>,
<code class="literal">C_GetInterfaceList</code> and <code class="literal">C_GetInterface</code>
exported entry points of the proxy module returns a new managed PKCS#11 module
each time it is called. These managed instances are released when the proxy
module is unloaded.</p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,531 @@
body
{
font-family: cantarell, sans-serif;
}
.synopsis, .classsynopsis
{
/* tango:aluminium 1/2 */
background: #eeeeec;
background: rgba(238, 238, 236, 0.5);
border: solid 1px rgb(238, 238, 236);
padding: 0.5em;
}
.programlisting
{
/* tango:sky blue 0/1 */
/* fallback for no rgba support */
background: #e6f3ff;
border: solid 1px #729fcf;
background: rgba(114, 159, 207, 0.1);
border: solid 1px rgba(114, 159, 207, 0.2);
padding: 0.5em;
}
.variablelist
{
padding: 4px;
margin-left: 3em;
}
.variablelist td:first-child
{
vertical-align: top;
}
span.nowrap {
white-space: nowrap;
}
div.gallery-float
{
float: left;
padding: 10px;
}
div.gallery-float img
{
border-style: none;
}
div.gallery-spacer
{
clear: both;
}
a, a:visited
{
text-decoration: none;
/* tango:sky blue 2 */
color: #3465a4;
}
a:hover
{
text-decoration: underline;
/* tango:sky blue 1 */
color: #729fcf;
}
.function_type,
.variable_type,
.property_type,
.signal_type,
.parameter_name,
.struct_member_name,
.union_member_name,
.define_keyword,
.datatype_keyword,
.typedef_keyword
{
text-align: right;
}
/* dim non-primary columns */
.c_punctuation,
.function_type,
.variable_type,
.property_type,
.signal_type,
.define_keyword,
.datatype_keyword,
.typedef_keyword,
.property_flags,
.signal_flags,
.parameter_annotations,
.enum_member_annotations,
.struct_member_annotations,
.union_member_annotations
{
color: #888a85;
}
.function_type a,
.function_type a:visited,
.function_type a:hover,
.property_type a,
.property_type a:visited,
.property_type a:hover,
.signal_type a,
.signal_type a:visited,
.signal_type a:hover,
.signal_flags a,
.signal_flags a:visited,
.signal_flags a:hover
{
color: #729fcf;
}
td p
{
margin: 0.25em;
}
div.informaltable table[border="1"],
div.table table
{
border-collapse: collapse;
border-spacing: 0px;
/* tango:aluminium 3 */
border: solid 1px #babdb6;
}
div.informaltable table[border="1"] td,
div.informaltable table th,
div.table table td, div.table table th
{
/* tango:aluminium 3 */
border: solid 1px #babdb6;
padding: 3px;
vertical-align: top;
}
div.informaltable table[border="1"] th,
div.table table th
{
/* tango:aluminium 2 */
background-color: #d3d7cf;
}
h4
{
color: #555753;
margin-top: 1em;
margin-bottom: 1em;
}
hr
{
/* tango:aluminium 1 */
color: #d3d7cf;
background: #d3d7cf;
border: none 0px;
height: 1px;
clear: both;
margin: 2.0em 0em 2.0em 0em;
}
dl.toc dt
{
padding-bottom: 0.25em;
}
dl.toc > dt
{
padding-top: 0.25em;
padding-bottom: 0.25em;
font-weight: bold;
}
dl.toc > dl
{
padding-bottom: 0.5em;
}
.parameter
{
font-style: normal;
}
.footer
{
padding-top: 3.5em;
/* tango:aluminium 3 */
color: #babdb6;
text-align: center;
font-size: 80%;
}
.informalfigure,
.figure
{
margin: 1em;
}
.informalexample,
.example
{
margin-top: 1em;
margin-bottom: 1em;
}
.warning
{
/* tango:orange 0/1 */
background: #ffeed9;
background: rgba(252, 175, 62, 0.1);
border-color: #ffb04f;
border-color: rgba(252, 175, 62, 0.2);
}
.note
{
/* tango:chameleon 0/0.5 */
background: #d8ffb2;
background: rgba(138, 226, 52, 0.1);
border-color: #abf562;
border-color: rgba(138, 226, 52, 0.2);
}
div.blockquote
{
border-color: #eeeeec;
}
.note, .warning, div.blockquote
{
padding: 0.5em;
border-width: 1px;
border-style: solid;
margin: 2em;
}
.note p, .warning p
{
margin: 0;
}
div.warning h3.title,
div.note h3.title
{
display: none;
}
p + div.section
{
margin-top: 1em;
}
div.refnamediv,
div.refsynopsisdiv,
div.refsect1,
div.refsect2,
div.toc,
div.section
{
margin-bottom: 1em;
}
/* blob links */
h2 .extralinks, h3 .extralinks
{
float: right;
/* tango:aluminium 3 */
color: #babdb6;
font-size: 80%;
font-weight: normal;
}
.lineart
{
color: #d3d7cf;
font-weight: normal;
}
.annotation
{
/* tango:aluminium 5 */
color: #555753;
font-weight: normal;
}
.structfield
{
font-style: normal;
font-weight: normal;
}
acronym,abbr
{
border-bottom: 1px dotted gray;
}
.listing_frame {
/* tango:sky blue 1 */
border: solid 1px #729fcf;
border: solid 1px rgba(114, 159, 207, 0.2);
padding: 0px;
}
.listing_lines, .listing_code {
margin-top: 0px;
margin-bottom: 0px;
padding: 0.5em;
}
.listing_lines {
/* tango:sky blue 0.5 */
background: #a6c5e3;
background: rgba(114, 159, 207, 0.2);
/* tango:aluminium 6 */
color: #2e3436;
}
.listing_code {
/* tango:sky blue 0 */
background: #e6f3ff;
background: rgba(114, 159, 207, 0.1);
}
.listing_code .programlisting {
/* override from previous */
border: none 0px;
padding: 0px;
background: none;
}
.listing_lines pre, .listing_code pre {
margin: 0px;
}
@media screen {
/* these have a <sup> as a first child, but since there are no parent selectors
* we can't use that. */
a.footnote
{
position: relative;
top: 0em ! important;
}
/* this is needed so that the local anchors are displayed below the naviagtion */
div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
{
display: inline-block;
position: relative;
top:-5em;
}
/* this seems to be a bug in the xsl style sheets when generating indexes */
div.index div.index
{
top: 0em;
}
/* make space for the fixed navigation bar and add space at the bottom so that
* link targets appear somewhat close to top
*/
body
{
padding-top: 2.5em;
padding-bottom: 500px;
max-width: 60em;
}
p
{
max-width: 60em;
}
/* style and size the navigation bar */
table.navigation#top
{
position: fixed;
background: #e2e2e2;
border-bottom: solid 1px #babdb6;
border-spacing: 5px;
margin-top: 0;
margin-bottom: 0;
top: 0;
left: 0;
z-index: 10;
}
table.navigation#top td
{
padding-left: 6px;
padding-right: 6px;
}
.navigation a, .navigation a:visited
{
/* tango:sky blue 3 */
color: #204a87;
}
.navigation a:hover
{
/* tango:sky blue 2 */
color: #3465a4;
}
td.shortcuts
{
/* tango:sky blue 2 */
color: #3465a4;
font-size: 80%;
white-space: nowrap;
}
td.shortcuts .dim
{
color: #babdb6;
}
.navigation .title
{
font-size: 80%;
max-width: none;
margin: 0px;
font-weight: normal;
}
}
@media screen and (min-width: 60em) {
/* screen larger than 60em */
body { margin: auto; }
}
@media screen and (max-width: 60em) {
/* screen less than 60em */
#nav_hierarchy { display: none; }
#nav_interfaces { display: none; }
#nav_prerequisites { display: none; }
#nav_derived_interfaces { display: none; }
#nav_implementations { display: none; }
#nav_child_properties { display: none; }
#nav_style_properties { display: none; }
#nav_index { display: none; }
#nav_glossary { display: none; }
.gallery_image { display: none; }
.property_flags { display: none; }
.signal_flags { display: none; }
.parameter_annotations { display: none; }
.enum_member_annotations { display: none; }
.struct_member_annotations { display: none; }
.union_member_annotations { display: none; }
/* now that a column is hidden, optimize space */
col.parameters_name { width: auto; }
col.parameters_description { width: auto; }
col.struct_members_name { width: auto; }
col.struct_members_description { width: auto; }
col.enum_members_name { width: auto; }
col.enum_members_description { width: auto; }
col.union_members_name { width: auto; }
col.union_members_description { width: auto; }
.listing_lines { display: none; }
}
@media print {
table.navigation {
visibility: collapse;
display: none;
}
div.titlepage table.navigation {
visibility: visible;
display: table;
background: #e2e2e2;
border: solid 1px #babdb6;
margin-top: 0;
margin-bottom: 0;
top: 0;
left: 0;
height: 3em;
}
}
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.hll { background-color: #ffffcc }
.c { color: #3D7B7B; font-style: italic } /* Comment */
.err { border: 1px solid #FF0000 } /* Error */
.k { color: #008000; font-weight: bold } /* Keyword */
.o { color: #666666 } /* Operator */
.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
.cp { color: #9C6500 } /* Comment.Preproc */
.cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
.c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
.cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
.gd { color: #A00000 } /* Generic.Deleted */
.ge { font-style: italic } /* Generic.Emph */
.ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.gr { color: #E40000 } /* Generic.Error */
.gh { color: #000080; font-weight: bold } /* Generic.Heading */
.gi { color: #008400 } /* Generic.Inserted */
.go { color: #717171 } /* Generic.Output */
.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.gt { color: #0044DD } /* Generic.Traceback */
.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.kp { color: #008000 } /* Keyword.Pseudo */
.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.kt { color: #B00040 } /* Keyword.Type */
.m { color: #666666 } /* Literal.Number */
.s { color: #BA2121 } /* Literal.String */
.na { color: #687822 } /* Name.Attribute */
.nb { color: #008000 } /* Name.Builtin */
.nc { color: #0000FF; font-weight: bold } /* Name.Class */
.no { color: #880000 } /* Name.Constant */
.nd { color: #AA22FF } /* Name.Decorator */
.ni { color: #717171; font-weight: bold } /* Name.Entity */
.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
.nf { color: #0000FF } /* Name.Function */
.nl { color: #767600 } /* Name.Label */
.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.nt { color: #008000; font-weight: bold } /* Name.Tag */
.nv { color: #19177C } /* Name.Variable */
.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.w { color: #bbbbbb } /* Text.Whitespace */
.mb { color: #666666 } /* Literal.Number.Bin */
.mf { color: #666666 } /* Literal.Number.Float */
.mh { color: #666666 } /* Literal.Number.Hex */
.mi { color: #666666 } /* Literal.Number.Integer */
.mo { color: #666666 } /* Literal.Number.Oct */
.sa { color: #BA2121 } /* Literal.String.Affix */
.sb { color: #BA2121 } /* Literal.String.Backtick */
.sc { color: #BA2121 } /* Literal.String.Char */
.dl { color: #BA2121 } /* Literal.String.Delimiter */
.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.s2 { color: #BA2121 } /* Literal.String.Double */
.se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
.sh { color: #BA2121 } /* Literal.String.Heredoc */
.si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
.sx { color: #008000 } /* Literal.String.Other */
.sr { color: #A45A77 } /* Literal.String.Regex */
.s1 { color: #BA2121 } /* Literal.String.Single */
.ss { color: #19177C } /* Literal.String.Symbol */
.bp { color: #008000 } /* Name.Builtin.Pseudo */
.fm { color: #0000FF } /* Name.Function.Magic */
.vc { color: #19177C } /* Name.Variable.Class */
.vg { color: #19177C } /* Name.Variable.Global */
.vi { color: #19177C } /* Name.Variable.Instance */
.vm { color: #19177C } /* Name.Variable.Magic */
.il { color: #666666 } /* Literal.Number.Integer.Long */

View File

@@ -0,0 +1,40 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Manual Pages: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="index.html" title="p11-kit">
<link rel="prev" href="trust-disable.html" title="Disabling the Trust Policy Module">
<link rel="next" href="p11-kit.html" title="p11-kit">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="trust-disable.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="p11-kit.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="tools"></a>Manual Pages</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="p11-kit.html">p11-kit</a></span><span class="refpurpose"> — Tool for operating on configured PKCS#11 modules</span>
</dt>
<dt>
<span class="refentrytitle"><a href="pkcs11-conf.html">pkcs11.conf</a></span><span class="refpurpose"> — Configuration files for PKCS#11 modules</span>
</dt>
<dt>
<span class="refentrytitle"><a href="trust.html">trust</a></span><span class="refpurpose"> — Tool for operating on the trust policy store</span>
</dt>
</dl></div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,44 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Disabling the Trust Policy Module: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="trust-module.html" title="Trust Policy Module">
<link rel="prev" href="trust-glib-networking.html" title="Using the Trust Policy Module with glib-networking">
<link rel="next" href="tools.html" title="Manual Pages">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="trust-module.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="trust-glib-networking.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="tools.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="trust-disable"></a>Disabling the Trust Policy Module</h2></div></div></div>
<p>This module is installed and enabled by default. It may
be disabled in the following ways:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>Use the <code class="option">--disable-trust-module</code>
during the <a class="link" href="devel-building.html#devel-building-configure" title="Extra Configuration Options">p11-kit
build</a>.</p></li>
<li class="listitem"><p>Disable loading trust policy information
from this module by adding a file to <code class="literal">/etc/pkcs11/modules</code>
called <code class="literal">p11-kit-trust.module</code> containing a
<code class="literal">trust-policy: no</code> line.</p></li>
<li class="listitem"><p>Disable this module completely by
adding a file to <code class="literal">/etc/pkcs11/modules</code>
called <code class="literal">p11-kit-trust.module</code> containing a
<code class="literal">enable-in:</code> line (without a value).</p></li>
</ul></div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Using the Trust Policy Module with glib-networking: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="trust-module.html" title="Trust Policy Module">
<link rel="prev" href="trust-nss.html" title="Using the Trust Policy Module with NSS">
<link rel="next" href="trust-disable.html" title="Disabling the Trust Policy Module">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="trust-module.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="trust-nss.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="trust-disable.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="trust-glib-networking"></a>Using the Trust Policy Module with glib-networking</h2></div></div></div>
<p>The trust policy module can be used as a source of trust
information for glib-networking's <code class="literal">gnutls-pkcs11</code> backend.
The module provides PKCS#11 trust assertion objects as expected.</p>
<p>The module should work by default if the <code class="literal">gnutls-pkcs11</code>
backend is selected as the glib-networking TLS backend.</p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Trust Policy Module: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="index.html" title="p11-kit">
<link rel="prev" href="remoting.html" title="Remoting / Forwarding">
<link rel="next" href="trust-nss.html" title="Using the Trust Policy Module with NSS">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="remoting.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="trust-nss.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="trust-module"></a>Trust Policy Module</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="trust-module.html#trust-files">Paths loaded by the Module</a></span></dt>
<dt><span class="section"><a href="trust-nss.html">Using the Trust Policy Module with NSS</a></span></dt>
<dt><span class="section"><a href="trust-glib-networking.html">Using the Trust Policy Module with glib-networking</a></span></dt>
<dt><span class="section"><a href="trust-disable.html">Disabling the Trust Policy Module</a></span></dt>
</dl></div>
<p>The trust module provides system certificate anchors, blocklists
and other trust policy to crypto libraries applications. This
information is exposed as PKCS#11 objects.</p>
<p>You can use the <a class="link" href="trust.html" title="trust">trust</a> command line
tool to examine and modify the trust policy store.</p>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="trust-files"></a>Paths loaded by the Module</h2></div></div></div>
<p>The trust module loads certificates and trust policy information
from preconfigured paths and allows them to be looked up via PKCS#11.
The input paths can be determined with using the following command:</p>
<pre class="programlisting">
$ pkg-config --variable p11_trust_paths p11-kit-1
/usr/share/p11-kit/trust:/etc/pki/trust
</pre>
<p>Files in the following formats are supported for loading by the
trust policy module:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">X.509 certificates</span></p></td>
<td><p>X.509 certificates in raw DER format. Does not
automatically contain trust policy information.</p></td>
</tr>
<tr>
<td><p><span class="term">PEM certificates</span></p></td>
<td><p>X.509 certificates in PEM format. These have a
<code class="literal">BEGIN CERTIFICATE</code> header. This file does not
automatically contain trust policy information.</p></td>
</tr>
<tr>
<td><p><span class="term">OpenSSL trust certificates</span></p></td>
<td><p>OpenSSL specific certificates in PEM format
that contain trust information. These have a
<code class="literal">BEGIN TRUSTED CERTIFICATE</code> PEM header. Both
trust anchor and blocklist information can be loaded
from these files.</p></td>
</tr>
</tbody>
</table></div>
<p>If the input path is a file, then it is loaded. Certificate(s) in the
file are automatically treated as anchors, unless they contain alternate
trust policy information.</p>
<p>If the input path is a directory, files inside that directory are
parsed and loaded. If the file contains trust policy information (such as the
OpenSSL trust certificates) then it will be respected. Files without trust policy
information are not automatically marked as an anchor or distrusted.</p>
<p>In addition two optional subdirectories of the input path are loaded. Files
placed in the <code class="literal">anchors/</code> subdirectory become trust anchors
when they do not contain trust policy information. Files placed in the
<code class="literal">blocklist/</code> subdirectory are distrusted whether they
contain trust information or not.</p>
<p>The first input path becomes the first PKCS#11 token of the trust
module, and has the highest priority when callers search for trust
policy information.</p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,40 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Using the Trust Policy Module with NSS: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="trust-module.html" title="Trust Policy Module">
<link rel="prev" href="trust-module.html" title="Trust Policy Module">
<link rel="next" href="trust-glib-networking.html" title="Using the Trust Policy Module with glib-networking">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="trust-module.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="trust-module.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="trust-glib-networking.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="trust-nss"></a>Using the Trust Policy Module with NSS</h2></div></div></div>
<p>The trust policy module is a drop in replacement for the
<code class="literal">libnssckbi.so</code> module and thus works out of
the box with NSS. The trust policy module provides NSS style
PKCS#11 trust objects for NSS to retrieve.</p>
<p>The module may be used to replace the
<code class="literal">libnssckbi.so</code> file via an distribution
specific alternatives mechanism or otherwise.</p>
<p>Alternatively NSS applications like Firefox or Thunderbird
may be configured to use the trust policy module by adding
the <code class="literal">p11-kit-trust.so</code> PKCS#11 module via their
GUI or command line configuration.</p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

View File

@@ -0,0 +1,440 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>trust: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="tools.html" title="Manual Pages">
<link rel="prev" href="pkcs11-conf.html" title="pkcs11.conf">
<link rel="next" href="reference.html" title="API Reference">
<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="pkcs11-conf.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="reference.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="trust"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">trust</span></h2>
<p>trust — Tool for operating on the trust policy store</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p><code class="command">trust list</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">trust extract</code> --filter=&lt;what&gt; --format=&lt;type&gt; /path/to/destination
</p></div>
<div class="cmdsynopsis"><p><code class="command">trust anchor</code> /path/to/certificate.crt
</p></div>
<div class="cmdsynopsis"><p><code class="command">trust dump</code> </p></div>
<div class="cmdsynopsis"><p><code class="command">trust check-format</code> /path/to/file.p11-kit...
</p></div>
</div>
<div class="refsect1">
<a name="trust-description"></a><h2>Description</h2>
<p><span class="command"><strong>trust</strong></span> is a command line tool to examine and
modify the shared trust policy store.</p>
<p>See the various sub commands below. The following global options
can be used:</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">-v, --verbose</code></span></p></td>
<td><p>Run in verbose mode with debug
output.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">-q, --quiet</code></span></p></td>
<td><p>Run in quiet mode without warning or
failure messages.</p></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="trust-list"></a><h2>List</h2>
<p>List trust policy store items.</p>
<pre class="programlisting">
$ trust list
</pre>
<p>List information about the various items in the trust policy store.
Each item is listed with it's PKCS#11 URI and some descriptive information.</p>
<p>You can specify the following options to control what to list.</p>
<dt><span class="term"><code class="option">--filter=&lt;what&gt;</code></span></dt>
<dd>
<p>Specifies what certificates to extract. You can specify the following values:
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">ca-anchors</code></span></p></td>
<td><p>Certificate anchors</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">trust-policy</code></span></p></td>
<td><p>Anchors and blocklist (default)</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">blocklist</code></span></p></td>
<td><p>Distrusted certificates</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">certificates</code></span></p></td>
<td><p>All certificates</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">pkcs11:object=xx</code></span></p></td>
<td><p>A PKCS#11 URI to filter with</p></td>
</tr>
</tbody>
</table></div>
<p>
</p>
<p>If an output format is chosen that cannot support type what has been
specified by the filter, a message will be printed.</p>
<p>None of the available formats support storage of blocklist entries
that do not contain a full certificate. Thus any certificates distrusted by
their issuer and serial number alone, are not included in the extracted
blocklist.</p>
</dd>
<dt><span class="term"><code class="option">--purpose=&lt;usage&gt;</code></span></dt>
<dd>
<p>Limit to certificates usable for the given purpose
You can specify one of the following values:
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">server-auth</code></span></p></td>
<td><p>For authenticating servers</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">client-auth</code></span></p></td>
<td><p>For authenticating clients</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">email</code></span></p></td>
<td><p>For email protection</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">code-signing</code></span></p></td>
<td><p>For authenticated signed code</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">1.2.3.4.5...</code></span></p></td>
<td><p>An arbitrary purpose OID</p></td>
</tr>
</tbody>
</table></div>
<p>
</p>
</dd>
</div>
<div class="refsect1">
<a name="trust-anchor"></a><h2>Anchor</h2>
<p>Store or remove trust anchors.</p>
<pre class="programlisting">
$ trust anchor /path/to/certificate.crt
$ trust anchor --remove /path/to/certificate.crt
$ trust anchor --remove "pkcs11:id=%AA%BB%CC%DD%EE;type=cert"
</pre>
<p>Store or remove trust anchors in the trust policy store. These are
usually root certificate authorities.</p>
<p>Specify either the <code class="option">--store</code> or <code class="option">--remove</code>
operations. If no operation is specified then <code class="option">--store</code> is
assumed.</p>
<p>When storing, one or more certificate files are expected on the
command line. These are stored as anchors, unless they are already
present.</p>
<p>When removing an anchor, either specify certificate files or
PKCS#11 URI's on the command line. Matching anchors will be removed.</p>
<p>It may be that this command needs to be run as root in order to
modify the system trust policy store, if no user specific store is
available.</p>
<p>You can specify the following options.</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--remove</code></span></p></td>
<td><p>Remove one or more anchors from the trust
policy store. Specify certificate files or PKCS#11 URI's
on the command line.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--store</code></span></p></td>
<td><p>Store one or more anchors to the trust
policy store. Specify certificate files on the command
line.</p></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="trust-extract"></a><h2>Extract</h2>
<p>Extract trust policy from the shared trust policy store.</p>
<pre class="programlisting">
$ trust extract --format=x509-directory --filter=ca-anchors /path/to/directory
</pre>
<p>You can specify the following options to control what to extract.
The <code class="option">--filter</code> and <code class="option">--format</code> arguments
should be specified. By default this command will not overwrite the
destination file or directory.</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">--comment</code></span></p></td>
<td><p>Add identifying comments to PEM bundle output files
before each certificate.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--filter=&lt;what&gt;</code></span></p></td>
<td>
<p>Specifies what certificates to extract. You can specify the following values:
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">ca-anchors</code></span></p></td>
<td><p>Certificate anchors (default)</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">trust-policy</code></span></p></td>
<td><p>Anchors and blocklist</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">blocklist</code></span></p></td>
<td><p>Distrusted certificates</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">certificates</code></span></p></td>
<td><p>All certificates</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">pkcs11:object=xx</code></span></p></td>
<td><p>A PKCS#11 URI</p></td>
</tr>
</tbody>
</table></div>
<p>
</p>
<p>If an output format is chosen that cannot support type what has been
specified by the filter, a message will be printed.</p>
<p>None of the available formats support storage of blocklist entries
that do not contain a full certificate. Thus any certificates distrusted by
their issuer and serial number alone, are not included in the extracted
blocklist.</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--format=&lt;type&gt;</code></span></p></td>
<td>
<p>The format of the destination file or directory.
You can specify one of the following values:
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">x509-file</code></span></p></td>
<td><p>DER X.509 certificate file</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">x509-directory</code></span></p></td>
<td><p>directory of X.509 certificates</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">pem-bundle</code></span></p></td>
<td><p>File containing one or more certificate PEM blocks</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">pem-directory</code></span></p></td>
<td><p>Directory of PEM files each containing one certificate</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">pem-directory-hash</code></span></p></td>
<td><p>Directory of PEM files each containing one certificate, with hash symlinks</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">openssl-bundle</code></span></p></td>
<td><p>OpenSSL specific PEM bundle of certificates</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">openssl-directory</code></span></p></td>
<td><p>Directory of OpenSSL specific PEM files</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">java-cacerts</code></span></p></td>
<td><p>Java keystore 'cacerts' certificate bundle</p></td>
</tr>
</tbody>
</table></div>
<p>
</p>
</td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--overwrite</code></span></p></td>
<td><p>Overwrite output file or directory.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">--purpose=&lt;usage&gt;</code></span></p></td>
<td>
<p>Limit to certificates usable for the given purpose
You can specify one of the following values:
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">server-auth</code></span></p></td>
<td><p>For authenticating servers</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">client-auth</code></span></p></td>
<td><p>For authenticating clients</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">email</code></span></p></td>
<td><p>For email protection</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">code-signing</code></span></p></td>
<td><p>For authenticated signed code</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">1.2.3.4.5...</code></span></p></td>
<td><p>An arbitrary purpose OID</p></td>
</tr>
</tbody>
</table></div>
<p>
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="trust-extract-compat"></a><h2>Extract Compat</h2>
<p>Extract compatibility trust certificate bundles.</p>
<pre class="programlisting">
$ trust extract-compat
</pre>
<p>OpenSSL, Java and some versions of GnuTLS cannot currently read
trust information directly from the trust policy store. This command
extracts trust information such as certificate anchors for use by
these libraries.</p>
<p>What this command does, and where it extracts the files is
distribution or site specific. Packagers or administrators are expected
customize this command.</p>
</div>
<div class="refsect1">
<a name="trust-dump"></a><h2>Dump</h2>
<p>Dump PKCS#11 items in the various tokens.</p>
<pre class="programlisting">
$ trust dump
</pre>
<p>Dump information about the various PKCS#11 items in the tokens.
Each item is dumped with it's PKCS#11 URI and information in the .p11-kit
persistence format.</p>
<p>You can specify the following options to control what to dump.</p>
<dt><span class="term"><code class="option">--filter=&lt;what&gt;</code></span></dt>
<dd>
<p>Specifies what certificates to extract. You can specify the following values:
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="option">all</code></span></p></td>
<td><p>All objects. This is the default</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="option">pkcs11:object=xx</code></span></p></td>
<td><p>A PKCS#11 URI to filter with</p></td>
</tr>
</tbody>
</table></div>
<p>
</p>
</dd>
</div>
<div class="refsect1">
<a name="trust-check-format"></a><h2>Check Format</h2>
<p>Check the format of .p11-kit files.</p>
<pre class="programlisting">
$ trust check-format /path/to/file.p11-kit...
</pre>
<p>Administrators sometimes need to write a custom .p11-kit file to amend
the trust information. This is an error prone process as the file format is
mainly for machine processing. Administrators can use this command to check
whether a file has a correct .p11-kit format.</p>
<p>This command takes an arbitrary number of files as an input. Each file
is then analysed and any mismatch with the .p11-kit format is reported on the
standard error output. After the file is processed a check result is printed
on the standard output.</p>
</div>
<div class="refsect1">
<a name="trust-bugs"></a><h2>Bugs</h2>
<p>
Please send bug reports to either the distribution bug tracker
or the upstream bug tracker at
<a class="ulink" href="https://github.com/p11-glue/p11-kit/issues/" target="_top">https://github.com/p11-glue/p11-kit/issues/</a>.
</p>
</div>
<div class="refsect1">
<a name="trust-see-also"></a><h2>See also</h2>
<span class="simplelist"><span class="citerefentry"><span class="refentrytitle">p11-kit</span>(8)</span></span><p>An explanatory document about storing trust policy:
<a class="ulink" href="https://p11-glue.github.io/p11-glue/doc/storing-trust-policy/" target="_top">https://p11-glue.github.io/p11-glue/doc/storing-trust-policy/</a></p>
<p>
Further details available in the p11-kit online documentation at
<a class="ulink" href="https://p11-glue.github.io/p11-glue/p11-kit/manual/" target="_top">https://p11-glue.github.io/p11-glue/p11-kit/manual/</a>.
</p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.34.0</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More