📄 pgpclientkeydb.c
字号:
va_start( args, firstOption );
context = PGPGetKeySetContext( keys );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpExportKeySetInternal( keys, optionList );
}
va_end( args );
/* optionList is freed in internal function */
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*____________________________________________________________________________
Export a key, keyset, or subset of a key to a buffer or file
____________________________________________________________________________*/
PGPError
PGPExport(
PGPContextRef context,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpContextIsValid( context ) );
if( pgpContextIsValid( context ) )
{
va_list args;
PGPOptionListRef optionList;
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpExportInternal( context, optionList );
}
va_end( args );
/* optionList is freed in internal function */
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*____________________________________________________________________________
Import a keyset from a buffer or file
____________________________________________________________________________*/
PGPError
PGPImportKeySet(
PGPContextRef context,
PGPKeySetRef *keys,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
if( IsntNull( keys ) )
*keys = kInvalidPGPKeySetRef;
if( pgpContextIsValid( context ) && IsntNull( keys ) )
{
va_list args;
PGPOptionListRef optionList;
*keys = kInvalidPGPKeySetRef;
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpImportKeySetInternal( context, keys, optionList );
}
va_end( args );
/* optionList is freed in internal function */
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*____________________________________________________________________________
Change (top level) key passphrase
____________________________________________________________________________*/
PGPError
PGPChangePassphrase(
PGPKeyRef key,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpKeyIsValid( key ) );
if( pgpKeyIsValid( key ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetKeyContext( key );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpChangePassphraseInternal( key, optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*____________________________________________________________________________
Change subkey passphrase
____________________________________________________________________________*/
PGPError
PGPChangeSubKeyPassphrase(
PGPSubKeyRef subkey,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpSubKeyIsValid( subkey ) );
if( pgpSubKeyIsValid( subkey ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetSubKeyContext( subkey );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpChangeSubKeyPassphraseInternal( subkey, optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*____________________________________________________________________________
Check passphrase validity
____________________________________________________________________________*/
PGPBoolean
PGPPassphraseIsValid(
PGPKeyRef key,
PGPOptionListRef firstOption,
...
)
{
PGPBoolean rslt = FALSE;
PGPError error = kPGPError_NoErr;
pgpAssert( pgpKeyIsValid( key ) );
if( pgpKeyIsValid( key ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetKeyContext( key );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
rslt = pgpPassphraseIsValidInternal( key, optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
return rslt;
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
return FALSE;
}
}
/*____________________________________________________________________________
Set key axiomatic, possibly testing passphrase
____________________________________________________________________________*/
PGPError
PGPSetKeyAxiomatic(
PGPKeyRef key,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpKeyIsValid( key ) );
if( pgpKeyIsValid( key ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetKeyContext( key );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpSetKeyAxiomaticInternal( key, optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*____________________________________________________________________________
Get the passkeybuffer to unlock a key, given its passphrase
____________________________________________________________________________*/
PGPError
PGPGetKeyPasskeyBuffer(
PGPKeyRef key,
void *passkeyBuffer,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpKeyIsValid( key ) );
pgpAssert( IsntNull( passkeyBuffer ) );
if( pgpKeyIsValid( key ) && IsntNull( passkeyBuffer ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetKeyContext( key );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpGetKeyPasskeyBufferInternal( key, passkeyBuffer,
optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*____________________________________________________________________________
Get the passkeybuffer to unlock a subkey, given its passphrase
____________________________________________________________________________*/
PGPError
PGPGetSubKeyPasskeyBuffer(
PGPSubKeyRef subkey,
void *passkeyBuffer,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpSubKeyIsValid( subkey ) );
pgpAssert( IsntNull( passkeyBuffer ) );
if( pgpSubKeyIsValid( subkey ) && IsntNull( passkeyBuffer ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetSubKeyContext( subkey );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpGetSubKeyPasskeyBufferInternal( subkey, passkeyBuffer,
optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*____________________________________________________________________________
Add, Remove, or Replace key self-sig options
____________________________________________________________________________*/
PGPError
PGPAddKeyOptions(
PGPKeyRef key,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpKeyIsValid( key ) );
if( pgpKeyIsValid( key ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetKeyContext( key );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpAddKeyOptionsInternal( key, optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
PGPError
PGPRemoveKeyOptions(
PGPKeyRef key,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpKeyIsValid( key ) );
if( pgpKeyIsValid( key ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetKeyContext( key );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpRemoveKeyOptionsInternal( key, optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
PGPError
PGPUpdateKeyOptions(
PGPKeyRef key,
PGPOptionListRef firstOption,
...
)
{
PGPError error = kPGPError_NoErr;
pgpAssert( pgpKeyIsValid( key ) );
if( pgpKeyIsValid( key ) )
{
va_list args;
PGPContextRef context;
PGPOptionListRef optionList;
context = PGPGetKeyContext( key );
va_start( args, firstOption );
optionList = pgpBuildOptionListArgs( context,
FALSE, firstOption, args );
error = pgpGetOptionListError( optionList );
if( IsntPGPError( error ) )
{
error = pgpUpdateKeyOptionsInternal( key, optionList );
}
va_end( args );
PGPFreeOptionList( optionList );
}
else
{
va_list args;
va_start( args, firstOption );
pgpFreeVarArgOptionList( firstOption, args);
va_end( args );
error = kPGPError_BadParams;
}
return( error );
}
/*__Editor_settings____
Local Variables:
tab-width: 4
End:
vi: ts=4 sw=4
vim: si
_____________________*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -