/usr/include/matrixCommon.h is in libmatrixssl1.8-dev 1.8.8-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | /*
* matrixCommon.h
* Release $Name: MATRIXSSL_1_8_8_OPEN $
*
* Public common header file
*/
/*
* Copyright (c) PeerSec Networks, 2002-2009. All Rights Reserved.
* The latest version of this code is available at http://www.matrixssl.org
*
* This software is open source; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This General Public License does NOT permit incorporating this software
* into proprietary programs. If you are unable to comply with the GPL, a
* commercial license for this software may be purchased from PeerSec Networks
* at http://www.peersec.com
*
* This program is distributed in WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* http://www.gnu.org/copyleft/gpl.html
*/
/******************************************************************************/
#ifndef _h_MATRIXCOMMON
#define _h_MATRIXCOMMON
#ifdef __cplusplus
extern "C" {
#endif
#include <matrixConfig.h>
/******************************************************************************/
/*
Platform integer sizes
*/
typedef int int32;
typedef unsigned int uint32;
/******************************************************************************/
/*
Helpers
*/
#ifndef VXWORKS
#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif /* min */
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif /* max */
#endif /* VXWORKS */
/******************************************************************************/
/*
Flags for matrixSslNewSession
*/
#define SSL_FLAGS_SERVER 0x1
#define SSL_FLAGS_CLIENT_AUTH 0x200
/******************************************************************************/
/*
matrixSslSetSessionOption defines
*/
#define SSL_OPTION_DELETE_SESSION 0
/******************************************************************************/
/*
Typdefs required for public apis. From an end user perspective, the
sslBuf_t and sslCertInfo_t types have internal fields that are public,
but ssl_t, sslKeys_t, sslCert_t,and sslSessionId_t do not. Defining
those as 'int32' requires it to be treated as an opaque data type to be
passed to public apis
*/
#ifndef _h_EXPORT_SYMBOLS
typedef int32 ssl_t;
typedef int32 sslKeys_t;
typedef int32 sslSessionId_t;
typedef int32 sslCert_t;
/******************************************************************************/
/*
Explicitly import MATRIXPUBLIC apis on Windows. If we're being included
from an internal header, we export them instead!
*/
#ifdef WIN32
#define MATRIXPUBLIC extern __declspec(dllimport)
#endif /* WIN */
#else /* h_EXPORT_SYMOBOLS */
#ifdef WIN32
#define MATRIXPUBLIC extern __declspec(dllexport)
#endif /* WIN */
#endif /* h_EXPORT_SYMOBOLS */
#ifndef WIN32
#define MATRIXPUBLIC extern
#endif /* !WIN */
/******************************************************************************/
/*
Public structures
sslBuf_t
Empty buffer:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|
^
\end
\start
\buf
size = 16
len = (end - start) = 0
Buffer with data:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|.|.|a|b|c|d|e|f|g|h|i|j|.|.|.|.|
^ ^ ^
| | \end
| \start
\buf
size = 16
len = (end - start) = 10
Read from start pointer
Write to end pointer
*/
typedef struct {
unsigned char *buf; /* Pointer to the start of the buffer */
unsigned char *start; /* Pointer to start of valid data */
unsigned char *end; /* Pointer to first byte of invalid data */
int32 size; /* Size of buffer in bytes */
} sslBuf_t;
/******************************************************************************/
/*
Information provided to user callback for validating certificates.
Register callback with call to matrixSslSetCertValidator
*/
typedef struct {
char *country;
char *state;
char *locality;
char *organization;
char *orgUnit;
char *commonName;
} sslDistinguishedName_t;
typedef struct sslSubjectAltNameEntry {
int32 id;
unsigned char name[16];
unsigned char *data;
int32 dataLen;
struct sslSubjectAltNameEntry *next;
} sslSubjectAltName_t;
typedef struct sslCertInfo {
int32 verified;
unsigned char *serialNumber;
int32 serialNumberLen;
char *notBefore;
char *notAfter;
char *sigHash;
int32 sigHashLen;
sslSubjectAltName_t *subjectAltName;
sslDistinguishedName_t subject;
sslDistinguishedName_t issuer;
struct sslCertInfo *next;
} sslCertInfo_t;
/******************************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* _h_MATRIXCOMMON */
/******************************************************************************/
|