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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? devcfgcommands.c

?? cryptoboot is set of tools for disk encryption on Unix. It is especially suited to encrypt root par
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
						}						else if (0 == xmlStrcmp(action, "decrypt"))						{							printf("Performing decryption using '%s' as temporary loop device...\n", loop);							ret = getBlocksNum(&numblocks, loop);							if (-1 == ret)							{								printf("Could not get device size.\n");							}							else							{								ret = ddProgress(loop, src, numblocks);								if (-1 == ret)								{									printf("Decryption failure.\n");								}								else								{									xmlUnlinkNode(device);									xmlFreeNode(device);									printf("Decryption complete. Device removed from configuration.\n");								}							}						}						else							printf("Unknown action '%s'.", action);					}					xmlFree(action);					ret = loopaesDetachDevice(loop);					if (-1 == ret)						printf("Error: Could not detach loop device '%s'.\n", loop);				}			}			free(loop);		}	}	else		printf("FIXME: Encryption/decryption in '%s' driver not implemented.\n", driver);	xmlFree(src);	return;}int cStartCrypto(arg)	char* arg;{	xmlNodePtr* dtab;	int i, wasAction, step, answer;	xmlChar* action;	xmlChar* src;	xmlChar* driver;		fillDeviceTab(&dtab);	wasAction = 0;	step = 0;	for (i = 0; NULL != dtab[i]; i++)	{		action = xmlGetProp(dtab[i], "action");		if (NULL != action)		{			step++;			if (0 == wasAction)			{				wasAction = 1;				printf("Following steps will be taken:\n");			}			src = xmlGetProp(dtab[i], "src");			driver = (xmlChar*) dtab[i]->name;			printf("%d. %s %s with %s\n", step, action, src, driver);			xmlFree(src);			xmlFree(action);			}	}	if (0 == step)	{		printf("No crypto actions defined.\n");	}	else	{		answer = ynQuestion("\nAre you sure?", 'n');		if ('y' == answer)		{			for (i = 0; NULL != dtab[i]; i++)			{				action = xmlGetProp(dtab[i], "action");				if (NULL != action)					performCryptoAction(dtab[i]);				xmlFree(action);				}			printf("You should save changes to config file by issuing 'save' command.\n");		}	}	free(dtab);	return 1;}intcHelp(arg)	char* arg;{	int i;	printf("Possible commands:\n");	for(i = 0; NULL != commands[i].name; i++)		printf("\t%s %s\r\t\t\t%s\n", commands[i].name, commands[i].args,																		commands[i].doc);	return 1;}intcShowkey(arg)	char* arg;{	unsigned long di;	int ret;	xmlChar* src;	xmlNodePtr* dtab;	xmlNodePtr device;		xmlChar* driverName;	u_int8_t* laDMultiKey; 	int i, j;		if (NULL == arg)	{		printf("Device number as argument required.\n");		return 1;	}	ret = str2num(&di, arg);	if (-1 == ret)	{		printf("Bad index '%s'.\n", arg);		return 1;	}		fillDeviceTab(&dtab);		ret = getNode(&device, dtab, di);	if (-1 == ret)	{		printf("No such device.\n");	}	else	{		/* Get encrypted key */		driverName = (xmlChar*) device->name;		if (0 == xmlStrcmp(driverName, "loopaes"))		{			ret = loopaesGetMultiKey(&laDMultiKey, device);								if (ret == -1)			{				fprintf(stderr, "Internal error.\n");				exit(1);			}								/* Print decrypted key */			src = xmlGetProp(device, "src");			printf("Key material for device '%s' (loopaes multikey):\n\n",						 src);			xmlFree(src);			for (i = 0; i < 64; i++)			{				printf("\t");				for (j = 0; j < 128/8; j++)				{					printf("%.2x", laDMultiKey[j + (i*128/8)]);				}				printf("\n");			}			free(laDMultiKey);		}		else if (0 == xmlStrcmp(driverName, "plainloop"))		{			src = xmlGetProp(device, "src");			printf("Device '%s' uses %s driver, which does not need a key.\n", src, driverName);			xmlFree(src);		}		else		{			printf("FIXME: %s driver key printing not implemented.\n",						 driverName);		}	}	free(dtab);	return 1;}intcDecrypt(arg)	char* arg;{	unsigned long di;	int ret;	xmlChar* src;	xmlNodePtr* dtab;	xmlNodePtr device;	xmlChar* oldAction;	char answer;		if (NULL == arg)	{		printf("Device number as argument required.\n");		return 1;	}	ret = str2num(&di, arg);	if (-1 == ret)	{		printf("Bad index '%s'.\n", arg);		return 1;	}		fillDeviceTab(&dtab);		ret = getNode(&device, dtab, di);	if (-1 == ret)	{		printf("No such device.\n");	}	else	{		src = xmlGetProp(device, "src");		oldAction = xmlGetProp(device, "action");		if (NULL == oldAction)		{			xmlSetProp(device, "action", "decrypt");				printf("Device '%s' marked for decryption.\n", src);			printf("To start decryption process type 'startcrypto'.\n");				}		else if (0 == xmlStrcmp(oldAction, "encrypt"))		{			printf("According to configuration device '%s' is not encrypted (only marked for encryption). Insted of decryption, its entry will be removed.\n", src);			printf("It means the key material associated with this device will be removed also.\n");			answer = ynQuestion("Are you sure?", 'n');			if ('y' == answer)			{				xmlUnlinkNode(device);				xmlFreeNode(device);				printf("Device '%s' removed from configuration.\n", src);			}		}		else		{			printf("Device '%s' is already marked for decryption.\n", src);		}		xmlFree(src);		xmlFree(oldAction);	}	free(dtab);	return 1;}intaddLoopaesDevice(src, dst, dkey, action)	char* src;	char* dst;	u_int8_t* dkey;	char* action;{	AES_KEY ik;	int i;	u_int8_t* ekey;	char* ekeyText;	xmlNodePtr cur, devicesNode, device;		/* Encrypt multikey using masterKey */	AES_set_encrypt_key(authdata, 128, &ik);	ekey = malloc(64*128/8);	if (NULL == ekey)		return -1;		/* Encryption in ECB mode - safe for random data such as keys */	for (i = 0; i < 64; i++)		AES_ecb_encrypt(dkey + (i*128/8), ekey + (i*128/8),										&ik, AES_ENCRYPT);	/* Convert encrypted key to xmlChar* */	byte2hex(&ekeyText, ekey, 64*128/8);		/* Find devices node */	cur = xmlDocGetRootElement(ctab);	for (cur = cur->xmlChildrenNode; cur != NULL; cur = cur->next)	{		if (0 == xmlStrcmp(cur->name, "devices"))		{			devicesNode = cur;			break;		}	}	/* Create device node */	device = xmlNewTextChild(devicesNode, NULL, "loopaes", NULL);	/* Create and fill properties of device node */	xmlSetProp(device, "src", src);	xmlSetProp(device, "dst", dst);	xmlSetProp(device, "action", action);	/* Create and fill multikey node */	xmlNewTextChild(device, NULL, "multikey128", ekeyText);	free(ekeyText);	return 1;}voidencryptionWizard(){	char* src;	char* dst;	char* rawSrc;	char* rawDst;	char answer;	u_int8_t* key;	int ret;		printf("Please specify new device parameters.\n");	printf("Driver: loopaes\n"); /* FIXME: FUTURE: give choice */	rawSrc = readline("Source device: ");	rawDst = readline("Target device: ");	answer = ynQuestion("Do you want to manually enter the key?", 'n');	if ('y' == answer)	{		printf("FIXME: Sorry, this function is not yet implemented.\n");	}	/* else FIXME */	{		printf("Generating key... ");		key = malloc(64*128/8);		if (NULL == key)		{			printf("Memory allocation error.\n");			exit(1);		}		ret = RAND_bytes(key, 64*128/8);		if (0 == ret)		{			printf("RAND_bytes: %lu\n", ERR_get_error());			exit(1);		}		printf("done.\n");	}	src = trim(rawSrc);	dst = trim(rawDst);	addLoopaesDevice(src, dst, key, "encrypt");	free(key);		printf("Device '%s' added to cryptotab.\n", src);	printf("You should save changes issuing 'save', then start encryption process\nby issuing 'startcrypto'.\n");		free(rawSrc);	free(rawDst);		return;}intcEncrypt(arg)	char* arg;{	unsigned long di;	int ret;	xmlChar* src;	xmlNodePtr* dtab;	xmlNodePtr device;	xmlChar* oldAction;	char answer;		fillDeviceTab(&dtab);		if (NULL != arg)	{		ret = str2num(&di, arg);		if (-1 == ret)		{			printf("Bad index '%s'.\n", arg);			return 1;		}				ret = getNode(&device, dtab, di);		if (-1 == ret)		{			printf("No such device.\n");		}		else		{			src = xmlGetProp(device, "src");			oldAction = xmlGetProp(device, "action");			if (NULL == oldAction)			{				printf("According to configuration file, device '%s' is already encrypted.\n", src);				printf("Warning: Double encryption could destroy data on device.\n");				answer = ynQuestion("Are you sure?", 'n');				if ('y' == answer)				{					xmlSetProp(device, "action", "encrypt");							printf("Device '%s' marked for encryption.\n", src);					printf("To start encryption process type 'startcrypto'.\n");				}			}			else if (0 == xmlStrcmp(oldAction, "decrypt"))			{				xmlUnsetProp(device, "action");				printf("'decrypt' mark removed from device '%s'.\n", src);			}			else			{				printf("Device '%s' is already marked for encryption.\n", src);			}			xmlFree(src);			xmlFree(oldAction);		}	}	else	{		encryptionWizard();	}	free(dtab);	return 1;}intcSave(arg)	char* arg;{	int ret;	char* file;	char answer;	if (NULL != arg)		file = arg;	else		file = CONFIG_FILE;		printf("Configuration will be written to '%s'.\n", file);	answer = ynQuestion("Are you sure?", 'n');	if (answer == 'y')	{		ret = xmlSaveFormatFile(file, ctab, 1);		if (-1 == ret)			printf("Writing configuration to file '%s' failed.\n", file);		else			printf("Configuration saved to '%s'\n", file);	}	return 1;}intcQuit(arg)	char* arg;{	return -1;}Command commands[] ={	{"list", cList, "List devices", ""},	{"encrypt", cEncrypt, "Add new device and encrypt it, or mark n for encryption", "[n]"},	{"decrypt", cDecrypt, "Mark device n for decryption", "n"},	{"showkey", cShowkey, "Show encryption key for device n", "n"},	{"startcrypto", cStartCrypto, "Start encryption/decryption of selected devices", ""},	{"save", cSave, "Save changes to configuration file", "[file]"},	{"help", cHelp, "Display help", ""},	{"quit", cQuit, "Quit program", ""},	{(char*) NULL, (rl_icpfunc_t*) NULL, (char*) NULL}};

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品免费在线| 日韩精品一区二区三区中文不卡| 国产黄色成人av| 久久精品72免费观看| 美女性感视频久久| 国模无码大尺度一区二区三区| 老司机一区二区| 老司机精品视频一区二区三区| 免费看精品久久片| 韩国成人精品a∨在线观看| 狠狠色狠狠色综合系列| 狠狠色综合色综合网络| 高清beeg欧美| 99视频有精品| 欧美综合欧美视频| 69堂精品视频| 欧美精品一区二区精品网| 久久综合狠狠综合久久激情| 国产无人区一区二区三区| 一区在线观看免费| 一区二区三区国产豹纹内裤在线| 午夜精品国产更新| 国产一区二区三区四| 成人不卡免费av| 欧美日韩专区在线| 精品国一区二区三区| 欧美国产精品v| 洋洋成人永久网站入口| 日韩电影在线一区二区三区| 国产一区二区在线视频| 91香蕉视频mp4| 欧美剧情电影在线观看完整版免费励志电影| 日韩限制级电影在线观看| 国产欧美一区二区精品性色超碰| 亚洲欧美日韩国产一区二区三区| 五月开心婷婷久久| 国产精品一卡二卡| 在线观看日韩一区| 久久久精品影视| 亚洲国产成人tv| 福利一区二区在线| 欧美男人的天堂一二区| 国产视频911| 香蕉久久一区二区不卡无毒影院| 国产主播一区二区三区| 日本精品一级二级| 久久综合精品国产一区二区三区 | 1区2区3区欧美| 三级久久三级久久| 高清视频一区二区| 欧美嫩在线观看| 国产精品麻豆99久久久久久| 日韩成人av影视| 99精品久久99久久久久| 日韩欧美一级在线播放| 亚洲乱码国产乱码精品精98午夜| 美腿丝袜亚洲综合| 91福利视频网站| 久久九九久久九九| 日本欧美大码aⅴ在线播放| aaa亚洲精品| 久久综合狠狠综合| 日韩中文字幕亚洲一区二区va在线| 国产成人99久久亚洲综合精品| 欧美精品在线视频| 亚洲精品老司机| 国产不卡在线视频| 欧美成人一区二区| 天天色 色综合| 91原创在线视频| 国产日韩高清在线| 精品无码三级在线观看视频| 欧美日韩在线电影| 日韩久久一区二区| 丰满岳乱妇一区二区三区| 日韩三级免费观看| 首页国产欧美久久| 欧美性一二三区| 亚洲日本在线看| 成人av一区二区三区| 国产欧美日产一区| 国产伦精品一区二区三区视频青涩| 欧美一区二区三区播放老司机| 亚洲一区在线观看网站| 91麻豆6部合集magnet| 国产精品视频免费| 国产成人av电影在线观看| 欧美成人伊人久久综合网| 视频一区二区中文字幕| 欧美日韩国产免费一区二区| 亚洲尤物在线视频观看| 欧美在线观看视频一区二区| 亚洲色图在线播放| 色呦呦网站一区| 亚洲私人影院在线观看| 成人sese在线| 亚洲丝袜美腿综合| 91蜜桃免费观看视频| 18涩涩午夜精品.www| 99久久精品情趣| 亚洲图片欧美激情| 色又黄又爽网站www久久| 亚洲精品伦理在线| 在线观看一区不卡| 爽好久久久欧美精品| 欧美一区二区三区的| 极品尤物av久久免费看| 精品成人一区二区| 国产激情视频一区二区三区欧美 | 欧美三级日韩三级| 亚洲综合激情网| 欧美日韩一级黄| 日韩电影在线一区二区| 日韩视频在线观看一区二区| 九一九一国产精品| 久久免费偷拍视频| 成人av网站免费观看| 依依成人精品视频| 欧美日韩国产片| 国模冰冰炮一区二区| 国产精品美女久久久久久2018| av网站一区二区三区| 一区二区三区国产精品| 欧美一区二区精品| 国产乱码字幕精品高清av | 综合久久给合久久狠狠狠97色| 成人a区在线观看| 亚洲午夜日本在线观看| 欧美日韩一区二区三区四区 | 91久久久免费一区二区| 视频一区二区三区入口| 久久亚洲二区三区| 99re成人在线| 日韩黄色免费网站| 国产日韩欧美制服另类| 一本一道久久a久久精品| 人人狠狠综合久久亚洲| 亚洲国产成人午夜在线一区| 色婷婷久久99综合精品jk白丝| 午夜精品在线视频一区| 久久久久久久性| 色女孩综合影院| 久久精品国产亚洲高清剧情介绍 | 成人一道本在线| 亚洲国产日韩综合久久精品| 精品日本一线二线三线不卡| 成人h动漫精品一区二区| 日韩不卡在线观看日韩不卡视频| 国产欧美va欧美不卡在线| 欧美日韩电影在线| 国产成人午夜高潮毛片| 视频一区中文字幕国产| 国产精品毛片高清在线完整版 | 亚洲一区在线视频观看| 久久尤物电影视频在线观看| 91福利在线观看| 国产精品一区二区不卡| 天天色天天操综合| 亚洲欧美日韩国产一区二区三区 | 国产精品免费看片| 欧美一卡2卡3卡4卡| 91麻豆国产福利在线观看| 国模一区二区三区白浆| 亚洲成av人片在线观看| 国产精品国产三级国产三级人妇| 欧美一区二区观看视频| 色综合色狠狠综合色| 国产麻豆9l精品三级站| 免费高清在线一区| 亚洲国产视频一区| 国产精品的网站| 久久蜜桃av一区二区天堂| 欧美电影在哪看比较好| 99久久精品情趣| 成人综合婷婷国产精品久久蜜臀| 久久99日本精品| 午夜不卡在线视频| 亚洲综合偷拍欧美一区色| 国产精品欧美极品| 欧美成人在线直播| 91精品国产综合久久久久久漫画 | 久久久久久亚洲综合影院红桃| 911精品产国品一二三产区| 一本大道av伊人久久综合| 成人免费毛片片v| 国产精品一区二区男女羞羞无遮挡 | 国产欧美日韩综合| 欧美日韩一区二区三区免费看| av在线不卡电影| 成人免费黄色大片| 粉嫩av亚洲一区二区图片| 精品一区二区三区在线观看| 日产国产欧美视频一区精品| 亚洲va韩国va欧美va精品| 亚洲老妇xxxxxx| 亚洲免费在线观看视频| 亚洲图片激情小说| 亚洲免费av高清| 一区二区三区四区高清精品免费观看 | 国产一区二区在线影院|