Manta-Client
view release on metacpan or search on metacpan
lib/Manta/Client.pm view on Meta::CPAN
my %params = @_;
for my $required (qw{ method path }) {
croak "Required parameter '$required' not passed to _request method" unless defined $params{$required};
}
my $date = scalar gmtime;
my $date_header = "date: $date";
open F, "<$self->{key_file}";
my $key = join '', <F>;
close F;
my $fingerprint = Net::SSH::Perl::Key->read_private("RSA", $self->{key_file})->fingerprint("md5");
my $privatekey = Crypt::OpenSSL::RSA->new_private_key($key);
$privatekey->use_sha256_hash();
my $signature = encode_base64($privatekey->sign($date_header), "");
my $h = HTTP::Headers->new(%{$params{headers}});
$h->header(date => $date);
$h->header('Authorization' => "Signature keyId=\"/$self->{user}/keys/$fingerprint\",algorithm=\"rsa-sha256\",signature=\"$signature\"");
my $ua = LWP::UserAgent->new(default_headers => $h);
my $response;
if ($params{method} eq "GET") {
$response = $ua->get("$self->{url}/$params{path}");
if ($response->is_success) {
( run in 0.272 second using v1.01-cache-2.11-cpan-4d50c553e7e )