1*3c7ae9deSAndroid Build Coastguard Worker /** 2*3c7ae9deSAndroid Build Coastguard Worker * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3*3c7ae9deSAndroid Build Coastguard Worker * SPDX-License-Identifier: Apache-2.0. 4*3c7ae9deSAndroid Build Coastguard Worker */ 5*3c7ae9deSAndroid Build Coastguard Worker 6*3c7ae9deSAndroid Build Coastguard Worker #ifndef AWS_JNI_CRT_AWS_SIGNING_H 7*3c7ae9deSAndroid Build Coastguard Worker #define AWS_JNI_CRT_AWS_SIGNING_H 8*3c7ae9deSAndroid Build Coastguard Worker 9*3c7ae9deSAndroid Build Coastguard Worker #include <aws/common/byte_buf.h> 10*3c7ae9deSAndroid Build Coastguard Worker #include <jni.h> 11*3c7ae9deSAndroid Build Coastguard Worker 12*3c7ae9deSAndroid Build Coastguard Worker struct aws_signing_config_aws; 13*3c7ae9deSAndroid Build Coastguard Worker 14*3c7ae9deSAndroid Build Coastguard Worker struct aws_signing_config_data { 15*3c7ae9deSAndroid Build Coastguard Worker JavaVM *jvm; 16*3c7ae9deSAndroid Build Coastguard Worker struct aws_string *region; 17*3c7ae9deSAndroid Build Coastguard Worker struct aws_string *service; 18*3c7ae9deSAndroid Build Coastguard Worker struct aws_string *signed_body_value; 19*3c7ae9deSAndroid Build Coastguard Worker 20*3c7ae9deSAndroid Build Coastguard Worker jobject java_sign_header_predicate; 21*3c7ae9deSAndroid Build Coastguard Worker struct aws_credentials *credentials; 22*3c7ae9deSAndroid Build Coastguard Worker jobject java_credentials_provider; 23*3c7ae9deSAndroid Build Coastguard Worker }; 24*3c7ae9deSAndroid Build Coastguard Worker 25*3c7ae9deSAndroid Build Coastguard Worker /* Initialize the native `config` from Java Object and Keep the required data around with `config_data`. You need to 26*3c7ae9deSAndroid Build Coastguard Worker * clean up the `config_data` after the signing config is not used anymore */ 27*3c7ae9deSAndroid Build Coastguard Worker int aws_build_signing_config( 28*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 29*3c7ae9deSAndroid Build Coastguard Worker jobject java_config, 30*3c7ae9deSAndroid Build Coastguard Worker struct aws_signing_config_data *config_data, 31*3c7ae9deSAndroid Build Coastguard Worker struct aws_signing_config_aws *config); 32*3c7ae9deSAndroid Build Coastguard Worker 33*3c7ae9deSAndroid Build Coastguard Worker void aws_signing_config_data_clean_up(struct aws_signing_config_data *data, JNIEnv *env); 34*3c7ae9deSAndroid Build Coastguard Worker 35*3c7ae9deSAndroid Build Coastguard Worker #endif /* AWS_JNI_CRT_AWS_SIGNING_H */ 36