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
29#include "ziti_model.h"
30
31typedef uint32_t ziti_handle_t;
32#define ZITI_INVALID_HANDLE ((ziti_handle_t)-1)
33
34#if _WIN32
35#include <WinSock2.h>
36typedef SOCKET ziti_socket_t;
37#else
38#include <netinet/in.h>
39
40typedef int ziti_socket_t;
41#endif
42
49void Ziti_lib_init(void);
50
58
69int Ziti_enroll_identity(const char *jwt, const char *key, const char *cert,
70 char **id_json, unsigned long *id_json_len);
93int Ziti_load_context(ziti_handle_t *h, const char *identity);
94
103
117char* Ziti_login_external(ziti_handle_t ztx, const char *signer_name);
118
130int Ziti_login_totp(ziti_handle_t ztx, const char *code);
131
143int Ziti_wait_for_auth(ziti_handle_t ztx, int timeout_ms);
144
152
161
169
179int Ziti_connect(ziti_socket_t socket, ziti_handle_t ztx, const char *service, const char *terminator);
180
189int Ziti_connect_addr(ziti_socket_t socket, const char *host, unsigned int port);
190
200int Ziti_bind(ziti_socket_t socket, ziti_handle_t ztx, const char *service, const char *terminator);
201
209int Ziti_listen(ziti_socket_t socket, int backlog);
210
226ziti_socket_t Ziti_accept(ziti_socket_t socket, char *caller, int caller_len);
227
235
236
237#ifdef __cplusplus
238}
239#endif
240
241#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
Definition ziti_model.h:268
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:31
ziti_socket_t Ziti_socket(int type)
creates a socket handle(Windows) or file descriptor(*nix) suitable for connecting to a Ziti service
ziti_jwt_signer_array Ziti_get_ext_signers(ziti_handle_t ztx)
Get external signers available for authentication.
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:40
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.