Condividi tramite


Metodo IObjectId::InitializeFromAlgorithmName (certenroll.h)

Il metodo InitializeFromAlgorithmName inizializza l'oggetto da un nome dell'algoritmo o da un identificatore di oggetto. Questo metodo è stato fornito principalmente per consentire di inizializzare l'oggetto da un'API di crittografia: nome dell'algoritmo Di nuova generazione (CNG). È tuttavia possibile specificare qualsiasi nome OID. Questo metodo è abilitato per Il Web.

Sintassi

HRESULT InitializeFromAlgorithmName(
  [in] ObjectIdGroupId        GroupId,
  [in] ObjectIdPublicKeyFlags KeyFlags,
  [in] AlgorithmFlags         AlgFlags,
  [in] BSTR                   strAlgorithmName
);

Parametri

[in] GroupId

Valore di enumerazione ObjectIdGroupId che specifica il gruppo OID da cercare. Questo può essere uno dei gruppi di algoritmi seguenti:

  • XCN_CRYPT_HASH_ALG_OID_GROUP_ID
  • XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • XCN_CRYPT_SIGN_ALG_OID_GROUP_ID
È anche possibile specificare i gruppi che non contengono algoritmi crittografici:
  • XCN_CRYPT_RDN_ATTR_OID_GROUP_ID
  • XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID
  • XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID
  • XCN_CRYPT_POLICY_OID_GROUP_ID
  • XCN_CRYPT_TEMPLATE_OID_GROUP_ID

[in] KeyFlags

Valore di enumerazione ObjectIdPublicKeyFlags che specifica se cercare una firma o un algoritmo di crittografia. I valori possibili sono i seguenti:

  • XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
  • XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
È possibile usare entrambi i valori per disambiguare tra gli algoritmi, ad esempio RSA, che possono essere usati per crittografare e firmare i messaggi. È anche necessario specificare XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID nel parametro GroupId .

[in] AlgFlags

Valore di enumerazione AlgorithmFlags . I valori possibili sono i seguenti:

  • AlgoritmoFlagsNone
  • AlgoritmoFlagsWrap
Se si specifica XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID per il parametro GroupId , è possibile usare l'enumerazione AlgorithmFlags per cercare un OID che può essere usato per eseguire il wrapping di una chiave. Ad esempio, è possibile recuperare informazioni sull'algoritmo AES128wrap se si specifica una lunghezza di bit pari a 128 (vedere la sezione Osservazioni), impostare il parametro strAlgorithmName su AES e specificare AlgorithmFlagsWrap.

[in] strAlgorithmName

Variabile BSTR contenente il nome. È possibile specificare un nome o un OID in formato decimale punteggiato. Il metodo verifica che il formato sia coerente con lo standard ASN.1 X.208. Per altre informazioni sui nomi degli algoritmi CNG, vedere Identificatori di algoritmo CNG.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce S_OK.

Se la funzione ha esito negativo, restituisce un valore HRESULT che indica l'errore. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente. Per un elenco di codici di errore comuni, vedere Valori HRESULT comuni.

Codice/valore restituito Descrizione
CERTSRV_E_PROPERTY_EMPTY
Impossibile trovare le informazioni OID.
CRYPT_E_UNKNOWN_ALGO
Il nome dell'algoritmo non viene riconosciuto.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
L'oggetto è già inizializzato.

Commenti

È possibile usare i 16 bit superiori del parametro GroupId per specificare le dimensioni della chiave per gli algoritmi che accettano una lunghezza di bit variabile. Ad esempio, per inizializzare un oggetto IObjectId da un algoritmo AES a 192 bit, specificare "AES" per il parametro strAlgorithmName , spostare la lunghezza sinistra da 16 ed eseguire una combinazione bit per bit or sulla lunghezza del bit spostata e sul valore GroupId .

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certenroll.h
DLL CertEnroll.dll

Vedi anche

IObjectId