xref: /OK3568_Linux_fs/kernel/include/crypto/sm2.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * sm2.h - SM2 asymmetric public-key algorithm
4*4882a593Smuzhiyun  * as specified by OSCCA GM/T 0003.1-2012 -- 0003.5-2012 SM2 and
5*4882a593Smuzhiyun  * described at https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * Copyright (c) 2020, Alibaba Group.
8*4882a593Smuzhiyun  * Written by Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
9*4882a593Smuzhiyun  */
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #ifndef _CRYPTO_SM2_H
12*4882a593Smuzhiyun #define _CRYPTO_SM2_H
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #include <crypto/sm3.h>
15*4882a593Smuzhiyun #include <crypto/akcipher.h>
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun /* The default user id as specified in GM/T 0009-2012 */
18*4882a593Smuzhiyun #define SM2_DEFAULT_USERID "1234567812345678"
19*4882a593Smuzhiyun #define SM2_DEFAULT_USERID_LEN 16
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun extern int sm2_compute_z_digest(struct crypto_akcipher *tfm,
22*4882a593Smuzhiyun 			const unsigned char *id, size_t id_len,
23*4882a593Smuzhiyun 			unsigned char dgst[SM3_DIGEST_SIZE]);
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun #endif /* _CRYPTO_SM2_H */
26