API参考
载入中...
搜索中...
未找到
sm9_fp4.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 __HEADER_SM9_Fp4_H__
17#define __HEADER_SM9_Fp4_H__
18
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_SM9
21
22#include "sm9_fp2.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28void SM9_Fp4_Add(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A, SM9_Fp4 *pFp4_B);
29void SM9_Fp4_Sub(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A, SM9_Fp4 *pFp4_B);
30void SM9_Fp4_Neg(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
31void SM9_Fp4_GetConj(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
32
33void SM9_Fp4_Mul(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A, SM9_Fp4 *pFp4_B);
34void SM9_Fp4_Squ(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
35void SM9_Fp4_Inv(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
36
37void SM9_Fp4_FrobMap(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
38
39void SM9_Fp4_Mul_Coef0(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A, SM9_Fp2 *pFp2_B);
40void SM9_Fp4_Mul_Coef1(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A, SM9_Fp2 *pFp2_B);
41void SM9_Fp4_Mul_V(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
42void SM9_Fp4_Mul_V2(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
43
44void SM9_Fp4_MulWq(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
45void SM9_Fp4_MulW2q(SM9_Fp4 *pFp4_R, SM9_Fp4 *pFp4_A);
46
47#ifdef __cplusplus
48}
49#endif
50
51#endif // HITLS_CRYPTO_SM9
52
53#endif
54