API参考
载入中...
搜索中...
未找到
custom_extensions.h
1/*
2 * This file is part of the openHiTLS project.
3 *
4 * openHiTLS is licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 *
8 * http://license.coscl.org.cn/MulanPSL2
9 *
10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13 * See the Mulan PSL v2 for more details.
14 */
15#ifndef CUSTOM_EXTENSIONS_H
16#define CUSTOM_EXTENSIONS_H
17
18#include "hitls.h"
19#include "hitls_custom_extensions.h"
20#include "tls.h"
21
22#define MAX_LIMIT_CUSTOM_EXT 20
23// Define CustomExtMethod structure
24typedef struct {
25 uint16_t extType;
26 uint32_t context;
29 void *addArg;
31 void *parseArg;
33
34// Define CustomExtMethods structure
35typedef struct CustomExtMethods {
36 CustomExtMethod *meths;
37 uint32_t methsCount;
39
40
53bool IsPackNeedCustomExtensions(CustomExtMethods *exts, uint32_t context);
54
55
69bool IsParseNeedCustomExtensions(CustomExtMethods *exts, uint16_t extType, uint32_t context);
70
87int32_t PackCustomExtensions(const struct TlsCtx *ctx, PackPacket *pkt, uint32_t context,
88 HITLS_CERT_X509 *cert, uint32_t certIndex);
89
97void FreeCustomExtensions(CustomExtMethods *exts);
98
107CustomExtMethods *DupCustomExtensions(CustomExtMethods *exts);
108
127int32_t ParseCustomExtensions(const struct TlsCtx *ctx, const uint8_t *buf, uint16_t extType, uint32_t extLen,
128 uint32_t context, HITLS_CERT_X509 *cert, uint32_t certIndex);
129
130#endif // CUSTOM_EXTENSIONS_H
void HITLS_CERT_X509
Describes the x509 certificate
定义 hitls_cert_type.h:37
void(* HITLS_FreeCustomExtCallback)(const HITLS_Ctx *ctx, uint16_t extType, uint32_t context, uint8_t *out, void *addArg)
Callback function to free a custom extension.
定义 hitls_custom_extensions.h:123
int(* HITLS_ParseCustomExtCallback)(const HITLS_Ctx *ctx, uint16_t extType, uint32_t context, const uint8_t **in, uint32_t *inLen, HITLS_CERT_X509 *cert, uint32_t certIndex, uint32_t *alert, void *parseArg)
Callback function to parse a custom extension.
定义 hitls_custom_extensions.h:144
int(* HITLS_AddCustomExtCallback)(const HITLS_Ctx *ctx, uint16_t extType, uint32_t context, uint8_t **out, uint32_t *outLen, HITLS_CERT_X509 *cert, uint32_t certIndex, uint32_t *alert, void *addArg)
Callback function to add a custom extension.
定义 hitls_custom_extensions.h:108
定义 custom_extensions.h:24
定义 custom_extensions.h:35
定义 tls.h:325
定义 tls.h:263