Condividi tramite


Supporto per la crittografia

I dati usati nella decodifica video possono essere crittografati per le strutture e i tipi di dati seguenti:

  • Strutture dei comandi del controllo Macroblock

  • Strutture dei blocchi di differenza residua

  • Buffer bitstream

Affinché il decodificatore host usi la crittografia, deve determinare i tipi di crittografia supportati dall'acceleratore. Le informazioni sui tipi di crittografia supportati da un acceleratore sono contenute in un elenco di GUID di tipo crittografia forniti all'host come GUID di formato dell'acceleratore video. Per altre informazioni sui GUID del formato dell'acceleratore video, vedere la documentazione di Microsoft Windows SDK.

Nota Tutti gli acceleratori DIRECTX VA devono essere in grado di funzionare senza usare la crittografia. Non è quindi necessario dichiarare il supporto per il funzionamento senza crittografia e il GUID del formato dell'acceleratore video non deve mai essere inviato DXVA_NoEncrypt GUID "nessuna crittografia".

L'host seleziona il tipo di protocollo di crittografia da applicare e indica questa scelta inviando un GUID all'acceleratore. In uno scenario di crittografia tipico, è necessario eseguire altri due passaggi prima che i dati crittografati possano essere trasferiti correttamente:

  1. Il decodificatore host può richiedere la verifica che l'acceleratore sia autorizzato a ricevere i dati. Questa verifica può essere fornita con l'acceleratore che passa una struttura firmata all'host per dimostrare che contiene una coppia di chiavi pubblica/privata autorizzata.

  2. Il decodificatore host invia quindi una chiave simmetrica crittografata all'acceleratore.

Il numero preciso di passaggi per l'inizializzazione del protocollo di crittografia dipende dal tipo di crittografia in uso e dalla modalità di implementazione.

Ogni set di dati scambiato tra l'host e l'acceleratore per passare i parametri di inizializzazione della crittografia necessari deve essere preceduto dal GUID del tipo di protocollo di crittografia. Questo GUID distingue i dati di un tipo di crittografia dai dati di un altro. Ciò è necessario perché è possibile usare un tipo di crittografia per un buffer VA DirectX e un altro tipo di crittografia può essere usato per un altro buffer VA DirectX.This is necessary because one type of encryption could be used for one directx VA buffer, and another type of encryption could be used for another DirectX VA buffer.

La struttura DXVA_EncryptProtocolHeader viene usata per indicare che viene usato un protocollo di crittografia e il tipo di crittografia in uso.