From 8e4bff4cab0ddac6060645b0715210484d02ff40 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Wed, 30 Aug 2017 08:25:59 +0000 Subject: Initial file dump from open source release --- include/uapi/linux/sprd_tks.h | 87 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 include/uapi/linux/sprd_tks.h (limited to 'include/uapi/linux/sprd_tks.h') diff --git a/include/uapi/linux/sprd_tks.h b/include/uapi/linux/sprd_tks.h new file mode 100644 index 00000000..b78372a1 --- /dev/null +++ b/include/uapi/linux/sprd_tks.h @@ -0,0 +1,87 @@ +#ifndef __SPRD_TKS_H +#define __SPRD_TKS_H + +#include + +enum key_type { + KEY_AES_128, + KEY_AES_256, + KEY_RSA_1024_PUB, + KEY_RSA_1024_PRV, + KEY_RSA_2048_PUB, + KEY_RSA_2048_PRV, + KEY_NAME +}; +/*use for sharemem data struct loc.*/ +struct tks_key_cal { + enum key_type type; + unsigned int keylen; + char keydata[0]; +}; + +struct tks_key { + enum key_type type; + unsigned int keylen; + /*__u8* keydata;*/ + __u8 keydata[1280]; +}; + +struct pack_data { + unsigned int len; + __u8 *data; +}; + +struct big_int { + unsigned int len; + __u8 *data; +}; + +struct dh_param { + struct big_int a; + struct big_int g; + struct big_int p; +}; + +struct request_gen_keypair { + /*struct tks_key rsapub;*/ /*[out]*/ + struct tks_key rsaprv; /*[out]*/ + struct tks_key out_rsapub; /*[out]*/ +}; + +struct request_dec_simple { + struct tks_key encryptkey; /*[in]*/ + struct pack_data data; /*[in/out]*/ +}; + +struct request_dec_pack_userpass { + struct tks_key encryptkey; /*[in]*/ + struct tks_key userpass; /*[in/out]*/ +}; + +struct request_crypto { + __u8 op; /*0=SIGN,1=VERIFY,2=ENC,3=DEC; [in]*/ + struct tks_key encryptkey; /*[in] */ + struct tks_key userpass; /*encryptkey userpass;[in]*/ + struct pack_data data; /*[in/out]*/ + struct pack_data signature; /*[in] only used for op==VERIFY*/ +}; + +struct request_gen_dhkey { + struct tks_key encryptkey; /*[in]*/ + struct dh_param param; /*[in]*/ + struct big_int b; /*[out]*/ + struct big_int k; /*[out]*/ +}; + +struct request_hmac { + struct pack_data message; /*[in(4090-4)/out(32)]*/ +}; + +#define SEC_IDC_TEST_USED _IOWR('S', 0x0, struct request_gen_keypair) +#define SEC_IOC_GEN_KEYPAIR _IOWR('S', 0x1, struct request_gen_keypair) +#define SEC_IOC_DEC_SIMPLE _IOWR('S', 0x2, struct request_dec_simple) +#define SEC_IOC_DEC_PACK_USERPASS _IOWR('S', 0x3, struct request_dec_pack_userpass) +#define SEC_IOC_CRYPTO _IOWR('S', 0x4, struct request_crypto) +#define SEC_IOC_GEN_DHKEY _IOWR('S', 0x5, struct request_gen_dhkey) +#define SEC_IOC_HMAC _IOWR('S', 0x6, struct request_hmac) +#endif -- cgit v1.3.1