estructura CRYPT_OID_INFO (wincrypt.h)

La estructura CRYPT_OID_INFO contiene información sobre un identificador de objeto (OID). Estas estructuras proporcionan la relación entre un identificador de OID, su nombre, su grupo y otra información sobre el OID. Estas estructuras se pueden enumerar mediante la función CryptEnumOIDInfo . Se pueden agregar nuevos CRYPT_OID_STRUCTURES mediante la función CryptRegisterOIDInfo .

Sintaxis

typedef struct _CRYPT_OID_INFO {
  DWORD           cbSize;
  LPCSTR          pszOID;
  LPCWSTR         pwszName;
  DWORD           dwGroupId;
  union {
    DWORD  dwValue;
    ALG_ID Algid;
    DWORD  dwLength;
  } DUMMYUNIONNAME;
  CRYPT_DATA_BLOB ExtraInfo;
  LPCWSTR         pwszCNGAlgid;
  LPCWSTR         pwszCNGExtraAlgid;
} CRYPT_OID_INFO, *PCRYPT_OID_INFO;

Miembros

cbSize

Tamaño, en bytes, de esta estructura.

pszOID

El OID asociado a esta información de OID.

pwszName

Nombre para mostrar asociado a un OID.

dwGroupId

Valor del identificador de grupo asociado a esta información de OID.

Este miembro puede ser uno de los siguientes identificadores de grupo dwGroupId .

Valor Significado
CRYPT_ENCRYPT_ALG_OID_GROUP_ID
Algoritmos de cifrado
CRYPT_ENHKEY_USAGE_OID_GROUP_ID
Usos clave mejorados
CRYPT_EXT_OR_ATTR_OID_GROUP_ID
Extensiones o atributos
CRYPT_HASH_ALG_OID_GROUP_ID
Algoritmos hash
CRYPT_POLICY_OID_GROUP_ID
Directivas
CRYPT_PUBKEY_ALG_OID_GROUP_ID
Algoritmos de clave pública
CRYPT_RDN_ATTR_OID_GROUP_ID
Atributos de RDN
CRYPT_SIGN_ALG_OID_GROUP_ID
Algoritmos de firma

DUMMYUNIONNAME

DUMMYUNIONNAME.dwValue

Valor numérico asociado a esta información de OID. Este miembro se usa con dwGroupId CRYPT_SIGN_ALG_OID_GROUP_ID.

DUMMYUNIONNAME.Algid

Identificador de algoritmo asociado a esta información de OID.

Este miembro se aplica a los siguientes valores de dwGroupId:

  • CRYPT_HASH_ALG_OID_GROUP_ID
  • CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • CRYPT_SIGN_ALG_OID_GROUP_ID

DUMMYUNIONNAME.dwLength

Este miembro no está implementado. Siempre se establece en cero.

ExtraInfo

Información adicional usada para buscar o registrar información de OID. Este miembro se aplica a los siguientes valores de dwGroupId:

  • CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • CRYPT_SIGN_ALG_OID_GROUP_ID
  • CRYPT_RDN_ATTR_OID_GROUP_ID
Los OID del grupo de OID de CRYPT_ENCRYPT_ALG_OID_GROUP_ID tienen una longitud de bits establecida para los algoritmos AES en el miembro DWORD[0] del miembro ExtraInfo.

Los OID del grupo CRYPT_PUBKEY_ALG_OID_GROUP_ID tienen una marca establecida en el miembro DWORD[0] del miembro ExtraInfo.

Los OID de la curva ECC denominan claves públicas, por ejemplo, szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7"), tener una marca establecida en el miembro DWORD[0], un valor de campo dwMagic BCRYPT_ECCKEY_BLOB establecido en el miembro DWORD[1] y una longitud de bits donde el valor de BCRYPT_ECCKEY_BLOB cbKey es igual a dwBitLength / 8 + ((dwBitLength % 8) ? 1 : 0) establecido en el miembro DWORD[2] del miembro ExtraInfo.

Los OID del grupo CRYPT_SIGN_ALG_OID_GROUP_ID tienen un identificador de algoritmo de clave pública establecido en el miembro DWORD[0], una marca establecida en el miembro DWORD[1] y un tipo de proveedor opcional establecido en el miembro DWORD[2] del miembro ExtraInfo.

