1 # SOME DESCRIPTIVE TITLE.
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "Report-Msgid-Bugs-To: bjk@luxsci.net\n"
11 "POT-Creation-Date: 2013-02-23 10:06-0500\n"
12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 "Language-Team: LANGUAGE <LL@li.org>\n"
17 "Content-Type: text/plain; charset=CHARSET\n"
18 "Content-Transfer-Encoding: 8bit\n"
20 #: src/mem.c:183 src/mem.c:291
22 msgid "%s: %p not found"
27 msgid "Inquired data too large: have=%u, max=%u"
32 msgid "Keygrip is %s, bits=%i"
38 "A %s is required to unlock the secret key for the encrypted data file \"%s"
39 "\". Please enter the %s below."
42 #: src/agent.c:400 src/agent.c:401
48 msgid "Signed with keygrip %s"
53 msgid "Encrypted with keygrip %s"
63 msgid "WARNING: keylen=%i, truncated to %i."
68 msgid "The passphrase is too large: have=%u, max=%u."
72 msgid "Generating a new keypair ..."
77 msgid "Using passphrase obtained from file '%s'"
82 msgid "Success! Keygrip is %s."
87 msgid "Signed with keygrip %s."
92 msgid "reloading configuration file '%s'"
101 msgid "gcry_check_version(): Incompatible libgcrypt. Wanted %s, got %s.\n"
114 msgid "exiting, fd=%i"
119 msgid "Importing XML from '%s'. Output will be written to '%s' ..."
123 msgid "Could not find root \"pwmd\" element."
132 msgid "Trying to add datafile '%s' to the file cache ..."
137 msgid "%s: Invalid characters in filename"
142 msgid "Successfully added '%s' to the cache."
147 msgid "new connection: tid=%p, fd=%i, addr=%s"
152 msgid "new connection: tid=%p, fd=%i"
157 msgid "caught signal %i (%s)"
161 msgid "clearing file cache"
165 msgid "waiting for all clients to disconnect"
170 msgid "%i clients remain"
175 msgid "%s started for user %s"
180 msgid "Listening on %s and TCP port %i"
183 #: src/pwmd.c:1976 src/pwmd.c:1978
185 msgid "Listening on %s"
189 msgid "Received second termination request. Exiting."
194 "Failed to add a file to the cache. Use --ignore to force startup. Exiting."
199 msgid "Converting version 2 data file \"%s\" ..."
204 msgid "Using passphrase file \"%s\" for decryption ..."
209 msgid "Output written to \"%s\"."
215 "Usage: %s [OPTIONS] [file1] [...]\n"
216 " -f, --rcfile=filename load the specfied configuration file\n"
217 " (~/.pwmd/config)\n"
218 " --homedir alternate pwmd home directory (~/.pwmd)\n"
219 " --use-agent enable use of gpg-agent\n"
220 " -n, --no-fork run as a foreground process\n"
221 " -D, --disable-dump disable the LIST, XPATH and DUMP commands\n"
222 " --ignore ignore file errors during startup\n"
223 " --debug-level=keywords log protocol output (see manual for details)\n"
224 " -o, --outfile=filename output file when importing or converting\n"
225 " -C, --convert=filename convert a version 2 data file to version 3\n"
226 " -I, --import=filename import a pwmd DTD formatted XML file)\n"
227 " -k, --passphrase-file=file for use when importing or converting\n"
228 " --no-passphrase-file prompt instead of using --passphrase-file "
231 " --no-passphrase when importing or converting\n"
232 " --keygrip=hex public key to use when encrypting\n"
233 " --sign-keygrip=hex private key to use when signing\n"
234 " --keyparam=s-exp custom key parameters to use (RSA-2048)\n"
235 " --cipher=string encryption cipher (aes256)\n"
236 " --iterations=N cipher iteration count (N+1)\n"
237 " --s2k-count=N hash iteration count (>65536, calibrated)\n"
238 " --help this help text\n"
239 " --version show version and compile time features\n"
247 "Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013\n"
249 "Released under the terms of the GPL v2. Use at your own risk.\n"
251 "Compile time features:\n"
256 msgid "incompatible version: 2.1.0 or later required"
260 msgid "Done. Daemonizing..."
264 msgid "Done. Waiting for connections..."
270 "Either there is another pwmd running or '%s' is a \n"
271 "stale socket. Please remove it manually."
275 msgid "pwmd exiting normally"
279 msgid "Waiting for lock"
282 #: src/commands.c:326
284 msgid "Bad passphrase (try %i of %i)"
287 #: src/commands.c:624
289 msgid "client validation failed for file '%s'"
292 #: src/commands.c:3837
294 msgid "command completed: rc=%u"
297 #: src/commands.c:3853
299 "Usage: HELP [<COMMAND>]\n"
300 "For commands that take an element path as an argument, each element is "
301 "separated with an ASCII @key{TAB} character (ASCII 0x09).\n"
305 #: src/commands.c:3885
310 #: src/commands.c:4240
313 "Show available commands or command specific help text."
316 #: src/commands.c:4245
319 "Send a @command{gpg-agent} protocol @var{command} directly to the @command"
323 #: src/commands.c:4251
325 "GETINFO [--data] CACHE | CLIENTS | PID | LAST_ERROR | VERSION\n"
326 "Get server and other information: @var{cache} returns the number of cached "
327 "documents via a status message. @var{clients} returns the number of "
328 "connected clients via a status message. @var{pid} returns the process ID "
329 "number of the server via a data response. @var{VERSION} returns the server "
330 "version number and compile-time features with a data response with each "
331 "being space delimited. @var{LAST_ERROR} returns a detailed description of "
332 "the last failed command when available. @xref{Status Messages}. \n"
333 "When the @option{--data} option is specified then the result will be sent "
334 "via a data response rather than a status message."
337 #: src/commands.c:4265
339 "PASSWD [--reset] [--s2k-count=N]\n"
340 "Changes the passphrase of the secret key required to open the current file "
341 "or the passphrase of a symmetrically encrypted data file. When the @option{--"
342 "reset} option is passed then the cache entry for the current file will be "
343 "reset and the passphrase, if any, will be required during the next @code"
344 "{OPEN}. @xref{OPEN}.\n"
345 "The @option{--s2k-count} option sets number of hash iterations for a "
346 "passphrase and must be either @code{0} to use the calibrated count of the "
347 "machine (the default), or a value greater than or equal to @code{65536}. "
348 "@xref{SAVE}. This option has no effect for symmetrically encrypted data "
352 #: src/commands.c:4280
354 "KEYGRIP [--sign] <filename>\n"
355 "Returns the hex encoded keygrip of the specified @var{filename} with a data "
357 "When the @option{--sign} option is specified then the key used for signing "
358 "of the specified @var{filename} will be returned.\n"
359 "For symmetrically encrypted data files this command returns the error "
360 "GPG_ERR_NOT_SUPPORTED."
363 #: src/commands.c:4292
365 "OPEN [--lock] <filename> [<passphrase>]\n"
366 "Opens @var{filename} using @var{passphrase}. When the filename is not found "
367 "on the file-system then a new document will be created. If the file is "
368 "found, it is looked for in the file cache. If cached and no @var{passphrase} "
369 "was specified then the cached document is opened. When not cached, @cite"
370 "{pinentry(1)} will be used to retrieve the passphrase to use for decryption "
371 "unless @option{disable-pinentry} (@pxref{OPTION}) was specified.\n"
372 "When the @option{--lock} option is passed then the file mutex will be locked "
373 "as if the @code{LOCK} command (@pxref{LOCK}) had been sent after the file "
377 #: src/commands.c:4307
379 "SAVE [--no-passphrase] [--reset] [--no-agent] [--s2k-count=N] [--"
380 "cipher=<algo>] [--cipher-iterations=N] [--inquire-keyparam] [--"
381 "keygrip=hexstring [--sign-keygrip=hexstring]]\n"
382 "Writes the @abbr{XML} document to disk. The file written to is the file that "
383 "was opened using the @code{OPEN} command (@pxref{OPEN}). If the file is a "
384 "new one or the option @option{--inquire-keyparam} was passed, then a new "
385 "keypair will be generated and a pinentry will be used to prompt for the "
386 "passphrase to encrypt with unless the @option{--no-passphrase} option was "
387 "passed, in which case the data file will not be passphrase protected.\n"
388 "The @option{--no-agent} option disables use of @command{gpg-agent} for "
389 "passphrase retrieval and caching of new files when @command{gpg-agent} use "
390 "is enabled. The datafile will be symmetrically encrypted and will not use or "
391 "generate any keypair.\n"
392 "The @option{--reset} option will clear the cache entry for the current file "
393 "and require a passphrase, if needed, before saving.\n"
394 "The @option{--cipher} option can be used to encrypt the @abbr{XML} data to "
395 "an alternate cipher. The default is @code{aes256}. See the Configuration "
396 "(@pxref{Configuration}) for available ciphers.\n"
397 "The @option{--cipher-iterations} option specifies the number of times to "
398 "encrypt the XML data. The default is 0 although 1 iteration is still done.\n"
399 "The @option{--inquire-keyparam} option will send a server @emph{INQUIRE} to "
400 "the client to obtain the key paramaters to use when generating a new "
401 "keypair. The inquired data is expected to be an S-expression. If not "
402 "specified then an @samp{RSA} key of @samp{2048} bits will be generated "
403 "unless otherwise set in the configuration file (@pxref{Configuration}). Note "
404 "that when this option is specified a new keypair will be generated "
405 "reguardless if the file is a new one or not.\n"
406 "You can encrypt the data file to a public key other than the one that it was "
407 "originally encrypted with by passing the @option{--keygrip} option with the "
408 "hex encoded keygrip of the public key as its argument. The keygrip may be of "
409 "any key that @command{gpg-agent} knows about. The @option{--sign-keygrip} "
410 "option may also be used to sign with an alternate secret key. This option "
411 "may be needed when using a smartcard. This option has no effect with "
412 "symmetrically encrypted data files.\n"
413 "The @option{--s2k-count} option sets number of hash iterations for a "
414 "passphrase. A value less-than @code{65536} will use the machine calibrated "
415 "value which is the default. This setting only affects new files. To change "
416 "the setting, use the @code{PASSWD} command (@pxref{PASSWD}). This option has "
417 "no effect with symmetrically encrypted data files."
420 #: src/commands.c:4354
422 "ISCACHED [--lock] <filename>\n"
423 "An @emph{OK} response is returned if the specified @var{filename} is found "
424 "in the file cache. If not found in the cache but exists on the filesystem "
425 "then @var{GPG_ERR_NO_DATA} is returned. Otherwise a filesystem error is "
427 "The @option{lock} option will lock the file mutex of @var{filename} when the "
428 "file exists; it does not need to be opened nor cached."
431 #: src/commands.c:4365
433 "CLEARCACHE [<filename>]\n"
434 "Clears a file cache entry for all or the specified @var{filename}."
437 #: src/commands.c:4370
439 "CACHETIMEOUT <filename> <seconds>\n"
440 "The time in @var{seconds} until @var{filename} will be removed from the "
441 "cache. @code{-1} will keep the cache entry forever, @code{0} will require "
442 "the passphrase for each @code{OPEN} or @code{SAVE} command (@pxref{OPEN}, "
443 "@pxref{SAVE}). @xref{Configuration}, and the @code{cache_timeout} parameter."
446 #: src/commands.c:4379
448 "LIST [--inquire] [--no-recurse] [--verbose] [--with-target] [--all] [[!]"
449 "element[<TAB>[!]child[..]]]\n"
450 "If no element path is given then a newline separated list of root elements "
451 "is returned with a data response. If given, then all reachable elements of "
452 "the specified element path are returned unless the @option{--no-recurse} "
453 "option is specified. If specified, only the child elements of the element "
454 "path are returned without recursing into grandchildren. Each resulting "
455 "element is prefixed with the literal @code{!} character when the element "
456 "contains no @code{target} attribute. @xref{Target Attribute}, for details.\n"
457 "When the @option{--verbose} option is passed then each element path returned "
458 "will have zero or more flags appened to it. These flags are delimited from "
459 "the element path by a single space character. A flag itself is a single "
460 "character. Flag @code{+} indicates that there are child nodes of the current "
461 "element path. Flag @code{E} indicates that an element of an element path "
462 "contained in a @var{target} attribute could not be found. Flag @code{O} "
463 "indicates that a @var{target} attribute recursion limit was reached (@pxref"
464 "{Configuration}). Flag @code{T} will append the resolved element path of the "
465 "@var{target} attribute contained in the current element (see below).\n"
466 "The @option{--with-target} option implies @option{--verbose} and will append "
467 "an additional flag @code{T} followed by a single space then an element path. "
468 "The appended element path is the resolved path (@pxref{REALPATH}) of the "
469 "current element when it contains a @var{target} attribute. When no @var"
470 "{target} attribute is found then no flag will be appended.\n"
471 "The @option{--no-recurse} option limits the amount of data returned to only "
472 "the listing of children of the specified element path and not any "
474 "The @option{--all} option lists the entire element tree for each root "
475 "element. This option also implies option @option{--verbose}.\n"
476 "When the @option{--inquire} option is passed then all remaining non-option "
477 "arguments are retrieved via a server @emph{INQUIRE}."
480 #: src/commands.c:4416
482 "REALPATH [--inquire] [!]element[<TAB>[!]child[..]]\n"
483 "Resolves all @code{target} attributes of the specified element path and "
484 "returns the result with a data response. @xref{Target Attribute}, for "
486 "When the @option{--inquire} option is passed then all remaining non-option "
487 "arguments are retrieved via a server @emph{INQUIRE}."
490 #: src/commands.c:4425
492 "STORE [!]element[<TAB>[!]child[..]]<TAB>[content]\n"
493 "This command uses a server @emph{INQUIRE} to retrieve data from the client.\n"
494 "Creates a new element path or modifies the @var{content} of an existing "
495 "element. If only a single element is specified then a new root element is "
496 "created. Otherwise, elements are @key{TAB} delimited and the content will be "
497 "set to the final @key{TAB} delimited element. If no @var{content} is "
498 "specified after the final @key{TAB}, then the content of the element will be "
499 "removed, or empty when creating a new element.\n"
500 "The only restriction of an element name is that it not contain whitespace or "
501 "begin with the literal element character @code{!} unless specifying a "
502 "literal element (@pxref{Target Attribute}). There is no whitespace between "
503 "the @key{TAB} delimited elements. It is recommended that the content of an "
504 "element be base64 encoded when it contains control or @key{TAB} characters "
505 "to prevent @abbr{XML} parsing and @command{pwmd} syntax errors."
508 #: src/commands.c:4444
510 "RENAME [--inquire] [!]element[<TAB>[!]child[..]] <value>\n"
511 "Renames the specified @var{element} to the new @var{value}. If an element of "
512 "the same name as the @var{value} already exists it will be overwritten.\n"
513 "When the @option{--inquire} option is passed then all remaining non-option "
514 "arguments are retrieved via a server @emph{INQUIRE}."
517 #: src/commands.c:4453
519 "COPY [--inquire] [!]source[<TAB>[!]child[..]] [!]dest[<TAB>[!]child[..]]\n"
520 "Copies the entire element tree starting from the child node of the source "
521 "element, to the destination element path. If the destination element path "
522 "does not exist then it will be created; otherwise it is overwritten.\n"
523 "Note that attributes from the source element are merged into the destination "
524 "element when the destination element path exists. When an attribute of the "
525 "same name exists in both the source and destination elements then the "
526 "destination attribute will be updated to the source attribute value.\n"
527 "When the @option{--inquire} option is passed then all remaining non-option "
528 "arguments are retrieved via a server @emph{INQUIRE}."
531 #: src/commands.c:4469
533 "MOVE [--inquire] [!]source[<TAB>[!]child[..]] [[!]dest[<TAB>[!]child[..]]]\n"
534 "Moves the source element path to the destination element path. If the "
535 "destination is not specified then it will be moved to the root node of the "
536 "document. If the destination is specified and exists then it will be "
537 "overwritten; otherwise non-existing elements of the destination element path "
539 "When the @option{--inquire} option is passed then all remaining non-option "
540 "arguments are retrieved via a server @emph{INQUIRE}."
543 #: src/commands.c:4481
545 "DELETE [--inquire] [!]element[<TAB>[!]child[..]]\n"
546 "Removes the specified element path and all of its children. This may break "
547 "an element with a @code{target} attribute (@pxref{Target Attribute}) that "
548 "refers to this element or any of its children.\n"
549 "When the @option{--inquire} option is passed then all remaining non-option "
550 "arguments are retrieved via a server @emph{INQUIRE}."
553 #: src/commands.c:4491
555 "GET [--inquire] [!]element[<TAB>[!]child[..]]\n"
556 "Retrieves the content of the specified element. The content is returned with "
558 "When the @option{--inquire} option is passed then all remaining non-option "
559 "arguments are retrieved via a server @emph{INQUIRE}."
562 #: src/commands.c:4500
564 "ATTR [--inquire] SET|GET|DELETE|LIST [<attribute>] [!]element[<TAB>[!]child"
567 "@item ATTR SET attribute [!]element[<TAB>[!]child[..]] [value]\n"
569 " Stores or updates an @var{attribute} name and optional @var{value} of an "
570 "element. When no @var{value} is specified any existing value will be "
572 "@item ATTR DELETE attribute [!]element[<TAB>[!]child[..]]\n"
574 " Removes an @var{attribute} from an element.\n"
575 "@item ATTR LIST [!]element[<TAB>[!]child[..]]\n"
577 " Retrieves a newline separated list of attributes names and values from "
578 "the specified element. Each attribute name and value is space delimited.\n"
579 "@item ATTR GET attribute [!]element[<TAB>[!]child[..]]\n"
581 " Retrieves the value of an @var{attribute} from an element.@end table\n"
583 "The @code{_name} attribute (case sensitive) cannot be removed nor modified. "
584 "Use the @code{DELETE} (@pxref{DELETE}) or @code{RENAME} (@pxref{RENAME}) "
585 "commands instead.\n"
586 "The @code{_mtime} attribute is updated each time an element is modified by "
587 "either storing content, editing attributes or by deleting a child element. "
588 "The @code{_ctime} attribute is created for each new element in an element "
590 "When the @option{--inquire} option is passed then all remaining non-option "
591 "arguments are retrieved via a server @emph{INQUIRE}.\n"
592 "@xref{Target Attribute}, for details about this special attribute."
595 #: src/commands.c:4537
597 "XPATH [--inquire] <expression>[<TAB>[value]]\n"
598 "Evaluates an XPath @var{expression}. If no @var{value} argument is "
599 "specified, it is assumed the expression is a request to return a result. "
600 "Otherwise, the result is set to the @var{value} argument and the document is "
601 "updated. If there is no @var{value} after the @key{TAB} character, the value "
602 "is assumed to be empty and the document is updated. For example:@sp 1\n"
604 "XPATH //element[@@_name='password']@key{TAB}\n"
606 "@sp 1would clear the content of all @code{password} elements in the data "
607 "file while leaving off the trailing @key{TAB} would return all @code"
608 "{password} elements in @abbr{XML} format.\n"
609 "When the @option{--inquire} option is passed then all remaining non-option "
610 "arguments are retrieved via a server @emph{INQUIRE}.\n"
611 "See @url{http://www.w3schools.com/xpath/xpath_syntax.asp} for @abbr{XPATH} "
615 #: src/commands.c:4560
617 "XPATHATTR [--inquire] SET|DELETE <name> <expression>[<TAB>[<value>]]\n"
618 "Like the @code{XPATH} command (@pxref{XPATH}) but operates on element "
619 "attributes and does not return a result. For the @var{SET} operation the @var"
620 "{value} is optional but the field is required. If not specified then the "
621 "attribute value will be empty. For example:@sp 1@example\n"
622 "XPATHATTR SET password //element[@@_name='password']@key{TAB}\n"
624 "@sp 1would create an @code{password} attribute for each @code{password} "
625 "element found in the document. The attribute value will be empty but still "
627 "When the @option{--inquire} option is passed then all remaining non-option "
628 "arguments are retrieved via a server @emph{INQUIRE}.\n"
629 "See @url{http://www.w3schools.com/xpath/xpath_syntax.asp} for @abbr{XPATH} "
633 #: src/commands.c:4581
635 "IMPORT <content>[<TAB>[!]element[<TAB>[!]child[..]]]\n"
636 "This command uses a server @emph{INQUIRE} to retrieve data from the client.\n"
637 "Like the @code{STORE} command (@pxref{STORE}), but the @var{content} "
638 "argument is raw @abbr{XML} data. The content is created as a child of the "
639 "specified element path and will overwrite an existing element of the same "
640 "name. If an element of the element path does not exist then it will be "
642 "The content must begin with an @abbr{XML} element node. @xref{Introduction}, "
646 #: src/commands.c:4595
649 "Shows the in memory @abbr{XML} document with indenting. @xref{XPATH}, for "
650 "dumping a specific node."
653 #: src/commands.c:4601
656 "Locks the mutex associated with the opened file. This prevents other clients "
657 "from sending commands to the same opened file until the client that sent "
658 "this command either disconnects or sends the @code{UNLOCK} command. @xref"
662 #: src/commands.c:4609
665 "Unlocks the file mutex which was locked with the @code{LOCK} command or a "
666 "commands' @option{--lock} option (@pxref{LOCK}, @pxref{OPEN}, @pxref"
670 #: src/commands.c:4616
672 "GETCONFIG [filename] <parameter>\n"
673 "Returns the value of a @command{pwmd} configuration @var{parameter} with a "
674 "data response. If no file has been opened then the value for @var{filename} "
675 "or the default from the @samp{global} section will be returned. If a file "
676 "has been opened and no @var{filename} is specified, a value previously set "
677 "with the @code{OPTION} command (@pxref{OPTION}) will be returned."
680 #: src/commands.c:4625
682 "OPTION <NAME>=<VALUE>\n"
683 "Sets a client option @var{name} to @var{value}. The value for an option is "
684 "kept for the duration of the connection.\n"
686 "@item DISABLE-PINENTRY\n"
687 " Disable use of @command{pinentry} for passphrase retrieval. When set, a "
688 "server inquire is sent to the client to obtain the passphrase. This option "
689 "may be set as needed before the @pxref{OPEN}, @pxref{PASSWD}, and @pxref"
692 " Passed to the @command{gpg-agent} and used for the @command{pinentry} "
695 " Passed to the @command{gpg-agent} and used for the @command{pinentry} "
698 " Passed to the @command{gpg-agent} and used for the @command{pinentry} "
700 "@item PINENTRY-DESC\n"
701 " Sets the description string of the @command{gpg-agent} and @command"
702 "{pinentry} dialog.\n"
703 "@item PINENTRY-TITLE\n"
704 " Sets the title string of the @command{gpg-agent} and @command{pinentry} "
706 "@item PINENTRY-PROMPT\n"
707 " Sets the prompt string of the @command{gpg-agent} and @command{pinentry} "
710 " Passed to the @command{gpg-agent} and used for the @command{pinentry} "
712 "@item LC-MESSAGES\n"
713 " Passed to the @command{gpg-agent} and used for the @command{pinentry} "
716 " Associates the thread ID of the connection with the specified textual "
717 "representation. Useful for debugging log messages.\n"
718 "@item LOCK-TIMEOUT\n"
719 " When not @code{0}, the duration in tenths of a second to wait for the file "
720 "mutex which has been locked by another thread to be released before "
721 "returning an error. When @code{-1}, then an error will be returned "
722 "immediately.@end table\n"
725 #: src/commands.c:4672
728 "Lists the available data files stored in the data directory (@file{~/.pwmd/"
729 "data}). The result is a newline separated list of filenames."
732 #: src/commands.c:4678
735 "Closes the currently opened file but keeps any previously set client options."
738 #: src/commands.c:4683
741 "Does nothing. Always returns successfully."
746 "A passphrase is required to decrypt the file for converting. Please enter "
747 "the passphrase below."
756 msgid "Decrypting ...\n"
759 #: src/xml.c:1425 src/xml.c:1500
762 "An existing \"_name\" attribute already exists. Please rename this attribute "
763 "before converting. Path is: %s"
769 "An existing \"element\" already exists. Please rename this element before "
770 "converting. Path is: %s"
774 msgid "Converting pre 2.12 data file..."
779 msgid "Missing attribute '_name' at %s."
784 msgid "'%s' is not a valid element name at %s."
789 msgid "Warning: unknown element '%s' at %s. Ignoring."
793 msgid "client certificate is invalid"
797 msgid "client certificate is revoked"
801 msgid "client certificate has no signer"
805 msgid "client certificate signer is not from CA"
809 msgid "client certificate has insecure algorithm"
813 msgid "Generating key exchange parameters..."