xref: /aosp_15_r20/external/aws-crt-java/src/native/aws_signing.h (revision 3c7ae9de214676c52d19f01067dc1a404272dc11)
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