Tipo BLOB opaco

BLOB opachi, noti anche come OPACOKEYBLOB, vengono usati per archiviare chiavi di sessione in un formato specifico del fornitore, ad esempio Schannel. Contengono il materiale della chiave di base e tutte le informazioni sullo stato corrente. Sono incluse informazioni quali il valore salt , il vettore di inizializzazione e la tabella delle chiavi. Il formato dei BLOB opachi non è pubblicato. Ogni fornitore CSP determina il proprio formato BLOB.

Poiché una chiave viene esportata in un BLOB opaco in formato specifico di CSP, può essere importata solo nel CSP da cui è stato originariamente esportato.

Quando sono coinvolti due processi, ogni processo chiama CryptAcquireContext in modo indipendente. Ogni processo ottiene un handle in un contenitore di chiavi. È possibile che entrambi i processi abbiano handle nello stesso contenitore di chiavi. Un processo crea le chiavi e le esporta in BLOB opachi, quindi passa i BLOB al secondo processo. Il secondo processo importa le chiavi dal BLOB nel contenitore di chiavi .

Se un provider di servizi di configurazione hardware non supporta l'esportazione delle chiavi, il BLOB potrebbe contenere solo l'indice di un registro delle chiavi o qualcosa di simile. In questo caso, il resto della procedura viene ignorato.

<secure process>
cbBlob = sizeof(rgbBlob);
CryptExportKey(
          hKey, 
          0, 
          OPAQUEKEYBLOB, 
          0, 
          rgbBlob, 
          &cbBlob);
hKey = 0;

<BLOB is transferred to other process>

<user process>
CryptImportKey(
            hProv, 
            pbBlob, 
            cbBlob, 
            0, 
            0, 
            &hKey);