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

📄 signaturesform.cpp

📁 著名的SecureBlackBox控件完整源码
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "SignaturesForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmSignatures *frmSignatures;
//---------------------------------------------------------------------------
__fastcall TfrmSignatures::TfrmSignatures(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//procedure TfrmSignatures.Init(const Signatures: array of TElPGPSignature;
//  const Validities: array of TSBPGPSignatureValidity;
//  pgpKeyring: TElPGPKeyring);
void TfrmSignatures::Init(const TElPGPSignature **Signatures, const TSBPGPSignatureValidity** Validities,  TElPGPKeyring* pgpKeyring)
{
    TElPGPPublicKey* mainKey;
    AnsiString userID, sigVal;

    TElPGPCustomPublicKey* Key = NULL;

    lvSignatures->Items->Clear();
    for (int i = 0; i< sizeof(*Signatures)/sizeof(TElPGPSignature*); i++)
    {
		TListItem* item = lvSignatures->Items->Add();
		Byte* KeyID;
		Signatures[i]->GetSignerKeyID(KeyID);
		pgpKeyring->FindPublicKeyByID(KeyID, Key, 0);
        if (Key != NULL)
        {
            if (AnsiString(Key->ClassName()) == "TElPGPPublicKey")
                mainKey = ((TElPGPPublicKey*)(Key));
            else
                // retrieving supkey...
                mainKey = NULL;

            if (mainKey != NULL)
            {
                if (mainKey->UserIDCount > 0)
                    userID = mainKey->UserIDs[0]->Name;
                else
                    userID = "No name";
            }
            else
                userID = "Unknown Key";
        }
        else
          userID = "Unknown Key";

        item->Caption = userID;
        switch (*(Validities[i]))
        {
            case svCorrupted:
                sigVal = "Corrupted";
                break;
            case svNoKey:
                sigVal = "Signing key not found, unable to verify";
                break;
            case svUnknownAlgorithm:
                sigVal = "Unknown signing algorithm";
                break;
            case svValid:
                sigVal = "Valid";
                break;
            default:
                sigVal = "Unknown reason";
        }

        item->SubItems->Add(sigVal);
    }
}

⌨️ 快捷键说明

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