diff options
Diffstat (limited to 'networking/tls.h')
-rw-r--r-- | networking/tls.h | 73 |
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 | |||
39 | typedef uint64_t uint64; | ||
40 | typedef int64_t int64; | ||
41 | typedef uint32_t uint32; | ||
42 | typedef int32_t int32; | ||
43 | typedef uint16_t uint16; | ||
44 | typedef int16_t int16; | ||
45 | |||
46 | //FIXME | ||
47 | typedef 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 | |||
57 | void 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" | ||