Akamai-Edgegrid
view release on metacpan or search on metacpan
lib/Akamai/Edgegrid.pm view on Meta::CPAN
}
sub _new_nonce {
my $ug = new Data::UUID;
return $ug->create_str;
}
# see http://search.cpan.org/~mshelor/Digest-SHA-5.88/lib/Digest/SHA.pm#PADDING_OF_BASE64_DIGESTS
sub _pad_digest {
my $digest = shift;
while (length($digest) % 4) {
$digest .= '=';
}
return $digest;
}
sub _padded_hmac_sha256_base64 {
my ($data, $key) = @_;
return _pad_digest(hmac_sha256_base64($data, $key));
}
lib/Akamai/Edgegrid.pm view on Meta::CPAN
"$header_name:$header_val";
} grep {
defined $r->header($_)
} @{$self->{headers_to_sign}}
);
}
sub _make_content_hash {
my ($self, $r) = @_;
if ($r->method eq 'POST' and length($r->content) > 0) {
my $body = $r->content;
if (length($body) > $self->{max_body}) {
$self->_debug(
"data length " . length($body) . " is larger than maximum " . $self->{max_body}
);
$body = substr($body, 0, $self->{max_body});
$self->_debug(
"data truncated to " . length($body) . " for computing the hash"
);
}
return _padded_sha256_base64($body);
}
return "";
}
sub _make_data_to_sign {
my ($self, $r, $auth_header) = @_;
my $data_to_sign = join("\t", (
t/testdata.json view on Meta::CPAN
"method": "POST",
"path": "/testapi/v1/t3",
"data": "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd...
"headers": [
{"Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"}
]
},
"expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=6Q6PiT...
},
{
"testName": "POST length equals max_body",
"request": {
"method": "POST",
"path": "/testapi/v1/t3",
"data": "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd...
"headers": [
{"Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"}
]
},
"expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=6Q6PiT...
},
( run in 0.228 second using v1.01-cache-2.11-cpan-65fba6d93b7 )