1Net::SSH::Perl::Key(3)User Contributed Perl DocumentationNet::SSH::Perl::Key(3)
2
3
4
6 Net::SSH::Perl::Key - Public or private key abstraction
7
9 use Net::SSH::Perl::Key;
10 my $key = Net::SSH::Perl::Key->new;
11
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
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
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)