1Net::SSH::Perl::Key(3)User Contributed Perl DocumentationNet::SSH::Perl::Key(3)
2
3
4

NAME

6       Net::SSH::Perl::Key - Public or private key abstraction
7

SYNOPSIS

9           use Net::SSH::Perl::Key;
10           my $key = Net::SSH::Perl::Key->new;
11

DESCRIPTION

13       Net::SSH::Perl::Key implements an abstract base class interface to key
14       objects (either DSA, RSA, ECDSA, or Ed25519 keys, currently).  The
15       underlying implementation for RSA, DSA, an ECDSA keys is the CryptX
16       module.  The Ed25519 implementation uses bundled XS and C code from the
17       SUPERCOP ref10 implementation.
18

USAGE

20   Net::SSH::Perl::Key->new($key_type [, $blob [, $compat_flag_ref ]])
21       Creates a new object of type Net::SSH::Perl::Key::$key_type, after
22       loading the class implementing $key_type.  should be "DSA", "RSA1",
23       "RSA", "ECDSA256", "ECDSA384", "ECDSA521", or "Ed25519".
24
25       $blob, if present, should be a string representation of the key, from
26       which the key object can be initialized. In fact, it should be the
27       representation that is returned from the as_blob method, below.
28
29       $compat_flag_ref should be a reference to the SSH compatibility flag,
30       which is generally stored inside of the Net::SSH::Perl object. This
31       flag is used by certain key implementations ("DSA") to work around
32       differences between SSH2 protocol implementations.
33
34       Returns the new key object, which is blessed into the subclass.
35
36   Net::SSH::Perl::Key->read_private($key_type, $file [, $pass])
37       Reads a private key of type $key_type out of the key file $file. If the
38       private key is encrypted, an attempt will be made to decrypt it using
39       the passphrase $pass; if $pass is not provided, the empty string will
40       be used. An empty passphrase can be a handy way of providing password-
41       less access using publickey authentication.
42
43       If for any reason loading the key fails, returns undef; most of the
44       time, if loading the key fails, it's because the passphrase is
45       incorrect. If you first tried to read the key using an empty
46       passphrase, this might be a good time to ask the user for the actual
47       passphrase. :)
48
49       Returns the new key object, which is blessed into the subclass denoted
50       by $key_type ("DSA", "RSA1", "ECDSA" or "Ed25519").
51
52   Net::SSH::Perl::Key->keygen($key_type, $bits)
53       $key_type is one of RSA, DSA, or ECDSA256/ECDSA384/ECDSA521.  Generates
54       a new key and returns that key. The key returned is the private key,
55       which (presumably) contains all of the public key data, as well. $bits
56       is the number of bits in the key.
57
58       Your $key_type implementation may not support key generation; if not,
59       calling this method is a fatal error.
60
61       Returns the new key object, which is blessed into the subclass denoted
62       by $key_type
63
64   Net::SSH::Perl::Key->keygen('Ed25519')
65       Generates a new Ed25519 key.  Ed25519 keys have fixed key length.
66
67       Returns the new key object, which is bless into the Ed25519 subclass.
68
69   Net::SSH::Perl::Key->extract_public($key_type, $key_string)
70       Given a key string $key_string, which should be a textual
71       representation of the public portion of a key of $key_type, extracts
72       the key attributes out of that string. This is used to extract public
73       keys out of entries in known_hosts and public identity files.
74
75       Returns the new key object, which is blessed into the subclass denoted
76       by $key_type
77
78   $key->write_private([ $file [, $pass, $ciphername, $rounds] ])
79       Writes out the private key $key to $file, and encrypts it using the
80       passphrase $pass. If $pass is not provided, the key is unencrypted, and
81       the only security protection is through filesystem protections.  For
82       Ed25519 keys, optional parameters ciphername and rounds can be passed
83       to specify the desired cipher to encrypt the key with and how many
84       rounds of encryption to employ, respectively.
85
86       If $file is not provided, returns the content that would have been
87       written to the key file.
88
89   $key->dump_public
90       Performs the inverse of extract_public: takes a key $key and dumps out
91       a textual representation of the public portion of the key. This is used
92       when writing public key entries to known_hosts and public identity
93       files.
94
95       Returns the textual representation.
96
97   $key->as_blob
98       Returns a string representation of the public portion of the key; this
99       is not the same as dump_public, which is intended to match the format
100       used in known_hosts, etc.  The return value of as_blob is used as an
101       intermediary in computing other values: the key fingerprint, the known
102       hosts representation, etc.
103
104   $key->equal($key2)
105       Returns true if the public portions of $key are equal to those of
106       $key2, and false otherwise. This is used when comparing server host
107       keys to keys in known_hosts.
108
109   $key->size
110       Returns the size (in bits) of the key $key.
111
112   $key->fingerprint([ $type ])
113       Returns a fingerprint of $key. The default fingerprint is a SHA256
114       representation.  If $type is equal to "bubblebabble", the Bubble Babble
115       representation of the fingerprint is used.  If $type is equal to "hex",
116       a traditional hex representation is returned.
117
118       The hex representation uses an MD5 digest of the public key, and the
119       bubblebabble uses a SHA-1 digest.
120

AUTHOR & COPYRIGHTS

122       Please see the Net::SSH::Perl manpage for author, copyright, and
123       license information.
124
125
126
127perl v5.36.0                      2023-01-20            Net::SSH::Perl::Key(3)
Impressum