/util/testp11.h

https://github.com/uukuguy/UDSOnlineEditor · C Header · 94 lines · 74 code · 12 blank · 8 comment · 0 complexity · e82176bf10a57030a4936219b5651ada MD5 · raw file

  1. #ifndef TestP11_H
  2. #ifdef __cplusplus
  3. extern "C" {
  4. #endif
  5. #include "pkcs11.h"
  6. #define Crypto_Ck_Base 0x3b6d0000
  7. #define Crypto_Cos_Base 0x5d6b0000
  8. #define Crypto_Skip_Base 0x5d6c0000
  9. #define CKK_SSF33 ( Crypto_Ck_Base + 0x100 )
  10. #define CKK_SCB2 ( Crypto_Ck_Base + 0x101 )
  11. #define CKM_SSF33_KEY_GEN ( Crypto_Ck_Base + 0x200 )
  12. #define CKM_SSF33_ECB ( Crypto_Ck_Base + 0x201 )
  13. #define CKM_SSF33_CBC ( Crypto_Ck_Base + 0x202 )
  14. #define CKM_SSF33_CBC_PAD ( Crypto_Ck_Base + 0x205 )
  15. #define CKM_SSF33_ECB_PAD ( Crypto_Ck_Base + 0x206 )
  16. #define CKM_SCB2_KEY_GEN ( Crypto_Ck_Base + 0x210 )
  17. #define CKM_SCB2_ECB ( Crypto_Ck_Base + 0x211 )
  18. #define CKM_SCB2_CBC ( Crypto_Ck_Base + 0x212 )
  19. #define CKM_SCB2_CBC_PAD ( Crypto_Ck_Base + 0x215 )
  20. #define CKM_SCB2_ECB_PAD ( Crypto_Ck_Base + 0x216 )
  21. #define CKA_COS_CONTAINER ( Crypto_Skip_Base + 1 )
  22. #define CKA_COS_PASSWORD ( Crypto_Skip_Base + 2 )
  23. typedef struct {
  24. int Rsa_Bits;
  25. unsigned char *Hash;
  26. unsigned char *Serial;
  27. int SerialLength;
  28. unsigned char *Subject;
  29. int SubjectLength;
  30. unsigned char *Cert;
  31. int CertLength;
  32. unsigned char *Rsa_n, *Rsa_p, *Rsa_q, *Rsa_d, *Rsa_mdp1, *Rsa_mdq1, *Rsa_iqmp;
  33. } Rsa_Cert;
  34. extern CK_MECHANISM mechRsaPkcs, mechRsaOaep, mechRsaX509, mechRsaX931, mechMd5RsaPkcs, mechSha1RsaPkcs;
  35. extern unsigned char trueValue, falseValue, Rsa_e_f4[3], zeroIv[], testP12[2386];
  36. extern unsigned expectCkr, ckoPubKey, ckoPrivKey, ckoCertificate, ckoSecretKey, ckcX509, ckkRsa;
  37. extern Rsa_Cert ShijRsaCert, TestRsaCert, TestExchRsaCert, TestSignRsaCert, CheckRsaCert, CheckExchRsaCert, CheckSignRsaCert, ExtRsaCert, ExtExchRsaCert, ExtSignRsaCert, VmRsaCert, VmExchRsaCert, VmSignRsaCert ;
  38. int Load_Pkcs11_Lib( char *dllName );
  39. int Free_Pkcs11_Lib();
  40. void T11_DumpBinary( void *data, int size, char *name );
  41. int T11_Ckk_Ckm( int ckk, int mode );
  42. int Template_Int( CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, int attrType, int defaultValue );
  43. void T11_CopyTemplate( CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_ATTRIBUTE_PTR pTarget, CK_ULONG maxCount );
  44. CK_RV T11_GenKeyPair( CK_SESSION_HANDLE hSession, char *id, char inToken, char isExch, CK_OBJECT_HANDLE *phPubKey, CK_OBJECT_HANDLE *phPrivKey );
  45. CK_RV T11_GenerateKey( CK_SESSION_HANDLE hSession, int ckk, char inToken, CK_OBJECT_HANDLE *phKey );
  46. unsigned long T11_FindKey( CK_SESSION_HANDLE hSession, char isPrivate, int ckaType, unsigned char *data, int size );
  47. unsigned long T11_FindCert( CK_SESSION_HANDLE hSession, int ckaType, unsigned char *data, int size );
  48. unsigned long T11_ImportKey( CK_SESSION_HANDLE hSession, int ckk, char inToken, unsigned char *value, int size );
  49. unsigned long T11_ImportPubKey( CK_SESSION_HANDLE hSession, char *id, Rsa_Cert *rsaCert, char isToken, char isExchange );
  50. unsigned long T11_ImportPrivKey( CK_SESSION_HANDLE hSession, char *id, Rsa_Cert *rsaCert, char isToken, char isExchange, char extractable );
  51. unsigned long T11_ImportCert( CK_SESSION_HANDLE hSession, char *id, Rsa_Cert *rsaCert, char isToken, char isExchange );
  52. unsigned long T11_GetAttribute( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, int ckaType );
  53. void T11_ImportPrivValue( CK_SESSION_HANDLE hSession, unsigned char *value, int size );
  54. void T11_ImportP12( CK_SESSION_HANDLE hSession, unsigned char *value, int size, char *password, bool deleteObj );
  55. void T11_Haitai_TokenInfo( int slot, unsigned long *pCkk );
  56. unsigned TestFindKeyHash( CK_SESSION_HANDLE hSession, unsigned char *hash, char isPrivate );
  57. unsigned long TestFindIssuerHash( CK_SESSION_HANDLE hSession, unsigned char *hash );
  58. unsigned long TestFindCertHash( CK_SESSION_HANDLE hSession, unsigned char *hash );
  59. unsigned TestFindKey( CK_SESSION_HANDLE hSession, char *id, char isPrivate );
  60. unsigned long TestFindCert( CK_SESSION_HANDLE hSession, char *id );
  61. void TestGenPair( CK_SESSION_HANDLE hSession, char *id );
  62. int TestImport( CK_SESSION_HANDLE hSession, char *id, Rsa_Cert *rsaCert, bool isExch );
  63. //µÇ¼³õʼ»¯
  64. CK_SESSION_HANDLE WT11_LoginInit(unsigned char * pin, unsigned char * ccontainer);
  65. //³õʼ»¯
  66. void WT11_Initialize();
  67. //µÃµ½½âÃܻỰKEY
  68. //pbufSessionKeyEncrypt ÒѾ­¼ÓÃܵĻỰKEY
  69. //ckk Ëã·¨
  70. unsigned long WT11_SessionKeyRsa(CK_SESSION_HANDLE hSession,
  71. unsigned char *wrappedKey, unsigned long wrappedKeyLen);
  72. //ɾ³ý¶ÔÏó£¬É¾³ý»á»°KEY
  73. void WT11_DestroyObject(CK_SESSION_HANDLE hSession, unsigned long hSymKey );
  74. //½âÃÜ
  75. int WT11_SCB2_Decrypt(CK_SESSION_HANDLE hSession, unsigned long hSymKey, unsigned char *pbufCipher,
  76. unsigned long cipherSize, unsigned char *pbufplain, unsigned long *plainSize);
  77. //Í˳ö
  78. int WT11_LogOutFinalize(CK_SESSION_HANDLE hSession);
  79. #ifdef __cplusplus
  80. };
  81. #endif
  82. #endif