/home/lnzliplg/public_html/man.tar
man1/nosetests.1000064400000042417151730050510007516 0ustar00.\" Man page generated from reStructuredText.
.
.TH "NOSETESTS" "1" "April 04, 2015" "1.3" "nose"
.SH NAME
nosetests \- Nicer testing for Python
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH NICER TESTING FOR PYTHON
.SS SYNOPSIS
.INDENT 0.0
.INDENT 3.5
nosetests [options] [names]
.UNINDENT
.UNINDENT
.SS DESCRIPTION
.sp
nose collects tests automatically from python source files,
directories and packages found in its working directory (which
defaults to the current working directory). Any python source file,
directory or package that matches the testMatch regular expression
(by default: \fI(?:^|[b_.\-])[Tt]est)\fP will be collected as a test (or
source for collection of tests). In addition, all other packages
found in the working directory will be examined for python source files
or directories that match testMatch. Package discovery descends all
the way down the tree, so package.tests and package.sub.tests and
package.sub.sub2.tests will all be collected.
.sp
Within a test directory or package, any python source file matching
testMatch will be examined for test cases. Within a test module,
functions and classes whose names match testMatch and TestCase
subclasses with any name will be loaded and executed as tests. Tests
may use the assert keyword or raise AssertionErrors to indicate test
failure. TestCase subclasses may do the same or use the various
TestCase methods available.
.sp
\fBIt is important to note that the default behavior of nose is to
not include tests from files which are executable.\fP  To include
tests from such files, remove their executable bit or use
the \-\-exe flag (see \(aqOptions\(aq section below).
.SS Selecting Tests
.sp
To specify which tests to run, pass test names on the command line:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
nosetests only_test_this.py
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Test names specified may be file or module names, and may optionally
indicate the test case to run by separating the module or file name
from the test case name with a colon. Filenames may be relative or
absolute. Examples:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
nosetests test.module
nosetests another.test:TestCase.test_method
nosetests a.test:TestCase
nosetests /path/to/test/file.py:test_function
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
You may also change the working directory where nose looks for tests
by using the \-w switch:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
nosetests \-w /path/to/tests
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Note, however, that support for multiple \-w arguments is now deprecated
and will be removed in a future release. As of nose 0.10, you can get
the same behavior by specifying the target directories \fIwithout\fP
the \-w switch:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
nosetests /path/to/tests /another/path/to/tests
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Further customization of test selection and loading is possible
through the use of plugins.
.sp
Test result output is identical to that of unittest, except for
the additional features (error classes, and plugin\-supplied
features such as output capture and assert introspection) detailed
in the options below.
.SS Configuration
.sp
In addition to passing command\-line options, you may also put
configuration options in your project\(aqs \fIsetup.cfg\fP file, or a .noserc
or nose.cfg file in your home directory. In any of these standard
ini\-style config files, you put your nosetests configuration in a
\fB[nosetests]\fP section. Options are the same as on the command line,
with the \-\- prefix removed. For options that are simple switches, you
must supply a value:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
[nosetests]
verbosity=3
with\-doctest=1
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
All configuration files that are found will be loaded and their
options combined. You can override the standard config file loading
with the \fB\-c\fP option.
.SS Using Plugins
.sp
There are numerous nose plugins available via easy_install and
elsewhere. To use a plugin, just install it. The plugin will add
command line options to nosetests. To verify that the plugin is installed,
run:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
nosetests \-\-plugins
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
You can add \-v or \-vv to that command to show more information
about each plugin.
.sp
If you are running nose.main() or nose.run() from a script, you
can specify a list of plugins to use by passing a list of plugins
with the plugins keyword argument.
.SS 0.9 plugins
.sp
nose 1.0 can use SOME plugins that were written for nose 0.9. The
default plugin manager inserts a compatibility wrapper around 0.9
plugins that adapts the changed plugin api calls. However, plugins
that access nose internals are likely to fail, especially if they
attempt to access test case or test suite classes. For example,
plugins that try to determine if a test passed to startTest is an
individual test or a suite will fail, partly because suites are no
longer passed to startTest and partly because it\(aqs likely that the
plugin is trying to find out if the test is an instance of a class
that no longer exists.
.SS 0.10 and 0.11 plugins
.sp
All plugins written for nose 0.10 and 0.11 should work with nose 1.0.
.SS Options
.INDENT 0.0
.TP
.B \-V, \-\-version
Output nose version and exit
.UNINDENT
.INDENT 0.0
.TP
.B \-p, \-\-plugins
Output list of available plugins and exit. Combine with higher verbosity for greater detail
.UNINDENT
.INDENT 0.0
.TP
.B \-v=DEFAULT, \-\-verbose=DEFAULT
Be more verbose. [NOSE_VERBOSE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-verbosity=VERBOSITY
Set verbosity; \-\-verbosity=2 is the same as \-v
.UNINDENT
.INDENT 0.0
.TP
.B \-q=DEFAULT, \-\-quiet=DEFAULT
Be less verbose
.UNINDENT
.INDENT 0.0
.TP
.B \-c=FILES, \-\-config=FILES
Load configuration from config file(s). May be specified multiple times; in that case, all config files will be loaded and combined
.UNINDENT
.INDENT 0.0
.TP
.B \-w=WHERE, \-\-where=WHERE
Look for tests in this directory. May be specified multiple times. The first directory passed will be used as the working directory, in place of the current working directory, which is the default. Others will be added to the list of tests to execute. [NOSE_WHERE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-py3where=PY3WHERE
Look for tests in this directory under Python 3.x. Functions the same as \(aqwhere\(aq, but only applies if running under Python 3.x or above.  Note that, if present under 3.x, this option completely replaces any directories specified with \(aqwhere\(aq, so the \(aqwhere\(aq option becomes ineffective. [NOSE_PY3WHERE]
.UNINDENT
.INDENT 0.0
.TP
.B \-m=REGEX, \-\-match=REGEX, \-\-testmatch=REGEX
Files, directories, function names, and class names that match this regular expression are considered tests.  Default: (?:^|[b_./\-])[Tt]est [NOSE_TESTMATCH]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-tests=NAMES
Run these tests (comma\-separated list). This argument is useful mainly from configuration files; on the command line, just pass the tests to run as additional arguments with no switch.
.UNINDENT
.INDENT 0.0
.TP
.B \-l=DEFAULT, \-\-debug=DEFAULT
Activate debug logging for one or more systems. Available debug loggers: nose, nose.importer, nose.inspector, nose.plugins, nose.result and nose.selector. Separate multiple names with a comma.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debug\-log=FILE
Log debug messages to this file (default: sys.stderr)
.UNINDENT
.INDENT 0.0
.TP
.B \-\-logging\-config=FILE, \-\-log\-config=FILE
Load logging config from this file \-\- bypasses all other logging config settings.
.UNINDENT
.INDENT 0.0
.TP
.B \-I=REGEX, \-\-ignore\-files=REGEX
Completely ignore any file that matches this regular expression. Takes precedence over any other settings or plugins. Specifying this option will replace the default setting. Specify this option multiple times to add more regular expressions [NOSE_IGNORE_FILES]
.UNINDENT
.INDENT 0.0
.TP
.B \-e=REGEX, \-\-exclude=REGEX
Don\(aqt run tests that match regular expression [NOSE_EXCLUDE]
.UNINDENT
.INDENT 0.0
.TP
.B \-i=REGEX, \-\-include=REGEX
This regular expression will be applied to files, directories, function names, and class names for a chance to include additional tests that do not match TESTMATCH.  Specify this option multiple times to add more regular expressions [NOSE_INCLUDE]
.UNINDENT
.INDENT 0.0
.TP
.B \-x, \-\-stop
Stop running tests after the first error or failure
.UNINDENT
.INDENT 0.0
.TP
.B \-P, \-\-no\-path\-adjustment
Don\(aqt make any changes to sys.path when loading tests [NOSE_NOPATH]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-exe
Look for tests in python modules that are executable. Normal behavior is to exclude executable modules, since they may not be import\-safe [NOSE_INCLUDE_EXE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-noexe
DO NOT look for tests in python modules that are executable. (The default on the windows platform is to do so.)
.UNINDENT
.INDENT 0.0
.TP
.B \-\-traverse\-namespace
Traverse through all path entries of a namespace package
.UNINDENT
.INDENT 0.0
.TP
.B \-\-first\-package\-wins, \-\-first\-pkg\-wins, \-\-1st\-pkg\-wins
nose\(aqs importer will normally evict a package from sys.modules if it sees a package with the same name in a different location. Set this option to disable that behavior.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-no\-byte\-compile
Prevent nose from byte\-compiling the source into .pyc files while nose is scanning for and running tests.
.UNINDENT
.INDENT 0.0
.TP
.B \-a=ATTR, \-\-attr=ATTR
Run only tests that have attributes specified by ATTR [NOSE_ATTR]
.UNINDENT
.INDENT 0.0
.TP
.B \-A=EXPR, \-\-eval\-attr=EXPR
Run only tests for whose attributes the Python expression EXPR evaluates to True [NOSE_EVAL_ATTR]
.UNINDENT
.INDENT 0.0
.TP
.B \-s, \-\-nocapture
Don\(aqt capture stdout (any stdout output will be printed immediately) [NOSE_NOCAPTURE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-nologcapture
Disable logging capture plugin. Logging configuration will be left intact. [NOSE_NOLOGCAPTURE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-logging\-format=FORMAT
Specify custom format to print statements. Uses the same format as used by standard logging handlers. [NOSE_LOGFORMAT]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-logging\-datefmt=FORMAT
Specify custom date/time format to print statements. Uses the same format as used by standard logging handlers. [NOSE_LOGDATEFMT]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-logging\-filter=FILTER
Specify which statements to filter in/out. By default, everything is captured. If the output is too verbose,
use this option to filter out needless output.
Example: filter=foo will capture statements issued ONLY to
 foo or foo.what.ever.sub but not foobar or other logger.
Specify multiple loggers with comma: filter=foo,bar,baz.
If any logger name is prefixed with a minus, eg filter=\-foo,
it will be excluded rather than included. Default: exclude logging messages from nose itself (\-nose). [NOSE_LOGFILTER]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-logging\-clear\-handlers
Clear all other logging handlers
.UNINDENT
.INDENT 0.0
.TP
.B \-\-logging\-level=DEFAULT
Set the log level to capture
.UNINDENT
.INDENT 0.0
.TP
.B \-\-with\-coverage
Enable plugin Coverage: 
Activate a coverage report using Ned Batchelder\(aqs coverage module.
 [NOSE_WITH_COVERAGE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-package=PACKAGE
Restrict coverage output to selected packages [NOSE_COVER_PACKAGE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-erase
Erase previously collected coverage statistics before run
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-tests
Include test modules in coverage report [NOSE_COVER_TESTS]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-min\-percentage=DEFAULT
Minimum percentage of coverage for tests to pass [NOSE_COVER_MIN_PERCENTAGE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-inclusive
Include all python files under working directory in coverage report.  Useful for discovering holes in test coverage if not all files are imported by the test suite. [NOSE_COVER_INCLUSIVE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-html
Produce HTML coverage information
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-html\-dir=DIR
Produce HTML coverage information in dir
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-branches
Include branch coverage in coverage report [NOSE_COVER_BRANCHES]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-xml
Produce XML coverage information
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cover\-xml\-file=FILE
Produce XML coverage information in file
.UNINDENT
.INDENT 0.0
.TP
.B \-\-pdb
Drop into debugger on failures or errors
.UNINDENT
.INDENT 0.0
.TP
.B \-\-pdb\-failures
Drop into debugger on failures
.UNINDENT
.INDENT 0.0
.TP
.B \-\-pdb\-errors
Drop into debugger on errors
.UNINDENT
.INDENT 0.0
.TP
.B \-\-no\-deprecated
Disable special handling of DeprecatedTest exceptions.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-with\-doctest
Enable plugin Doctest: 
Activate doctest plugin to find and run doctests in non\-test modules.
 [NOSE_WITH_DOCTEST]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-doctest\-tests
Also look for doctests in test modules. Note that classes, methods and functions should have either doctests or non\-doctest tests, not both. [NOSE_DOCTEST_TESTS]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-doctest\-extension=EXT
Also look for doctests in files with this extension [NOSE_DOCTEST_EXTENSION]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-doctest\-result\-variable=VAR
Change the variable name set to the result of the last interpreter command from the default \(aq_\(aq. Can be used to avoid conflicts with the _() function used for text translation. [NOSE_DOCTEST_RESULT_VAR]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-doctest\-fixtures=SUFFIX
Find fixtures for a doctest file in module with this name appended to the base name of the doctest file
.UNINDENT
.INDENT 0.0
.TP
.B \-\-doctest\-options=OPTIONS
Specify options to pass to doctest. Eg. \(aq+ELLIPSIS,+NORMALIZE_WHITESPACE\(aq
.UNINDENT
.INDENT 0.0
.TP
.B \-\-with\-isolation
Enable plugin IsolationPlugin: 
Activate the isolation plugin to isolate changes to external
modules to a single test module or package. The isolation plugin
resets the contents of sys.modules after each test module or
package runs to its state before the test. PLEASE NOTE that this
plugin should not be used with the coverage plugin, or in any other case
where module reloading may produce undesirable side\-effects.
 [NOSE_WITH_ISOLATION]
.UNINDENT
.INDENT 0.0
.TP
.B \-d, \-\-detailed\-errors, \-\-failure\-detail
Add detail to error output by attempting to evaluate failed asserts [NOSE_DETAILED_ERRORS]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-with\-profile
Enable plugin Profile: 
Use this plugin to run tests using the hotshot profiler. 
 [NOSE_WITH_PROFILE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-profile\-sort=SORT
Set sort order for profiler output
.UNINDENT
.INDENT 0.0
.TP
.B \-\-profile\-stats\-file=FILE
Profiler stats file; default is a new temp file on each run
.UNINDENT
.INDENT 0.0
.TP
.B \-\-profile\-restrict=RESTRICT
Restrict profiler output. See help for pstats.Stats for details
.UNINDENT
.INDENT 0.0
.TP
.B \-\-no\-skip
Disable special handling of SkipTest exceptions.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-with\-id
Enable plugin TestId: 
Activate to add a test id (like #1) to each test name output. Activate
with \-\-failed to rerun failing tests only.
 [NOSE_WITH_ID]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-id\-file=FILE
Store test ids found in test runs in this file. Default is the file .noseids in the working directory.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-failed
Run the tests that failed in the last test run.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-processes=NUM
Spread test run among this many processes. Set a number equal to the number of processors or cores in your machine for best results. Pass a negative number to have the number of processes automatically set to the number of cores. Passing 0 means to disable parallel testing. Default is 0 unless NOSE_PROCESSES is set. [NOSE_PROCESSES]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-process\-timeout=SECONDS
Set timeout for return of results from each test runner process. Default is 10. [NOSE_PROCESS_TIMEOUT]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-process\-restartworker
If set, will restart each worker process once their tests are done, this helps control memory leaks from killing the system. [NOSE_PROCESS_RESTARTWORKER]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-with\-xunit
Enable plugin Xunit: This plugin provides test results in the standard XUnit XML format. [NOSE_WITH_XUNIT]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-xunit\-file=FILE
Path to xml file to store the xunit report in. Default is nosetests.xml in the working directory [NOSE_XUNIT_FILE]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-xunit\-testsuite\-name=PACKAGE
Name of the testsuite in the xunit xml, generated by plugin. Default test suite name is nosetests.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-all\-modules
Enable plugin AllModules: Collect tests from all python modules.
 [NOSE_ALL_MODULES]
.UNINDENT
.INDENT 0.0
.TP
.B \-\-collect\-only
Enable collect\-only: 
Collect and output test names only, don\(aqt run any tests.
 [COLLECT_ONLY]
.UNINDENT
.SH AUTHOR
Nose developers
.SH COPYRIGHT
2009, Jason Pellerin
.\" Generated by docutils manpage writer.
.
man1/sshpk-sign.1000064400000004660151731701070007560 0ustar00.TH sshpk\-sign 1 "Jan 2016" sshpk "sshpk Commands"
.SH NAME
.PP
sshpk\-sign \- sign data using an SSH key
.SH SYNOPSYS
.PP
\fB\fCsshpk\-sign\fR \-i KEYPATH [OPTION...]
.SH DESCRIPTION
.PP
Takes in arbitrary bytes, and signs them using an SSH private key. The key can
be of any type or format supported by the \fB\fCsshpk\fR library, including the
standard OpenSSH formats, as well as PEM PKCS#1 and PKCS#8.
.PP
The signature is printed out in Base64 encoding, unless the \fB\fC\-\-binary\fR or \fB\fC\-b\fR
option is given.
.SH EXAMPLES
.PP
Signing with default settings:
.PP
.RS
.nf
$ printf 'foo' | sshpk\-sign \-i ~/.ssh/id_ecdsa
MEUCIAMdLS/vXrrtWFepwe...
.fi
.RE
.PP
Signing in SSH (RFC 4253) format (rather than the default ASN.1):
.PP
.RS
.nf
$ printf 'foo' | sshpk\-sign \-i ~/.ssh/id_ecdsa \-t ssh
AAAAFGVjZHNhLXNoYTIt...
.fi
.RE
.PP
Saving the binary signature to a file:
.PP
.RS
.nf
$ printf 'foo' | sshpk\-sign \-i ~/.ssh/id_ecdsa \\
                            \-o signature.bin \-b
$ cat signature.bin | base64
MEUCIAMdLS/vXrrtWFepwe...
.fi
.RE
.SH OPTIONS
.TP
\fB\fC\-v, \-\-verbose\fR
Print extra information about the key and signature to stderr when signing.
.TP
\fB\fC\-b, \-\-binary\fR
Don't base64\-encode the signature before outputting it.
.TP
\fB\fC\-i KEY, \-\-identity=KEY\fR
Select the key to be used for signing. \fB\fCKEY\fR must be a relative or absolute
filesystem path to the key file. Any format supported by the \fB\fCsshpk\fR library
is supported, including OpenSSH formats and standard PEM PKCS.
.TP
\fB\fC\-f PATH, \-\-file=PATH\fR
Input file to sign instead of stdin.
.TP
\fB\fC\-o PATH, \-\-out=PATH\fR
Output file to save signature in instead of stdout.
.TP
\fB\fC\-H HASH, \-\-hash=HASH\fR
Set the hash algorithm to be used for signing. This should be one of \fB\fCsha1\fR,
\fB\fCsha256\fR or \fB\fCsha512\fR\&. Some key types may place restrictions on which hash
algorithms may be used (e.g. ED25519 keys can only use SHA\-512).
.TP
\fB\fC\-t FORMAT, \-\-format=FORMAT\fR
Choose the signature format to use, from \fB\fCasn1\fR, \fB\fCssh\fR or \fB\fCraw\fR (only for
ED25519 signatures). The \fB\fCasn1\fR format is the default, as it is the format
used with TLS and typically the standard in most non\-SSH libraries (e.g.
OpenSSL). The \fB\fCssh\fR format is used in the SSH protocol and by the ssh\-agent.
.SH SEE ALSO
.PP
.BR sshpk-verify (1)
.SH BUGS
.PP
Report bugs at Github
\[la]https://github.com/arekinath/node-sshpk/issues\[ra]
man1/sshpk-verify.1000064400000004242151731701070010120 0ustar00.TH sshpk\-verify 1 "Jan 2016" sshpk "sshpk Commands"
.SH NAME
.PP
sshpk\-verify \- verify a signature on data using an SSH key
.SH SYNOPSYS
.PP
\fB\fCsshpk\-verify\fR \-i KEYPATH \-s SIGNATURE [OPTION...]
.SH DESCRIPTION
.PP
Takes in arbitrary bytes and a Base64\-encoded signature, and verifies that the
signature was produced by the private half of the given SSH public key.
.SH EXAMPLES
.PP
.RS
.nf
$ printf 'foo' | sshpk\-verify \-i ~/.ssh/id_ecdsa \-s MEUCIQCYp...
OK
$ printf 'foo' | sshpk\-verify \-i ~/.ssh/id_ecdsa \-s GARBAGE...
NOT OK
.fi
.RE
.SH EXIT STATUS
.TP
\fB\fC0\fR
Signature validates and matches the key.
.TP
\fB\fC1\fR
Signature is parseable and the correct length but does not match the key or
otherwise is invalid.
.TP
\fB\fC2\fR
The signature or key could not be parsed.
.TP
\fB\fC3\fR
Invalid commandline options were supplied.
.SH OPTIONS
.TP
\fB\fC\-v, \-\-verbose\fR
Print extra information about the key and signature to stderr when verifying.
.TP
\fB\fC\-i KEY, \-\-identity=KEY\fR
Select the key to be used for verification. \fB\fCKEY\fR must be a relative or
absolute filesystem path to the key file. Any format supported by the \fB\fCsshpk\fR
library is supported, including OpenSSH formats and standard PEM PKCS.
.TP
\fB\fC\-s BASE64, \-\-signature=BASE64\fR
Supplies the base64\-encoded signature to be verified.
.TP
\fB\fC\-f PATH, \-\-file=PATH\fR
Input file to verify instead of stdin.
.TP
\fB\fC\-H HASH, \-\-hash=HASH\fR
Set the hash algorithm to be used for signing. This should be one of \fB\fCsha1\fR,
\fB\fCsha256\fR or \fB\fCsha512\fR\&. Some key types may place restrictions on which hash
algorithms may be used (e.g. ED25519 keys can only use SHA\-512).
.TP
\fB\fC\-t FORMAT, \-\-format=FORMAT\fR
Choose the signature format to use, from \fB\fCasn1\fR, \fB\fCssh\fR or \fB\fCraw\fR (only for
ED25519 signatures). The \fB\fCasn1\fR format is the default, as it is the format
used with TLS and typically the standard in most non\-SSH libraries (e.g.
OpenSSL). The \fB\fCssh\fR format is used in the SSH protocol and by the ssh\-agent.
.SH SEE ALSO
.PP
.BR sshpk-sign (1)
.SH BUGS
.PP
Report bugs at Github
\[la]https://github.com/arekinath/node-sshpk/issues\[ra]
man1/sshpk-conv.1000064400000007625151731701070007571 0ustar00.TH sshpk\-conv 1 "Jan 2016" sshpk "sshpk Commands"
.SH NAME
.PP
sshpk\-conv \- convert between key formats
.SH SYNOPSYS
.PP
\fB\fCsshpk\-conv\fR \-t FORMAT [FILENAME] [OPTIONS...]
.PP
\fB\fCsshpk\-conv\fR \-i [FILENAME] [OPTIONS...]
.SH DESCRIPTION
.PP
Reads in a public or private key and converts it between different formats,
particularly formats used in the SSH protocol and the well\-known PEM PKCS#1/7
formats.
.PP
In the second form, with the \fB\fC\-i\fR option given, identifies a key and prints to 
stderr information about its nature, size and fingerprint.
.SH EXAMPLES
.PP
Assume the following SSH\-format public key in \fB\fCid_ecdsa.pub\fR:
.PP
.RS
.nf
ecdsa\-sha2\-nistp256 AAAAE2VjZHNhLXNoYTI...9M/4c4= user@host
.fi
.RE
.PP
Identify it with \fB\fC\-i\fR:
.PP
.RS
.nf
$ sshpk\-conv \-i id_ecdsa.pub
id_ecdsa: a 256 bit ECDSA public key
ECDSA curve: nistp256
Comment: user@host
Fingerprint:
  SHA256:vCNX7eUkdvqqW0m4PoxQAZRv+CM4P4fS8+CbliAvS4k
  81:ad:d5:57:e5:6f:7d:a2:93:79:56:af:d7:c0:38:51
.fi
.RE
.PP
Convert it to \fB\fCpkcs8\fR format, for use with e.g. OpenSSL:
.PP
.RS
.nf
$ sshpk\-conv \-t pkcs8 id_ecdsa
\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAsA4R6N6AS3gzaPBeLjG2ObSgUsR
zOt+kWJoijLnw3ZMYUKmAx+lD0I5XUxdrPcs1vH5f3cn9TvRvO9L0z/hzg==
\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
.fi
.RE
.PP
Retrieve the public half of a private key:
.PP
.RS
.nf
$ openssl genrsa 2048 | sshpk\-conv \-t ssh \-c foo@bar
ssh\-rsa AAAAB3NzaC1yc2EAAA...koK7 foo@bar
.fi
.RE
.PP
Convert a private key to PKCS#1 (OpenSSL) format from a new\-style OpenSSH key
format (the \fB\fCssh\-keygen \-o\fR format):
.PP
.RS
.nf
$ ssh\-keygen \-o \-f foobar
\&...
$ sshpk\-conv \-p \-t pkcs1 foobar
\-\-\-\-\-BEGIN RSA PRIVATE KEY\-\-\-\-\-
MIIDpAIBAAKCAQEA6T/GYJndb1TRH3+NL....
\-\-\-\-\-END RSA PRIVATE KEY\-\-\-\-\-
.fi
.RE
.SH OPTIONS
.TP
\fB\fC\-i, \-\-identify\fR
Instead of converting the key, output identifying information about it to 
stderr, including its type, size and fingerprints.
.TP
\fB\fC\-p, \-\-private\fR
Treat the key as a private key instead of a public key (the default). If you
supply \fB\fCsshpk\-conv\fR with a private key and do not give this option, it will
extract only the public half of the key from it and work with that.
.TP
\fB\fC\-f PATH, \-\-file=PATH\fR
Input file to take the key from instead of stdin. If a filename is supplied
as a positional argument, it is equivalent to using this option.
.TP
\fB\fC\-o PATH, \-\-out=PATH\fR
Output file name to use instead of stdout.
.PP
\fB\fC\-T FORMAT, \-\-informat=FORMAT\fR
.TP
\fB\fC\-t FORMAT, \-\-outformat=FORMAT\fR
Selects the input and output formats to be used (see FORMATS, below).
.TP
\fB\fC\-c TEXT, \-\-comment=TEXT\fR
Sets the key comment for the output file, if supported.
.SH FORMATS
.PP
Currently supported formats:
.TP
\fB\fCpem, pkcs1\fR
The standard PEM format used by older OpenSSH and most TLS libraries such as
OpenSSL. The classic \fB\fCid_rsa\fR file is usually in this format. It is an ASN.1
encoded structure, base64\-encoded and placed between PEM headers.
.TP
\fB\fCssh\fR
The SSH public key text format (the format of an \fB\fCid_rsa.pub\fR file). A single
line, containing 3 space separated parts: the key type, key body and optional
key comment.
.TP
\fB\fCpkcs8\fR
A newer PEM format, usually used only for public keys by TLS libraries such
as OpenSSL. The ASN.1 structure is more generic than that of \fB\fCpkcs1\fR\&.
.TP
\fB\fCopenssh\fR
The new \fB\fCssh\-keygen \-o\fR format from OpenSSH. This can be mistaken for a PEM
encoding but is actually an OpenSSH internal format.
.TP
\fB\fCrfc4253\fR
The internal binary format of keys when sent over the wire in the SSH
protocol. This is also the format that the \fB\fCssh\-agent\fR uses in its protocol.
.SH SEE ALSO
.PP
.BR ssh-keygen (1), 
.BR openssl (1)
.SH BUGS
.PP
Encrypted (password\-protected) keys are not supported.
.PP
Report bugs at Github
\[la]https://github.com/arekinath/node-sshpk/issues\[ra]
man1/python3.5.1000064400000032154151733401600007236 0ustar00.TH PYTHON "1"

.\" To view this file while editing, run it through groff:
.\"   groff -Tascii -man python.man | less

.SH NAME
python \- an interpreted, interactive, object-oriented programming language
.SH SYNOPSIS
.B python
[
.B \-B
]
[
.B \-b
]
[
.B \-d
]
[
.B \-E
]
[
.B \-h
]
[
.B \-i
]
[
.B \-I
]
.br
       [
.B \-m
.I module-name
]
[
.B \-q
]
[
.B \-O
]
[
.B \-OO
]
[
.B \-s
]
[
.B \-S
]
[
.B \-u
]
.br
       [
.B \-v
]
[
.B \-V
]
[
.B \-W
.I argument
]
[
.B \-x
]
[
[
.B \-X
.I option
]
.B \-?
]
.br
       [
.B \-c
.I command
|
.I script
|
\-
]
[
.I arguments
]
.SH DESCRIPTION
Python is an interpreted, interactive, object-oriented programming
language that combines remarkable power with very clear syntax.
For an introduction to programming in Python, see the Python Tutorial.
The Python Library Reference documents built-in and standard types,
constants, functions and modules.
Finally, the Python Reference Manual describes the syntax and
semantics of the core language in (perhaps too) much detail.
(These documents may be located via the
.B "INTERNET RESOURCES"
below; they may be installed on your system as well.)
.PP
Python's basic power can be extended with your own modules written in
C or C++.
On most systems such modules may be dynamically loaded.
Python is also adaptable as an extension language for existing
applications.
See the internal documentation for hints.
.PP
Documentation for installed Python modules and packages can be
viewed by running the
.B pydoc
program.
.SH COMMAND LINE OPTIONS
.TP
.B \-B
Don't write
.I .pyc
files on import. See also PYTHONDONTWRITEBYTECODE.
.TP
.B \-b
Issue warnings about str(bytes_instance), str(bytearray_instance)
and comparing bytes/bytearray with str. (-bb: issue errors)
.TP
.BI "\-c " command
Specify the command to execute (see next section).
This terminates the option list (following options are passed as
arguments to the command).
.TP
.B \-d
Turn on parser debugging output (for wizards only, depending on
compilation options).
.TP
.B \-E
Ignore environment variables like PYTHONPATH and PYTHONHOME that modify
the behavior of the interpreter.
.TP
.B \-h ", " \-? ", "\-\-help
Prints the usage for the interpreter executable and exits.
.TP
.B \-i
When a script is passed as first argument or the \fB\-c\fP option is
used, enter interactive mode after executing the script or the
command.  It does not read the $PYTHONSTARTUP file.  This can be
useful to inspect global variables or a stack trace when a script
raises an exception.
.TP
.B \-I
Run Python in isolated mode. This also implies \fB\-E\fP and \fB\-s\fP. In
isolated mode sys.path contains neither the script's directory nor the user's
site-packages directory. All PYTHON* environment variables are ignored, too.
Further restrictions may be imposed to prevent the user from injecting
malicious code.
.TP
.BI "\-m " module-name
Searches
.I sys.path
for the named module and runs the corresponding
.I .py
file as a script.
.TP
.B \-O
Turn on basic optimizations.  Given twice, causes docstrings to be discarded.
.TP
.B \-OO
Discard docstrings in addition to the \fB-O\fP optimizations.
.TP
.B \-q
Do not print the version and copyright messages. These messages are
also suppressed in non-interactive mode.
.TP
.B \-s
Don't add user site directory to sys.path.
.TP
.B \-S
Disable the import of the module
.I site
and the site-dependent manipulations of
.I sys.path
that it entails.  Also disable these manipulations if
.I site
is explicitly imported later.
.TP
.B \-u
Force the binary I/O layers of stdout and stderr to be unbuffered.
stdin is always buffered.
The text I/O layer will still be line-buffered.
.\" Note that there is internal buffering in readlines() and
.\" file-object iterators ("for line in sys.stdin") which is not
.\" influenced by this option.  To work around this, you will want to use
.\" "sys.stdin.readline()" inside a "while 1:" loop.
.TP
.B \-v
Print a message each time a module is initialized, showing the place
(filename or built-in module) from which it is loaded.  When given
twice, print a message for each file that is checked for when
searching for a module.  Also provides information on module cleanup
at exit.
.TP
.B \-V ", " \-\-version
Prints the Python version number of the executable and exits.
.TP
.BI "\-W " argument
Warning control.  Python sometimes prints warning message to
.IR sys.stderr .
A typical warning message has the following form:
.IB file ":" line ": " category ": " message.
By default, each warning is printed once for each source line where it
occurs.  This option controls how often warnings are printed.
Multiple
.B \-W
options may be given; when a warning matches more than one
option, the action for the last matching option is performed.
Invalid
.B \-W
options are ignored (a warning message is printed about invalid
options when the first warning is issued).  Warnings can also be
controlled from within a Python program using the
.I warnings
module.

The simplest form of
.I argument
is one of the following
.I action
strings (or a unique abbreviation):
.B ignore
to ignore all warnings;
.B default
to explicitly request the default behavior (printing each warning once
per source line);
.B all
to print a warning each time it occurs (this may generate many
messages if a warning is triggered repeatedly for the same source
line, such as inside a loop);
.B module
to print each warning only the first time it occurs in each
module;
.B once
to print each warning only the first time it occurs in the program; or
.B error
to raise an exception instead of printing a warning message.

The full form of
.I argument
is
.IB action : message : category : module : line.
Here,
.I action
is as explained above but only applies to messages that match the
remaining fields.  Empty fields match all values; trailing empty
fields may be omitted.  The
.I message
field matches the start of the warning message printed; this match is
case-insensitive.  The
.I category
field matches the warning category.  This must be a class name; the
match test whether the actual warning category of the message is a
subclass of the specified warning category.  The full class name must
be given.  The
.I module
field matches the (fully-qualified) module name; this match is
case-sensitive.  The
.I line
field matches the line number, where zero matches all line numbers and
is thus equivalent to an omitted line number.
.TP
.BI "\-X " option
Set implementation specific option.
.TP
.B \-x
Skip the first line of the source.  This is intended for a DOS
specific hack only.  Warning: the line numbers in error messages will
be off by one!
.SH INTERPRETER INTERFACE
The interpreter interface resembles that of the UNIX shell: when
called with standard input connected to a tty device, it prompts for
commands and executes them until an EOF is read; when called with a
file name argument or with a file as standard input, it reads and
executes a
.I script
from that file;
when called with
.B \-c
.IR command ,
it executes the Python statement(s) given as
.IR command .
Here
.I command
may contain multiple statements separated by newlines.
Leading whitespace is significant in Python statements!
In non-interactive mode, the entire input is parsed before it is
executed.
.PP
If available, the script name and additional arguments thereafter are
passed to the script in the Python variable
.IR sys.argv ,
which is a list of strings (you must first
.I import sys
to be able to access it).
If no script name is given,
.I sys.argv[0]
is an empty string; if
.B \-c
is used,
.I sys.argv[0]
contains the string
.I '-c'.
Note that options interpreted by the Python interpreter itself
are not placed in
.IR sys.argv .
.PP
In interactive mode, the primary prompt is `>>>'; the second prompt
(which appears when a command is not complete) is `...'.
The prompts can be changed by assignment to
.I sys.ps1
or
.IR sys.ps2 .
The interpreter quits when it reads an EOF at a prompt.
When an unhandled exception occurs, a stack trace is printed and
control returns to the primary prompt; in non-interactive mode, the
interpreter exits after printing the stack trace.
The interrupt signal raises the
.I Keyboard\%Interrupt
exception; other UNIX signals are not caught (except that SIGPIPE is
sometimes ignored, in favor of the
.I IOError
exception).  Error messages are written to stderr.
.SH FILES AND DIRECTORIES
These are subject to difference depending on local installation
conventions; ${prefix} and ${exec_prefix} are installation-dependent
and should be interpreted as for GNU software; they may be the same.
The default for both is \fI/usr/local\fP.
.IP \fI${exec_prefix}/bin/python\fP
Recommended location of the interpreter.
.PP
.I ${prefix}/lib/python<version>
.br
.I ${exec_prefix}/lib/python<version>
.RS
Recommended locations of the directories containing the standard
modules.
.RE
.PP
.I ${prefix}/include/python<version>
.br
.I ${exec_prefix}/include/python<version>
.RS
Recommended locations of the directories containing the include files
needed for developing Python extensions and embedding the
interpreter.
.RE
.SH ENVIRONMENT VARIABLES
.IP PYTHONHOME
Change the location of the standard Python libraries.  By default, the
libraries are searched in ${prefix}/lib/python<version> and
${exec_prefix}/lib/python<version>, where ${prefix} and ${exec_prefix}
are installation-dependent directories, both defaulting to
\fI/usr/local\fP.  When $PYTHONHOME is set to a single directory, its value
replaces both ${prefix} and ${exec_prefix}.  To specify different values
for these, set $PYTHONHOME to ${prefix}:${exec_prefix}.
.IP PYTHONPATH
Augments the default search path for module files.
The format is the same as the shell's $PATH: one or more directory
pathnames separated by colons.
Non-existent directories are silently ignored.
The default search path is installation dependent, but generally
begins with ${prefix}/lib/python<version> (see PYTHONHOME above).
The default search path is always appended to $PYTHONPATH.
If a script argument is given, the directory containing the script is
inserted in the path in front of $PYTHONPATH.
The search path can be manipulated from within a Python program as the
variable
.IR sys.path .
.IP PYTHONSTARTUP
If this is the name of a readable file, the Python commands in that
file are executed before the first prompt is displayed in interactive
mode.
The file is executed in the same name space where interactive commands
are executed so that objects defined or imported in it can be used
without qualification in the interactive session.
You can also change the prompts
.I sys.ps1
and
.I sys.ps2
in this file.
.IP PYTHONOPTIMIZE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-O\fP option. If set to an integer, it is equivalent to
specifying \fB\-O\fP multiple times.
.IP PYTHONDEBUG
If this is set to a non-empty string it is equivalent to specifying
the \fB\-d\fP option. If set to an integer, it is equivalent to
specifying \fB\-d\fP multiple times.
.IP PYTHONDONTWRITEBYTECODE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-B\fP option (don't try to write
.I .pyc
files).
.IP PYTHONINSPECT
If this is set to a non-empty string it is equivalent to specifying
the \fB\-i\fP option.
.IP PYTHONIOENCODING
If this is set before running the interpreter, it overrides the encoding used
for stdin/stdout/stderr, in the syntax
.IB encodingname ":" errorhandler
The
.IB errorhandler
part is optional and has the same meaning as in str.encode. For stderr, the
.IB errorhandler
 part is ignored; the handler will always be \'backslashreplace\'.
.IP PYTHONNOUSERSITE
If this is set to a non-empty string it is equivalent to specifying the
\fB\-s\fP option (Don't add the user site directory to sys.path).
.IP PYTHONUNBUFFERED
If this is set to a non-empty string it is equivalent to specifying
the \fB\-u\fP option.
.IP PYTHONVERBOSE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-v\fP option. If set to an integer, it is equivalent to
specifying \fB\-v\fP multiple times.
.IP PYTHONWARNINGS
If this is set to a comma-separated string it is equivalent to
specifying the \fB\-W\fP option for each separate value.
.IP PYTHONHASHSEED
If this variable is set to "random", a random value is used to seed the hashes
of str, bytes and datetime objects.

If PYTHONHASHSEED is set to an integer value, it is used as a fixed seed for
generating the hash() of the types covered by the hash randomization.  Its
purpose is to allow repeatable hashing, such as for selftests for the
interpreter itself, or to allow a cluster of python processes to share hash
values.

The integer must be a decimal number in the range [0,4294967295].  Specifying
the value 0 will disable hash randomization.
.SH AUTHOR
The Python Software Foundation: https://www.python.org/psf/
.SH INTERNET RESOURCES
Main website:  https://www.python.org/
.br
Documentation:  https://docs.python.org/
.br
Developer resources:  https://docs.python.org/devguide/
.br
Downloads:  https://www.python.org/downloads/
.br
Module repository:  https://pypi.python.org/
.br
Newsgroups:  comp.lang.python, comp.lang.python.announce
.SH LICENSING
Python is distributed under an Open Source license.  See the file
"LICENSE" in the Python source distribution for information on terms &
conditions for accessing and otherwise using Python and for a
DISCLAIMER OF ALL WARRANTIES.
man1/python2.7.1000064400000034366151734011070007245 0ustar00.TH PYTHON "1"

.\" To view this file while editing, run it through groff:
.\"   groff -Tascii -man python.man | less

.SH NAME
python \- an interpreted, interactive, object-oriented programming language
.SH SYNOPSIS
.B python
[
.B \-B
]
[
.B \-d
]
[
.B \-E
]
[
.B \-h
]
[
.B \-i
]
[
.B \-m 
.I module-name
]
.br
       [
.B \-O
]
[
.B \-OO
]
[
.B \-R
]
[
.B -Q
.I argument
]
[
.B \-s
]
[
.B \-S
]
[
.B \-t
]
[
.B \-u
]
.br
       [
.B \-v
]
[
.B \-V
]
[
.B \-W
.I argument
]
[
.B \-x
]
[
.B \-3
]
[
.B \-?
]
.br
       [
.B \-c
.I command
|
.I script
|
\-
]
[
.I arguments
]
.SH DESCRIPTION
Python is an interpreted, interactive, object-oriented programming
language that combines remarkable power with very clear syntax.
For an introduction to programming in Python, see the Python Tutorial.
The Python Library Reference documents built-in and standard types,
constants, functions and modules.
Finally, the Python Reference Manual describes the syntax and
semantics of the core language in (perhaps too) much detail.
(These documents may be located via the
.B "INTERNET RESOURCES"
below; they may be installed on your system as well.)
.PP
Python's basic power can be extended with your own modules written in
C or C++.
On most systems such modules may be dynamically loaded.
Python is also adaptable as an extension language for existing
applications.
See the internal documentation for hints.
.PP
Documentation for installed Python modules and packages can be 
viewed by running the 
.B pydoc
program.  
.SH COMMAND LINE OPTIONS
.TP
.B \-B
Don't write
.I .py[co]
files on import. See also PYTHONDONTWRITEBYTECODE.
.TP
.BI "\-c " command
Specify the command to execute (see next section).
This terminates the option list (following options are passed as
arguments to the command).
.TP
.B \-d
Turn on parser debugging output (for wizards only, depending on
compilation options).
.TP
.B \-E
Ignore environment variables like PYTHONPATH and PYTHONHOME that modify
the behavior of the interpreter.
.TP
.B \-h ", " \-? ", "\-\-help
Prints the usage for the interpreter executable and exits.
.TP
.B \-i
When a script is passed as first argument or the \fB\-c\fP option is
used, enter interactive mode after executing the script or the
command.  It does not read the $PYTHONSTARTUP file.  This can be
useful to inspect global variables or a stack trace when a script
raises an exception.
.TP
.BI "\-m " module-name
Searches 
.I sys.path 
for the named module and runs the corresponding 
.I .py 
file as a script.
.TP
.B \-O
Turn on basic optimizations.  This changes the filename extension for
compiled (bytecode) files from
.I .pyc
to \fI.pyo\fP.  Given twice, causes docstrings to be discarded.
.TP
.B \-OO
Discard docstrings in addition to the \fB-O\fP optimizations.
.TP
.B \-R
Turn on "hash randomization", so that the hash() values of str, bytes and
datetime objects are "salted" with an unpredictable pseudo-random value.
Although they remain constant within an individual Python process, they are
not predictable between repeated invocations of Python.
.IP
This is intended to provide protection against a denial of service
caused by carefully-chosen inputs that exploit the worst case performance
of a dict construction, O(n^2) complexity.  See
http://www.ocert.org/advisories/ocert-2011-003.html
for details.
.TP
.BI "\-Q " argument
Division control; see PEP 238.  The argument must be one of "old" (the
default, int/int and long/long return an int or long), "new" (new
division semantics, i.e. int/int and long/long returns a float),
"warn" (old division semantics with a warning for int/int and
long/long), or "warnall" (old division semantics with a warning for
all use of the division operator).  For a use of "warnall", see the
Tools/scripts/fixdiv.py script.
.TP
.B \-s
Don't add user site directory to sys.path.
.TP
.B \-S
Disable the import of the module
.I site
and the site-dependent manipulations of
.I sys.path
that it entails.
.TP
.B \-t
Issue a warning when a source file mixes tabs and spaces for
indentation in a way that makes it depend on the worth of a tab
expressed in spaces.  Issue an error when the option is given twice.
.TP
.B \-u
Force stdin, stdout and stderr to be totally unbuffered.  On systems
where it matters, also put stdin, stdout and stderr in binary mode.
Note that there is internal buffering in xreadlines(), readlines() and
file-object iterators ("for line in sys.stdin") which is not
influenced by this option.  To work around this, you will want to use
"sys.stdin.readline()" inside a "while 1:" loop.
.TP
.B \-v
Print a message each time a module is initialized, showing the place
(filename or built-in module) from which it is loaded.  When given
twice, print a message for each file that is checked for when 
searching for a module.  Also provides information on module cleanup
at exit.
.TP
.B \-V ", " \-\-version
Prints the Python version number of the executable and exits.
.TP
.BI "\-W " argument
Warning control.  Python sometimes prints warning message to
.IR sys.stderr .
A typical warning message has the following form:
.IB file ":" line ": " category ": " message.
By default, each warning is printed once for each source line where it
occurs.  This option controls how often warnings are printed.
Multiple
.B \-W
options may be given; when a warning matches more than one
option, the action for the last matching option is performed.
Invalid
.B \-W
options are ignored (a warning message is printed about invalid
options when the first warning is issued).  Warnings can also be
controlled from within a Python program using the
.I warnings
module.

The simplest form of
.I argument
is one of the following
.I action
strings (or a unique abbreviation):
.B ignore
to ignore all warnings;
.B default
to explicitly request the default behavior (printing each warning once
per source line);
.B all
to print a warning each time it occurs (this may generate many
messages if a warning is triggered repeatedly for the same source
line, such as inside a loop);
.B module
to print each warning only the first time it occurs in each
module;
.B once
to print each warning only the first time it occurs in the program; or
.B error
to raise an exception instead of printing a warning message.

The full form of
.I argument
is
.IB action : message : category : module : line.
Here,
.I action
is as explained above but only applies to messages that match the
remaining fields.  Empty fields match all values; trailing empty
fields may be omitted.  The
.I message
field matches the start of the warning message printed; this match is
case-insensitive.  The
.I category
field matches the warning category.  This must be a class name; the
match test whether the actual warning category of the message is a
subclass of the specified warning category.  The full class name must
be given.  The
.I module
field matches the (fully-qualified) module name; this match is
case-sensitive.  The
.I line
field matches the line number, where zero matches all line numbers and
is thus equivalent to an omitted line number.
.TP
.B \-x
Skip the first line of the source.  This is intended for a DOS
specific hack only.  Warning: the line numbers in error messages will
be off by one!
.TP
.B \-3
Warn about Python 3.x incompatibilities that 2to3 cannot trivially fix.
.SH INTERPRETER INTERFACE
The interpreter interface resembles that of the UNIX shell: when
called with standard input connected to a tty device, it prompts for
commands and executes them until an EOF is read; when called with a
file name argument or with a file as standard input, it reads and
executes a
.I script
from that file;
when called with
.B \-c
.IR command ,
it executes the Python statement(s) given as
.IR command .
Here
.I command
may contain multiple statements separated by newlines.
Leading whitespace is significant in Python statements!
In non-interactive mode, the entire input is parsed before it is
executed.
.PP
If available, the script name and additional arguments thereafter are
passed to the script in the Python variable
.IR sys.argv ,
which is a list of strings (you must first
.I import sys
to be able to access it).
If no script name is given,
.I sys.argv[0]
is an empty string; if
.B \-c
is used,
.I sys.argv[0]
contains the string
.I '-c'.
Note that options interpreted by the Python interpreter itself
are not placed in
.IR sys.argv .
.PP
In interactive mode, the primary prompt is `>>>'; the second prompt
(which appears when a command is not complete) is `...'.
The prompts can be changed by assignment to
.I sys.ps1
or
.IR sys.ps2 .
The interpreter quits when it reads an EOF at a prompt.
When an unhandled exception occurs, a stack trace is printed and
control returns to the primary prompt; in non-interactive mode, the
interpreter exits after printing the stack trace.
The interrupt signal raises the
.I Keyboard\%Interrupt
exception; other UNIX signals are not caught (except that SIGPIPE is
sometimes ignored, in favor of the
.I IOError
exception).  Error messages are written to stderr.
.SH FILES AND DIRECTORIES
These are subject to difference depending on local installation
conventions; ${prefix} and ${exec_prefix} are installation-dependent
and should be interpreted as for GNU software; they may be the same.
The default for both is \fI/usr/local\fP.
.IP \fI${exec_prefix}/bin/python\fP
Recommended location of the interpreter.
.PP
.I ${prefix}/lib/python<version>
.br
.I ${exec_prefix}/lib/python<version>
.RS
Recommended locations of the directories containing the standard
modules.
.RE
.PP
.I ${prefix}/include/python<version>
.br
.I ${exec_prefix}/include/python<version>
.RS
Recommended locations of the directories containing the include files
needed for developing Python extensions and embedding the
interpreter.
.RE
.IP \fI~/.pythonrc.py\fP
User-specific initialization file loaded by the \fIuser\fP module;
not used by default or by most applications.
.SH ENVIRONMENT VARIABLES
.IP PYTHONHOME
Change the location of the standard Python libraries.  By default, the
libraries are searched in ${prefix}/lib/python<version> and
${exec_prefix}/lib/python<version>, where ${prefix} and ${exec_prefix}
are installation-dependent directories, both defaulting to
\fI/usr/local\fP.  When $PYTHONHOME is set to a single directory, its value
replaces both ${prefix} and ${exec_prefix}.  To specify different values
for these, set $PYTHONHOME to ${prefix}:${exec_prefix}.
.IP PYTHONPATH
Augments the default search path for module files.
The format is the same as the shell's $PATH: one or more directory
pathnames separated by colons.
Non-existent directories are silently ignored.
The default search path is installation dependent, but generally
begins with ${prefix}/lib/python<version> (see PYTHONHOME above).
The default search path is always appended to $PYTHONPATH.
If a script argument is given, the directory containing the script is
inserted in the path in front of $PYTHONPATH.
The search path can be manipulated from within a Python program as the
variable
.IR sys.path .
.IP PYTHONSTARTUP
If this is the name of a readable file, the Python commands in that
file are executed before the first prompt is displayed in interactive
mode.
The file is executed in the same name space where interactive commands
are executed so that objects defined or imported in it can be used
without qualification in the interactive session.
You can also change the prompts
.I sys.ps1
and
.I sys.ps2
in this file.
.IP PYTHONY2K
Set this to a non-empty string to cause the \fItime\fP module to
require dates specified as strings to include 4-digit years, otherwise
2-digit years are converted based on rules described in the \fItime\fP
module documentation.
.IP PYTHONOPTIMIZE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-O\fP option. If set to an integer, it is equivalent to
specifying \fB\-O\fP multiple times.
.IP PYTHONDEBUG
If this is set to a non-empty string it is equivalent to specifying
the \fB\-d\fP option. If set to an integer, it is equivalent to
specifying \fB\-d\fP multiple times.
.IP PYTHONDONTWRITEBYTECODE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-B\fP option (don't try to write
.I .py[co]
files).
.IP PYTHONINSPECT
If this is set to a non-empty string it is equivalent to specifying
the \fB\-i\fP option.
.IP PYTHONIOENCODING
If this is set before running the interpreter, it overrides the encoding used
for stdin/stdout/stderr, in the syntax
.IB encodingname ":" errorhandler
The
.IB errorhandler
part is optional and has the same meaning as in str.encode. For stderr, the
.IB errorhandler
 part is ignored; the handler will always be \'backslashreplace\'.
.IP PYTHONNOUSERSITE
If this is set to a non-empty string it is equivalent to specifying the
\fB\-s\fP option (Don't add the user site directory to sys.path).
.IP PYTHONUNBUFFERED
If this is set to a non-empty string it is equivalent to specifying
the \fB\-u\fP option.
.IP PYTHONVERBOSE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-v\fP option. If set to an integer, it is equivalent to
specifying \fB\-v\fP multiple times. 
.IP PYTHONWARNINGS
If this is set to a comma-separated string it is equivalent to
specifying the \fB\-W\fP option for each separate value.
.IP PYTHONHASHSEED
If this variable is set to "random", the effect is the same as specifying
the \fB-R\fP option: a random value is used to seed the hashes of str,
bytes and datetime objects.

If PYTHONHASHSEED is set to an integer value, it is used as a fixed seed for
generating the hash() of the types covered by the hash randomization.  Its
purpose is to allow repeatable hashing, such as for selftests for the
interpreter itself, or to allow a cluster of python processes to share hash
values.

The integer must be a decimal number in the range [0,4294967295].  Specifying
the value 0 will lead to the same hash values as when hash randomization is
disabled.
.SH AUTHOR
The Python Software Foundation: https://www.python.org/psf/
.SH INTERNET RESOURCES
Main website:  https://www.python.org/
.br
Documentation:  https://docs.python.org/2/
.br
Developer resources:  https://docs.python.org/devguide/
.br
Downloads:  https://www.python.org/downloads/
.br
Module repository:  https://pypi.python.org/
.br
Newsgroups:  comp.lang.python, comp.lang.python.announce
.SH LICENSING
Python is distributed under an Open Source license.  See the file
"LICENSE" in the Python source distribution for information on terms &
conditions for accessing and otherwise using Python and for a
DISCLAIMER OF ALL WARRANTIES.
man3/mcrypt.3000064400000060470151735325110007016 0ustar00.TH MCRYPT 3 "10 March 2002"
.SH NAME
libmcrypt \- encryption/decryption library
.SH SYNOPSIS
[see also
.I mcrypt.h
for more information]
.SH DESCRIPTION
The
.I libmcrypt
is a data encryption library.
The library is thread safe and provides encryption and decryption functions.
This version of the library supports many encryption algorithms and encryption
modes. Some algorithms which are supported:
SERPENT, RIJNDAEL, 3DES, GOST, SAFER+, CAST-256, RC2, XTEA, 3WAY,
TWOFISH, BLOWFISH, ARCFOUR, WAKE and more. 
.LP
OFB, CBC, ECB, nOFB, nCFB and CFB are the modes that all algorithms may function.
ECB, CBC, encrypt in blocks but CTR, nCFB, nOFB, CFB and OFB in bytes (streams). 
Note that CFB and OFB in the rest of the document represent the "8bit CFB or OFB" mode.
nOFB and nCFB modes represents a n-bit OFB/CFB mode, n is used to represent the
algorithm's block size.
The library supports an extra STREAM mode to include some stream algorithms
like WAKE or ARCFOUR.

In this version of the library all modes and algorithms are modular,
which means that the algorithm and the mode is loaded at run-time.
This way you can add algorithms and modes faster, and much easier.

.I LibMcrypt
includes the following symmetric (block) algorithms:

.B DES: 
The traditional DES algorithm designed by IBM and US NSA. 
Uses 56 bit key and 64 bit block. It is now considered a weak
algorithm, due to its small key size (it was never intended for use
with classified data).

.B 3DES or Triple DES:
DES but with multiple (triple) encryption. It encrypts the plaintext
once, then decrypts it with the second key, and encrypts it again with
the third key (outer cbc mode used for cbc). 
Much better than traditional DES since the key is now 168 bits (actually
the effective key length is 112 bits due to the meet-in-the-middle attack).

.B CAST-128:
CAST was designed in Canada by Carlisle Adams and Stafford Tavares.
The original algorithm used a 64bit key and block. The algorithm
here is CAST-128 (also called CAST5) which has a 128bit key and 64bit block size.

.B CAST-256:
CAST-256 was designed by Carlisle Adams. It is a symmetric cipher designed in
accordance with the CAST design procedure. It is an extention of
the CAST-128, having a 128 bit block size, and up to 256 bit key size.

.B xTEA:
TEA stands for the Tiny Encryption Algorithm. It is a feistel cipher 
designed by David Wheeler & Roger M. Needham.
The original TEA was intended for use in applications where
code size is at a premium, or where it is necessary for someone to remember 
the algorithm and code it on an arbitrary machine at a later time.
The algorithm used here is extended TEA and has a 128bit key size and
64bit block size.

.B 3-WAY:
The 3way algorithm designed by Joan Daemen. It uses key and block size
of 96 bits. 

.B SKIPJACK:
SKIPJACK was designed by the US NSA. It was part of the ill-fated
"Clipper" Escrowed Encryption Standard (EES) (FIPS 185) proposal. It
operates on 64bit blocks and uses a key of 80 bits. SKIPJACK is provided only as an extra module to libmcrypt.

.B BLOWFISH: 
The Blowfish algorithm designed by Bruce Schneier. It is better and faster 
than DES. It can use a key up to 448 bits.

.B TWOFISH:
Twofish was designed by Bruce Schneier, Doug Whiting, John Kelsey, Chris
Hall, David Wagner for Counterpane systems. Intended to be highly secure 
and highly flexible. It uses a 128bit block size and 128,192,256 bit key size.
(Twofish is the default algorithm)

.B LOKI97:
LOKI97 was designed by Lawrie Brown and Josef Pieprzyk. It has a 128-bit
block length and a 256bit key schedule, which can be initialized
using 128, 192 or 256 bit keys. It has evolved from the
earlier LOKI89 and LOKI91 64-bit block ciphers, with a strengthened key
schedule and a larger keyspace.

.B RC2:
RC2 (RC stands for Rivest Cipher) was designed by Ron Rivest. It uses block size of 64 bit and a key size
from 8 to 1024 bits. It is optimized for 16bit microprocessors (reflecting
its age). It is described in the RFC2268.

.B ARCFOUR:
RC4 was designed by Ron Rivest. For several years this algorithm was
considered a trade secret and details were not available. In September 1994 someone
posted the source code in the cypherpunks mailing list. Although the source
code is now available RC4 is trademarked by RSADSI so a compatible cipher named
ARCFOUR is included in the mcrypt distribution. It is a stream cipher
and has a maximum key of 2048 bits.

.B RC6:
RC6 was designed by Ron Rivest for RSA labs. In mcrypt it uses block size of 128 bit and
a key size of 128/192/256 bits.
Refer to RSA Labs and Ron Rivest for any copyright, patent or license issues
for the RC6 algorithm. RC6 is provided only as an extra module to libmcrypt.

.B RIJNDAEL:
Rijndael is a block cipher, designed by Joan Daemen and Vincent Rijmen,
and was approved for the USA's NIST Advanced Encryption Standard, FIPS-197.
The cipher has a variable block length and key length. Rijndael can be implemented very efficiently on a wide range
of processors and in hardware. The design of Rijndael was strongly influenced
by the design of the block cipher Square. 
There exist three versions of this algorithm, namely:
.B RIJNDAEL-128 (the AES winner)
,
.B RIJNDAEL-192
,
.B RIJNDAEL-256
The numerals 128, 192 and 256 stand for the length of the block size.

.B MARS:
MARS is a 128-bit block cipher designed by IBM as a candidate for the 
Advanced Encryption Standard. Refer to IBM for any copyright, patent or license issues
for the MARS algorithm. MARS is provided only as an extra module to libmcrypt.

.B PANAMA:
PANAMA is a cryptographic module that can be used both as a
cryptographic hash function and as a stream cipher. It designed by Joan 
Daemen and Craig Clapp. PANAMA (the stream cipher) is included in
libmcrypt.

.B WAKE:
WAKE stands for Word Auto Key Encryption, and is an encryption system for 
medium speed encryption of blocks and of high security. 
WAKE was designed by David J. Wheeler. It is intended to 
be fast on most computers and relies on repeated table use and having a 
large state space. 

.B SERPENT:
Serpent is a 128-bit block cipher designed by Ross Anderson, Eli Biham and
Lars Knudsen as a candidate for the Advanced Encryption Standard.
Serpent's design was limited to well understood mechanisms, so that
could rely on the wide experience of block cipher cryptanalysis, and
achieve the highest practical level of assurance that no shortcut attack will
be found. Serpent has twice as many rounds as are necessary, to block all
currently known shortcut attacks. Despite these exacting design constraints,
Serpent is faster than DES. 

.B IDEA:
IDEA stands for International Data Encryption Algorithm and was designed
by Xuejia Lai and James Massey. It operates on 64bit blocks and uses a key of 128 bits.
Refer to Ascom-Tech AG for any copyright, patent or license issues
for the IDEA algorithm. IDEA is provided only as an extra module to libmcrypt.

.B ENIGMA (UNIX crypt):
A one-rotor machine designed along the lines of Enigma but considerable
trivialized. Very easy to break for a skilled cryptanalyst.
I suggest against using it. Added just for completeness.

.B GOST:
A former soviet union's algorithm. An acronym for "Gosudarstvennyi Standard" 
or Government Standard. It uses a 256 bit key and a 64 bit block.
 The S-boxes used here are described in the Applied Cryptography book
by Bruce Schneier. They were used in an application for the Central Bank
of the Russian Federation. 
 Some quotes from gost.c:
The standard is written by A. Zabotin (project leader), G.P. Glazkov,
and V.B. Isaeva.  It was accepted and introduced into use by the
action of the State Standards Committee of the USSR on 2 June 1989 as
No. 1409.  It was to be reviewed in 1993, but whether anyone wishes
to take on this obligation from the USSR is questionable.
 This code is based on the 25 November 1993 draft translation
by Aleksandr Malchik, with Whitfield Diffie, of the Government
Standard of the U.S.S.R. GOST 28149-89, "Cryptographic Transformation
Algorithm", effective 1 July 1990.  (Whitfield.Diffie@eng.sun.com)
Some details have been cleared up by the paper "Soviet Encryption
Algorithm" by Josef Pieprzyk and Leonid Tombak of the University
of Wollongong, New South Wales.  (josef/leo@cs.adfa.oz.au)

.B SAFER:
SAFER (Secure And Fast Encryption Routine) is a block cipher developed
by Prof. J.L. Massey at the Swiss Federal Institute of Technology.
There exist four versions of this algorithm, namely:
.B SAFER K-64
,
.B SAFER K-128
,
.B SAFER SK-64
and
.B SAFER SK-128.
The numerals 64 and 128 stand for the length of the user-selected
key, 'K' stands for the original key schedule and 'SK' stands for the
strengthened key schedule (in which some of the "weaknesses" of the
original key schedule have been removed). In mcrypt only SAFER SK-64 and
SAFER SK-128 are used.

.B SAFER+:
SAFER+ was designed by Prof. J.L. Massey, Prof. Gurgen H. Khachatrian and
Dr. Melsik K. Kuregian for Cylink. SAFER+ is based on the existing SAFER
family of ciphers and provides for a block size of 128bits and 128, 192
and 256 bits key length.


.LP
A short description of the modes supported by libmcrypt:

.B STREAM: 
The mode used with stream ciphers. In this mode the keystream from
the cipher is XORed with the plaintext. Thus you should NOT ever use the
same key.

.B ECB: 
The Electronic CodeBook mode. It is the simplest mode to use with a 
block cipher. Encrypts each block independently. It is a block mode
so plaintext length should be a multiple of blocksize (n*blocksize).

.B CBC:
The Cipher Block Chaining mode. It is better than ECB since the plaintext
is XOR'ed with the previous ciphertext. A random block should be placed as the
first block (IV) so the same block or messages always encrypt to something
different. It is a block mode so plaintext length should be a multiple 
of blocksize (n*blocksize).

.B CFB:
The Cipher-Feedback Mode (in 8bit). This is a self-synchronizing
stream cipher implemented from a block cipher. This is the best mode
to use for encrypting strings or streams. This mode requires an IV.

.B OFB:
The Output-Feedback Mode (in 8bit). This is a synchronous
stream cipher implemented from a block cipher. It is intended for use
in noisy lines, because corrupted ciphertext blocks do not corrupt the
plaintext blocks that follow. Insecure (because used in 8bit mode) so it is
recommended not to use it. Added just for completeness.

.B nOFB:
The Output-Feedback Mode (in nbit). n Is the size of the block of the
algorithm. This is a synchronous stream cipher implemented from a block
cipher. It is intended for use in noisy lines, because corrupted ciphertext
blocks do not corrupt the plaintext blocks that follow. This mode
operates in streams.

.B nCFB:
The Cipher-Feedback Mode (in nbit). n Is the size of the block of the
algorithm. This is a self synchronizing stream cipher implemented from a block
cipher. This mode operates in streams.

.B CTR:
The Counter Mode. This is a stream cipher implemented from a block
cipher. This mode uses the cipher to encrypt a set of input blocks, called
counters, to produce blocks that will be XORed with the plaintext.
In libmcrypt the counter is the given IV which is incremented at each step.
This mode operates in streams.

.B Error Recovery in these modes:
If bytes are removed or lost from the file or stream in ECB, CTR, CBC and OFB modes,
are impossible to recover, although CFB and nCFB modes will recover. If some
bytes are altered then a full block of plaintext is affected in ECB, nOFB and CTR modes,
two blocks in CBC, nCFB and CFB modes, but only the corresponding byte in OFB mode.

.LP
Encryption can be done as follows:

A call to function:
.B    MCRYPT mcrypt_module_open( char *algorithm, char* algorithm_directory, 
.B				char* mode, char* mode_directory);

This function associates the algorithm and the mode specified. 
The name of the algorithm is specified in algorithm, eg "twofish", and the algorithm_directory
is the directory where the algorithm is (it may be null if it is
the default). The same applies for the mode.
The library is closed by calling mcrypt_module_close(), but you should
not call that function if mcrypt_generic_end() is called before.
Normally it returns an encryption descriptor,
or MCRYPT_FAILED on error.

A call to function:
.B    int mcrypt_generic_init( MCRYPT td, void *key,
.B                               int lenofkey,
.B                               void *IV);

This function initializes all buffers for the specified thread
The maximum value of lenofkey should be the one obtained by 
calling mcrypt_get_key_size() and every value smaller than this is legal.
Note that Lenofkey should be specified in bytes not bits.
The IV should normally have the size of the algorithms block size, but
you must obtain the size by calling mcrypt_get_iv_size().
IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and
OFB modes. It needs to be random and unique (but not secret). The same IV must be used
for encryption/decryption. 
After calling this function you can use the descriptor for encryption
or decryption (not both). 
Returns a negative value on error.

To encrypt now call:

.B    int mcrypt_generic( MCRYPT td, void *plaintext, int len);

This is the main encryption function. td is the encryption descriptor
returned by mcrypt_generic_init(). Plaintext is the plaintext you
wish to encrypt and len should be the length (in bytes) of the
plaintext and it should be k*algorithms_block_size if used in a mode
which operated in blocks (cbc, ecb, nofb), or whatever when used in
cfb or ofb which operate in streams. The plaintext is replaced by the
ciphertext. Returns 0 on success.

To decrypt you can call:

.B    int mdecrypt_generic( MCRYPT td, void *ciphertext, int len);

The decryption function. It is almost the same with mcrypt_generic.
Returns 0 on success.

When you're finished you should call:

.B    int mcrypt_generic_end( MCRYPT td);

This function terminates encryption specified by the encryption descriptor (td).
Actually it clears all buffers, and closes all the modules used.
Returns a negative value on error.
.B This function is deprecated.
Use mcrypt_generic_deinit() and mcrypt_module_close() instead.

.B    int mcrypt_generic_deinit( MCRYPT td);

This function terminates encryption specified by the encryption descriptor (td).
Actually it clears all buffers. The difference with mcrypt_generic_end() is that
this function does not close the modules used. Thus you should use mcrypt_module_close().
Using this function you gain in speed if you use the same modules for several 
encryptions.
Returns a negative value on error.

.B    int mcrypt_module_close( MCRYPT td);

This function closes the modules used by the descriptor td.

.P
These are some extra functions that operate on modules that have been opened:
These functions have the prefix mcrypt_enc_*. 

.B    int mcrypt_enc_set_state(MCRYPT td, void *state, int size);
This function sets the state of the algorithm. Can
be used only with block algorithms and certain modes like CBC, CFB etc. 
It is usefully if you want to restart or start a different encryption quickly. 
Returns zero on success. The state is the output of mcrypt_enc_get_state().

.B    int mcrypt_enc_get_state(MCRYPT td, void *state, int *size);
This function returns the state of the algorithm. Can
be used only certain modes and algorithms. The size will hold the
size of the state and the state must have enough bytes to hold it.
Returns zero on success.

.B    int mcrypt_enc_self_test( MCRYPT td);

This function runs the self test on the algorithm specified by the descriptor
td. If the self test succeeds it returns zero. 

.B    int mcrypt_enc_is_block_algorithm_mode( MCRYPT td);

Returns 1 if the mode is for use with block algorithms, otherwise
it returns 0. (eg. 0 for stream, and 1 for cbc, cfb, ofb)

.B    int mcrypt_enc_is_block_algorithm( MCRYPT td);

Returns 1 if the algorithm is a block algorithm or 0 if it is a stream
algorithm.

.B    int mcrypt_enc_is_block_mode( MCRYPT td);

Returns 1 if the mode outputs blocks of bytes or 0 if it outputs bytes.
(eg. 1 for cbc and ecb, and 0 for cfb and stream)

.B    int mcrypt_enc_get_block_size( MCRYPT td);

Returns the block size of the algorithm specified by the encryption descriptor
in bytes. The algorithm MUST be opened using mcrypt_module_open().

.B    int mcrypt_enc_get_key_size( MCRYPT td); 

Returns the maximum supported key size of the algorithm specified by the encryption descriptor
in bytes. The algorithm MUST be opened using mcrypt_module_open().

.B    int* mcrypt_enc_get_supported_key_sizes( MCRYPT td, int* sizes)

Returns the key sizes supported by the algorithm specified by the encryption descriptor. 
If sizes is zero and returns NULL then all key sizes between 1 and mcrypt_get_key_size() are
supported by the algorithm. If it is 1 then only the mcrypt_get_key_size()
size is supported and sizes[0] is equal to it. If it is greater than 1 then
that number specifies the number of elements in sizes which are the key
sizes that the algorithm supports. The returned value is allocated with
malloc, so you should not forget to free it.

.B    int mcrypt_enc_get_iv_size( MCRYPT td); 

Returns size of the IV of the algorithm specified by the encryption descriptor
in bytes. The algorithm MUST be opened using mcrypt_module_open().
If it is '0' then the IV is ignored in that algorithm. IV is used in CBC,
CFB, OFB modes, and in some algorithms in STREAM mode.

.B    int mcrypt_enc_mode_has_iv( MCRYPT td); 

Returns 1 if the mode needs an IV, 0 otherwise. Some 'stream' algorithms
may need an IV even if the mode itself does not need an IV.

.B    char* mcrypt_enc_get_algorithms_name( MCRYPT td);

Returns a character array containing the name of the algorithm.
The returned value is allocated with malloc, so you should not forget to 
free it.

.B    char* mcrypt_enc_get_modes_name( MCRYPT td);

Returns a character array containing the name of the mode.
The returned value is allocated with malloc, so you should not forget to 
free it.

.P
These are some extra functions that operate on modules:
These functions have the prefix mcrypt_module_*.

.B    int mcrypt_module_self_test (char* algorithm, char* directory);

This function runs the self test on the specified algorithm. If the self
test succeeds it returns zero. 

.B    int mcrypt_module_is_block_algorithm_mode( char* algorithm, char* directory);

Returns 1 if the mode is for use with block algorithms, otherwise
it returns 0. (eg. 0 for stream, and 1 for cbc, cfb, ofb)

.B    int mcrypt_module_is_block_algorithm( char* mode, char* directory);

Returns 1 if the algorithm is a block algorithm or 0 if it is a stream
algorithm.

.B    int mcrypt_module_is_block_mode( char* mode, char* directory);

Returns 1 if the mode outputs blocks of bytes or 0 if it outputs bytes.
(eg. 1 for cbc and ecb, and 0 for cfb and stream)

.B    int mcrypt_module_get_algo_block_size( char* algorithm, char* directory);

Returns the block size of the algorithm.

.B    int mcrypt_module_get_algo_key_size( char* algorithm, char* directory);

Returns the maximum supported key size of the algorithm.

.B    int* mcrypt_module_get_algo_supported_key_sizes( char* algorithm, char* directory, int* sizes);

Returns the key sizes supported by the algorithm. If sizes is zero and 
returns NULL then all key sizes between 1 and mcrypt_get_key_size() are
supported by the algorithm. If it is 1 then only the mcrypt_get_key_size()
size is supported and sizes[0] is equal to it. If it is greater than 1 then
that number specifies the number of elements in sizes which are the key
sizes that the algorithm supports. This function differs to
mcrypt_enc_get_supported_key_sizes(), because the return value here is
allocated (not static), thus it should be freed.

.LP

.B char** mcrypt_list_algorithms ( char* libdir, int* size);

Returns a pointer to a character array containing all
the mcrypt algorithms located in the libdir, or if it is NULL, in
the default directory. The size is the number of the character arrays.
The arrays are allocated internally and should be freed by using mcrypt_free_p().

.B char** mcrypt_list_modes ( char* libdir, int *size);

Returns a pointer to a character array containing all
the mcrypt modes located in the libdir, or if it is NULL, in
the default directory. The size is the number of the character arrays.
The arrays should be freed by using mcrypt_free_p().

.B void mcrypt_free_p (char **p, int size);

Frees the pointer to array returned by previous functions.

.B void mcrypt_free (void *ptr);

Frees the memory used by the pointer.

.B    void mcrypt_perror(int err);

This function prints a human readable description of the error 'err' in the stderr.
The err should be a value returned by mcrypt_generic_init().

.B    const char* mcrypt_strerror(int err);

This function returns a human readable description of the error 'err'.
The err should be a value returned by mcrypt_generic_init().

.B    int mcrypt_mutex_register ( void (*mutex_lock)(void) , void (*mutex_unlock)(void) );

This function is only used in multithreaded application and only if compiled
with dynamic module loading support. This is actually used
internally in libltdl. Except for the dynamic module loading libmcrypt is 
thread safe.

.LP
Some example programs follow here. Compile as "cc prog.c -lmcrypt", or
"cc prog.c -lmcrypt -lltdl" depending on your installation.
Libltdl is used for opening dynamic libraries (modules).

.nf
/* First example: Encrypts stdin to stdout using TWOFISH with 128 bit key and CFB */

#include <mcrypt.h>
#include <stdio.h>
#include <stdlib.h>
/* #include <mhash.h> */

main() {

  MCRYPT td;
  int i;
  char *key;
  char password[20];
  char block_buffer;
  char *IV;
  int keysize=16; /* 128 bits */

  key=calloc(1, keysize);
  strcpy(password, "A_large_key");

/* Generate the key using the password */
/*  mhash_keygen( KEYGEN_MCRYPT, MHASH_MD5, key, keysize, NULL, 0, password, strlen(password));
 */
  memmove( key, password, strlen(password));

  td = mcrypt_module_open("twofish", NULL, "cfb", NULL);
  if (td==MCRYPT_FAILED) {
     return 1;
  }
  IV = malloc(mcrypt_enc_get_iv_size(td));

/* Put random data in IV. Note these are not real random data, 
 * consider using /dev/random or /dev/urandom.
 */

  /*  srand(time(0)); */
  for (i=0; i< mcrypt_enc_get_iv_size( td); i++) {
    IV[i]=rand();
  }

  i=mcrypt_generic_init( td, key, keysize, IV);
  if (i<0) {
     mcrypt_perror(i);
     return 1;
  }

  /* Encryption in CFB is performed in bytes */
  while ( fread (&block_buffer, 1, 1, stdin) == 1 ) {
      mcrypt_generic (td, &block_buffer, 1);

/* Comment above and uncomment this to decrypt */
/*    mdecrypt_generic (td, &block_buffer, 1);  */

      fwrite ( &block_buffer, 1, 1, stdout);
  }

/* Deinit the encryption thread, and unload the module */
  mcrypt_generic_end(td);

  return 0;

}


/* Second Example: encrypts using CBC and SAFER+ with 192 bits key */

#include <mcrypt.h>
#include <stdio.h>
#include <stdlib.h>

main() {

  MCRYPT td;
  int i;
  char *key; /* created using mcrypt_gen_key */
  char *block_buffer;
  char *IV;
  int blocksize;
  int keysize = 24; /* 192 bits == 24 bytes */


  key = calloc(1, keysize);
  strcpy(key, "A_large_and_random_key"); 

  td = mcrypt_module_open("saferplus", NULL, "cbc", NULL);

  blocksize = mcrypt_enc_get_block_size(td);
  block_buffer = malloc(blocksize);
/* but unfortunately this does not fill all the key so the rest bytes are
 * padded with zeros. Try to use large keys or convert them with mcrypt_gen_key().
 */

  IV=malloc(mcrypt_enc_get_iv_size(td));

/* Put random data in IV. Note these are not real random data, 
 * consider using /dev/random or /dev/urandom.
 */

/* srand(time(0)); */
  for (i=0; i < mcrypt_enc_get_iv_size(td); i++) {
    IV[i]=rand();
  }

  mcrypt_generic_init( td, key, keysize, IV);

  /* Encryption in CBC is performed in blocks */
  while ( fread (block_buffer, 1, blocksize, stdin) == blocksize ) {
      mcrypt_generic (td, block_buffer, blocksize);
/*      mdecrypt_generic (td, block_buffer, blocksize); */
      fwrite ( block_buffer, 1, blocksize, stdout);
  }

/* deinitialize the encryption thread */
  mcrypt_generic_deinit (td);

/* Unload the loaded module */
  mcrypt_module_close(td);
  return 0;

}
.fi

.LP
The library does not install any signal handler. 
.LP
Questions about libmcrypt should be sent to:
.IP
mcrypt-dev@lists.hellug.gr
or, if this fails, to the author addresses given below.
The mcrypt home page is:
.IP
http://mcrypt.hellug.gr
.LP
.SH AUTHORS
Version 2.4
Copyright (C) 1998-1999 Nikos Mavroyanopoulos (nmav@hellug.gr).
.LP
Thanks to all the people who reported problems and suggested various
improvements for mcrypt; who are too numerous to cite here.
.LP
.\" end of man page
man1/python3.8.1000064400000044646151735444700007264 0ustar00.TH PYTHON "1"

.\" To view this file while editing, run it through groff:
.\"   groff -Tascii -man python.man | less

.SH NAME
python \- an interpreted, interactive, object-oriented programming language
.SH SYNOPSIS
.B python
[
.B \-B
]
[
.B \-b
]
[
.B \-d
]
[
.B \-E
]
[
.B \-h
]
[
.B \-i
]
[
.B \-I
]
.br
       [
.B \-m
.I module-name
]
[
.B \-q
]
[
.B \-O
]
[
.B \-OO
]
[
.B \-s
]
[
.B \-S
]
[
.B \-u
]
.br
       [
.B \-v
]
[
.B \-V
]
[
.B \-W
.I argument
]
[
.B \-x
]
[
[
.B \-X
.I option
]
.B \-?
]
.br
       [
.B \--check-hash-based-pycs
.I default
|
.I always
|
.I never
]
.br
       [
.B \-c
.I command
|
.I script
|
\-
]
[
.I arguments
]
.SH DESCRIPTION
Python is an interpreted, interactive, object-oriented programming
language that combines remarkable power with very clear syntax.
For an introduction to programming in Python, see the Python Tutorial.
The Python Library Reference documents built-in and standard types,
constants, functions and modules.
Finally, the Python Reference Manual describes the syntax and
semantics of the core language in (perhaps too) much detail.
(These documents may be located via the
.B "INTERNET RESOURCES"
below; they may be installed on your system as well.)
.PP
Python's basic power can be extended with your own modules written in
C or C++.
On most systems such modules may be dynamically loaded.
Python is also adaptable as an extension language for existing
applications.
See the internal documentation for hints.
.PP
Documentation for installed Python modules and packages can be
viewed by running the
.B pydoc
program.
.SH COMMAND LINE OPTIONS
.TP
.B \-B
Don't write
.I .pyc
files on import. See also PYTHONDONTWRITEBYTECODE.
.TP
.B \-b
Issue warnings about str(bytes_instance), str(bytearray_instance)
and comparing bytes/bytearray with str. (-bb: issue errors)
.TP
.BI "\-c " command
Specify the command to execute (see next section).
This terminates the option list (following options are passed as
arguments to the command).
.TP
.BI "\-\-check-hash-based-pycs " mode
Configure how Python evaluates the up-to-dateness of hash-based .pyc files.
.TP
.B \-d
Turn on parser debugging output (for expert only, depending on
compilation options).
.TP
.B \-E
Ignore environment variables like PYTHONPATH and PYTHONHOME that modify
the behavior of the interpreter.
.TP
.B \-h ", " \-? ", "\-\-help
Prints the usage for the interpreter executable and exits.
.TP
.B \-i
When a script is passed as first argument or the \fB\-c\fP option is
used, enter interactive mode after executing the script or the
command.  It does not read the $PYTHONSTARTUP file.  This can be
useful to inspect global variables or a stack trace when a script
raises an exception.
.TP
.B \-I
Run Python in isolated mode. This also implies \fB\-E\fP and \fB\-s\fP. In
isolated mode sys.path contains neither the script's directory nor the user's
site-packages directory. All PYTHON* environment variables are ignored, too.
Further restrictions may be imposed to prevent the user from injecting
malicious code.
.TP
.BI "\-m " module-name
Searches
.I sys.path
for the named module and runs the corresponding
.I .py
file as a script.
.TP
.B \-O
Remove assert statements and any code conditional on the value of
__debug__; augment the filename for compiled (bytecode) files by
adding .opt-1 before the .pyc extension.
.TP
.B \-OO
Do \fB-O\fP and also discard docstrings; change the filename for
compiled (bytecode) files by adding .opt-2 before the .pyc extension.
.TP
.B \-q
Do not print the version and copyright messages. These messages are
also suppressed in non-interactive mode.
.TP
.B \-s
Don't add user site directory to sys.path.
.TP
.B \-S
Disable the import of the module
.I site
and the site-dependent manipulations of
.I sys.path
that it entails.  Also disable these manipulations if
.I site
is explicitly imported later.
.TP
.B \-u
Force the stdout and stderr streams to be unbuffered.
This option has no effect on the stdin stream.
.TP
.B \-v
Print a message each time a module is initialized, showing the place
(filename or built-in module) from which it is loaded.  When given
twice, print a message for each file that is checked for when
searching for a module.  Also provides information on module cleanup
at exit.
.TP
.B \-V ", " \-\-version
Prints the Python version number of the executable and exits.  When given
twice, print more information about the build.
.TP
.BI "\-W " argument
Warning control.  Python sometimes prints warning message to
.IR sys.stderr .
A typical warning message has the following form:
.IB file ":" line ": " category ": " message.
By default, each warning is printed once for each source line where it
occurs.  This option controls how often warnings are printed.
Multiple
.B \-W
options may be given; when a warning matches more than one
option, the action for the last matching option is performed.
Invalid
.B \-W
options are ignored (a warning message is printed about invalid
options when the first warning is issued).  Warnings can also be
controlled from within a Python program using the
.I warnings
module.

The simplest form of
.I argument
is one of the following
.I action
strings (or a unique abbreviation):
.B ignore
to ignore all warnings;
.B default
to explicitly request the default behavior (printing each warning once
per source line);
.B all
to print a warning each time it occurs (this may generate many
messages if a warning is triggered repeatedly for the same source
line, such as inside a loop);
.B module
to print each warning only the first time it occurs in each
module;
.B once
to print each warning only the first time it occurs in the program; or
.B error
to raise an exception instead of printing a warning message.

The full form of
.I argument
is
.IB action : message : category : module : line.
Here,
.I action
is as explained above but only applies to messages that match the
remaining fields.  Empty fields match all values; trailing empty
fields may be omitted.  The
.I message
field matches the start of the warning message printed; this match is
case-insensitive.  The
.I category
field matches the warning category.  This must be a class name; the
match test whether the actual warning category of the message is a
subclass of the specified warning category.  The full class name must
be given.  The
.I module
field matches the (fully-qualified) module name; this match is
case-sensitive.  The
.I line
field matches the line number, where zero matches all line numbers and
is thus equivalent to an omitted line number.
.TP
.BI "\-X " option
Set implementation specific option. The following options are available:

    -X faulthandler: enable faulthandler

    -X showrefcount: output the total reference count and number of used
        memory blocks when the program finishes or after each statement in the
        interactive interpreter. This only works on debug builds

    -X tracemalloc: start tracing Python memory allocations using the
        tracemalloc module. By default, only the most recent frame is stored in a
        traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a
        traceback limit of NFRAME frames

    -X showalloccount: output the total count of allocated objects for each
        type when the program finishes. This only works when Python was built with
        COUNT_ALLOCS defined

    -X importtime: show how long each import takes. It shows module name,
        cumulative time (including nested imports) and self time (excluding
        nested imports). Note that its output may be broken in multi-threaded
        application. Typical usage is python3 -X importtime -c 'import asyncio'

    -X dev: enable CPython's "development mode", introducing additional runtime
        checks which are too expensive to be enabled by default. It will not be
        more verbose than the default if the code is correct: new warnings are
        only emitted when an issue is detected. Effect of the developer mode:
           * Add default warning filter, as -W default
           * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function
           * Enable the faulthandler module to dump the Python traceback on a crash
           * Enable asyncio debug mode
           * Set the dev_mode attribute of sys.flags to True
           * io.IOBase destructor logs close() exceptions

    -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default
        locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would
        otherwise activate automatically). See PYTHONUTF8 for more details

    -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the
         given directory instead of to the code tree.

    -X int_max_str_digits=number: limit the size of int<->str conversions.
       This helps avoid denial of service attacks when parsing untrusted data.
       The default is sys.int_info.default_max_str_digits.  0 disables.

.TP
.B \-x
Skip the first line of the source.  This is intended for a DOS
specific hack only.  Warning: the line numbers in error messages will
be off by one!
.SH INTERPRETER INTERFACE
The interpreter interface resembles that of the UNIX shell: when
called with standard input connected to a tty device, it prompts for
commands and executes them until an EOF is read; when called with a
file name argument or with a file as standard input, it reads and
executes a
.I script
from that file;
when called with
.B \-c
.IR command ,
it executes the Python statement(s) given as
.IR command .
Here
.I command
may contain multiple statements separated by newlines.
Leading whitespace is significant in Python statements!
In non-interactive mode, the entire input is parsed before it is
executed.
.PP
If available, the script name and additional arguments thereafter are
passed to the script in the Python variable
.IR sys.argv ,
which is a list of strings (you must first
.I import sys
to be able to access it).
If no script name is given,
.I sys.argv[0]
is an empty string; if
.B \-c
is used,
.I sys.argv[0]
contains the string
.I '-c'.
Note that options interpreted by the Python interpreter itself
are not placed in
.IR sys.argv .
.PP
In interactive mode, the primary prompt is `>>>'; the second prompt
(which appears when a command is not complete) is `...'.
The prompts can be changed by assignment to
.I sys.ps1
or
.IR sys.ps2 .
The interpreter quits when it reads an EOF at a prompt.
When an unhandled exception occurs, a stack trace is printed and
control returns to the primary prompt; in non-interactive mode, the
interpreter exits after printing the stack trace.
The interrupt signal raises the
.I Keyboard\%Interrupt
exception; other UNIX signals are not caught (except that SIGPIPE is
sometimes ignored, in favor of the
.I IOError
exception).  Error messages are written to stderr.
.SH FILES AND DIRECTORIES
These are subject to difference depending on local installation
conventions; ${prefix} and ${exec_prefix} are installation-dependent
and should be interpreted as for GNU software; they may be the same.
The default for both is \fI/usr/local\fP.
.IP \fI${exec_prefix}/bin/python\fP
Recommended location of the interpreter.
.PP
.I ${prefix}/lib/python<version>
.br
.I ${exec_prefix}/lib/python<version>
.RS
Recommended locations of the directories containing the standard
modules.
.RE
.PP
.I ${prefix}/include/python<version>
.br
.I ${exec_prefix}/include/python<version>
.RS
Recommended locations of the directories containing the include files
needed for developing Python extensions and embedding the
interpreter.
.RE
.SH ENVIRONMENT VARIABLES
.IP PYTHONHOME
Change the location of the standard Python libraries.  By default, the
libraries are searched in ${prefix}/lib/python<version> and
${exec_prefix}/lib/python<version>, where ${prefix} and ${exec_prefix}
are installation-dependent directories, both defaulting to
\fI/usr/local\fP.  When $PYTHONHOME is set to a single directory, its value
replaces both ${prefix} and ${exec_prefix}.  To specify different values
for these, set $PYTHONHOME to ${prefix}:${exec_prefix}.
.IP PYTHONPATH
Augments the default search path for module files.
The format is the same as the shell's $PATH: one or more directory
pathnames separated by colons.
Non-existent directories are silently ignored.
The default search path is installation dependent, but generally
begins with ${prefix}/lib/python<version> (see PYTHONHOME above).
The default search path is always appended to $PYTHONPATH.
If a script argument is given, the directory containing the script is
inserted in the path in front of $PYTHONPATH.
The search path can be manipulated from within a Python program as the
variable
.IR sys.path .
.IP PYTHONSTARTUP
If this is the name of a readable file, the Python commands in that
file are executed before the first prompt is displayed in interactive
mode.
The file is executed in the same name space where interactive commands
are executed so that objects defined or imported in it can be used
without qualification in the interactive session.
You can also change the prompts
.I sys.ps1
and
.I sys.ps2
in this file.
.IP PYTHONOPTIMIZE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-O\fP option. If set to an integer, it is equivalent to
specifying \fB\-O\fP multiple times.
.IP PYTHONDEBUG
If this is set to a non-empty string it is equivalent to specifying
the \fB\-d\fP option. If set to an integer, it is equivalent to
specifying \fB\-d\fP multiple times.
.IP PYTHONDONTWRITEBYTECODE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-B\fP option (don't try to write
.I .pyc
files).
.IP PYTHONINSPECT
If this is set to a non-empty string it is equivalent to specifying
the \fB\-i\fP option.
.IP PYTHONIOENCODING
If this is set before running the interpreter, it overrides the encoding used
for stdin/stdout/stderr, in the syntax
.IB encodingname ":" errorhandler
The
.IB errorhandler
part is optional and has the same meaning as in str.encode. For stderr, the
.IB errorhandler
 part is ignored; the handler will always be \'backslashreplace\'.
.IP PYTHONNOUSERSITE
If this is set to a non-empty string it is equivalent to specifying the
\fB\-s\fP option (Don't add the user site directory to sys.path).
.IP PYTHONUNBUFFERED
If this is set to a non-empty string it is equivalent to specifying
the \fB\-u\fP option.
.IP PYTHONVERBOSE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-v\fP option. If set to an integer, it is equivalent to
specifying \fB\-v\fP multiple times.
.IP PYTHONWARNINGS
If this is set to a comma-separated string it is equivalent to
specifying the \fB\-W\fP option for each separate value.
.IP PYTHONHASHSEED
If this variable is set to "random", a random value is used to seed the hashes
of str and bytes objects.

If PYTHONHASHSEED is set to an integer value, it is used as a fixed seed for
generating the hash() of the types covered by the hash randomization.  Its
purpose is to allow repeatable hashing, such as for selftests for the
interpreter itself, or to allow a cluster of python processes to share hash
values.

The integer must be a decimal number in the range [0,4294967295].  Specifying
the value 0 will disable hash randomization.
.IP PYTHONINTMAXSTRDIGITS
Limit the maximum digit characters in an int value
when converting from a string and when converting an int back to a str.
A value of 0 disables the limit.  Conversions to or from bases 2, 4, 8,
16, and 32 are never limited.
.IP PYTHONMALLOC
Set the Python memory allocators and/or install debug hooks. The available
memory allocators are
.IR malloc
and
.IR pymalloc .
The available debug hooks are
.IR debug ,
.IR malloc_debug ,
and
.IR pymalloc_debug .
.IP
When Python is compiled in debug mode, the default is
.IR pymalloc_debug
and the debug hooks are automatically used. Otherwise, the default is
.IR pymalloc .
.IP PYTHONMALLOCSTATS
If set to a non-empty string, Python will print statistics of the pymalloc
memory allocator every time a new pymalloc object arena is created, and on
shutdown.
.IP
This variable is ignored if the
.RB $ PYTHONMALLOC
environment variable is used to force the
.BR malloc (3)
allocator of the C library, or if Python is configured without pymalloc support.
.IP PYTHONASYNCIODEBUG
If this environment variable is set to a non-empty string, enable the debug
mode of the asyncio module.
.IP PYTHONTRACEMALLOC
If this environment variable is set to a non-empty string, start tracing
Python memory allocations using the tracemalloc module.
.IP
The value of the variable is the maximum number of frames stored in a
traceback of a trace. For example,
.IB PYTHONTRACEMALLOC=1
stores only the most recent frame.
.IP PYTHONFAULTHANDLER
If this environment variable is set to a non-empty string,
.IR faulthandler.enable()
is called at startup: install a handler for SIGSEGV, SIGFPE, SIGABRT, SIGBUS
and SIGILL signals to dump the Python traceback.
.IP
This is equivalent to the \fB-X faulthandler\fP option.
.IP PYTHONEXECUTABLE
If this environment variable is set,
.IB sys.argv[0]
will be set to its value instead of the value got through the C runtime. Only
works on Mac OS X.
.IP PYTHONUSERBASE
Defines the user base directory, which is used to compute the path of the user
.IR site-packages
directory and Distutils installation paths for
.IR "python setup\.py install \-\-user" .
.IP PYTHONPROFILEIMPORTTIME
If this environment variable is set to a non-empty string, Python will
show how long each import takes. This is exactly equivalent to setting
\fB\-X importtime\fP on the command line.
.IP PYTHONBREAKPOINT
If this environment variable is set to 0, it disables the default debugger. It
can be set to the callable of your debugger of choice.
.SS Debug-mode variables
Setting these variables only has an effect in a debug build of Python, that is,
if Python was configured with the
\fB\--with-pydebug\fP build option.
.IP PYTHONTHREADDEBUG
If this environment variable is set, Python will print threading debug info.
.IP PYTHONDUMPREFS
If this environment variable is set, Python will dump objects and reference
counts still alive after shutting down the interpreter.
.SH AUTHOR
The Python Software Foundation: https://www.python.org/psf/
.SH INTERNET RESOURCES
Main website:  https://www.python.org/
.br
Documentation:  https://docs.python.org/
.br
Developer resources:  https://devguide.python.org/
.br
Downloads:  https://www.python.org/downloads/
.br
Module repository:  https://pypi.org/
.br
Newsgroups:  comp.lang.python, comp.lang.python.announce
.SH LICENSING
Python is distributed under an Open Source license.  See the file
"LICENSE" in the Python source distribution for information on terms &
conditions for accessing and otherwise using Python and for a
DISCLAIMER OF ALL WARRANTIES.