summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2022-11-23 21:14:33 +0300
committerAndrew Dolgov <[email protected]>2022-11-23 21:14:33 +0300
commit0c8af4992cb0f7589dcafaad65ada12753c64594 (patch)
tree18e83d068c3e7dd2499331de977782b382279396 /vendor/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php
initial
Diffstat (limited to 'vendor/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php')
-rw-r--r--vendor/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/vendor/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php b/vendor/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php
new file mode 100644
index 0000000..100b56a
--- /dev/null
+++ b/vendor/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php
@@ -0,0 +1,43 @@
+<?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();
+ }
+} \ No newline at end of file