doc update Ed25519,X25519
Karel Miko
4 years ago
149 | 149 | |
150 | 150 | =head1 SYNOPSIS |
151 | 151 | |
152 | use Crypt::PK::Ed25519; | |
153 | ||
154 | #Signature: Alice | |
155 | my $priv = Crypt::PK::Ed25519->new('Alice_priv_ed25519.der'); | |
156 | my $sig = $priv->sign_message($message); | |
157 | ||
158 | #Signature: Bob (received $message + $sig) | |
159 | my $pub = Crypt::PK::Ed25519->new('Alice_pub_ed25519.der'); | |
160 | $pub->verify_message($sig, $message) or die "ERROR"; | |
161 | ||
162 | #Load key | |
163 | my $pk = Crypt::PK::Ed25519->new; | |
164 | my $pk_hex = "A05D1AEA5830AC9A65CDFB384660D497E3697C46B419CF2CEC85DE8BD245459D"; | |
165 | $pk->import_key_raw(pack("H*", $pk_hex), "public"); | |
166 | my $sk = Crypt::PK::Ed25519->new; | |
167 | my $sk_hex = "45C109BA6FD24E8B67D23EFB6B92D99CD457E2137172C0D749FE2B5A0C142DAD"; | |
168 | $sk->import_key_raw(pack("H*", $sk_hex), "private"); | |
169 | ||
170 | #Key generation | |
171 | my $pk = Crypt::PK::Ed25519->new->generate_key; | |
172 | my $private_der = $pk->export_key_der('private'); | |
173 | my $public_der = $pk->export_key_der('public'); | |
174 | my $private_pem = $pk->export_key_pem('private'); | |
175 | my $public_pem = $pk->export_key_pem('public'); | |
176 | my $private_raw = $pk->export_key_raw('private'); | |
177 | my $public_raw = $pk->export_key_raw('public'); | |
178 | my $private_jwk = $pk->export_key_jwk('private'); | |
179 | my $public_jwk = $pk->export_key_jwk('public'); | |
180 | ||
181 | =head1 DESCRIPTION | |
182 | ||
183 | I<Since: CryptX-0.067> | |
184 | ||
152 | 185 | =head1 METHODS |
153 | 186 | |
154 | 187 | =head2 new |
188 | ||
189 | my $pk = Crypt::PK::Ed25519->new(); | |
190 | #or | |
191 | my $pk = Crypt::PK::Ed25519->new($priv_or_pub_key_filename); | |
192 | #or | |
193 | my $pk = Crypt::PK::Ed25519->new(\$buffer_containing_priv_or_pub_key); | |
194 | ||
195 | Support for password protected PEM keys | |
196 | ||
197 | my $pk = Crypt::PK::Ed25519->new($priv_pem_key_filename, $password); | |
198 | #or | |
199 | my $pk = Crypt::PK::Ed25519->new(\$buffer_containing_priv_pem_key, $password); | |
155 | 200 | |
156 | 201 | =head2 generate_key |
157 | 202 |
129 | 129 | |
130 | 130 | =head1 SYNOPSIS |
131 | 131 | |
132 | use Crypt::PK::X25519; | |
133 | ||
134 | #Shared secret | |
135 | my $priv = Crypt::PK::X25519->new('Alice_priv_x25519.der'); | |
136 | my $pub = Crypt::PK::X25519->new('Bob_pub_x25519.der'); | |
137 | my $shared_secret = $priv->shared_secret($pub); | |
138 | ||
139 | #Load key | |
140 | my $pk = Crypt::PK::X25519->new; | |
141 | my $pk_hex = "EA7806F721A8570512C8F6EFB4E8D620C49A529E4DF5EAA77DEC646FB1E87E41"; | |
142 | $pk->import_key_raw(pack("H*", $pk_hex), "public"); | |
143 | my $sk = Crypt::PK::X25519->new; | |
144 | my $sk_hex = "002F93D10BA5728D8DD8E9527721DABA3261C0BB1BEFDE7B4BBDAC631D454651"; | |
145 | $sk->import_key_raw(pack("H*", $sk_hex), "private"); | |
146 | ||
147 | #Key generation | |
148 | my $pk = Crypt::PK::X25519->new->generate_key; | |
149 | my $private_der = $pk->export_key_der('private'); | |
150 | my $public_der = $pk->export_key_der('public'); | |
151 | my $private_pem = $pk->export_key_pem('private'); | |
152 | my $public_pem = $pk->export_key_pem('public'); | |
153 | my $private_raw = $pk->export_key_raw('private'); | |
154 | my $public_raw = $pk->export_key_raw('public'); | |
155 | my $private_jwk = $pk->export_key_jwk('private'); | |
156 | my $public_jwk = $pk->export_key_jwk('public'); | |
157 | ||
158 | =head1 DESCRIPTION | |
159 | ||
160 | I<Since: CryptX-0.067> | |
161 | ||
132 | 162 | =head1 METHODS |
133 | 163 | |
134 | 164 | =head2 new |
165 | ||
166 | my $pk = Crypt::PK::X25519->new(); | |
167 | #or | |
168 | my $pk = Crypt::PK::X25519->new($priv_or_pub_key_filename); | |
169 | #or | |
170 | my $pk = Crypt::PK::X25519->new(\$buffer_containing_priv_or_pub_key); | |
171 | ||
172 | Support for password protected PEM keys | |
173 | ||
174 | my $pk = Crypt::PK::X25519->new($priv_pem_key_filename, $password); | |
175 | #or | |
176 | my $pk = Crypt::PK::X25519->new(\$buffer_containing_priv_pem_key, $password); | |
135 | 177 | |
136 | 178 | =head2 generate_key |
137 | 179 |