PKCS#11規(guī)范培訓(xùn)PPT課件_第1頁
PKCS#11規(guī)范培訓(xùn)PPT課件_第2頁
PKCS#11規(guī)范培訓(xùn)PPT課件_第3頁
PKCS#11規(guī)范培訓(xùn)PPT課件_第4頁
PKCS#11規(guī)范培訓(xùn)PPT課件_第5頁
已閱讀5頁,還剩124頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PKCS#11標準介紹,軟件開發(fā)中心安全軟件部,寫在前面的,PKCS11是什么為什么會有PKCS11PKCS11能干什么PKCS11的特點,PKCS11是什么,PKCS系列規(guī)范的第11部分CryptographicTokenInterfaceSTD68個函數(shù)接口應(yīng)用程序與加密Token之間的接口,為什么會有PKCS11,為使用加密Token的應(yīng)用程序提供統(tǒng)一的編程接口為應(yīng)用程序提供獨立于設(shè)備的編程接口屏蔽加密設(shè)備的復(fù)雜性應(yīng)用程序可以方便的更換設(shè)備既生瑜何生亮PKCS11vsCSP,PKCS11能干什么,完成所有(據(jù)我所知)的密碼操作加密解密簽名驗證摘要密鑰生成/派生對象的創(chuàng)建,存儲,查找,修改,使用,刪除應(yīng)用程序會話管理,PKCS11的特點,跨平臺可擴展支持多設(shè)備,多線程更專注于加密Token簡化的應(yīng)用模式(一個User,一個SO),內(nèi)容,關(guān)于PKCS#11概述基本概念I(lǐng)V.典型對象屬性分析V.API分析與應(yīng)用實例,關(guān)于PKCS#11,是一套針對加密Token的應(yīng)用編程接口屏蔽了硬件細節(jié)針對ANSIC編寫的接口也稱作Cryptoki廣泛應(yīng)用于Token相關(guān)的產(chǎn)品中(例如Netscape,Mozilla,Firefox,Thunderbird)簡化的應(yīng)用模式(一個User,一個SO),7816-1/2/3/4/5/6/8,ASN.1,PKCS-1/13/14/15,7816-15,DES,AES,SHA,MD2,MD5,PKCS-11,CSP,X509,PKCS-3/5/7/8/9/10/12,SSL,S/MIME,IE,Outlook,Foxmail,Word,Netscape,Mozilla,Firefox,Thunderbird,關(guān)于PKCS#11,內(nèi)容,關(guān)于PKCS#11概述基本概念I(lǐng)V.典型對象屬性分析V.API分析與應(yīng)用實例,概述,總體模型,概述,Token邏輯視圖,令牌邏輯視圖是一個能存儲對象和能執(zhí)行密碼函數(shù)的設(shè)備,概述,函數(shù)接口概述通用目的函數(shù),概述,函數(shù)接口概述槽和令牌管理函數(shù),概述,函數(shù)接口概述會話管理函數(shù),概述,函數(shù)接口概述對象管理函數(shù),概述,函數(shù)接口概述加密和解密函數(shù),概述,函數(shù)接口概述摘要計算函數(shù),概述,函數(shù)接口概述簽名和MAC計算函數(shù),概述,函數(shù)接口概述簽名和MAC驗證函數(shù),概述,函數(shù)接口概述雙功能密碼函數(shù),概述,函數(shù)接口概述密鑰管理函數(shù),概述,函數(shù)接口概述其他函數(shù),內(nèi)容,關(guān)于PKCS#11概述基本概念I(lǐng)V.典型對象屬性分析V.API分析與應(yīng)用實例,基本概念,Slotsomeofthesedefaultvaluesmayevenbetheemptystring(“”).Nonetheless,theobjectpossessestheseattributes.Agivenobjecthasasinglevalueforeachattributeitpossesses,eveniftheattributeisavendorspecificattributewhosemeaningisoutsidethescopeofCryptoki.InadditiontopossessingCryptokiattributes,objectsmaypossessadditionalvendorspecificattributeswhosemeaningsandvaluesarenotspecifiedbyCryptoki.,基本概念A(yù)ttribute,基本概念,3.4Users,PKCS11識別兩種令牌用戶類型。一個類型就是安全官員(SO)。另一個類型就是普通用戶。只有普通用戶才能訪問令牌上的私有對象,而且只有普通用戶在得到授權(quán)后才能進行這種訪問。一些令牌可能需要用戶在執(zhí)行令牌上的任意密碼功能之前得到授權(quán),不管令牌是否涉及私有對象。SO的作用是初始化一個令牌,設(shè)置普通用戶的PIN(或由Cryptoki版本以外的方式確定普通用戶怎樣得到授權(quán)),或許還要操作某些公共對象。普通用戶只有在SO設(shè)置普通用戶的PIN以后才能注冊。,3.5Sessions,基本概念,會話在應(yīng)用程序和令牌之間提供一個邏輯連接。Cryptoki需要用令牌打開一個以上的會話以便使用令牌的對象和函數(shù)。會話可以是讀/寫(R/W)會話,也可以是只讀(R/O)會話。讀/寫和只讀指的是通向令牌對象的入口,而不是會話對象。在這兩種會話類型下,應(yīng)用程序能夠創(chuàng)建、讀、寫和破壞會話對象。但是,只有在讀/寫會話中,應(yīng)用程序能夠創(chuàng)建、修改和破壞令牌對象。,3.6狀態(tài)轉(zhuǎn)換(與Session有關(guān))一個打開的會話可以在幾種狀態(tài)之一。會話狀態(tài)決定通向?qū)ο蠛驮跁捝蠄?zhí)行的函數(shù)允許的通道。,基本概念,打開一個會話后,應(yīng)用程序便可訪問令牌的公共對象。所給應(yīng)用程序的所有線程可訪問相同會話和相同會話對象。為了訪問令牌私有對象,不同用戶必須先登錄并得到授權(quán)。當關(guān)閉一個會話后,在該會話過程中創(chuàng)建的任何會話對象都會被破壞。這甚至適用于其它會話正在使用的會話對象。如果單個應(yīng)用程序打開同一令牌的多個會話,并使用其中一個創(chuàng)建會話對象,那么這些會話對象就可以被該應(yīng)用程序的所有會話看到。但是,當創(chuàng)建對象的會話關(guān)閉時,對象也被破壞了。Cryptoki支持在多令牌上的多個會話。應(yīng)用程序可以和一個以上的令牌進行一個以上的會話。一個令牌可以和一個以上的應(yīng)用程序進行多個會話。但是,一個特定的令牌可能要求應(yīng)用程序只能有限定數(shù)量的會話,或只能有限定數(shù)量的讀/寫會話。,狀態(tài)轉(zhuǎn)換只讀會話,基本概念狀態(tài)轉(zhuǎn)換,ROsession,基本概念狀態(tài)轉(zhuǎn)換,Note:Read-OnlySOSessiondonotexists.,狀態(tài)轉(zhuǎn)換讀寫會話,基本概念狀態(tài)轉(zhuǎn)換,RWsession,基本概念狀態(tài)轉(zhuǎn)換,狀態(tài)轉(zhuǎn)換會話權(quán)限,基本概念狀態(tài)轉(zhuǎn)換,Sessionevents,基本概念狀態(tài)轉(zhuǎn)換,在CryptokiVersion2.1中,使用令牌的一個應(yīng)用程序的所有會話必須有相同的登錄/注銷狀態(tài)(對于一個給定的應(yīng)用程序和令牌,只能處于下列情況之一:所有會話是公共會話,所有會話是SO會話或所有會話是用戶會話)。當一個應(yīng)用程序的會話登錄一個令牌,使用該令牌的應(yīng)用程序的所有會話也被登錄;當一個應(yīng)用程序的會話注銷一個令牌,該應(yīng)用程序的所有會話也被注銷。同樣,例如,如果使用令牌的一個應(yīng)用程序已經(jīng)有一個打開的R/O用戶,并且用該令牌打開一個R/W會話,該R/W會話會自動地登錄。這意味著一個給定的應(yīng)用程序使用一個給定的令牌不可能同時有打開的SO會話和用戶會話。這也意味著如果使用一個令牌,一個應(yīng)用程序有一個R/WSO會話,那么它不能用這個令牌打開一個R/O會話,因為R/OSO會話不存在。同理,如果一個應(yīng)用程序有一個打開的R/O會話,那么它不可能作為SO把其它會話登錄到該令牌。,基本概念狀態(tài)轉(zhuǎn)換,機制描述了密碼操作應(yīng)該怎樣被執(zhí)行typedefstructCK_MECHANISMCK_MECHANISM_TYPEmechanism;CK_VOID_PTRpParameter;CK_ULONGulParameterLen;CK_MECHANISM;C_GetMechanismList獲取支持的機制列表,基本概念機制,3.7Mechanism,調(diào)用C_Initialize后的應(yīng)用程序才稱為“Cryptoki應(yīng)用程序”Cryptoki應(yīng)用程序是否需要Cryptoki的多線程支持,需要在C_Initialize函數(shù)中指定。,3.8應(yīng)用程序與多線程,基本概念,內(nèi)容,關(guān)于PKCS#11概述基本概念I(lǐng)V.典型對象屬性分析V.API分析與應(yīng)用實例,4.1對象屬性腳注說明,1MustbespecifiedwhenobjectiscreatedwithC_CreateObject.2MustnotbespecifiedwhenobjectiscreatedwithC_CreateObject.3MustbespecifiedwhenobjectisgeneratedwithC_GenerateKeyorC_GenerateKeyPair.4MustnotbespecifiedwhenobjectisgeneratedwithC_GenerateKeyorC_GenerateKeyPair.5MustbespecifiedwhenobjectisunwrappedwithC_UnwrapKey.6MustnotbespecifiedwhenobjectisunwrappedwithC_UnwrapKey.7CannotberevealedifobjecthasitsCKA_SENSITIVEattributesettoCK_TRUEoritsCKA_EXTRACTABLEattributesettoCK_FALSE.,IV典型對象屬性分析,4.1對象屬性腳注說明,8MaybemodifiedafterobjectiscreatedwithaC_SetAttributeValuecall,orintheprocessofcopyingobjectwithaC_CopyObjectcall.However,itispossiblethataparticulartokenmaynotpermitmodificationoftheattributeduringthecourseofaC_CopyObjectcall.9Defaultvalueistoken-specific,andmaydependonthevaluesofotherattributes.10CanonlybesettoCK_TRUEbytheSOuser.11AttributecannotbechangedoncesettoCK_TRUE.Itbecomesareadonlyattribute.12AttributecannotbechangedoncesettoCK_FALSE.Itbecomesareadonlyattribute.,IV典型對象屬性分析,4.2通用對象屬性,4.3通用存儲對象屬性,當對象創(chuàng)建以后,只有CKA_TOKEN值可以被修改,4.4數(shù)據(jù)對象屬性,4.5通用證書對象屬性,4.6X.509公鑰證書對象,4.7WTLS公鑰證書對象,4.8X.509屬性證書對象,4.9通用KEY屬性,4.10通用公鑰對象,RSA公鑰對象屬性,4.11通用私鑰對象(1),4.11通用私鑰對象(2),RSA私鑰對象屬性,4.12通用密鑰對象(1),4.12通用密鑰對象(2),DES密鑰對象屬性,RC4密鑰對象屬性,4.13對象屬性總結(jié),PKCS#11規(guī)定了每個對象的每一個屬性屬性腳注表非常重要,對象的創(chuàng)建、修改、拷貝等操作時設(shè)定的屬性模板應(yīng)不違背屬性標注(例如,在C_GenerateKey生成3DES密鑰時需要指定CKA_KEY_TYPE,而不能指定CKA_LOCAL)。PKCS#11標準的各個版本中對象屬性的腳注存在差別(例如,Ver2.1中C_GenerateKeyPair時必須指定CKA_PUBLIC_EXPONENT,而在Ver2.2中可以不用指定此屬性),內(nèi)容,關(guān)于PKCS#11概述基本概念典型對象屬性分析API分析與應(yīng)用實例,VAPI分析與應(yīng)用實例,通用目的函數(shù)Initialize,cleanup,informationaboutthelibraryitselfSlot/Token管理函數(shù)GetSlotInfo,GetTokenInfo,會話管理函數(shù)OpenSession,CloseSession對象管理函數(shù)Create,Destroy,Copy,API分析與應(yīng)用實例(2),加密函數(shù)解密函數(shù)摘要函數(shù)簽名函數(shù)校驗函數(shù)密鑰管理函數(shù),通用目的函數(shù),1.C_InitializeCK_DEFINE_FUNCTION(CK_RV,C_Initialize)(CK_VOID_PTRpInitArgs);typedefstructCK_C_INITIALIZE_ARGSCK_CREATEMUTEXCreateMutex;CK_DESTROYMUTEXDestroyMutex;CK_LOCKMUTEXLockMutex;CK_UNLOCKMUTEXUnlockMutex;CK_FLAGSflags;CK_VOID_PTRpReserved;CK_C_INITIALIZE_ARGS;2.C_FinalizeCK_DEFINE_FUNCTION(CK_RV,C_Finalize)(CK_VOID_PTRpReserved);,通用目的函數(shù),3.C_GetInfoCK_DEFINE_FUNCTION(CK_RV,C_GetInfo)(CK_INFO_PTRpInfo);4.C_GetFunctionListCK_DEFINE_FUNCTION(CK_RV,C_GetFunctionList)(CK_FUNCTION_LIST_PTR_PTRppFunctionList);,Slot/Token管理函數(shù),C_GetSlotListCK_DEFINE_FUNCTION(CK_RV,C_GetSlotList)(CK_BBOOLtokenPresent,CK_SLOT_ID_PTRpSlotList,CK_ULONG_PTRpulCount);,Slot/Token管理函數(shù),2.C_GetSlotInfoCK_DEFINE_FUNCTION(CK_RV,C_GetSlotInfo)(CK_SLOT_IDslotID,CK_SLOT_INFO_PTRpInfo);,Slot/Token管理函數(shù),3.C_GetTokenInfoCK_DEFINE_FUNCTION(CK_RV,C_GetTokenInfo)(CK_SLOT_IDslotID,CK_TOKEN_INFO_PTRpInfo);,Slot/Token管理函數(shù),4.C_WaitForSlotEventCK_DEFINE_FUNCTION(CK_RV,C_WaitForSlotEvent)(CK_FLAGSflags,CK_SLOT_ID_PTRpSlot,CK_VOID_PTRpReserved);,Slot/Token管理函數(shù),5.C_GetMechanismListCK_DEFINE_FUNCTION(CK_RV,C_GetMechanismList)(CK_SLOT_IDslotID,CK_MECHANISM_TYPE_PTRpMechanismList,CK_ULONG_PTRpulCount);,Slot/Token管理函數(shù),6.C_GetMechanismInfoCK_DEFINE_FUNCTION(CK_RV,C_GetMechanismInfo)(CK_SLOT_IDslotID,CK_MECHANISM_TYPEtype,CK_MECHANISM_INFO_PTRpInfo);,Slot/Token管理函數(shù),7.C_InitTokenCK_DEFINE_FUNCTION(CK_RV,C_InitToken)(CK_SLOT_IDslotID,CK_UTF8CHAR_PTRpPin,CK_ULONGulPinLen,CK_UTF8CHAR_PTRpLabel);,Slot/Token管理函數(shù),8.C_InitPINCK_DEFINE_FUNCTION(CK_RV,C_InitPIN)(CK_SESSION_HANDLEhSession,CK_UTF8CHAR_PTRpPin,CK_ULONGulPinLen);,Slot/Token管理函數(shù),9.C_SetPINCK_DEFINE_FUNCTION(CK_RV,C_SetPIN)(CK_SESSION_HANDLEhSession,CK_UTF8CHAR_PTRpOldPin,CK_ULONGulOldLen,CK_UTF8CHAR_PTRpNewPin,CK_ULONGulNewLen);,會話管理函數(shù),1.C_OpenSessionCK_DEFINE_FUNCTION(CK_RV,C_OpenSession)(CK_SLOT_IDslotID,CK_FLAGSflags,CK_VOID_PTRpApplication,CK_NOTIFYNotify,CK_SESSION_HANDLE_PTRphSession);,會話管理函數(shù),2.C_CloseSessionCK_DEFINE_FUNCTION(CK_RV,C_CloseSession)(CK_SESSION_HANDLEhSession);,會話管理函數(shù),3.C_CloseAllSessionsCK_DEFINE_FUNCTION(CK_RV,C_CloseAllSessions)(CK_SLOT_IDslotID);,會話管理函數(shù),4.C_GetSessionInfoCK_DEFINE_FUNCTION(CK_RV,C_GetSessionInfo)(CK_SESSION_HANDLEhSession,CK_SESSION_INFO_PTRpInfo);,會話管理函數(shù),5.C_GetOperationStateCK_DEFINE_FUNCTION(CK_RV,C_GetOperationState)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpOperationState,CK_ULONG_PTRpulOperationStateLen);,會話管理函數(shù),6.C_SetOperationStateCK_DEFINE_FUNCTION(CK_RV,C_SetOperationState)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpOperationState,CK_ULONGulOperationStateLen,CK_OBJECT_HANDLEhEncryptionKey,CK_OBJECT_HANDLEhAuthenticationKey);,會話管理函數(shù),7.C_LoginCK_DEFINE_FUNCTION(CK_RV,C_Login)(CK_SESSION_HANDLEhSession,CK_USER_TYPEuserType,CK_UTF8CHAR_PTRpPin,CK_ULONGulPinLen);,會話管理函數(shù),8.C_LogoutCK_DEFINE_FUNCTION(CK_RV,C_Logout)(CK_SESSION_HANDLEhSession);,對象管理函數(shù),1.C_CreateObjectCK_DEFINE_FUNCTION(CK_RV,C_CreateObject)(CK_SESSION_HANDLEhSession,CK_ATTRIBUTE_PTRpTemplate,CK_ULONGulCount,CK_OBJECT_HANDLE_PTRphObject);,對象管理函數(shù),2.C_CopyObjectCK_DEFINE_FUNCTION(CK_RV,C_CopyObject)(CK_SESSION_HANDLEhSession,CK_OBJECT_HANDLEhObject,CK_ATTRIBUTE_PTRpTemplate,CK_ULONGulCount,CK_OBJECT_HANDLE_PTRphNewObject);,對象管理函數(shù),3.C_DestroyObjectCK_DEFINE_FUNCTION(CK_RV,C_DestroyObject)(CK_SESSION_HANDLEhSession,CK_OBJECT_HANDLEhObject);,對象管理函數(shù),4.C_GetObjectSizeCK_DEFINE_FUNCTION(CK_RV,C_GetObjectSize)(CK_SESSION_HANDLEhSession,CK_OBJECT_HANDLEhObject,CK_ULONG_PTRpulSize);,對象管理函數(shù),5.C_GetAttributeValueCK_DEFINE_FUNCTION(CK_RV,C_GetAttributeValue)(CK_SESSION_HANDLEhSession,CK_OBJECT_HANDLEhObject,CK_ATTRIBUTE_PTRpTemplate,CK_ULONGulCount);,對象管理函數(shù),6.C_SetAttributeValueCK_DEFINE_FUNCTION(CK_RV,C_SetAttributeValue)(CK_SESSION_HANDLEhSession,CK_OBJECT_HANDLEhObject,CK_ATTRIBUTE_PTRpTemplate,CK_ULONGulCount);,對象管理函數(shù),7.C_FindObjectsInitCK_DEFINE_FUNCTION(CK_RV,C_FindObjectsInit)(CK_SESSION_HANDLEhSession,CK_ATTRIBUTE_PTRpTemplate,CK_ULONGulCount);,對象管理函數(shù),8.C_FindObjectsCK_DEFINE_FUNCTION(CK_RV,C_FindObjects)(CK_SESSION_HANDLEhSession,CK_OBJECT_HANDLE_PTRphObject,CK_ULONGulMaxObjectCount,CK_ULONG_PTRpulObjectCount);,對象管理函數(shù),9.C_FindObjectsFinalCK_DEFINE_FUNCTION(CK_RV,C_FindObjectsFinal)(CK_SESSION_HANDLEhSession);,加密函數(shù),1.C_EncryptInitCK_DEFINE_FUNCTION(CK_RV,C_EncryptInit)(CK_SESSION_HANDLEhSession,CK_MECHANISM_PTRpMechanism,CK_OBJECT_HANDLEhKey);,加密函數(shù),2.C_EncryptCK_DEFINE_FUNCTION(CK_RV,C_Encrypt)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpData,CK_ULONGulDataLen,CK_BYTE_PTRpEncryptedData,CK_ULONG_PTRpulEncryptedDataLen);,加密函數(shù),3.C_EncryptUpdateCK_DEFINE_FUNCTION(CK_RV,C_EncryptUpdate)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpPart,CK_ULONGulPartLen,CK_BYTE_PTRpEncryptedPart,CK_ULONG_PTRpulEncryptedPartLen);,加密函數(shù),4.C_EncryptFinalCK_DEFINE_FUNCTION(CK_RV,C_EncryptFinal)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpLastEncryptedPart,CK_ULONG_PTRpulLastEncryptedPartLen);,解密函數(shù),1.C_DecryptInitCK_DEFINE_FUNCTION(CK_RV,C_DecryptInit)(CK_SESSION_HANDLEhSession,CK_MECHANISM_PTRpMechanism,CK_OBJECT_HANDLEhKey);,解密函數(shù),2.C_DecryptCK_DEFINE_FUNCTION(CK_RV,C_Decrypt)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpEncryptedData,CK_ULONGulEncryptedDataLen,CK_BYTE_PTRpData,CK_ULONG_PTRpulDataLen);,解密函數(shù),3.C_DecryptUpdateCK_DEFINE_FUNCTION(CK_RV,C_DecryptUpdate)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpEncryptedPart,CK_ULONGulEncryptedPartLen,CK_BYTE_PTRpPart,CK_ULONG_PTRpulPartLen);,解密函數(shù),4.C_DecryptFinalCK_DEFINE_FUNCTION(CK_RV,C_DecryptFinal)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpLastPart,CK_ULONG_PTRpulLastPartLen);,摘要函數(shù),1.C_DigestInitCK_DEFINE_FUNCTION(CK_RV,C_DigestInit)(CK_SESSION_HANDLEhSession,CK_MECHANISM_PTRpMechanism);,摘要函數(shù),2.C_DigestCK_DEFINE_FUNCTION(CK_RV,C_Digest)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpData,CK_ULONGulDataLen,CK_BYTE_PTRpDigest,CK_ULONG_PTRpulDigestLen);,摘要函數(shù),3.C_DigestUpdateCK_DEFINE_FUNCTION(CK_RV,C_DigestUpdate)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpPart,CK_ULONGulPartLen);,摘要函數(shù),4.C_DigestKeyCK_DEFINE_FUNCTION(CK_RV,C_DigestKey)(CK_SESSION_HANDLEhSession,CK_OBJECT_HANDLEhKey);,摘要函數(shù),5.C_DigestFinalCK_DEFINE_FUNCTION(CK_RV,C_DigestFinal)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpDigest,CK_ULONG_PTRpulDigestLen);,簽名函數(shù),1.C_SignInitCK_DEFINE_FUNCTION(CK_RV,C_SignInit)(CK_SESSION_HANDLEhSession,CK_MECHANISM_PTRpMechanism,CK_OBJECT_HANDLEhKey);,簽名函數(shù),2.C_SignCK_DEFINE_FUNCTION(CK_RV,C_Sign)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpData,CK_ULONGulDataLen,CK_BYTE_PTRpSignature,CK_ULONG_PTRpulSignatureLen);,簽名函數(shù),3.C_SignUpdateCK_DEFINE_FUNCTION(CK_RV,C_SignUpdate)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpPart,CK_ULONGulPartLen);,簽名函數(shù),4.C_SignFinalCK_DEFINE_FUNCTION(CK_RV,C_SignFinal)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpSignature,CK_ULONG_PTRpulSignatureLen);,簽名函數(shù),5.C_SignRecoverInitCK_DEFINE_FUNCTION(CK_RV,C_SignRecoverInit)(CK_SESSION_HANDLEhSession,CK_MECHANISM_PTRpMechanism,CK_OBJECT_HANDLEhKey);,簽名函數(shù),6.C_SignRecoverCK_DEFINE_FUNCTION(CK_RV,C_SignRecover)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpData,CK_ULONGulDataLen,CK_BYTE_PTRpSignature,CK_ULONG_PTRpulSignatureLen);,校驗函數(shù),1.C_VerifyInitCK_DEFINE_FUNCTION(CK_RV,C_VerifyInit)(CK_SESSION_HANDLEhSession,CK_MECHANISM_PTRpMechanism,CK_OBJECT_HANDLEhKey);,校驗函數(shù),2.C_VerifyCK_DEFINE_FUNCTION(CK_RV,C_Verify)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpData,CK_ULONGulDataLen,CK_BYTE_PTRpSignature,CK_ULONGulSignatureLen);,校驗函數(shù),3.C_VerifyUpdateCK_DEFINE_FUNCTION(CK_RV,C_VerifyUpdate)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpPart,CK_ULONGulPartLen);,校驗函數(shù),4.C_VerifyFinalCK_DEFINE_FUNCTION(CK_RV,C_VerifyFinal)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpSignature,CK_ULONGulSignatureLen);,校驗函數(shù),5.C_VerifyRecoverInitCK_DEFINE_FUNCTION(CK_RV,C_VerifyRecoverInit)(CK_SESSION_HANDLEhSession,CK_MECHANISM_PTRpMechanism,CK_OBJECT_HANDLEhKey);,校驗函數(shù),6.C_VerifyRecoverCK_DEFINE_FUNCTION(CK_RV,C_VerifyRecover)(CK_SESSION_HANDLEhSession,CK_BYTE_PTRpSignature,CK_ULONGulSignatureLen,CK_BYTE_PTRpData,CK_ULONG_PTRpulDataLen);,KEY管理函數(shù),1.C_GenerateKeyCK_DEFINE_FUNCTION(CK_RV,C_GenerateKey)(CK_SESSION_HANDLEhSessionCK_MECHANISM_PTRpMechanism,CK_ATTRIBUTE_PTRpTemplate,CK_ULONGulCount,CK_OBJECT_HANDLE_PTRphKey);,KEY管理函數(shù),2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論