aboutsummaryrefslogtreecommitdiff
path: root/networking/tls.h
diff options
context:
space:
mode:
Diffstat (limited to 'networking/tls.h')
-rw-r--r--networking/tls.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/networking/tls.h b/networking/tls.h
new file mode 100644
index 000000000..20317ecc3
--- /dev/null
+++ b/networking/tls.h
@@ -0,0 +1,73 @@
1/*
2 * Copyright (C) 2017 Denys Vlasenko
3 *
4 * Licensed under GPLv2, see file LICENSE in this source tree.
5 */
6#include "libbb.h"
7
8/* config tweaks */
9#define HAVE_NATIVE_INT64 1
10#undef DISABLE_PSTM
11#undef USE_1024_KEY_SPEED_OPTIMIZATIONS
12#undef USE_2048_KEY_SPEED_OPTIMIZATIONS
13//TODO: enable to use asm:
14//#if defined(__GNUC__) && defined(__i386__) -> #define PSTM_32BIT and PSTM_X86
15//#if defined(__GNUC__) && defined(__x86_64__) -> #define PSTM_64BIT and PSTM_X86_64
16//ARM and MIPS also have these
17
18
19#define PS_SUCCESS 0
20#define PS_FAILURE -1
21#define PS_ARG_FAIL -6 /* Failure due to bad function param */
22#define PS_PLATFORM_FAIL -7 /* Failure as a result of system call error */
23#define PS_MEM_FAIL -8 /* Failure to allocate requested memory */
24#define PS_LIMIT_FAIL -9 /* Failure on sanity/limit tests */
25
26#define PS_TRUE 1
27#define PS_FALSE 0
28
29#if BB_BIG_ENDIAN
30# define ENDIAN_BIG 1
31# undef ENDIAN_LITTLE
32//#???? ENDIAN_32BITWORD
33// controls only STORE32L, which we don't use
34#else
35# define ENDIAN_LITTLE 1
36# undef ENDIAN_BIG
37#endif
38
39typedef uint64_t uint64;
40typedef int64_t int64;
41typedef uint32_t uint32;
42typedef int32_t int32;
43typedef uint16_t uint16;
44typedef int16_t int16;
45
46//FIXME
47typedef char psPool_t;
48
49//#ifdef PS_PUBKEY_OPTIMIZE_FOR_SMALLER_RAM
50#define PS_EXPTMOD_WINSIZE 3
51//#ifdef PS_PUBKEY_OPTIMIZE_FOR_FASTER_SPEED
52//#define PS_EXPTMOD_WINSIZE 5
53
54#define PUBKEY_TYPE 0x01
55#define PRIVKEY_TYPE 0x02
56
57void tls_get_random(void *buf, unsigned len);
58
59#define matrixCryptoGetPrngData(buf, len, userPtr) (tls_get_random(buf, len), PS_SUCCESS)
60
61#define psFree(p, pool) free(p)
62#define psTraceCrypto(msg) bb_error_msg_and_die(msg)
63
64/* Secure zerofill */
65#define memset_s(A,B,C,D) memset((A),(C),(D))
66/* Constant time memory comparison */
67#define memcmpct(s1, s2, len) memcmp((s1), (s2), (len))
68#undef min
69#define min(x, y) ((x) < (y) ? (x) : (y))
70
71
72#include "tls_pstm.h"
73#include "tls_rsa.h"