pgpgroups.pas

来自「用DELPHI实现的 PGP 加密算法」· PAS 代码 · 共 380 行 · 第 1/2 页

PAS
380
字号
var PGPGetGroupInfo: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    var Info: TPGPGroupInfo): PGPError; cdecl;

var PGPSetGroupName: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    const Name: PChar): PGPError; cdecl;

var PGPSetGroupUserValue: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    UserValue: PGPUserValue): PGPError; cdecl;

var PGPSetGroupDescription: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    const Name: PChar): PGPError; cdecl;

{ 'item' specifies a group or a key id }
{ you must fill the item in completely }
var PGPAddItemToGroup: function(TheSet: pPGPGroupSet;
    const Item: pPGPGroupItem;
    Group: PGPGroupID): PGPError; cdecl;

var PGPMergeGroupIntoDifferentSet: function(FromSet: pPGPGroupSet;
    FromId: PGPGroupID;
    ToSet: pPGPGroupSet): PGPError; cdecl;

var PGPMergeGroupSets: function(FromSet: pPGPGroupSet;
    IntoSet: pPGPGroupSet): PGPError; cdecl;

var PGPCopyGroupSet: function(SourceSet: pPGPGroupSet;
    var DestSet: pPGPGroupSet): PGPError; cdecl;

{____________________________________________________________________________
  Manipulating group items
____________________________________________________________________________}

{ count how many items there are in a group }
{ TotalItems includes keys and groups }
var PGPCountGroupItems: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    Recursive: PGPBoolean;
    var NumKeys: PGPUInt32;
    var TotalItems: PGPUInt32): PGPError; cdecl;

{ non-recursive call; index only applies to group itself }
var PGPGetIndGroupItem: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    GroupIndex: PGPUInt32;
    var Item: TPGPGroupItem): PGPError; cdecl;

{ use PGPGetIndGroupItem() if you want to get the user value }
var PGPSetIndGroupItemUserValue: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    GroupIndex: PGPUInt32;
    UserValue: PGPUserValue): PGPError; cdecl;

var PGPSortGroupItems: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    CompareProc: TPGPGroupItemCompareProc;
    UserValue: PGPUserValue): PGPError; cdecl;

var PGPSortGroupSet: function(TheSet: pPGPGroupSet;
    CompareProc: TPGPGroupItemCompareProc;
    UserValue: PGPUserValue): PGPError; cdecl;

{____________________________________________________________________________
  PGPGroupItemIterRef--iterator through group items.

  Special note: this is not a full-fledged iterator.  You may *not* add
  or delete items while iterating and you may only move forward.  However,
  you may change the values of items.
____________________________________________________________________________}

var PGPNewGroupItemIter: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    Flags: TPGPGroupItemIterFlags;
    var Iter: pPGPGroupItemIter): PGPError; cdecl;

var PGPFreeGroupItemIter: function(Iter: pPGPGroupItemIter): PGPError; cdecl;

{ returns kPGPError_EndOfIteration when done }
var PGPGroupItemIterNext: function(Iter: pPGPGroupItemIter;
    var Item: TPGPGroupItem): PGPError; cdecl;

{____________________________________________________________________________
  Group utilities
____________________________________________________________________________}

{____________________________________________________________________________
  Return the lowest validity of any item in the group
  keyset should contain all keys available
  It is not an error if keys can't be found; you may want to check
  the not found count.

  The lowest validity is kPGPValidity_Invalid and kPGPValidity_Unknown
  is never returned.
____________________________________________________________________________}
// PGP 6.5.X
var PGPGetGroupLowestValidity: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    KeySet: pPGPKeySet;
    var LowestValidity: PGPValidity;
    var NumKeysNotFound: PGPUInt32): PGPError; cdecl;
// PGP 7.X
{var PGPGetGroupLowestValidity: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    KeyDB: pPGPKeyDB;
    var LowestValidity: PGPValidity;
    var NumKeysNotFound: PGPUInt32): PGPError; cdecl;}


{____________________________________________________________________________
  All all the keys in the group (and its subgroups) to the keyset
____________________________________________________________________________}
// PGP 6.5.X
var PGPNewKeySetFromGroup: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    MasterSet: pPGPKeySet;
    var ResultSet: pPGPKeySet;
    var NumKeysNotFound: PGPUInt32): PGPError; cdecl;
// PGP 7.X
{var PGPNewKeySetFromGroup: function(TheSet: pPGPGroupSet;
    Id: PGPGroupID;
    KeyDB: pPGPKeyDB;
    var ResultSet: pPGPKeySet;
    var NumKeysNotFound: PGPUInt32): PGPError; cdecl;}

{____________________________________________________________________________
  Create a simple, flattened group of unique key IDs from the source group.
  Note that sourceSet and destSet must be different.
____________________________________________________________________________}
var PGPNewFlattenedGroupFromGroup: function(SourceSet: pPGPGroupSet;
    SourceId: PGPGroupID;
    DestSet: pPGPGroupSet;
    var DestID: PGPGroupID): PGPError; cdecl;