Los OID del grupo CRYPT_RDN_ATTR_OID_GROUP_ID tienen una lista terminada en null de tipos de valor de atributo RDN aceptables establecidos en una matriz de valores DWORD en el miembro ExtraInfo. Una lista omitida implica una matriz de valores donde el primer valor de la matriz es CERT_RDN_PRINTABLE_STRING, el segundo valor de la matriz es CERT_RDN_UNICODE_STRING y el tercer valor de la matriz es cero.

Los valores siguientes se usan para las marcas del miembro ExtraInfo .

Valor Significado
CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG
Esta marca ya no se usa.

Detenga el formato de la firma antes de llamar a la función CryptVerifySignature o después de llamar a la función CryptSignHash .

CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
Omita los parámetros NULL al codificar.
CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG
La clave pública solo se usa para el cifrado.
CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG
La clave pública solo se usa para firmas.
CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG
Esta marca ya no se usa.

Incluya los parámetros del algoritmo de clave pública en los parámetros digestEncryptionAlgorithm para el mensaje PKCS #7.

pwszCNGAlgid

Cadena de identificador de algoritmo que se pasa a las funciones CNG (las funciones BCrypt* y NCrypt* definidas en Bcrypt.h y Ncrypt.h). Las funciones CNG usan cadenas de identificador de algoritmo, como L"SHA1", en lugar de las constantes de tipo de datos ALG_ID , como CALG_SHA1. Windows Server 2003 y Windows XP: Este miembro no está disponible.

Nota El miembro pwszCNGAlgid solo está disponible si incluye la siguiente instrucción en el código.
 
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS

Este miembro se aplica a los siguientes valores de dwGroupId:

  • CRYPT_HASH_ALG_OID_GROUP_ID
  • CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • CRYPT_SIGN_ALG_OID_GROUP_ID
Establezca el miembro pwszCNGAlgid en la cadena vacía, L"", para los demás valores de dwGroupId.

El miembro pwszCNGAlgid también se puede establecer en un valor de cadena que no se pasa directamente a las funciones CNG. En la tabla siguiente se enumeran estos valores y sus significados.

Valor Significado
CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM
El algoritmo de curva ECC se obtiene de los parámetros codificados del algoritmo OID.
CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM
El algoritmo de ajuste de claves se obtiene de los parámetros codificados del algoritmo OID.
CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM
El algoritmo hash se obtiene de los parámetros codificados del algoritmo OID.
CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM
El algoritmo hash de generación de máscaras PKCS #1 v2.1 se obtiene de los parámetros codificados del algoritmo OID.
CRYPT_OID_INFO_NO_SIGN_ALGORITHM
Un algoritmo de clave pública que indica que el valor de la firma es un hash sin signo.
CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM
El algoritmo hash de relleno RSAES-OAEP se obtiene de los parámetros codificados del algoritmo OID.

pwszCNGExtraAlgid

Cadena de algoritmo adicional, distinta de la cadena del miembro pwszCNGAlgid , que se puede pasar a las funciones CNG (las funciones BCrypt* y NCrypt* definidas en Bcrypt.h y Ncrypt.h).

Windows Server 2003 y Windows XP: Este miembro no está disponible.

Nota Este miembro solo está disponible si incluye la siguiente instrucción en el código.
 
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS

Para los algoritmos de firma (CRYPT_SIGN_ALG_OID_GROUP_ID), este miembro es la cadena de algoritmo de clave pública que se va a pasar a las funciones CNG.

En el caso de las firmas ECC, este miembro es el valor de cadena CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM especial.

En el caso de las firmas sin firmar, este miembro es el valor de cadena CRYPT_OID_INFO_NO_SIGN_ALGORITHM especial.

Para las claves públicas de nombre de curva ECC, por ejemplo, szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7"), este es el valor especial de CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM cadena.

Para los demás valores de dwGroupId, establezca el miembro pwszCNGExtraAlgid en la cadena vacía, L"".

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado wincrypt.h

Consulte también

CryptFindOIDInfo

CryptRegisterOIDInfo

CryptUnregisterOIDInfo