亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pkcs11-object.c

?? 讀寫Smart卡加解密接口的程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
CK_RV C_Digest(CK_SESSION_HANDLE hSession,     /* the session's handle */	       CK_BYTE_PTR       pData,        /* data to be digested */	       CK_ULONG          ulDataLen,    /* bytes of data to be digested */	       CK_BYTE_PTR       pDigest,      /* receives the message digest */	       CK_ULONG_PTR      pulDigestLen) /* receives byte length of digest */{        int rv;	struct sc_pkcs11_session *session;	rv = sc_pkcs11_lock();	if (rv != CKR_OK)		return rv;	rv = pool_find(&session_pool, hSession, (void**) &session);	if (rv != CKR_OK)		goto out;	rv = sc_pkcs11_md_update(session, pData, ulDataLen);	if (rv == CKR_OK)		rv = sc_pkcs11_md_final(session, pDigest, pulDigestLen);out:	sc_debug(context, "C_Digest returns %d\n", rv);	sc_pkcs11_unlock();        return rv;}CK_RV C_DigestUpdate(CK_SESSION_HANDLE hSession,  /* the session's handle */		     CK_BYTE_PTR       pPart,     /* data to be digested */		     CK_ULONG          ulPartLen) /* bytes of data to be digested */{        int rv;	struct sc_pkcs11_session *session;	rv = sc_pkcs11_lock();	if (rv != CKR_OK)		return rv;	rv = pool_find(&session_pool, hSession, (void**) &session);	if (rv == CKR_OK)		rv = sc_pkcs11_md_update(session, pPart, ulPartLen);        sc_debug(context, "C_DigestUpdate returns %d\n", rv);	sc_pkcs11_unlock();        return rv;}CK_RV C_DigestKey(CK_SESSION_HANDLE hSession,  /* the session's handle */		  CK_OBJECT_HANDLE  hKey)      /* handle of secret key to digest */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_DigestFinal(CK_SESSION_HANDLE hSession,     /* the session's handle */		    CK_BYTE_PTR       pDigest,      /* receives the message digest */		    CK_ULONG_PTR      pulDigestLen) /* receives byte count of digest */{        int rv;	struct sc_pkcs11_session *session;	rv = sc_pkcs11_lock();	if (rv != CKR_OK)		return rv;	rv = pool_find(&session_pool, hSession, (void**) &session);	if (rv == CKR_OK)		rv = sc_pkcs11_md_final(session, pDigest, pulDigestLen);        sc_debug(context, "C_DigestFinal returns %d\n", rv);	sc_pkcs11_unlock();        return rv;}CK_RV C_SignInit(CK_SESSION_HANDLE hSession,    /* the session's handle */		 CK_MECHANISM_PTR  pMechanism,  /* the signature mechanism */		 CK_OBJECT_HANDLE  hKey)        /* handle of the signature key */{        CK_BBOOL can_sign;	CK_KEY_TYPE key_type;	CK_ATTRIBUTE sign_attribute = { CKA_SIGN, &can_sign, sizeof(can_sign) };	CK_ATTRIBUTE key_type_attr = { CKA_KEY_TYPE, &key_type, sizeof(key_type) };	struct sc_pkcs11_session *session;	struct sc_pkcs11_object *object;        int rv;	rv = sc_pkcs11_lock();	if (rv != CKR_OK)		return rv;	rv = pool_find(&session_pool, hSession, (void**) &session);	if (rv != CKR_OK)		goto out;	rv = pool_find(&session->slot->object_pool, hKey, (void**) &object);	if (rv != CKR_OK)		goto out;	if (object->ops->sign == NULL_PTR) {                rv = CKR_KEY_TYPE_INCONSISTENT;		goto out;	}	rv = object->ops->get_attribute(session, object, &sign_attribute);        if (rv != CKR_OK || !can_sign) {                rv = CKR_KEY_TYPE_INCONSISTENT;		goto out;	}	rv = object->ops->get_attribute(session, object, &key_type_attr);        if (rv != CKR_OK) {                rv = CKR_KEY_TYPE_INCONSISTENT;		goto out;	}	rv = sc_pkcs11_sign_init(session, pMechanism, object, key_type);out:	sc_debug(context, "Sign initialization returns %d\n", rv);	sc_pkcs11_unlock();        return rv;}CK_RV C_Sign(CK_SESSION_HANDLE hSession,        /* the session's handle */	     CK_BYTE_PTR       pData,           /* the data (digest) to be signed */	     CK_ULONG          ulDataLen,       /* count of bytes to be signed */	     CK_BYTE_PTR       pSignature,      /* receives the signature */	     CK_ULONG_PTR      pulSignatureLen) /* receives byte count of signature */{        int rv;	struct sc_pkcs11_session *session;	CK_ULONG length;	rv = sc_pkcs11_lock();	if (rv != CKR_OK)		return rv;	rv = pool_find(&session_pool, hSession, (void**) &session);	if (rv != CKR_OK)		goto out;	/* According to the pkcs11 specs, we must not do any calls that	 * change our crypto state if the caller is just asking for the	 * signature buffer size, or if the result would be	 * CKR_BUFFER_TOO_SMALL. Thus we cannot do the sign_update call	 * below. */	if ((rv = sc_pkcs11_sign_size(session, &length)) != CKR_OK)		goto out;	if (pSignature == NULL || length > *pulSignatureLen) {		*pulSignatureLen = length;		rv = pSignature? CKR_BUFFER_TOO_SMALL : CKR_OK;		goto out;	}	rv = sc_pkcs11_sign_update(session, pData, ulDataLen);	if (rv == CKR_OK)		rv = sc_pkcs11_sign_final(session, pSignature, pulSignatureLen);out:	sc_debug(context, "Signing result was %d\n", rv);	sc_pkcs11_unlock();        return rv;}CK_RV C_SignUpdate(CK_SESSION_HANDLE hSession,  /* the session's handle */		   CK_BYTE_PTR       pPart,     /* the data (digest) to be signed */		   CK_ULONG          ulPartLen) /* count of bytes to be signed */{	struct sc_pkcs11_session *session;        int rv;	rv = sc_pkcs11_lock();	if (rv != CKR_OK)		return rv;	rv = pool_find(&session_pool, hSession, (void**) &session);	if (rv == CKR_OK)		rv = sc_pkcs11_sign_update(session, pPart, ulPartLen);	sc_debug(context, "C_SignUpdate returns %d\n", rv);	sc_pkcs11_unlock();        return rv;}CK_RV C_SignFinal(CK_SESSION_HANDLE hSession,        /* the session's handle */		  CK_BYTE_PTR       pSignature,      /* receives the signature */		  CK_ULONG_PTR      pulSignatureLen) /* receives byte count of signature */{	struct sc_pkcs11_session *session;	CK_ULONG length;        int rv;	rv = sc_pkcs11_lock();	if (rv != CKR_OK)		return rv;	rv = pool_find(&session_pool, hSession, (void**) &session);	if (rv != CKR_OK)		goto out;	/* According to the pkcs11 specs, we must not do any calls that	 * change our crypto state if the caller is just asking for the	 * signature buffer size, or if the result would be	 * CKR_BUFFER_TOO_SMALL.	 */	if ((rv = sc_pkcs11_sign_size(session, &length)) != CKR_OK)		goto out;	if (pSignature == NULL || length > *pulSignatureLen) {		*pulSignatureLen = length;		rv = pSignature? CKR_BUFFER_TOO_SMALL : CKR_OK;	} else {		rv = sc_pkcs11_sign_final(session, pSignature, pulSignatureLen);	}out:	sc_debug(context, "C_SignFinal returns %d\n", rv);	sc_pkcs11_unlock();        return rv;}CK_RV C_SignRecoverInit(CK_SESSION_HANDLE hSession,   /* the session's handle */			CK_MECHANISM_PTR  pMechanism, /* the signature mechanism */			CK_OBJECT_HANDLE  hKey)       /* handle of the signature key */{        CK_BBOOL can_sign;	CK_KEY_TYPE key_type;	CK_ATTRIBUTE sign_attribute = { CKA_SIGN, &can_sign, sizeof(can_sign) };	CK_ATTRIBUTE key_type_attr = { CKA_KEY_TYPE, &key_type, sizeof(key_type) };	struct sc_pkcs11_session *session;	struct sc_pkcs11_object *object;        int rv;	rv = sc_pkcs11_lock();	if (rv != CKR_OK)		return rv;	rv = pool_find(&session_pool, hSession, (void**) &session);	if (rv != CKR_OK)		goto out;	rv = pool_find(&session->slot->object_pool, hKey, (void**) &object);	if (rv != CKR_OK)		goto out;	if (object->ops->sign == NULL_PTR) {                rv = CKR_KEY_TYPE_INCONSISTENT;		goto out;	}	rv = object->ops->get_attribute(session, object, &sign_attribute);        if (rv != CKR_OK || !can_sign) {                rv = CKR_KEY_TYPE_INCONSISTENT;		goto out;	}	rv = object->ops->get_attribute(session, object, &key_type_attr);        if (rv != CKR_OK) {                rv = CKR_KEY_TYPE_INCONSISTENT;		goto out;	}	/* XXX: need to tell the signature algorithm that we want	 * to recover the signature */        sc_debug(context, "SignRecover operation initialized\n");	rv = sc_pkcs11_sign_init(session, pMechanism, object, key_type);out:	sc_debug(context, "Sign initialization returns %d\n", rv);	sc_pkcs11_unlock();        return rv;}CK_RV C_SignRecover(CK_SESSION_HANDLE hSession,        /* the session's handle */		    CK_BYTE_PTR       pData,           /* the data (digest) to be signed */		    CK_ULONG          ulDataLen,       /* count of bytes to be signed */		    CK_BYTE_PTR       pSignature,      /* receives the signature */		    CK_ULONG_PTR      pulSignatureLen) /* receives byte count of signature */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_EncryptInit(CK_SESSION_HANDLE hSession,    /* the session's handle */		    CK_MECHANISM_PTR  pMechanism,  /* the encryption mechanism */		    CK_OBJECT_HANDLE  hKey)        /* handle of encryption key */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_Encrypt(CK_SESSION_HANDLE hSession,            /* the session's handle */		CK_BYTE_PTR       pData,               /* the plaintext data */		CK_ULONG          ulDataLen,           /* bytes of plaintext data */		CK_BYTE_PTR       pEncryptedData,      /* receives encrypted data */		CK_ULONG_PTR      pulEncryptedDataLen) /* receives encrypted byte count */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_EncryptUpdate(CK_SESSION_HANDLE hSession,           /* the session's handle */		      CK_BYTE_PTR       pPart,              /* the plaintext data */		      CK_ULONG          ulPartLen,          /* bytes of plaintext data */		      CK_BYTE_PTR       pEncryptedPart,     /* receives encrypted data */		      CK_ULONG_PTR      pulEncryptedPartLen)/* receives encrypted byte count */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_EncryptFinal(CK_SESSION_HANDLE hSession,                /* the session's handle */		     CK_BYTE_PTR       pLastEncryptedPart,      /* receives encrypted last part */		     CK_ULONG_PTR      pulLastEncryptedPartLen) /* receives byte count */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_DecryptInit(CK_SESSION_HANDLE hSession,    /* the session's handle */		    CK_MECHANISM_PTR  pMechanism,  /* the decryption mechanism */		    CK_OBJECT_HANDLE  hKey)        /* handle of the decryption key */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_Decrypt(CK_SESSION_HANDLE hSession,           /* the session's handle */		CK_BYTE_PTR       pEncryptedData,     /* input encrypted data */		CK_ULONG          ulEncryptedDataLen, /* count of bytes of input */		CK_BYTE_PTR       pData,              /* receives decrypted output */		CK_ULONG_PTR      pulDataLen)         /* receives decrypted byte count */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_DecryptUpdate(CK_SESSION_HANDLE hSession,            /* the session's handle */		      CK_BYTE_PTR       pEncryptedPart,      /* input encrypted data */		      CK_ULONG          ulEncryptedPartLen,  /* count of bytes of input */		      CK_BYTE_PTR       pPart,               /* receives decrypted output */		      CK_ULONG_PTR      pulPartLen)          /* receives decrypted byte count */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_DecryptFinal(CK_SESSION_HANDLE hSession,       /* the session's handle */		     CK_BYTE_PTR       pLastPart,      /* receives decrypted output */		     CK_ULONG_PTR      pulLastPartLen)  /* receives decrypted byte count */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_DigestEncryptUpdate(CK_SESSION_HANDLE hSession,            /* the session's handle */			    CK_BYTE_PTR       pPart,               /* the plaintext data */			    CK_ULONG          ulPartLen,           /* bytes of plaintext data */			    CK_BYTE_PTR       pEncryptedPart,      /* receives encrypted data */			    CK_ULONG_PTR      pulEncryptedPartLen) /* receives encrypted byte count */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_DecryptDigestUpdate(CK_SESSION_HANDLE hSession,            /* the session's handle */			    CK_BYTE_PTR       pEncryptedPart,      /* input encrypted data */			    CK_ULONG          ulEncryptedPartLen,  /* count of bytes of input */			    CK_BYTE_PTR       pPart,               /* receives decrypted output */			    CK_ULONG_PTR      pulPartLen)          /* receives decrypted byte count */{        return CKR_FUNCTION_NOT_SUPPORTED;}CK_RV C_SignEncryptUpdate(CK_SESSION_HANDLE hSession,            /* the session's handle */			  CK_BYTE_PTR       pPart,               /* the plaintext data */			  CK_ULONG          ulPartLen,           /* bytes of plaintext data */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三四区| 另类小说视频一区二区| 国产精品99久久不卡二区| 欧美本精品男人aⅴ天堂| 天天色综合成人网| 日韩欧美的一区| 国产伦精品一区二区三区视频青涩| 欧美精品一区二区三区四区| 国产成人av影院| 亚洲色大成网站www久久九九| 欧洲国内综合视频| 日韩在线a电影| 欧美激情中文字幕| 欧洲精品在线观看| 国内精品伊人久久久久av影院| 国产三级一区二区| 91国偷自产一区二区三区成为亚洲经典| 亚洲高清免费观看 | 在线成人午夜影院| 捆绑调教一区二区三区| 国产日韩欧美精品电影三级在线| 99精品1区2区| 日韩av网站免费在线| 国产欧美综合在线观看第十页| 91色综合久久久久婷婷| 美日韩一级片在线观看| 国产精品护士白丝一区av| 精品视频一区三区九区| 国产精品18久久久久久久久久久久 | 免费成人av在线| 国产精品全国免费观看高清| 欧美日韩日日摸| 国产精品中文欧美| 午夜亚洲福利老司机| 国产日韩av一区| 欧美蜜桃一区二区三区| 成人精品在线视频观看| 肉色丝袜一区二区| 亚洲男人天堂av网| 久久女同精品一区二区| 欧美日韩在线精品一区二区三区激情| 韩国女主播一区| 亚洲第一会所有码转帖| 国产精品久久免费看| 日韩精品中文字幕在线一区| 91福利在线播放| 成人性生交大合| 日本成人中文字幕在线视频| 亚洲美女少妇撒尿| 国产亚洲欧美日韩日本| 欧美顶级少妇做爰| 91久久精品网| 99精品视频在线观看| 国产综合久久久久影院| 亚洲444eee在线观看| 国产精品国产三级国产aⅴ中文| 欧美成人艳星乳罩| 337p亚洲精品色噜噜| 色先锋aa成人| 99re视频精品| 波多野结衣中文字幕一区二区三区 | 欧美色手机在线观看| 成人午夜看片网址| 国产精品18久久久久久vr| 免费黄网站欧美| 日本欧美在线看| 日韩va欧美va亚洲va久久| 亚洲电影一级片| 亚洲国产精品一区二区久久恐怖片| 中文字幕中文乱码欧美一区二区| 国产欧美精品区一区二区三区| 久久日一线二线三线suv| 欧美va日韩va| 精品捆绑美女sm三区| 欧美电视剧在线观看完整版| 欧美一级一区二区| 欧美变态凌虐bdsm| 精品久久久久久久久久久院品网| 欧美成人三级在线| 久久久影院官网| 国产三级精品三级| 国产精品嫩草影院com| 国产精品久久久久影院老司| 国产精品久久影院| 夜夜亚洲天天久久| 亚洲成人久久影院| 蜜桃视频第一区免费观看| 久久精品国产一区二区三| 极品尤物av久久免费看| 国产精品伊人色| www.av亚洲| 91精彩视频在线| 欧美老人xxxx18| 欧美变态tickle挠乳网站| 国产女同互慰高潮91漫画| 亚洲三级视频在线观看| 亚洲午夜精品网| 久久精品免费看| 国产激情一区二区三区四区| av不卡一区二区三区| 欧洲一区在线电影| 日韩欧美中文字幕一区| 久久久国产午夜精品| 亚洲色图欧洲色图| 青青国产91久久久久久| 国产aⅴ综合色| 色综合天天综合网天天看片| 在线播放91灌醉迷j高跟美女| 精品福利av导航| 中文字幕在线播放不卡一区| 香港成人在线视频| 国产suv精品一区二区883| 欧美日韩在线直播| 国产婷婷精品av在线| 一区二区三区四区中文字幕| 日av在线不卡| 成人动漫中文字幕| 欧美日韩视频第一区| 国产精品私房写真福利视频| 亚洲午夜免费电影| 国产福利一区二区| 欧美日韩日日摸| 国产69精品久久久久777| 欧美怡红院视频| 久久久亚洲高清| 亚洲一二三四在线观看| 国产91丝袜在线播放| 欧美日韩国产首页| 中文字幕日韩一区| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲最新在线观看| 高清视频一区二区| 欧美一区二区视频在线观看| 成人免费在线观看入口| 黄色日韩网站视频| 欧美日韩午夜在线视频| 中文字幕日本乱码精品影院| 麻豆91精品视频| 欧美丝袜第三区| 综合电影一区二区三区| 欧美性生活一区| 欧美日韩极品在线观看一区| 国产精品久久久久毛片软件| 玖玖九九国产精品| 欧美一级二级三级乱码| 一区二区三区欧美久久| av一区二区久久| 国产日韩亚洲欧美综合| 奇米影视在线99精品| 欧美日韩综合在线| 亚洲美腿欧美偷拍| youjizz国产精品| 国产午夜亚洲精品理论片色戒 | 日韩一区二区三区免费看 | 国产精品久久久久9999吃药| 国产一区二区导航在线播放| 日韩欧美久久久| 日韩中文字幕麻豆| 欧美日韩国产欧美日美国产精品| 91成人免费电影| 一级女性全黄久久生活片免费| 91麻豆自制传媒国产之光| 国产精品美女久久久久久久久| 国产成人在线网站| 国产欧美一区二区精品忘忧草 | 99久久久久免费精品国产| 中文字幕乱码亚洲精品一区| 国产福利不卡视频| 国产欧美中文在线| 91婷婷韩国欧美一区二区| 国产精品初高中害羞小美女文| 成人免费视频一区| 国产精品免费视频网站| jiyouzz国产精品久久| 亚洲欧美偷拍另类a∨色屁股| 91麻豆免费在线观看| 亚洲电影在线免费观看| 欧美精品成人一区二区三区四区| 日韩高清在线一区| 日韩一区二区在线播放| 精品影院一区二区久久久| 久久久亚洲午夜电影| 成人免费观看av| 亚洲人成精品久久久久| 欧美色综合影院| 日本不卡视频在线| 国产亚洲欧美在线| 91天堂素人约啪| 天堂资源在线中文精品| 精品国产乱码久久久久久夜甘婷婷 | 日韩女优av电影在线观看| 国产一区二区在线观看视频| 色哟哟在线观看一区二区三区| 国内精品国产成人国产三级粉色| 日韩一级精品视频在线观看| 免费观看久久久4p| 国产亚洲精品bt天堂精选| 91欧美一区二区| 日韩综合小视频| 国产欧美精品国产国产专区 |