⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keymgmt.c

📁 PGP.Corporation.PGP.SDK.v3.7.2.rar 此前从本站下载的那个缺少几个lib文件
💻 C
📖 第 1 页 / 共 2 页
字号:
/*____________________________________________________________________________
keymgmt.c

Copyright (C) 2003,2004 PGP Corporation
All rights reserved.

FIPS 140-2 Operational Test/ Key Generation

$Id: keymgmt.c 48493 2006-10-12 21:19:56Z vinnie $
____________________________________________________________________________*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#include "pgpFeatures.h"
#include "pgpErrors.h"
#include "pgpEncode.h"
#include "pgpKeys.h"
#include "pgpPublicKey.h"
#include "pgpHash.h"
#include "pgpUtilities.h"
#include "pgpRandomPool.h"

#include "optest.h"
 

/* photo image for test */
PGPUInt16 testImage[] = {
0x1000, 0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xFFD8, 0xFFE0, 0x0010, 0x4A46, 0x4946, 0x0001, 0x0100, 0x0001,
0x0001, 0x0000, 0xFFDB, 0x0043, 0x000E, 0x0A0B, 0x0D0B, 0x090E,
0x0D0C, 0x0D10, 0x0F0E, 0x1116, 0x2417, 0x1614, 0x1416, 0x2C20,
0x211A, 0x2434, 0x2E37, 0x3633, 0x2E32, 0x323A, 0x4153, 0x463A,
0x3D4E, 0x3E32, 0x3248, 0x6249, 0x4E56, 0x585D, 0x5E5D, 0x3845,
0x666D, 0x655A, 0x6C53, 0x5B5D, 0x59FF, 0xDB00, 0x4301, 0x0F10,
0x1016, 0x1316, 0x2A17, 0x172A, 0x593B, 0x323B, 0x5959, 0x5959,
0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0x5959,
0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0x5959,
0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0x5959, 0xFFC0,
0x0011, 0x0800, 0x7800, 0x7803, 0x0122, 0x0002, 0x1101, 0x0311,
0x01FF, 0xC400, 0x1F00, 0x0001, 0x0501, 0x0101, 0x0101, 0x0100,
0x0000, 0x0000, 0x0000, 0x0001, 0x0203, 0x0405, 0x0607, 0x0809,
0x0A0B, 0xFFC4, 0x00B5, 0x1000, 0x0201, 0x0303, 0x0204, 0x0305,
0x0504, 0x0400, 0x0001, 0x7D01, 0x0203, 0x0004, 0x1105, 0x1221,
0x3141, 0x0613, 0x5161, 0x0722, 0x7114, 0x3281, 0x91A1, 0x0823,
0x42B1, 0xC115, 0x52D1, 0xF024, 0x3362, 0x7282, 0x090A, 0x1617,
0x1819, 0x1A25, 0x2627, 0x2829, 0x2A34, 0x3536, 0x3738, 0x393A,
0x4344, 0x4546, 0x4748, 0x494A, 0x5354, 0x5556, 0x5758, 0x595A,
0x6364, 0x6566, 0x6768, 0x696A, 0x7374, 0x7576, 0x7778, 0x797A,
0x8384, 0x8586, 0x8788, 0x898A, 0x9293, 0x9495, 0x9697, 0x9899,
0x9AA2, 0xA3A4, 0xA5A6, 0xA7A8, 0xA9AA, 0xB2B3, 0xB4B5, 0xB6B7,
0xB8B9, 0xBAC2, 0xC3C4, 0xC5C6, 0xC7C8, 0xC9CA, 0xD2D3, 0xD4D5,
0xD6D7, 0xD8D9, 0xDAE1, 0xE2E3, 0xE4E5, 0xE6E7, 0xE8E9, 0xEAF1,
0xF2F3, 0xF4F5, 0xF6F7, 0xF8F9, 0xFAFF, 0xC400, 0x1F01, 0x0003,
0x0101, 0x0101, 0x0101, 0x0101, 0x0100, 0x0000, 0x0000, 0x0001,
0x0203, 0x0405, 0x0607, 0x0809, 0x0A0B, 0xFFC4, 0x00B5, 0x1100,
0x0201, 0x0204, 0x0403, 0x0407, 0x0504, 0x0400, 0x0102, 0x7700,
0x0102, 0x0311, 0x0405, 0x2131, 0x0612, 0x4151, 0x0761, 0x7113,
0x2232, 0x8108, 0x1442, 0x91A1, 0xB1C1, 0x0923, 0x3352, 0xF015,
0x6272, 0xD10A, 0x1624, 0x34E1, 0x25F1, 0x1718, 0x191A, 0x2627,
0x2829, 0x2A35, 0x3637, 0x3839, 0x3A43, 0x4445, 0x4647, 0x4849,
0x4A53, 0x5455, 0x5657, 0x5859, 0x5A63, 0x6465, 0x6667, 0x6869,
0x6A73, 0x7475, 0x7677, 0x7879, 0x7A82, 0x8384, 0x8586, 0x8788,
0x898A, 0x9293, 0x9495, 0x9697, 0x9899, 0x9AA2, 0xA3A4, 0xA5A6,
0xA7A8, 0xA9AA, 0xB2B3, 0xB4B5, 0xB6B7, 0xB8B9, 0xBAC2, 0xC3C4,
0xC5C6, 0xC7C8, 0xC9CA, 0xD2D3, 0xD4D5, 0xD6D7, 0xD8D9, 0xDAE2,
0xE3E4, 0xE5E6, 0xE7E8, 0xE9EA, 0xF2F3, 0xF4F5, 0xF6F7, 0xF8F9,
0xFAFF, 0xDA00, 0x0C03, 0x0100, 0x0211, 0x0311, 0x003F, 0x00EF,
0x6DA0, 0x96DE, 0x211A, 0x6081, 0xCFCD, 0xD69F, 0x2190, 0xC6CB,
0x228D, 0xAC30, 0x4A9A, 0xB351, 0xCB9D, 0xA31E, 0xA335, 0x36B0,
0xAC65, 0xE996, 0x51D9, 0xC8CC, 0xCC0C, 0x8785, 0xC9EA, 0x2B5E,
0xB3EF, 0x6D0C, 0x8542, 0x1C10, 0x7835, 0x66D2, 0x06B7, 0x8CAB,
0x3972, 0x4FE5, 0x5316, 0xD3B5, 0x8BB2, 0xE5BD, 0xF52C, 0x5145,
0x15A1, 0x2666, 0xB507, 0x9D0C, 0x44FF, 0x000B, 0xE7F4, 0x3584,
0xD611, 0x7999, 0xF306, 0xECF4, 0xAEA2, 0xEC46, 0xD011, 0x2630,
0x6B36, 0x3B3B, 0x5794, 0x9032, 0x7AF5, 0xA964, 0x4B73, 0xCA7C,
0x43FF, 0x0021, 0x9BA1, 0xE8E4, 0x5660, 0xADED, 0x674E, 0xB99F,
0x55BC, 0x9238, 0x5D93, 0xCD6C, 0x1C7B, 0xD669, 0xD36E, 0xD412,
0x6DE4, 0x001F, 0x4A68, 0x6574, 0x0598, 0x2819, 0x24E0, 0x55A9,
0x4821, 0xD146, 0x513E, 0x51FD, 0x7F5A, 0x5B48, 0x6488, 0xC931,
0x8CE5, 0x170A, 0x08FE, 0x23C0, 0xFF00, 0x1A85, 0xAE5E, 0x185E,
0xDD08, 0x2ADF, 0x7891, 0xD4D3, 0x1157, 0x2477, 0xA039, 0xA6E0,
0x9381, 0xDE86, 0x52AC, 0x5581, 0x0475, 0x0681, 0x9209, 0x08A2,
0xA3A2, 0x8B01, 0xF435, 0x252D, 0x1414, 0x2100, 0xF5A5, 0xA291,
0x982A, 0x927A, 0x0E68, 0x02BD, 0xCDE4, 0x36C3, 0xF78D, 0xCFA0,
0xAC4B, 0xCD66, 0x490E, 0xD8FE, 0x44FD, 0x6A95, 0xFDE0, 0xB8B9,
0x7903, 0x12B9, 0xC0C8, 0xC715, 0x48F2, 0x6B36, 0xEE22, 0xDCD7,
0x934A, 0xA019, 0x1881, 0xD39A, 0x862B, 0x9912, 0x5F91, 0xC820,
0x5201, 0x8144, 0x71FC, 0xF9A5, 0x7158, 0x7B4D, 0x213D, 0x4F5A,
0x462C, 0x4609, 0xC8F4, 0xA705, 0xF9F1, 0x4EDB, 0x8A2E, 0x3B14,
0xAEED, 0xA3B9, 0x81A3, 0x202B, 0x1E43, 0x01DE, 0xB8CB, 0x9D36,
0x48A6, 0x6471, 0x820E, 0x3EB5, 0xD4EA, 0xDA82, 0xDA2E, 0x5796,
0x3D05, 0x57B3, 0xBE1A, 0x8266, 0xE2DD, 0x1CAF, 0x1922, 0xA931,
0x6C73, 0x90D9, 0x4914, 0xAAFB, 0x1640, 0x3F84, 0xD24B, 0x6373,
0x2C85, 0xF612, 0xCC72, 0x6BAB, 0x7B2B, 0x573B, 0x8074, 0xCF65,
0x6A51, 0x676E, 0x3EEC, 0xD329, 0xFC0D, 0x171D, 0xD1C8, 0x0D32,
0xE73C, 0xC6C3, 0xF0A2, 0xBAFD, 0xB7D1, 0x37FA, 0x3B44, 0xE8BD,
0x0B8C, 0x13F5, 0xA29D, 0xC343, 0xAF83, 0x5C1C, 0x0913, 0xF115,
0x7E2D, 0x4AD9, 0xC7FA, 0xD0BE, 0xC6B8, 0x8129, 0x1DE9, 0xC673,
0x8EB5, 0xE643, 0x1534, 0x743A, 0x68EE, 0x1AFE, 0xD47F, 0xCB64,
0xA824, 0xD5AD, 0x82B9, 0xF314, 0x8552, 0x79E9, 0x5C6A, 0xCCC5,
0x8735, 0x6F57, 0x8B7E, 0x9FF6, 0x587A, 0x380C, 0x5C7F, 0x11F4,
0xAE8A, 0x75E5, 0x51D8, 0x8943, 0x94CC, 0x8AEE, 0x4B99, 0x2492,
0x5186, 0x91CB, 0x600E, 0x055E, 0x45E2, 0xA3B5, 0xB4D9, 0x1206,
0x1820, 0x74AB, 0x5B40, 0xE2BA, 0x1990, 0x28A7, 0xA8E7, 0x8A60,
0x6E69, 0xE2A4, 0xA1E1, 0x79A4, 0x6071, 0x4A1A, 0x94D0, 0x0717,
0xAE01, 0x24F2, 0x7CDC, 0x2B01, 0x5378, 0x6EE7, 0xCABB, 0x5B47,
0x21C4, 0x992A, 0x7D38, 0xE953, 0x7882, 0xDCA6, 0xE645, 0x2771,
0xCE40, 0xE954, 0xFC3B, 0x1AFF, 0x0069, 0x2C92, 0x30CA, 0x0240,
0x35A7, 0x4133, 0xA692, 0x18D5, 0xF382, 0x7F1A, 0x6890, 0x28C2,
0xC6A3, 0xDFAD, 0x5860, 0x1C55, 0x6700, 0x75A9, 0x6C71, 0x8A62,
0x35C1, 0x5E32, 0x3F2A, 0x299B, 0x549E, 0x9456, 0x7CCC, 0xDD53,
0x8900, 0x706A, 0x6860, 0x794E, 0x10D5, 0x6552, 0x4E2B, 0x6462,
0x1B75, 0x5030, 0xD8E6, 0xB828, 0x53E7, 0x7A84, 0xE7CA, 0x86AD,
0xB451, 0x0C30, 0x0EFE, 0xA3A5, 0x1903, 0x8EDE, 0x94D1, 0xB985,
0x28E3, 0x822B, 0xD08C, 0x231D, 0x91CE, 0xDB96, 0xE3F3, 0xDEA3,
0x99B0, 0x4629, 0x6A09, 0x5885, 0x240C, 0xE2A8, 0x121D, 0x9F9B,
0xAD48, 0xAC6B, 0x2FED, 0xAAF3, 0x6D27, 0x6B0E, 0xC6AC, 0x0BC4,
0x8DB1, 0xD59B, 0xB523, 0x5E46, 0x6829, 0xA905, 0x4103, 0x9900,
0x6C63, 0xDAAD, 0xA8E3, 0x9A11, 0x0D15, 0xE7B7, 0x59A3, 0x2AC3,
0x8ACE, 0x8F47, 0x8A29, 0x8488, 0x36B0, 0xFD6B, 0x6B02, 0x90A5,
0x5264, 0x9590, 0x1030, 0x6A19, 0xE207, 0x27A5, 0x5C64, 0xEF4D,
0x78F7, 0x0C50, 0xD0E2, 0xECCC, 0xF553, 0xDFA5, 0x156F, 0xCA55,
0xEA78, 0xA2A2, 0xC6BC, 0xE675, 0x98DF, 0x2AAF, 0xBF35, 0xA2FC,
0xB55A, 0xFECB, 0xB4B3, 0x4324, 0x1746, 0x67F4, 0x38AA, 0xC579,
0xA9A5, 0x49D3, 0x5666, 0x529A, 0x93D0, 0x0534, 0x924F, 0x14A4,
0x7A1A, 0x4CED, 0xF735, 0xA883, 0x0714, 0xC7E3, 0xA74A, 0x7D34,
0x8DD4, 0x868C, 0xCBAB, 0x6479, 0x3CCE, 0x8C29, 0xD68A, 0x8EA0,
0x920B, 0x54F7, 0x4BB5, 0x0E6A, 0xAD8A, 0x9503, 0x34EC, 0x6D77,
0xCA6A, 0xC218, 0x1181, 0xC55D, 0x5E95, 0x5E11, 0xC559, 0x1C0A,
0x5632, 0x628A, 0x7629, 0x8CD8, 0x1421, 0xDD48, 0x42E3, 0x14DC,
0x5498, 0xE29B, 0x8E6A, 0x8442, 0xEA33, 0xC8A2, 0x9EE2, 0x8A00,
0xC5D0, 0xA669, 0x6172, 0xC79A, 0xD363, 0x815C, 0xBF86, 0x6E42,
0xDC98, 0xD9B7, 0x33FE, 0x95D5, 0x4839, 0xC7A5, 0x5311, 0x0B1A,
0x66EC, 0x75A9, 0x0D31, 0x80EB, 0x52CB, 0x42E7, 0x8E4D, 0x44CC,
0x4024, 0x74A8, 0xD9FE, 0x5E39, 0x269C, 0x877A, 0xE0D4, 0xDCAB,
0x19F3, 0x8B99, 0xB3CE, 0x01E9, 0x51DA, 0x19E0, 0x976B, 0xF2A2,
0xB588, 0x514C, 0x08AE, 0xC491, 0x4D0E, 0xE5AB, 0x7901, 0xC62A,
0xDA9E, 0x2A8A, 0x2804, 0x15AB, 0x9110, 0x40CD, 0x0431, 0xEDD2,
0xA350, 0xC0F1, 0xD2AC, 0x6062, 0x8C7A, 0xD485, 0xC68C, 0xF7A0,
0x75A7, 0x673D, 0x7B53, 0x4D51, 0x2358, 0x64D1, 0x4EC7, 0x1453,
0x11C4, 0x784E, 0x0DF7, 0x6672, 0x784A, 0xEC25, 0x19E4, 0x77AE,
0x73C2, 0x88CB, 0x6F23, 0xB630, 0xC78F, 0x6AE8, 0x94E7, 0x8354,
0xC3A9, 0x5A43, 0x8351, 0x3659, 0x40CF, 0x5A9E, 0x45F4, 0xE6A1,
0x71F3, 0x803B, 0x5416, 0x84DA, 0xA381, 0x5191, 0xB4F1, 0x532A,
0x13ED, 0x4F58, 0xA915, 0x72B1, 0x2D8E, 0x94E5, 0x3B47, 0x4AB5,
0xE58C, 0x5298, 0x41ED, 0x40AE, 0x4687, 0x2322, 0xA643, 0x8A68,
0x84A9, 0xE29E, 0xA8D4, 0x5C09, 0xD58D, 0x3F76, 0x4546, 0x8A6A,
0x5094, 0x1225, 0x380A, 0x785A, 0x0D3B, 0x0861, 0xA282, 0x68AA,
0x039A, 0xF0D3, 0x16B4, 0x6CFA, 0xFE55, 0xB078, 0xA28A, 0x6C5D,
0x44EE, 0x2985, 0x68A2, 0xA194, 0x84C1, 0x1522, 0x9CD1, 0x4521,
0x8F51, 0x9352, 0x85A2, 0x8A04, 0x3B1D, 0x334F, 0x4145, 0x14D0,
0x0F00, 0x5291, 0x4514, 0xC41D, 0x283C, 0xD145, 0x3018, 0x4514,
0x5143, 0x03FF, 0xD900 
};


