mirror of
https://github.com/awslabs/aws-crt-php.git
synced 2026-08-17 17:47:12 +00:00
* Updated to get latest aws-crt-ffi * Added implementation for signing_result * Added main thread queue and callback queueing to signing process * Updated to get support for date on signing_config_aws * added date support to SigningConfigAWS, fixed up reference issues on http message signing * Broke C code into separate files, moved common stuff to php_aws_crt.h * Use a unity build to make PHP do the right thing with our lib * Updated aws-crt-ffi to v0.1.3 to get sigv4 changes * Added CRT::isAvailable for safe runtime detection of CRT * Fixed up test resource safety, added tests to prove it * Added CI jobs for every version of PHP on linux (#26)
155 lines
5.5 KiB
C
155 lines
5.5 KiB
C
/**
|
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
* SPDX-License-Identifier: Apache-2.0.
|
|
*/
|
|
|
|
#include "php_aws_crt.h"
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_options_new) {
|
|
aws_crt_credentials_options *options = aws_crt_credentials_options_new();
|
|
RETURN_LONG((zend_ulong)options);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_options_release) {
|
|
zend_ulong php_options = 0;
|
|
|
|
aws_php_parse_parameters("l", &php_options);
|
|
|
|
aws_crt_credentials_options *options = (void *)php_options;
|
|
aws_crt_credentials_options_release(options);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_options_set_access_key_id) {
|
|
zend_ulong php_options = 0;
|
|
const char *access_key_id = NULL;
|
|
size_t access_key_id_len = 0;
|
|
|
|
aws_php_parse_parameters("ls", &php_options, &access_key_id, &access_key_id_len);
|
|
|
|
aws_crt_credentials_options *options = (void *)php_options;
|
|
aws_crt_credentials_options_set_access_key_id(options, (uint8_t *)access_key_id, access_key_id_len);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_options_set_secret_access_key) {
|
|
zend_ulong php_options = 0;
|
|
const char *secret_access_key = NULL;
|
|
size_t secret_access_key_len = 0;
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ls", &php_options, &secret_access_key, &secret_access_key_len) ==
|
|
FAILURE) {
|
|
RETURN_NULL();
|
|
}
|
|
|
|
aws_crt_credentials_options *options = (void *)php_options;
|
|
aws_crt_credentials_options_set_secret_access_key(options, (uint8_t *)secret_access_key, secret_access_key_len);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_options_set_session_token) {
|
|
zend_ulong php_options = 0;
|
|
const char *session_token = NULL;
|
|
size_t session_token_len = 0;
|
|
|
|
aws_php_parse_parameters("ls", &php_options, &session_token, &session_token_len);
|
|
|
|
aws_crt_credentials_options *options = (void *)php_options;
|
|
aws_crt_credentials_options_set_session_token(options, (uint8_t *)session_token, session_token_len);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_options_set_expiration_timepoint_seconds) {
|
|
zend_ulong php_options = 0;
|
|
zend_ulong expiration_timepoint_seconds = 0;
|
|
aws_php_parse_parameters("ll", &php_options, &expiration_timepoint_seconds);
|
|
|
|
aws_crt_credentials_options *options = (void *)php_options;
|
|
aws_crt_credentials_options_set_expiration_timepoint_seconds(options, expiration_timepoint_seconds);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_new) {
|
|
zend_ulong php_options = 0;
|
|
|
|
aws_php_parse_parameters("l", &php_options);
|
|
|
|
aws_crt_credentials_options *options = (void *)php_options;
|
|
aws_crt_credentials *credentials = aws_crt_credentials_new(options);
|
|
RETURN_LONG((zend_ulong)credentials);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_release) {
|
|
zend_ulong php_credentials = 0;
|
|
|
|
aws_php_parse_parameters("l", &php_credentials);
|
|
|
|
aws_crt_credentials *credentials = (void *)php_credentials;
|
|
aws_crt_credentials_release(credentials);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_provider_release) {
|
|
zend_ulong php_creds_provider = 0;
|
|
|
|
aws_php_parse_parameters("l", &php_creds_provider);
|
|
|
|
aws_crt_credentials_provider *provider = (void *)php_creds_provider;
|
|
aws_crt_credentials_provider_release(provider);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_provider_static_options_new) {
|
|
aws_crt_credentials_provider_static_options *options = aws_crt_credentials_provider_static_options_new();
|
|
RETURN_LONG((zend_ulong)options);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_provider_static_options_release) {
|
|
zend_ulong php_options = 0;
|
|
|
|
aws_php_parse_parameters("l", &php_options);
|
|
|
|
aws_crt_credentials_provider_static_options *options = (void *)php_options;
|
|
aws_crt_credentials_provider_static_options_release(options);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_provider_static_options_set_access_key_id) {
|
|
zend_ulong php_options = 0;
|
|
const char *access_key_id = NULL;
|
|
size_t access_key_id_len = 0;
|
|
|
|
aws_php_parse_parameters("ls", &php_options, &access_key_id, &access_key_id_len);
|
|
|
|
aws_crt_credentials_provider_static_options *options = (void *)php_options;
|
|
aws_crt_credentials_provider_static_options_set_access_key_id(options, (uint8_t *)access_key_id, access_key_id_len);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_provider_static_options_set_secret_access_key) {
|
|
zend_ulong php_options = 0;
|
|
const char *secret_access_key = NULL;
|
|
size_t secret_access_key_len = 0;
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ls", &php_options, &secret_access_key, &secret_access_key_len) ==
|
|
FAILURE) {
|
|
RETURN_NULL();
|
|
}
|
|
|
|
aws_crt_credentials_provider_static_options *options = (void *)php_options;
|
|
aws_crt_credentials_provider_static_options_set_secret_access_key(
|
|
options, (uint8_t *)secret_access_key, secret_access_key_len);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_provider_static_options_set_session_token) {
|
|
zend_ulong php_options = 0;
|
|
const char *session_token = NULL;
|
|
size_t session_token_len = 0;
|
|
|
|
aws_php_parse_parameters("ls", &php_options, &session_token, &session_token_len);
|
|
|
|
aws_crt_credentials_provider_static_options *options = (void *)php_options;
|
|
aws_crt_credentials_provider_static_options_set_session_token(options, (uint8_t *)session_token, session_token_len);
|
|
}
|
|
|
|
PHP_FUNCTION(aws_crt_credentials_provider_static_new) {
|
|
zend_ulong php_options = 0;
|
|
|
|
aws_php_parse_parameters("l", &php_options);
|
|
|
|
aws_crt_credentials_provider_static_options *options = (void *)php_options;
|
|
aws_crt_credentials_provider *provider = aws_crt_credentials_provider_static_new(options);
|
|
RETURN_LONG((zend_ulong)provider);
|
|
}
|