/
home
/
obinna
/
html
/
mixchief_app
/
vendor
/
aws
/
aws-crt-php
/
src
/
AWS
/
CRT
/
Auth
/
Upload File
HOME
<?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); } }