sm2_dev.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /******************************************************************************
  2. 版权所有:
  3. 文件名称: gh_sm2_dev.h
  4. 文件版本: 01.01
  5. 创建作者: xxxxxx
  6. 创建日期: 2014.7.23
  7. 功能说明: 加密接口.
  8. 其它说明:
  9. 修改记录:
  10. */
  11. #ifndef _GH_SM2_DEV_H
  12. #define _GH_SM2_DEV_H
  13. //主设备号
  14. #ifndef GH_SM2_DEV_MAJOR
  15. #define GH_SM2_DEV_MAJOR 239
  16. #endif
  17. //设备节点名
  18. #ifndef GH_VS_DEV0
  19. #define GH_VS_DEV0 "/dev/gh_sm2_dev"
  20. #endif
  21. //readUserId,writeUserId函数参数数据结构
  22. typedef struct _Twr_UserId{
  23. unsigned char *dat;
  24. }Twr_UserId;
  25. //readSM2key,writeSM2key函数参数数据结构
  26. typedef struct _Twr_SM2key{
  27. unsigned char no;
  28. unsigned char *dat;
  29. }Twr_SM2key;
  30. //SM2_GenerateRandom_me函数参数数据结构
  31. typedef struct _TSM2_GenerateRandom_me{
  32. unsigned int uiLength;
  33. unsigned char *pucRandom;
  34. }TSM2_GenerateRandom_me;
  35. //encrypt_epri函数参数数据结构
  36. typedef struct _Tencrypt_epri{
  37. unsigned char *in;
  38. unsigned int in_len;
  39. unsigned char *out;
  40. unsigned int *out_len;
  41. unsigned int key;
  42. int type;
  43. }Tencrypt_epri;
  44. //SM2_Encrypt函数参数数据结构
  45. typedef struct _TSM2_Encrypt{
  46. unsigned char *pucDataInput;
  47. unsigned int uiInputLength;
  48. ECCrefPublicKey *pucPublicKey;
  49. unsigned char *pucRandom;
  50. unsigned int uiRandomLength;
  51. ECCCipher *pucEncData;
  52. }TSM2_Encrypt;
  53. //SM2_Verify函数参数数据结构
  54. typedef struct _TSM2_Verify{
  55. unsigned char *pucDataInput;
  56. unsigned int uiInputLength;
  57. unsigned char *pucID;
  58. unsigned int uiIDLength;
  59. ECCrefPublicKey *pucPublicKey;
  60. ECCSignature *pucSignature;
  61. }TSM2_Verify;
  62. //魔数
  63. #define CFG_IOCTL_GH_SM2_DEV_TYPE 0xF3
  64. #define GH_SM2_DEV_READUSERID _IOW(CFG_IOCTL_GH_SM2_DEV_TYPE, 1, Twr_UserId)
  65. #define GH_SM2_DEV_WRITEUSERID _IOW(CFG_IOCTL_GH_SM2_DEV_TYPE, 2, Twr_UserId)
  66. #define GH_SM2_DEV_READSM2KEY _IOW(CFG_IOCTL_GH_SM2_DEV_TYPE, 3, Twr_SM2key)
  67. #define GH_SM2_DEV_WRITESM2KEY _IOW(CFG_IOCTL_GH_SM2_DEV_TYPE, 4, Twr_SM2key)
  68. #define GH_SM2_DEV_SM2_GENERATERANDOM_ME _IOW(CFG_IOCTL_GH_SM2_DEV_TYPE, 5, TSM2_GenerateRandom_me)
  69. #define GH_SM2_DEV_ENCRYPTE_EPRI _IOW(CFG_IOCTL_GH_SM2_DEV_TYPE, 6, Tencrypt_epri)
  70. #define GH_SM2_DEV_SM2_ENCRYPT _IOW(CFG_IOCTL_GH_SM2_DEV_TYPE, 7, TSM2_Encrypt)
  71. #define GH_SM2_DEV_SM2_VERIFY _IOW(CFG_IOCTL_GH_SM2_DEV_TYPE, 8, TSM2_Verify)
  72. #endif /* GOOSE_DRV_H */