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 .
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 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 |
---|---|
|
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 . |
|
Omita los parámetros NULL al codificar. |
|
La clave pública solo se usa para el cifrado. |
|
La clave pública solo se usa para firmas. |
|
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.
#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
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.
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.
#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 |