static const char kEmailString[] = "nowhere.com";
static const char kEmailString1[] = "somewhere.com";
 
PGPError TestKeyMgmt(PGPContextRef context)
{
	PGPError				err 		= kPGPError_NoErr;
 	PGPKeyDBRef				keyDB	 	= kInvalidPGPKeyDBRef;
	PGPKeyDBRef		  importKeyDB	 	= kInvalidPGPKeyDBRef;
	PGPFilterRef			filter		= kInvalidPGPFilterRef;
	PGPFilterRef			filter1		= kInvalidPGPFilterRef;
	PGPKeySetRef			keyset		= kInvalidPGPKeySetRef;
	PGPKeySetRef			adkset		= kInvalidPGPKeySetRef;
	PGPKeySetRef			revokerset	= kInvalidPGPKeySetRef;
	PGPKeyListRef			keyList		= kInvalidPGPKeyListRef;
	PGPKeyIterRef			iter	 	= kInvalidPGPKeyIterRef;
  	PGPFileSpecRef 	pubKeysFileSpec 	= kInvalidPGPFileSpecRef;
	PGPFileSpecRef privKeysFileSpec 	= kInvalidPGPFileSpecRef;
	
	PGPKeyID 				BobsKeyID, AlicesKeyID, EvesKeyID, RootKeyID, AliceSubKeyID;
	PGPKeyDBObjRef			theKey		= kInvalidPGPKeyDBObjRef;
	PGPKeyDBObjRef			userID		= kInvalidPGPKeyDBObjRef;
	PGPKeyDBObjRef			BobsKey 	= kInvalidPGPKeyDBObjRef;
	PGPKeyDBObjRef			AlicesKey 	= kInvalidPGPKeyDBObjRef;
	PGPKeyDBObjRef			EvesKey 	= kInvalidPGPKeyDBObjRef;
	PGPKeyDBObjRef			RootKey 	= kInvalidPGPKeyDBObjRef;
	PGPKeyDBObjRef			AliceSubKey	= kInvalidPGPKeyDBObjRef;
 	PGPUInt32				numKeys;
	int						i;
	void*					exportBuf	= NULL;
	char					buffer[256];

  
	DecodeInfo		decodeInfo;

	InitDecodeInfo(&decodeInfo);
 	decodeInfo.option = kDecode_NoOption;
 
	/* TE03.14.02  - Data I/O  */
 	/* create filerefs to the key DB */
	sprintf(buffer, "%s/optest.pkr", gOutputDirectory  );
 	err = PGPNewFileSpecFromFullPath(context, buffer, &pubKeysFileSpec); CKERR;
	sprintf(buffer, "%s/optest.skr", gOutputDirectory  );
 	err = PGPNewFileSpecFromFullPath(context, buffer, &privKeysFileSpec); CKERR;
 
	/* TE03.14.02  - Manage a Key Database  */
	OPTESTPrintF("   Wiping archived key set\n");
#if PGP_SYMBIAN
	err = PGPDeleteFile( privKeysFileSpec); 
#else
 	err = PGPWipeFile(context,0,
				   PGPOInputFile(context,privKeysFileSpec), 
	//			   PGPOEventHandler(context, OptestEventHandler, &decodeInfo),
				   PGPOLastOption( context ) ); 
#endif

 
	err = PGPDeleteFile( pubKeysFileSpec); 
	
	while(TRUE)
	{
/* TE03.14.02  - Open archived key database  */
		OPTESTPrintF("\n   Open archived key set\n");
		err = PGPOpenKeyDBFile( context,
								kPGPOpenKeyDBFileOptions_Create | kPGPOpenKeyDBFileOptions_Mutable,
								pubKeysFileSpec,
								privKeysFileSpec,
								&keyDB ); CKERR;
	
		/* no reason to check this */
		if(!PGPKeyDBIsMutable(keyDB)) FAIL("KeyDB was not open mutable\n");
 	
		/* how many did we find ?*/
		err = PGPCountKeysInKeyDB(keyDB, &numKeys); CKERR;

		OPTESTPrintF("    %d keys found in DB\n", numKeys );
 		if(numKeys == 0)
		{
			PGPKeySetRef newKeys;
 
 			OPTESTPrintF("    Import key(s) into key set..\n" );
			/* read in sample keys from file */
			err = importKeys(context,gTestKeysPath, kPGPInputFormat_PGP, &importKeyDB); CKERR;

			// copy  keys into the New DB
 			PGPNewKeySet( importKeyDB, &newKeys );
 			PGPCopyKeys(newKeys,keyDB, NULL);
			err = PGPCountKeysInKeyDB(keyDB, &numKeys); CKERR;
			OPTESTPrintF("    %d keys added to DB\n", numKeys );

 			OPTESTPrintF("    Closing Key DB.\n" );
			PGPFlushKeyDB(keyDB);
			PGPFreeKeyDB( keyDB );
			keyDB  = kInvalidPGPKeyDBRef;
   		}
		else
			break;
	}
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -