API参考
载入中...
搜索中...
未找到
crypt_slh_dsa.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 CRYPT_SLH_DSA_H
17#define CRYPT_SLH_DSA_H
18
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_SLH_DSA
21
22#include <stdint.h>
23#include "bsl_params.h"
24
25typedef struct SlhDsaCtx CryptSlhDsaCtx;
26typedef struct HashFuncs SlhDsaHashFuncs;
27typedef union Adrs SlhDsaAdrs;
28
34CryptSlhDsaCtx *CRYPT_SLH_DSA_NewCtx(void);
35
43CryptSlhDsaCtx *CRYPT_SLH_DSA_NewCtxEx(void *libCtx);
44
50void CRYPT_SLH_DSA_FreeCtx(CryptSlhDsaCtx *ctx);
51
52CryptSlhDsaCtx *CRYPT_SLH_DSA_DupCtx(CryptSlhDsaCtx *ctx);
53
59int32_t CRYPT_SLH_DSA_Gen(CryptSlhDsaCtx *ctx);
60
71int32_t CRYPT_SLH_DSA_Sign(CryptSlhDsaCtx *ctx, int32_t algId, const uint8_t *data, uint32_t dataLen, uint8_t *sign,
72 uint32_t *signLen);
73
84
85int32_t CRYPT_SLH_DSA_Verify(const CryptSlhDsaCtx *ctx, int32_t algId, const uint8_t *data, uint32_t dataLen,
86 const uint8_t *sign, uint32_t signLen);
87
96int32_t CRYPT_SLH_DSA_Ctrl(CryptSlhDsaCtx *ctx, int32_t opt, void *val, uint32_t len);
97
104int32_t CRYPT_SLH_DSA_GetPubKey(const CryptSlhDsaCtx *ctx, CRYPT_SlhDsaPub *pub);
105
112int32_t CRYPT_SLH_DSA_GetPrvKey(const CryptSlhDsaCtx *ctx, CRYPT_SlhDsaPrv *prv);
113
120int32_t CRYPT_SLH_DSA_SetPubKey(CryptSlhDsaCtx *ctx, const CRYPT_SlhDsaPub *pub);
121
128int32_t CRYPT_SLH_DSA_SetPrvKey(CryptSlhDsaCtx *ctx, const CRYPT_SlhDsaPrv *prv);
129
136int32_t CRYPT_SLH_DSA_GetPubKeyEx(const CryptSlhDsaCtx *ctx, BSL_Param *para);
137
144int32_t CRYPT_SLH_DSA_GetPrvKeyEx(const CryptSlhDsaCtx *ctx, BSL_Param *para);
145
152int32_t CRYPT_SLH_DSA_SetPubKeyEx(CryptSlhDsaCtx *ctx, const BSL_Param *para);
153
160int32_t CRYPT_SLH_DSA_SetPrvKeyEx(CryptSlhDsaCtx *ctx, const BSL_Param *para);
161
162#ifdef HITLS_CRYPTO_SLH_DSA_CHECK
163
174int32_t CRYPT_SLH_DSA_Check(uint32_t checkType, const CryptSlhDsaCtx *pkey1, const CryptSlhDsaCtx *pkey2);
175
176#endif // HITLS_CRYPTO_SLH_DSA_CHECK
177
178#endif // HITLS_CRYPTO_SLH_DSA
179#endif // CRYPT_SLH_DSA_H
SLH-DSA private key structure
定义 crypt_types.h:365
SLH-DSA public key structure
定义 crypt_types.h:356