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

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

?? pkcs15-data.c

?? 讀寫Smart卡加解密接口的程序
?? C
字號:
/* * pkcs15-data.c: PKCS #15 data object functions * * Copyright (C) 2002  Danny De Cock <daniel.decock@postbox.be> * * This source file was inspired by pkcs15-cert.c. *  * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include "internal.h"#include "pkcs15.h"#include "asn1.h"#include <stdlib.h>#include <string.h>#include <stdio.h>#include <sys/stat.h>#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#include <assert.h>static const struct sc_asn1_entry     c_asn1_data_object[] = {        { "dataObject", SC_ASN1_OCTET_STRING, ASN1_OCTET_STRING, 0 },        { NULL }};int sc_pkcs15_read_data_object(struct sc_pkcs15_card *p15card,			       const struct sc_pkcs15_data_info *info,			       struct sc_pkcs15_data **data_object_out){	int r;	struct sc_pkcs15_data *data_object;	u8 *data = NULL;	size_t len;		assert(p15card != NULL && info != NULL && data_object_out != NULL);	SC_FUNC_CALLED(p15card->card->ctx, 1);	r = sc_pkcs15_read_file(p15card, &info->path, &data, &len, NULL);	if (r)		return r;	data_object = (struct sc_pkcs15_data *) malloc(sizeof(struct sc_pkcs15_data));	if (data_object == NULL) {		free(data);		return SC_ERROR_OUT_OF_MEMORY;	}	memset(data_object, 0, sizeof(struct sc_pkcs15_data));		data_object->data = data;	data_object->data_len = len;	*data_object_out = data_object;	return 0;}static const struct sc_asn1_entry c_asn1_data[] = {	{ "data", SC_ASN1_PKCS15_OBJECT, ASN1_SEQUENCE | SC_ASN1_CONS },	{ NULL }};static const struct sc_asn1_entry c_asn1_com_data_attr[] = {	{ "appName", SC_ASN1_UTF8STRING, ASN1_UTF8STRING, SC_ASN1_OPTIONAL },	{ "appOID", SC_ASN1_OBJECT, ASN1_OBJECT, SC_ASN1_OPTIONAL },	{ NULL }};static const struct sc_asn1_entry c_asn1_type_data_attr[] = {	{ "path", SC_ASN1_PATH, ASN1_SEQUENCE | SC_ASN1_CONS },	{ NULL }};int sc_pkcs15_decode_dodf_entry(struct sc_pkcs15_card *p15card,			       struct sc_pkcs15_object *obj,			       const u8 ** buf, size_t *buflen){        struct sc_context *ctx = p15card->card->ctx;	struct sc_pkcs15_data_info info;	struct sc_asn1_entry	asn1_com_data_attr[3],				asn1_type_data_attr[2],				asn1_data[2];	struct sc_asn1_pkcs15_object data_obj = { obj, asn1_com_data_attr, NULL,					     asn1_type_data_attr };	size_t label_len = sizeof(info.app_label);	int r;	sc_copy_asn1_entry(c_asn1_com_data_attr, asn1_com_data_attr);	sc_copy_asn1_entry(c_asn1_type_data_attr, asn1_type_data_attr);	sc_copy_asn1_entry(c_asn1_data, asn1_data);		sc_format_asn1_entry(asn1_com_data_attr + 0, &info.app_label, &label_len, 0);	sc_format_asn1_entry(asn1_com_data_attr + 1, &info.app_oid, NULL, 0);	sc_format_asn1_entry(asn1_type_data_attr + 0, &info.path, NULL, 0);	sc_format_asn1_entry(asn1_data + 0, &data_obj, NULL, 0);        /* Fill in defaults */        memset(&info, 0, sizeof(info));	r = sc_asn1_decode(ctx, asn1_data, *buf, *buflen, buf, buflen);	if (r == SC_ERROR_ASN1_END_OF_CONTENTS)		return r;	SC_TEST_RET(ctx, r, "ASN.1 decoding failed");	obj->type = SC_PKCS15_TYPE_DATA_OBJECT;	obj->data = malloc(sizeof(info));	if (obj->data == NULL)		SC_FUNC_RETURN(ctx, 0, SC_ERROR_OUT_OF_MEMORY);	memcpy(obj->data, &info, sizeof(info));	return 0;}int sc_pkcs15_encode_dodf_entry(struct sc_context *ctx,			       const struct sc_pkcs15_object *obj,			       u8 **buf, size_t *bufsize){	struct sc_asn1_entry	asn1_com_data_attr[4],				asn1_type_data_attr[2],				asn1_data[2];	struct sc_pkcs15_data_info *info;	struct sc_asn1_pkcs15_object data_obj = { (struct sc_pkcs15_object *) obj,							asn1_com_data_attr, NULL,							asn1_type_data_attr };	size_t label_len;	info = (struct sc_pkcs15_data_info *) obj->data;	label_len = strlen(info->app_label);	sc_copy_asn1_entry(c_asn1_com_data_attr, asn1_com_data_attr);	sc_copy_asn1_entry(c_asn1_type_data_attr, asn1_type_data_attr);	sc_copy_asn1_entry(c_asn1_data, asn1_data);		if (label_len) {		sc_format_asn1_entry(asn1_com_data_attr + 0,				&info->app_label, &label_len, 1);	}	if (info->app_oid.value[0] != -1) {		sc_format_asn1_entry(asn1_com_data_attr + 1,				&info->app_oid, NULL, 1);	}	sc_format_asn1_entry(asn1_type_data_attr + 0, &info->path, NULL, 1);	sc_format_asn1_entry(asn1_data + 0, &data_obj, NULL, 1);	return sc_asn1_encode(ctx, asn1_data, buf, bufsize);}void sc_pkcs15_free_data_object(struct sc_pkcs15_data *data_object){	assert(data_object != NULL);	free(data_object->data);	free(data_object);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩小视频| 欧美tickle裸体挠脚心vk| 石原莉奈在线亚洲二区| 久久综合国产精品| 亚洲一级不卡视频| 国产亚洲精久久久久久| av电影在线不卡| 午夜精品一区二区三区三上悠亚| 久久精品网站免费观看| 91福利国产成人精品照片| 国产精品一区二区三区乱码 | 国产成人精品网址| 91国偷自产一区二区三区观看| 天天做天天摸天天爽国产一区| www成人在线观看| 91精品在线观看入口| 国产91丝袜在线播放九色| 国产欧美精品区一区二区三区| 欧美日韩国产一级片| 国产69精品一区二区亚洲孕妇| 免费美女久久99| 亚洲伊人伊色伊影伊综合网| 久久欧美中文字幕| 日韩欧美另类在线| 欧美主播一区二区三区美女| 97精品国产97久久久久久久久久久久 | 欧美精品第一页| 国产成a人亚洲精| 美脚の诱脚舐め脚责91| 亚洲国产日韩a在线播放性色| 日韩欧美电影一二三| 欧美岛国在线观看| 欧美日韩夫妻久久| 欧美电影影音先锋| 欧美午夜精品久久久久久超碰 | 樱桃国产成人精品视频| 亚洲欧洲韩国日本视频| 久久婷婷色综合| 欧美日韩一区二区在线视频| 成人性生交大合| 久久不见久久见中文字幕免费| 秋霞午夜鲁丝一区二区老狼| 国产精品私人影院| 日韩精品一卡二卡三卡四卡无卡| 色久优优欧美色久优优| 成人av在线一区二区三区| 看电影不卡的网站| 久久99精品国产麻豆婷婷洗澡| 一个色妞综合视频在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 成人精品视频一区二区三区尤物| 国产在线精品一区二区| 亚洲一区二区三区中文字幕 | 日韩欧美一区二区视频| 成人中文字幕合集| 久久99精品国产.久久久久| 亚洲国产精品久久艾草纯爱 | 无吗不卡中文字幕| 一区视频在线播放| 欧美激情一区二区三区蜜桃视频| 精品久久久久香蕉网| 日韩精品一区二区三区视频在线观看| 日韩一级片在线观看| 日韩欧美一级精品久久| 久久先锋资源网| 国产亚洲一二三区| 亚洲欧美中日韩| 99视频精品在线| 天堂蜜桃一区二区三区| 国产精品一区二区无线| 狠狠色丁香久久婷婷综合丁香| 久久99精品国产.久久久久| bt欧美亚洲午夜电影天堂| 精品视频全国免费看| 久久国产精品99精品国产| 国产成人aaa| 极品少妇一区二区| 一区二区三区av电影| 精品免费一区二区三区| 欧美三级资源在线| 日韩欧美在线网站| 欧美日韩国产高清一区二区三区| 欧美日本一道本| 欧美三级欧美一级| 91精品在线麻豆| 婷婷夜色潮精品综合在线| 亚洲精品乱码久久久久久日本蜜臀| 亚洲欧洲av另类| 日本一区二区三区电影| 2019国产精品| 国产精品天干天干在观线| 日韩女优电影在线观看| 久久久久国产精品人| 亚洲1区2区3区4区| 色噜噜狠狠色综合中国| 亚洲品质自拍视频网站| 欧美一区二区三区婷婷月色| 久久综合九色综合97_久久久| 国产精品一二二区| 日韩经典一区二区| 久久激情五月激情| 国产激情一区二区三区桃花岛亚洲| 欧美一区二区三区思思人| 亚洲欧美色一区| 亚洲蜜臀av乱码久久精品| 亚洲一区二区高清| 久久精品国产99国产| 亚洲风情在线资源站| 国产成人超碰人人澡人人澡| 欧美日韩视频专区在线播放| 欧美性大战xxxxx久久久| 国产精品网友自拍| 亚洲国产精品视频| 不卡视频免费播放| 国产在线日韩欧美| 五月天精品一区二区三区| 亚洲色图一区二区| 精品一区二区三区在线观看 | 欧美亚洲综合色| 国产精品久久久久影院色老大 | 亚洲妇熟xx妇色黄| 婷婷综合在线观看| 色爱区综合激月婷婷| 久久中文娱乐网| 亚洲欧洲韩国日本视频 | 亚洲国产一区二区三区| 韩国三级在线一区| 欧美高清视频在线高清观看mv色露露十八 | 精品国产乱码久久久久久久| 久久精品一区二区三区不卡| 欧美日产国产精品| 中文字幕欧美三区| 日韩av中文字幕一区二区| 91色九色蝌蚪| 日本一区免费视频| 午夜伊人狠狠久久| 偷拍一区二区三区四区| 国产一区二区三区在线观看免费视频| 福利一区二区在线| 亚洲乱码精品一二三四区日韩在线| 欧美影院精品一区| 久久精品99国产精品| 一区二区三区欧美日韩| 91丨porny丨蝌蚪视频| 日本强好片久久久久久aaa| 精品88久久久久88久久久| 色综合久久综合| 国产+成+人+亚洲欧洲自线| www.成人在线| 亚洲免费成人av| av动漫一区二区| xf在线a精品一区二区视频网站| 久久91精品国产91久久小草| 国产永久精品大片wwwapp| 乱中年女人伦av一区二区| 欧美在线一二三四区| 国产精品卡一卡二| 成人免费毛片a| 一区二区三区日韩欧美| 亚洲制服丝袜一区| 色婷婷久久久久swag精品| 一区二区三区波多野结衣在线观看 | 欧美极品aⅴ影院| 精品久久免费看| 久久成人免费日本黄色| 精品剧情v国产在线观看在线| 国产精品一区二区果冻传媒| 久久久久久久久久久99999| 免费观看久久久4p| 一本大道综合伊人精品热热| 欧美午夜精品久久久久久孕妇| 国产视频视频一区| 九色综合国产一区二区三区| 中文字幕日韩一区| 视频一区国产视频| 国产精品18久久久久| 亚洲一区二区在线免费观看视频| 亚洲啪啪综合av一区二区三区| 一区二区三区国产精华| 日产国产高清一区二区三区| 亚洲高清免费一级二级三级| 亚洲精品在线观| 国产在线日韩欧美| 精品国产91久久久久久久妲己| 国产精品动漫网站| 欧美亚洲综合久久| 亚洲午夜久久久久中文字幕久| 国产亚洲一区二区三区在线观看| 亚洲青青青在线视频| 一区二区三区小说| 国产成人在线免费| 亚洲国产一区二区三区 | 777a∨成人精品桃花网| 国产精品久久久一本精品| 国产乱色国产精品免费视频| 国产免费久久精品| 欧美午夜精品一区二区三区| 日本视频一区二区三区| 国产亚洲欧美日韩在线一区| 99re66热这里只有精品3直播|