Kendi Anahtarınızı Getirin — 10 Sağlayıcı
Tüm sağlayıcılar IsgcKeyProvider arabirimini uygular — aynı imzalama kodu yerel dosyalara, akıllı kartlara, HSM'lere, bulut KMS'ye veya uzak QTSP'lere karşı çalışır. Tek satırla geçiş yapın.
Tüm sağlayıcılar IsgcKeyProvider arabirimini uygular — aynı imzalama kodu yerel dosyalara, akıllı kartlara, HSM'lere, bulut KMS'ye veya uzak QTSP'lere karşı çalışır. Tek satırla geçiş yapın.
TsgcPFXKeyProviderPFX / PKCS#12 dosyaları. Yerel parola korumalı anahtar. Geliştirme, küçük dağıtımlar ve sertifikanın tek bir .pfx/.p12 dosyası olarak geldiği herhangi bir iş akışı için idealdir.
PKCS12_PREFER_CNG_KSP ile Windows CNG aracılığıyla içe aktarılır — SHA-256/384/512 imzalama, orijinal CSP'den bağımsız olarak çalışır.
.pfx dosyaları, özel anahtara sahip sertifika bulunana kadar otomatik olarak taranır.
var
vPFX: TsgcPFXKeyProvider;
begin
vPFX := TsgcPFXKeyProvider.Create(nil);
try
vPFX.FileName := 'certificate.pfx';
vPFX.Password := 'mypassword';
vPFX.LoadFromFile;
// vSigner.KeyProvider := vPFX;
finally
vPFX.Free;
end;
end;
TsgcPEMKeyProviderPEM dosyaları. Yerel PBES2 / PBKDF2 / AES-CBC desteğiyle şifrelenmiş PKCS#8, ayrıca eski RSA özel anahtar DEK-Info biçimi. OpenSSL tabanlı hatlar için idealdir.
BEGIN CERTIFICATE, BEGIN RSA PRIVATE KEY, BEGIN PRIVATE KEY, BEGIN ENCRYPTED PRIVATE KEY tümü desteklenir.
PrivateKeyFile'ı boş bırakın.
var
vPEM: TsgcPEMKeyProvider;
begin
vPEM := TsgcPEMKeyProvider.Create(nil);
try
vPEM.CertificateFile := 'cert.pem';
vPEM.PrivateKeyFile := 'key.pem';
vPEM.PrivateKeyPassword := 'secret';
vPEM.LoadFromFile;
// vSigner.KeyProvider := vPEM;
finally
vPEM.Free;
end;
end;
TsgcWindowsCertStoreProviderWindows Sertifika Deposu. Yerel makine ve geçerli kullanıcı depoları. Mevcut AD tarafından verilen sertifikaları kullanan masaüstü uygulamaları veya Windows'un sertifika yaşam döngüsünü zaten yönettiği herhangi bir dağıtım için idealdir.
var
vStore: TsgcWindowsCertStoreProvider;
begin
vStore := TsgcWindowsCertStoreProvider.Create(nil);
try
vStore.StoreName := 'MY';
vStore.StoreLocation := cslCurrentUser;
vStore.SelectCertificateBySubject('My Company');
// vSigner.KeyProvider := vStore;
finally
vStore.Free;
end;
end;
TsgcPKCS11ProviderPKCS#11 / Donanım Belirteçleri. Akıllı kartlar, USB belirteçleri, HSM'ler — SafeNet, YubiKey, Nitrokey, Thales. Çoğu AB yargı bölgesinde Nitelikli Elektronik İmzalar için gereklidir.
CKM_RSA_PKCS ve CKM_ECDSA_SHA256 mekanizmaları desteklenir.
EnumerateSlots / EnumerateCertificates yardımcıları.
var
vTok: TsgcPKCS11Provider;
begin
vTok := TsgcPKCS11Provider.Create(nil);
try
vTok.LibraryPath := 'C:\token\pkcs11.dll';
vTok.SlotIndex := 0;
vTok.PIN := '1234';
vTok.CertificateLabel := 'MyCert';
vTok.Connect;
// vSigner.KeyProvider := vTok;
finally
vTok.Free;
end;
end;
TsgcAzureTrustedSigningProviderAzure Trusted Signing. Microsoft'un nitelikli kod imzalama hizmeti. EV sertifikası satın almadan Authenticode — Microsoft sertifikaya sahiptir ve imzalama anahtarını sizin için sağlar.
var
vAzure: TsgcAzureTrustedSigningProvider;
begin
vAzure := TsgcAzureTrustedSigningProvider.Create(nil);
try
vAzure.TenantId := 'your-tenant-id';
vAzure.ClientId := 'your-client-id';
vAzure.ClientSecret := 'your-client-secret';
vAzure.AccountName := 'mySigningAccount';
vAzure.CertificateProfileName := 'default';
vAzure.Connect;
// vSigner.KeyProvider := vAzure;
finally
vAzure.Free;
end;
end;
TsgcAWSKMSKeyProviderAWS Key Management Service. Amazon'un HSM destekli anahtar saklama hizmeti. Özel anahtarı açığa çıkarmadan bulutta imzalama için AWS tarafından verilen bir sertifikayla eşleştirin.
KeyId, anahtar kimliğini, anahtar ARN'sini veya takma ad ARN'sini kabul eder.
var
vAWS: TsgcAWSKMSKeyProvider;
begin
vAWS := TsgcAWSKMSKeyProvider.Create(nil);
try
vAWS.AccessKeyId := 'AKIAIOSFODNN7EXAMPLE';
vAWS.SecretAccessKey := 'wJalrXUtnFEMI/K7MDENG/...';
vAWS.Region := 'us-east-1';
vAWS.KeyId := 'arn:aws:kms:us-east-1:...:key/my-key';
vAWS.Connect;
// vSigner.KeyProvider := vAWS;
finally
vAWS.Free;
end;
end;
TsgcGCloudKMSKeyProviderGoogle Cloud KMS. AWS KMS ile aynı işletim modeli. Hizmet hesabı JSON dosyası, JWT değişimi aracılığıyla OAuth2 erişim belirtecine kimlik doğrular, ardından Cloud KMS API aracılığıyla imzalar.
var
vGCloud: TsgcGCloudKMSKeyProvider;
begin
vGCloud := TsgcGCloudKMSKeyProvider.Create(nil);
try
vGCloud.ProjectId := 'my-project';
vGCloud.LocationId := 'global';
vGCloud.KeyRingId := 'my-key-ring';
vGCloud.KeyId := 'my-signing-key';
vGCloud.KeyVersion := '1';
vGCloud.ServiceAccountJSON := 'C:\keys\sa.json';
vGCloud.Connect;
// vSigner.KeyProvider := vGCloud;
finally
vGCloud.Free;
end;
end;
TsgcHashiCorpVaultKeyProviderHashiCorp Vault. Vault'un Transit gizli dizi motoru imzalamayı gerçekleştirir. Vault'un zaten yığının parçası olduğu kendi sunucunuzda barındırılan, politika güdümlü anahtar saklama için idealdir.
SetCertificateFromFile aracılığıyla sağlayın.
'transit''tir.
var
vVault: TsgcHashiCorpVaultKeyProvider;
begin
vVault := TsgcHashiCorpVaultKeyProvider.Create(nil);
try
vVault.VaultAddress := 'https://vault.example.com:8200';
vVault.Token := 's.myVaultToken';
vVault.MountPath := 'transit';
vVault.KeyName := 'my-signing-key';
vVault.Connect;
vVault.SetCertificateFromFile('C:\certs\signing-cert.pem');
// vSigner.KeyProvider := vVault;
finally
vVault.Free;
end;
end;
TsgcCertumSimplySignProviderCertum SimplySign. Polonya QTSP'si. Mobil uygulama yetkili PIN aracılığıyla nitelikli elektronik imzalar, USB belirteci gerekmez. Polonya KSeF ve ZUS iş akışları için yaygın bir seçim.
ListCertificates, hesapta bulunan her sertifikayı sunar.
var
vCertum: TsgcCertumSimplySignProvider;
begin
vCertum := TsgcCertumSimplySignProvider.Create(nil);
try
vCertum.ClientId := 'your-client-id';
vCertum.ClientSecret := 'your-client-secret';
vCertum.Username := 'user@example.com';
vCertum.Password := 'account-password';
vCertum.PIN := '123456';
vCertum.BaseURL := 'https://cloudsign.certum.pl';
vCertum.Connect;
// vSigner.KeyProvider := vCertum;
finally
vCertum.Free;
end;
end;
TsgcCSCKeyProviderCloud Signature Consortium API v2. CSC v2'yi uygulayan herhangi bir QTSP'ye genel arabirim — Universign, D-Trust sign-me, A-Trust, FNMT Cl@ve Firma, Evrotrust, Intesi Group. Sağlayıcı, nitelikli anahtarı uzak bir QSCD'de tutar; sgcSign yalnızca belge karmasını gönderir.
cscBasic, cscOAuth2, cscOTP (iki faktör için tek seferlik parola).
credentials/authorize + signatures/signHash çağırır.
var
vCSC: TsgcCSCKeyProvider;
vCreds: TStringArray;
begin
vCSC := TsgcCSCKeyProvider.Create(nil);
try
vCSC.BaseURL := 'https://api.qtsp.example/csc/v2';
vCSC.AuthMethod := cscBasic;
vCSC.Username := 'alice';
vCSC.Password := 'secret';
vCreds := vCSC.ListCredentials;
vCSC.CredentialID := vCreds[0];
vCSC.PIN := '123456';
vCSC.OTP := '987654';
vCSC.LoadCredentialInfo;
// vSigner.KeyProvider := vCSC;
finally
vCSC.Free;
end;
end;
Her sağlayıcı IsgcKeyProvider uygular. İmzalayıcı kodu, anahtarın diskte mi, bir belirteçte mi, Azure'da mı yoksa bir CSC v2 API'sinin arkasında mı bulunduğunu asla bilmez.
function SignWithAnyProvider(
aProvider: IsgcKeyProvider; const aXML: string): string;
var
vSigner: TsgcXAdESSigner;
begin
vSigner := TsgcXAdESSigner.Create(nil);
try
vSigner.KeyProvider := aProvider;
vSigner.Profile.LoadProfile(spEmploymentDE);
Result := vSigner.SignXML(aXML);
finally
vSigner.Free;
end;
end;
// Caller picks the provider; signer doesn't care.
SignWithAnyProvider(vPFX, vXML);
SignWithAnyProvider(vAzure, vXML);
SignWithAnyProvider(vCSC, vXML);