summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-crt-php/src/AWS/CRT/Auth/SigningConfigAWS.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/SigningConfigAWS.php
initial
Diffstat (limited to 'vendor/aws/aws-crt-php/src/AWS/CRT/Auth/SigningConfigAWS.php')
-rw-r--r--vendor/aws/aws-crt-php/src/AWS/CRT/Auth/SigningConfigAWS.php75
1 files changed, 75 insertions, 0 deletions
diff --git a/vendor/aws/aws-crt-php/src/AWS/CRT/Auth/SigningConfigAWS.php b/vendor/aws/aws-crt-php/src/AWS/CRT/Auth/SigningConfigAWS.php
new file mode 100644
index 0000000..8a73df9
--- /dev/null
+++ b/vendor/aws/aws-crt-php/src/AWS/CRT/Auth/SigningConfigAWS.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+namespace AWS\CRT\Auth;
+
+use AWS\CRT\NativeResource as NativeResource;
+use AWS\CRT\Options as Options;
+
+class SigningConfigAWS extends NativeResource {
+
+ public static function defaults() {
+ return [
+ 'algorithm' => SigningAlgorithm::SIGv4,
+ 'signature_type' => SignatureType::HTTP_REQUEST_HEADERS,
+ 'credentials_provider' => null,
+ 'region' => null,
+ 'service' => null,
+ 'use_double_uri_encode' => false,
+ 'should_normalize_uri_path' => false,
+ 'omit_session_token' => false,
+ 'signed_body_value' => null,
+ 'signed_body_header_type' => SignedBodyHeaderType::NONE,
+ 'expiration_in_seconds' => 0,
+ 'date' => time(),
+ 'should_sign_header' => null,
+ ];
+ }
+
+ private $options;
+
+ public function __construct(array $options = []) {
+ parent::__construct();
+ $this->options = $options = new Options($options, self::defaults());
+ $sc = $this->acquire(self::$crt->signing_config_aws_new());
+ self::$crt->signing_config_aws_set_algorithm($sc, $options->algorithm->asInt());
+ self::$crt->signing_config_aws_set_signature_type($sc, $options->signature_type->asInt());
+ if ($credentials_provider = $options->credentials_provider->asObject()) {
+ self::$crt->signing_config_aws_set_credentials_provider(
+ $sc,
+ $credentials_provider->native);
+ }
+ self::$crt->signing_config_aws_set_region(
+ $sc, $options->region->asString());
+ self::$crt->signing_config_aws_set_service(
+ $sc, $options->service->asString());
+ self::$crt->signing_config_aws_set_use_double_uri_encode(
+ $sc, $options->use_double_uri_encode->asBool());
+ self::$crt->signing_config_aws_set_should_normalize_uri_path(
+ $sc, $options->should_normalize_uri_path->asBool());
+ self::$crt->signing_config_aws_set_omit_session_token(
+ $sc, $options->omit_session_token->asBool());
+ self::$crt->signing_config_aws_set_signed_body_value(
+ $sc, $options->signed_body_value->asString());
+ self::$crt->signing_config_aws_set_signed_body_header_type(
+ $sc, $options->signed_body_header_type->asInt());
+ self::$crt->signing_config_aws_set_expiration_in_seconds(
+ $sc, $options->expiration_in_seconds->asInt());
+ self::$crt->signing_config_aws_set_date($sc, $options->date->asInt());
+ if ($should_sign_header = $options->should_sign_header->asCallable()) {
+ self::$crt->signing_config_aws_set_should_sign_header_fn($sc, $should_sign_header);
+ }
+ }
+
+ function __destruct()
+ {
+ self::$crt->signing_config_aws_release($this->release());
+ parent::__destruct();
+ }
+
+ public function __get($name) {
+ return $this->options->get($name);
+ }
+} \ No newline at end of file