43 lines
No EOL
1.4 KiB
PHP
43 lines
No EOL
1.4 KiB
PHP
<?php
|
|
/**
|
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
* SPDX-License-Identifier: Apache-2.0.
|
|
*/
|
|
namespace AWS\CRT\Auth;
|
|
|
|
use AWS\CRT\IO\InputStream;
|
|
use AWS\CRT\NativeResource as NativeResource;
|
|
|
|
class Signable extends NativeResource {
|
|
|
|
public static function fromHttpRequest($http_message) {
|
|
return new Signable(function() use ($http_message) {
|
|
return self::$crt->signable_new_from_http_request($http_message->native);
|
|
});
|
|
}
|
|
|
|
public static function fromChunk($chunk_stream, $previous_signature="") {
|
|
if (!($chunk_stream instanceof InputStream)) {
|
|
$chunk_stream = new InputStream($chunk_stream);
|
|
}
|
|
return new Signable(function() use($chunk_stream, $previous_signature) {
|
|
return self::$crt->signable_new_from_chunk($chunk_stream->native, $previous_signature);
|
|
});
|
|
}
|
|
|
|
public static function fromCanonicalRequest($canonical_request) {
|
|
return new Signable(function() use($canonical_request) {
|
|
return self::$crt->signable_new_from_canonical_request($canonical_request);
|
|
});
|
|
}
|
|
|
|
protected function __construct($ctor) {
|
|
parent::__construct();
|
|
$this->acquire($ctor());
|
|
}
|
|
|
|
function __destruct() {
|
|
self::$crt->signable_release($this->release());
|
|
parent::__destruct();
|
|
}
|
|
} |