PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET funzione di callback (wincrypt.h)
La funzione di callback PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET recupera un oggetto. È necessario implementare questa funzione come parte del provider personalizzato. Questa funzione è attualmente chiamata solo dal pacchetto di sicurezza Secure Channel (Schannel).
Sintassi
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET PfnCryptObjectLocatorProviderGet;
BOOL PfnCryptObjectLocatorProviderGet(
[in, optional] LPVOID pPluginContext,
[in, optional] PCRYPT_DATA_BLOB pIdentifier,
[in] DWORD dwNameType,
[in] PCERT_NAME_BLOB pNameBlob,
[out] PBYTE *ppbContent,
[out] DWORD *pcbContent,
[out] PCWSTR *ppwszPassword,
[out] PCRYPT_DATA_BLOB *ppIdentifier
)
{...}
Parametri
[in, optional] pPluginContext
Puntatore a un buffer facoltativo definito da questo provider e restituito dalla funzione PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE . Il buffer non viene modificato dal chiamante. Il provider può usare i dati per determinare quali azioni eseguire o mantenere informazioni aggiuntive.
[in, optional] pIdentifier
Puntatore a una struttura CRYPTOAPI_BLOB contenente l'identificatore dell'oggetto. Questo valore deve sempre essere NULL nella prima chiamata a questa funzione.
[in] dwNameType
Formato del nome del parametro pNameBlob . I valori possibili sono elencati di seguito. L'implementazione di questa funzione deve essere in grado di elaborare CRYPT_OBJECT_LOCATOR_SPN_NAME_TYPE, che viene passata da Schannel.
CRYPT_OBJECT_LOCATOR_SPN_NAME_TYPE (1 (0x1))
CRYPT_OBJECT_LOCATOR_LAST_RESERVED_NAME_TYPE (32 (0x20))
CRYPT_OBJECT_LOCATOR_FIRST_RESERVED_USER_NAME_TYPE (33 (0x21))
CRYPT_OBJECT_LOCATOR_LAST_RESERVED_USER_NAME_TYPE (0x0000FFFF)
[in] pNameBlob
Puntatore a una struttura CRYPTOAPI_BLOB contenente il nome che l'applicazione chiamante usa per identificare in modo univoco l'oggetto. Il provider usa questo nome per individuare l'oggetto richiesto. Schannel invia attualmente un nome host DNS (domain name system) codificato in UTF8 con nomi IDN convertiti da punycode.
[out] ppbContent
Puntatore a una matrice di byte che contiene l'oggetto da restituire.
[out] pcbContent
Dimensioni, in byte, dell'oggetto a cui punta il parametro ppbContent .
[out] ppwszPassword
Stringa Unicode con terminazione null contenente la password, se presente, usata per crittografare l'oggetto. Se l'oggetto è un file PFX (Personal Information Exchange), una password verrà in genere usata per eseguire la crittografia. Questo valore può essere NULL se non è necessaria alcuna password.
[out] ppIdentifier
Indirizzo che riceve un puntatore a un identificatore facoltativo che può essere usato durante le chiamate successive a questa funzione e per le notifiche di modifica. Per altre informazioni, vedere la sezione Osservazioni. Se il provider imposta questo valore su NULL, Schannel usa internamente il valore del parametro pNameBlob .
Valore restituito
Se la funzione ha esito positivo, restituisce non zero (TRUE).
Se la funzione ha esito negativo, restituire zero (FALSE) e specificare un errore appropriato nella funzione SetLastError . La maggior parte degli errori viene passata tramite Schannel non modificata, ma questo comportamento non è garantito. Alcuni errori possono essere mappati ad altri errori.
Se non è possibile restituire un oggetto per un determinato nome DNS (pNameBlob) o un identificatore (pIdentifier), restituire FALSE e specificare CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND nella funzione SetLastError .
Commenti
La funzione di callback PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET è attualmente chiamata solo dal pacchetto di sicurezza Secure Channel (Schannel). È possibile restituire un oggetto che incapsula uno dei seguenti elementi:
- Matrice di byte pfX (Personal Information Exchange)
- Archivio certificati.
- BLOB generico. Attualmente non è supportato da Schannel.
Poiché molti nomi host possono essere mappati a un oggetto, il provider può usare il parametro ppIdentifier per restituire un identificatore definito internamente che può essere usato nelle chiamate successive dalle funzioni DELL'API di crittografia (CAPI) al provider. Il provider può quindi usare l'identificatore per facilitare la ricerca dell'oggetto appropriato.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [solo app desktop] |
Server minimo supportato | Windows Server 2012 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Vedi anche
CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE