Pgpsdk

  • Автор темы denisforum
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

denisforum

Гость
#1
Доброго всем дня!

Подскажите пожалуйста примерчик для генерации ключей с помощью библиотеки PGPsdk.

Я уже всю голову сломал не пойму что и как в этой библиотеке работает!


Спасибо!
 
D

denisforum

Гость
#2
После продолжительного изучения мануала и лазания по инету получилось следующее, но всё равно при генерации ключа "PGPGenerateKey" вылетает ошибка feature not available
Может кто подскажет, что я пропустил, а то у меня уже башка не соображает!!!


Код:
err = PGPsdkInit();
err = PGPNewContext( kPGPsdkAPIVersion, &context );


const void *nameKey = "nameKey";
PGPOptionListRef m_optsEncode = NULL;
PGPKeySetRef keySet = kInvalidPGPKeySetRef;
err = PGPNewKeySet (context, &keySet);

err = PGPBuildOptionList ( context,
&m_optsEncode,
PGPOKeyGenParams (context, kPGPPublicKeyAlgorithm_RSA, 2048),
PGPOKeyGenName (context, nameKey, 255),
PGPOLastOption( context ) );

PGPGlobalRandomPoolAddSystemState();
PGPUInt32 currEntropyAmt = PGPGlobalRandomPoolGetEntropy(); 
PGPUInt32 entropyNeeded = PGPGetKeyEntropyNeeded(context, 
PGPOKeyGenParams(context,kPGPPublicKeyAlgorithm_RSA,2048),
PGPOLastOption(context) 
);

PGPUInt32 val;
while (currEntropyAmt < entropyNeeded) 
{ 
val = PGPGlobalRandomPoolMouseMoved(); 
currEntropyAmt = PGPGlobalRandomPoolGetEntropy(); 
}

const char *PassPhrase = "";
PGPKeyRef newKey;
err = PGPGenerateKey (context, &newKey,
PGPOKeySetRef (context, keySet),
m_optsEncode, 
PGPOPassphrase (context, PassPhrase),
PGPOExpiration (context, kPGPExpirationTime_Never),
PGPOLastOption( context ));

if( IsPGPError( err ) ) { 
char errString[256];
PGPGetErrorString( err, sizeof( errString), errString );
std::ofstream outFile ("err.dat", std::ios::app);
outFile << "PGPGenerateKey " << errString << std::endl;
outFile.close ();
};
 
Статус
Закрыто для дальнейших ответов.