{____________________________________________________________________________
  Perform a "standard" sort on a group
____________________________________________________________________________}
// PGP 6.5.X
var PGPSortGroupSetStd: function(TheSet: pPGPGroupSet; Keys: pPGPKeySet): PGPError; cdecl;
// PGP 7.X
{var PGPSortGroupSetStd: function(TheSet: pPGPGroupSet; Keys: pPGPKeyDB): PGPError; cdecl;}

implementation

uses
  Windows;

initialization

  if PGPInitErrorCode=ieNone then begin
    PGPNewGroupSet:=GetProcAddress(hPGPsdkLib,'PGPNewGroupSet');
    PGPNewGroupSetFromFile:=GetProcAddress(hPGPsdkLib,'PGPNewGroupSetFromFile');
    PGPSaveGroupSetToFile:=GetProcAddress(hPGPsdkLib,'PGPSaveGroupSetToFile');
    PGPFreeGroupSet:=GetProcAddress(hPGPsdkLib,'PGPFreeGroupSet');
    PGPGroupSetNeedsCommit:=GetProcAddress(hPGPsdkLib,'PGPGroupSetNeedsCommit');
    PGPGetGroupSetContext:=GetProcAddress(hPGPsdkLib,'PGPGetGroupSetContext');
    PGPExportGroupSetToBuffer:=GetProcAddress(hPGPsdkLib,'PGPExportGroupSetToBuffer');
    PGPImportGroupSetFromBuffer:=GetProcAddress(hPGPsdkLib,'PGPImportGroupSetFromBuffer');
    PGPNewGroup:=GetProcAddress(hPGPsdkLib,'PGPNewGroup');
    PGPCountGroupsInSet:=GetProcAddress(hPGPsdkLib,'PGPCountGroupsInSet');
    PGPGetIndGroupID:=GetProcAddress(hPGPsdkLib,'PGPGetIndGroupID');
    PGPDeleteGroup:=GetProcAddress(hPGPsdkLib,'PGPDeleteGroup');
    PGPDeleteIndItemFromGroup:=GetProcAddress(hPGPsdkLib,'PGPDeleteIndItemFromGroup');
    PGPDeleteItemFromGroup:=GetProcAddress(hPGPsdkLib,'PGPDeleteItemFromGroup');
    PGPGetGroupInfo:=GetProcAddress(hPGPsdkLib,'PGPGetGroupInfo');
    PGPSetGroupName:=GetProcAddress(hPGPsdkLib,'PGPSetGroupName');
    PGPSetGroupUserValue:=GetProcAddress(hPGPsdkLib,'PGPSetGroupUserValue');
    PGPSetGroupDescription:=GetProcAddress(hPGPsdkLib,'PGPSetGroupDescription');
    PGPAddItemToGroup:=GetProcAddress(hPGPsdkLib,'PGPAddItemToGroup');
    PGPMergeGroupIntoDifferentSet:=GetProcAddress(hPGPsdkLib,'PGPMergeGroupIntoDifferentSet');
    PGPMergeGroupSets:=GetProcAddress(hPGPsdkLib,'PGPMergeGroupSets');
    PGPCopyGroupSet:=GetProcAddress(hPGPsdkLib,'PGPCopyGroupSet');
    PGPCountGroupItems:=GetProcAddress(hPGPsdkLib,'PGPCountGroupItems');
    PGPGetIndGroupItem:=GetProcAddress(hPGPsdkLib,'PGPGetIndGroupItem');
    PGPSetIndGroupItemUserValue:=GetProcAddress(hPGPsdkLib,'PGPSetIndGroupItemUserValue');
    PGPSortGroupItems:=GetProcAddress(hPGPsdkLib,'PGPSortGroupItems');
    PGPSortGroupSet:=GetProcAddress(hPGPsdkLib,'PGPSortGroupSet');
    PGPNewGroupItemIter:=GetProcAddress(hPGPsdkLib,'PGPNewGroupItemIter');
    PGPFreeGroupItemIter:=GetProcAddress(hPGPsdkLib,'PGPFreeGroupItemIter');
    PGPGroupItemIterNext:=GetProcAddress(hPGPsdkLib,'PGPGroupItemIterNext');
    PGPGetGroupLowestValidity:=GetProcAddress(hPGPsdkLib,'PGPGetGroupLowestValidity');
    PGPNewKeySetFromGroup:=GetProcAddress(hPGPsdkLib,'PGPNewKeySetFromGroup');
    PGPNewFlattenedGroupFromGroup:=GetProcAddress(hPGPsdkLib,'PGPNewFlattenedGroupFromGroup');
    PGPSortGroupSetStd:=GetProcAddress(hPGPsdkLib,'PGPSortGroupSetStd');
  end;

end.

⌨️ 快捷键说明

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