初始化仓库

This commit is contained in:
wangxiaowei
2025-04-22 14:09:52 +08:00
commit 8b100110bb
5155 changed files with 664201 additions and 0 deletions

View File

@ -0,0 +1,47 @@
<?php
namespace AlibabaCloud\Client\Signature;
/**
* Class BearerTokenSignature
*
* @package AlibabaCloud\Signature
*/
class BearerTokenSignature extends Signature implements SignatureInterface
{
/**
* @return string
*/
public function getMethod()
{
return '';
}
/**
* @return string
*/
public function getType()
{
return 'BEARERTOKEN';
}
/**
* @return string
*/
public function getVersion()
{
return '1.0';
}
/**
* @param string $string
* @param string $accessKeySecret
*
* @return string
*/
public function sign($string, $accessKeySecret)
{
return '';
}
}

View File

@ -0,0 +1,47 @@
<?php
namespace AlibabaCloud\Client\Signature;
/**
* Class ShaHmac1Signature
*
* @package AlibabaCloud\Signature
*/
class ShaHmac1Signature extends Signature implements SignatureInterface
{
/**
* @return string
*/
public function getMethod()
{
return 'HMAC-SHA1';
}
/**
* @return string
*/
public function getType()
{
return '';
}
/**
* @return string
*/
public function getVersion()
{
return '1.0';
}
/**
* @param string $string
* @param string $accessKeySecret
*
* @return string
*/
public function sign($string, $accessKeySecret)
{
return base64_encode(hash_hmac('sha1', $string, $accessKeySecret, true));
}
}

View File

@ -0,0 +1,47 @@
<?php
namespace AlibabaCloud\Client\Signature;
/**
* Class ShaHmac256Signature
*
* @package AlibabaCloud\Signature
*/
class ShaHmac256Signature extends Signature implements SignatureInterface
{
/**
* @return string
*/
public function getMethod()
{
return 'HMAC-SHA256';
}
/**
* @return string
*/
public function getType()
{
return '';
}
/**
* @return string
*/
public function getVersion()
{
return '1.0';
}
/**
* @param string $string
* @param string $accessKeySecret
*
* @return string
*/
public function sign($string, $accessKeySecret)
{
return base64_encode(hash_hmac('sha256', $string, $accessKeySecret, true));
}
}

View File

@ -0,0 +1,67 @@
<?php
namespace AlibabaCloud\Client\Signature;
use Exception;
use AlibabaCloud\Client\SDK;
use AlibabaCloud\Client\Exception\ClientException;
/**
* Class ShaHmac256WithRsaSignature
*
* @package AlibabaCloud\Signature
*/
class ShaHmac256WithRsaSignature extends Signature implements SignatureInterface
{
/**
* @return string
*/
public function getMethod()
{
return 'SHA256withRSA';
}
/**
* @return string
*/
public function getType()
{
return 'PRIVATEKEY';
}
/**
* @return string
*/
public function getVersion()
{
return '1.0';
}
/**
* @param string $string
* @param string $privateKey
*
* @return string
* @throws ClientException
*/
public function sign($string, $privateKey)
{
$binarySignature = '';
try {
openssl_sign(
$string,
$binarySignature,
$privateKey,
\OPENSSL_ALGO_SHA256
);
} catch (Exception $exception) {
throw new ClientException(
$exception->getMessage(),
SDK::INVALID_CREDENTIAL
);
}
return base64_encode($binarySignature);
}
}

View File

@ -0,0 +1,49 @@
<?php
namespace AlibabaCloud\Client\Signature;
use GuzzleHttp\Psr7\Request;
use AlibabaCloud\Client\Support\Sign;
/**
* Class Signature
*
* @package AlibabaCloud\Client\Signature
*/
abstract class Signature
{
/**
* @codeCoverageIgnore
*
* @param string $accessKeyId
* @param string $accessKeySecret
* @param Request $request
*
* @return string
*/
public function roa($accessKeyId, $accessKeySecret, Request $request)
{
$string = Sign::roaString($request);
$signature = $this->sign($string, $accessKeySecret);
return "acs $accessKeyId:$signature";
}
/**
* @codeCoverageIgnore
*
* @param string $accessKeySecret
* @param string $method
* @param array $parameters
*
* @return string
*/
public function rpc($accessKeySecret, $method, array $parameters)
{
$string = Sign::rpcString($method, $parameters);
return $this->sign($string, $accessKeySecret . '&');
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace AlibabaCloud\Client\Signature;
/**
* Interface used to provide interchangeable strategies for requests
*
* @package AlibabaCloud\Signature
*/
interface SignatureInterface
{
/**
* @return string
*/
public function getMethod();
/**
* @return string
*/
public function getVersion();
/**
* @param string $string
* @param string $accessKeySecret
*
* @return string
*/
public function sign($string, $accessKeySecret);
/**
* @return string
*/
public function getType();
}