Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La estructura CRYPT_OID_INFO contiene información sobre un identificador de objeto (OID). Estas estructuras proporcionan la relación entre un identificador 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 de 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 que se usa 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 del miembro DWORD[0] del miembro ExtraInfo.
Los OID del grupo de CRYPT_PUBKEY_ALG_OID_GROUP_ID tienen una marca establecida en el miembro DWORD[0] del miembro ExtraInfo.
Los identificadores de identificador de usuario 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 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 de 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 .
Importancia | 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. |
Uso posterior a la cuántica
CRYPT_PUBKEY_ALG_OID_GROUP_ID tiene los siguientes campos ExtraInfo cuando se usan con OID de PQ (arriba):
Campo | Descripción |
---|---|
DWORD[0] | Banderas |
DWORD[1] | Magia pública (por ejemplo , BCRYPT_MLDSA_PUBLIC_MAGIC) |
DWORD[2] | Magia privada (por ejemplo , BCRYPT_MLDSA_PRIVATE_SEED_MAGIC) |
DWORD[4] | Longitud de bytes de clave pública |
DWORD[5] | Longitud de bytes de clave privada |
DWORD[6] | Longitud de bytes de firma |
CRYPT_SIGN_ALG_OID_GROUP_ID tiene los siguientes campos ExtraInfo cuando se usan con OID de PQ:
Campo | Descripción |
---|---|
DWORD[0] | Banderas |
DWORD[1] | Longitud de bytes de firma |
CRYPT_HASH_ALG_OID_GROUP_ID se puede establecer en L"NoHash" para indicar ningún hash antes de firmar y la clave PQ firmará directamente los bytes ToBeSigned .
pwszCNGAlgid
Cadena de identificador de algoritmo que se pasa a las funciones CNG (las funciones BCrypt* y NCrypt* que se definen en Bcrypt.h y Ncrypt.h). Las funciones de 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:
Importancia | 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 firmar. |
CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM | El algoritmo hash de relleno RSAES-OAEP se obtiene de los parámetros codificados del algoritmo OID. |
CRYPT32_MLDSA_44_ALGORITHML"ML-DSA:44" |
El algoritmo ML-DSA combina el nombre del algoritmo CNG para ML-DSA y el conjunto de parámetros CNG 44 (categoría de seguridad 2 de NIST). |
CRYPT32_MLDSA_65_ALGORITHML"ML-DSA:65" |
El algoritmo de ML-DSA combina el nombre del algoritmo CNG para ML-DSA y el conjunto de parámetros CNG 65(categoría de seguridad 3 de NIST). |
CRYPT32_MLDSA_87_ALGORITHML"ML-DSA:87" |
El algoritmo ML-DSA combina el nombre del algoritmo CNG para ML-DSA y el conjunto de parámetros CNG 87 (categoría de seguridad 5 de NIST). |
CRYPT_OID_INFO_NO_HASH_ALGORITHML"NoHash" |
En el caso de las firmas digitales de PQ, indica que no hay ningún hash antes de firmar y la clave PQ firmará directamente los bytes ToBeSigned. |
pwszCNGExtraAlgid
Cadena de algoritmo adicional, que no sea la cadena del miembro pwszCNGAlgid , que se puede pasar a las funciones CNG (las funciones BCrypt* y NCrypt* que se definen 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 de CNG.
Para las firmas ECC, este miembro es el valor de cadena CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM especial.
Para 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 de cadena CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM especial.
Para los demás valores de dwGroupId, establezca el miembro pwszCNGExtraAlgid en la cadena vacía, L"".
Requisitos
Requisito | Importancia |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo admitido | Windows Server 2003 [solo aplicaciones de escritorio] |
encabezado | wincrypt.h |