Ziti C SDK
Loading...
Searching...
No Matches
zitilib.h
Go to the documentation of this file.
1// Copyright (c) 2022. NetFoundry Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15
16#ifndef ZITI_SDK_ZITILIB_H
17#define ZITI_SDK_ZITILIB_H
18
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include "externs.h"
25#include "errors.h"
26
27#include <stdint.h>
28
29typedef uint32_t ziti_handle_t;
30#define ZITI_INVALID_HANDLE ((ziti_handle_t)-1)
31
32#if _WIN32
33#include <WinSock2.h>
34typedef SOCKET ziti_socket_t;
35#else
36#include <netinet/in.h>
37
38typedef int ziti_socket_t;
39#endif
40
47void Ziti_lib_init(void);
48
56
67int Ziti_enroll_identity(const char *jwt, const char *key, const char *cert,
68 char **id_json, unsigned long *id_json_len);
91int Ziti_load_context(ziti_handle_t *h, const char *identity);
92
117int Ziti_load_context_with_timeout(ziti_handle_t *h, const char *identity, int timeout_ms);
118
119
126const char * const * Ziti_get_ext_signers(ziti_handle_t ztx);
127
141char* Ziti_login_external(ziti_handle_t ztx, const char *signer_name);
142
154int Ziti_login_totp(ziti_handle_t ztx, const char *code);
155
167int Ziti_wait_for_auth(ziti_handle_t ztx, int timeout_ms);
168
176
185
193
203int Ziti_connect(ziti_socket_t socket, ziti_handle_t ztx, const char *service, const char *terminator);
204
213int Ziti_connect_addr(ziti_socket_t socket, const char *host, unsigned int port);
214
224int Ziti_bind(ziti_socket_t socket, ziti_handle_t ztx, const char *service, const char *terminator);
225
233int Ziti_listen(ziti_socket_t socket, int backlog);
234
250ziti_socket_t Ziti_accept(ziti_socket_t socket, char *caller, int caller_len);
251
259
260
261#ifdef __cplusplus
262}
263#endif
264
265#endif //ZITI_SDK_ZITILIB_H
Defines the macros, functions, typedefs and constants pertaining to errors observed when using a Ziti...
#define ZITI_FUNC
Definition externs.h:38
int Ziti_connect(ziti_socket_t socket, ziti_handle_t ztx, const char *service, const char *terminator)
Connect socket to a Ziti service.
uint32_t ziti_handle_t
Definition zitilib.h:29
ziti_socket_t Ziti_socket(int type)
creates a socket handle(Windows) or file descriptor(*nix) suitable for connecting to a Ziti service
const char *const * Ziti_get_ext_signers(ziti_handle_t ztx)
Get the names of external signers available for authentication.
int Ziti_load_context_with_timeout(ziti_handle_t *h, const char *identity, int timeout_ms)
Load Ziti identity with timeout control.
int Ziti_last_error(void)
return Ziti error code for last failed operation.
int Ziti_wait_for_auth(ziti_handle_t ztx, int timeout_ms)
Wait for authentication to complete.
ziti_socket_t Ziti_accept(ziti_socket_t socket, char *caller, int caller_len)
accept a client Ziti connection as a socket
int Ziti_load_context(ziti_handle_t *h, const char *identity)
Load Ziti identity.
int Ziti_connect_addr(ziti_socket_t socket, const char *host, unsigned int port)
Connect socket to a Ziti service with the given intercept address.
int ziti_socket_t
Definition zitilib.h:38
char * Ziti_login_external(ziti_handle_t ztx, const char *signer_name)
Start external login process.
void Ziti_lib_init(void)
Initialize Ziti library.
int Ziti_enroll_identity(const char *jwt, const char *key, const char *cert, char **id_json, unsigned long *id_json_len)
enroll a new Ziti identity
void Ziti_lib_shutdown(void)
Shutdown Ziti library.
int Ziti_listen(ziti_socket_t socket, int backlog)
marks the [socket] as a socket able to accept incoming connections
int Ziti_bind(ziti_socket_t socket, ziti_handle_t ztx, const char *service, const char *terminator)
Bind socket to a Ziti service.
int Ziti_check_socket(ziti_socket_t socket)
Check if the given socket handle/fd is attached to a Ziti connection via Ziti_connect()/Ziti_bind()
int Ziti_close(ziti_socket_t socket)
close the given socket handle/file descriptor.
int Ziti_login_totp(ziti_handle_t ztx, const char *code)
Login with TOTP code.