Net-OAuth
view release on metacpan or search on metacpan
lib/Net/OAuth.pm view on Meta::CPAN
=head3 RSA-SHA1 SIGNATURES
To use RSA-SHA1 signatures, pass in a Crypt::OpenSSL::RSA object (or any object that can do $o->sign($str) and/or $o->verify($str, $sig))
E.g.
Consumer:
use Crypt::OpenSSL::RSA;
use File::Slurp;
$keystring = read_file('private_key.pem');
$private_key = Crypt::OpenSSL::RSA->new_private_key($keystring);
$request = Net::OAuth->request('request token')->new(%params);
$request->sign($private_key);
Service Provider:
use Crypt::OpenSSL::RSA;
use File::Slurp;
$keystring = read_file('public_key.pem');
$public_key = Crypt::OpenSSL::RSA->new_public_key($keystring);
$request = Net::OAuth->request('request token')->new(%params);
if (!$request->verify($public_key)) {
die "Signature verification failed";
}
SKIP: {
skip "Crypt::OpenSSL::RSA not installed", 2 unless eval 'require Crypt::OpenSSL::RSA';
my $publickey;
my $privkey;
eval {
$privkey = Crypt::OpenSSL::RSA->new_private_key(slurp('t/rsakey'));
} or die "unable to read private key";
eval {
$publickey = Crypt::OpenSSL::RSA->new_public_key(slurp("t/rsakey.pub"));
} or die "unable to read public key";
# Crypt::OpenSSL::RSA changed its default to sha256 in 0.29_01
$privkey->use_sha1_hash;
$publickey->use_sha1_hash;
my $request = Net::OAuth::ProtectedResourceRequest->new(
( run in 0.241 second using v1.01-cache-2.11-cpan-a5abf4f5562 )