API参考
载入中...
搜索中...
未找到
hitls_x509_adapt.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
16#ifndef HITLS_X509_ADAPT_LOCAL_H
17#define HITLS_X509_ADAPT_LOCAL_H
18
19#include <stdint.h>
20#include "hitls_build.h"
21#include "hitls_pki_cert.h"
22#include "hitls_pki_x509.h"
23#include "hitls_type.h"
24#include "hitls_cert.h"
25#include "hitls_crypt_type.h"
26#include "hitls_cert_type.h"
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#define HITLS_X509_Adapt_StoreNew HITLS_X509_StoreCtxNew
33HITLS_CERT_Store *HITLS_X509_Adapt_StoreDup(HITLS_CERT_Store *store);
34#define HITLS_X509_Adapt_StoreFree HITLS_X509_StoreCtxFree
35int32_t HITLS_X509_Adapt_StoreCtrl(HITLS_Config *config, HITLS_CERT_Store *store, HITLS_CERT_CtrlCmd cmd,
36 void *input, void *output);
37
38int32_t HITLS_X509_Adapt_BuildCertChain(HITLS_Config *config, HITLS_CERT_Store *store, HITLS_CERT_X509 *cert,
39 HITLS_CERT_X509 **list, uint32_t *num);
40int32_t HITLS_X509_Adapt_VerifyCertChain(HITLS_Ctx *ctx, HITLS_CERT_Store *store, HITLS_CERT_X509 **list, uint32_t num);
41
42int32_t HITLS_X509_Adapt_CertEncode(HITLS_Ctx *ctx, HITLS_CERT_X509 *cert, uint8_t *buf, uint32_t len,
43 uint32_t *usedLen);
44HITLS_CERT_X509 *HITLS_X509_Adapt_CertParse(HITLS_Config *config, const uint8_t *buf, uint32_t len,
46#ifdef HITLS_TLS_FEATURE_PROVIDER
47HITLS_CERT_X509 *HITLS_CERT_ProviderCertParse(HITLS_Lib_Ctx *libCtx, const char *attrName, const uint8_t *buf,
48 uint32_t len, HITLS_ParseType type, const char *format);
49#endif
50HITLS_CERT_Chain *HITLS_X509_Adapt_BundleCertParse(HITLS_Lib_Ctx *libCtx, const char *attrName, const uint8_t *buf,
51 uint32_t len, HITLS_ParseType type, const char *format);
52#define HITLS_X509_Adapt_CertDup HITLS_X509_Adapt_CertRef
53HITLS_CERT_X509 *HITLS_X509_Adapt_CertRef(HITLS_CERT_X509 *cert);
54#define HITLS_X509_Adapt_CertFree HITLS_X509_CertFree
55int32_t HITLS_X509_Adapt_CertCtrl(HITLS_Config *config, HITLS_CERT_X509 *cert, HITLS_CERT_CtrlCmd cmd,
56 void *input, void *output);
57
58HITLS_CERT_Key *HITLS_X509_Adapt_KeyParse(HITLS_Config *config, const uint8_t *buf, uint32_t len,
60#ifdef HITLS_TLS_FEATURE_PROVIDER
61HITLS_CERT_Key *HITLS_X509_Adapt_ProviderKeyParse(HITLS_Config *config, const uint8_t *buf, uint32_t len,
62 HITLS_ParseType type, const char *format, const char *encodeType);
63#endif
64#define HITLS_X509_Adapt_KeyDup CRYPT_EAL_PkeyDupCtx
65#define HITLS_X509_Adapt_KeyFree CRYPT_EAL_PkeyFreeCtx
66int32_t HITLS_X509_Adapt_KeyCtrl(HITLS_Config *config, HITLS_CERT_Key *key, HITLS_CERT_CtrlCmd cmd,
67 void *input, void *output);
68
69int32_t HITLS_X509_Adapt_CreateSign(HITLS_Ctx *ctx, HITLS_CERT_Key *key, HITLS_SignAlgo signAlgo,
70 HITLS_HashAlgo hashAlgo, const uint8_t *data, uint32_t dataLen, uint8_t *sign, uint32_t *signLen);
71int32_t HITLS_X509_Adapt_VerifySign(HITLS_Ctx *ctx, HITLS_CERT_Key *key, HITLS_SignAlgo signAlgo,
72 HITLS_HashAlgo hashAlgo, const uint8_t *data, uint32_t dataLen, const uint8_t *sign, uint32_t signLen);
73int32_t HITLS_X509_Adapt_Encrypt(HITLS_Ctx *ctx, HITLS_CERT_Key *key, const uint8_t *in, uint32_t inLen,
74 uint8_t *out, uint32_t *outLen);
75int32_t HITLS_X509_Adapt_Decrypt(HITLS_Ctx *ctx, HITLS_CERT_Key *key, const uint8_t *in, uint32_t inLen,
76 uint8_t *out, uint32_t *outLen);
77int32_t HITLS_X509_Adapt_CheckPrivateKey(const HITLS_Config *config, HITLS_CERT_X509 *cert, HITLS_CERT_Key *key);
78
79HITLS_CERT_CRLList *HITLS_X509_Adapt_CrlParse(HITLS_Config *config, const uint8_t *buf, uint32_t len,
81void HITLS_X509_Adapt_CrlFree(HITLS_CERT_CRLList *crlList);
82
83#ifdef __cplusplus
84}
85#endif
86
87#endif // HITLS_X509_ADAPT_LOCAL_H
HITLS_ParseType
Read data format
定义 hitls_cert_type.h:129
void HITLS_CERT_Key
Describes the certificate key
定义 hitls_cert_type.h:49
HITLS_ParseFormat
Read data format
定义 hitls_cert_type.h:139
struct BslList HITLS_CERT_Chain
Describes the certificate chain
定义 hitls_cert_type.h:73
HITLS_CERT_CtrlCmd
ctrl option
定义 hitls_cert_type.h:85
void HITLS_CERT_Store
Describes the certificate
定义 hitls_cert_type.h:55
void HITLS_CERT_X509
Describes the x509 certificate
定义 hitls_cert_type.h:37
struct BslList HITLS_CERT_CRLList
Describes the CRL list
定义 hitls_cert_type.h:79
struct TlsCtx HITLS_Ctx
HITLS context
定义 hitls_type.h:35
struct TlsConfig HITLS_Config
config context
定义 hitls_type.h:41