AWS_DOTNET_API bool aws_dotnet_auth_verify_v4a_canonical_signing()

in native/src/signing.c [547:597]


AWS_DOTNET_API bool aws_dotnet_auth_verify_v4a_canonical_signing(
    const char *canonical_request,
    struct aws_signing_config_native native_signing_config,
    const char *hex_signature,
    const char *ecc_pub_x,
    const char *ecc_pub_y) {

    (void)canonical_request;
    (void)native_signing_config;
    (void)hex_signature;
    (void)ecc_pub_x;
    (void)ecc_pub_y;

    struct aws_byte_cursor canonical_request_cursor = aws_byte_cursor_from_c_str(canonical_request);

    struct aws_allocator *allocator = aws_dotnet_get_allocator();

    int result = AWS_OP_ERR;
    struct aws_dotnet_signing_callback_state *continuation =
        aws_mem_calloc(allocator, 1, sizeof(struct aws_dotnet_signing_callback_state));
    if (continuation == NULL) {
        return false;
    }

    struct aws_signing_config_aws config;
    AWS_ZERO_STRUCT(config);

    if (s_initialize_signing_config(&config, &native_signing_config, continuation)) {
        goto done;
    }

    struct aws_signable *signable = aws_signable_new_canonical_request(allocator, canonical_request_cursor);
    if (signable == NULL) {
        goto done;
    }

    result = aws_verify_sigv4a_signing(
        allocator,
        signable,
        (struct aws_signing_config_base *)&config,
        aws_byte_cursor_from_c_str(canonical_request),
        aws_byte_cursor_from_c_str(hex_signature),
        aws_byte_cursor_from_c_str(ecc_pub_x),
        aws_byte_cursor_from_c_str(ecc_pub_y));

done:

    s_destroy_signing_callback_state(continuation);

    return result == AWS_OP_SUCCESS;
}