Constantes pour CryptEncodeObject et CryptDecodeObject
Les fonctions CryptEncodeObject, CryptEncodeObjectEx, CryptSignAndEncodeCertificate, CryptDecodeObject et CryptDecodeObjectEx sont des fonctions d’encodage et de décodage généralisées, capables d’encoder et de décoder des certificats encodés ASN.1 ( Abstract Syntax Notation One ), des listes de révocation de certificats (CRL), des listes d’approbation de certificats (CTL) et des demandes de certificat.
Le tableau suivant répertorie les constantes, extensions et attributs prédéfinis utilisés avec les opérations d’encodage et de décodage, ainsi que la structure de données vers laquelle le paramètre pvStructInfo doit pointer.
Notes
Certaines constantes prédéfinies et chaînes OID ont la même signification. Dans ce cas, l’un ou l’autre peut être utilisé comme paramètre lpszStuctType .
Constante/valeur | Description |
---|---|
|
Le paramètre pvStructInfo est un pointeur vers une structure CMC_ADD_ATTRIBUTES_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CMC_ADD_EXTENSIONS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_ALGORITHM_IDENTIFIER . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ALT_NAME_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_NAME_VALUE . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICY_QUALIFIER_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICY_CONSTRAINTS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICY_MAPPINGS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_ATTRIBUTE . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_AUTHORITY_INFO_ACCESS . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_AUTHORITY_INFO_ACCESS . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_AUTHORITY_INFO_ACCESS . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_AUTHORITY_INFO_ACCESS . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_AUTHORITY_KEY_ID_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_AUTHORITY_KEY_ID2_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_AUTHORITY_KEY_ID_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_AUTHORITY_KEY_ID2_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_BASIC_CONSTRAINTS_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_BASIC_CONSTRAINTS_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_BASIC_CONSTRAINTS2_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_BASIC_CONSTRAINTS2_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_BIOMETRIC_EXT_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_BIOMETRIC_EXT_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_BIT_BLOB . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_SIGNED_CONTENT_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRL_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_EXTENSIONS . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_PAIR . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICIES_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICIES_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_REQUEST_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_TEMPLATE_EXT . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_TEMPLATE_EXT . |
|
Le paramètre pvStructInfo est un pointeur vers une variable FILETIME . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_CONTENT_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRL_DIST_POINTS_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRL_DIST_POINTS_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une variable int . |
|
Le paramètre pvStructInfo est un pointeur vers un entier qui contient la valeur énumérée. Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers un entier qui contient la valeur énumérée. Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une variable int . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CROSS_CERT_DIST_POINTS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CROSS_CERT_DIST_POINTS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure blob à clé publique Diffie-Hellman version 3 ou d’une structure de objets blob de clé publique DSS version 3 . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CTL_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CMC_DATA_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une variable int . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_DSS_PARAMETERS . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_UINT_BLOB . |
|
Le paramètre pvStructInfo est un pointeur vers un tableau de 40 octets. Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une LPSTR de la représentation par points de l’identificateur d’objet. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ECC_SIGNATURE . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_ECC_PRIVATE_KEY_INFO. Windows Server 2003, Windows XP, Windows 2000 et Windows Vista : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_ALGORITHM_IDENTIFIER . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ENHKEY_USAGE ou CTL_USAGE . (Ces structures sont identiques, mais sont connues sous des noms différents.) |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ENHKEY_USAGE ou CTL_USAGE . (Ces structures sont identiques, mais sont connues sous des noms différents.) |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_ENROLLMENT_NAME_VALUE_PAIR . |
|
Le paramètre pvStructInfo est un pointeur vers un entier qui contient la valeur énumérée. Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_EXTENSIONS . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRL_DIST_POINTS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers un entier signé de 32 bits ou moins. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ALT_NAME_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ALT_NAME_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRL_ISSUING_DIST_POINT . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRL_ISSUING_DIST_POINT . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_KEY_ATTRIBUTES_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_KEY_ATTRIBUTES_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_BIT_BLOB . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_BIT_BLOB . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_KEY_USAGE_RESTRICTION_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_KEY_USAGE_RESTRICTION_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_KEYGEN_REQUEST_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_LOGOTYPE_EXT_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_LOGOTYPE_EXT_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_INTEGER_BLOB .
L’objet BLOB est dans un ordre peu endien. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_UINT_BLOB . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_NAME_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_NAME_CONSTRAINTS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_NAME_CONSTRAINTS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_NAME_VALUE . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ALT_NAME_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une LPSTR de la représentation par points de l’identificateur d’objet. Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_DATA_BLOB . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_DSS_PARAMETERS . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICY_CONSTRAINTS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICY_CONSTRAINTS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICY_MAPPINGS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_POLICY_MAPPINGS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_PUBLIC_KEY_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_RC2_CBC_PARAMETERS . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CMC_RESPONSE_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers un BCRYPT_RSAKEY_BLOB immédiatement suivi de l’exposant et des octets de module. Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure de BCRYPT_RSAKEY_BLOB privée. Windows Server 2003, Windows XP, Windows 2000 et Windows Vista : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une variable FILETIME . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_SMIME_CAPABILITIES . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_RSA_SSA_PSS_PARAMETERS . Pour plus d'informations, consultez Notes. Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_RSA_SSA_PSS_PARAMETERS . Pour plus d'informations, consultez Notes. Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_RSAES_OAEP_PARAMETERS . Pour plus d'informations, consultez Notes. Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_ECC_CMS_SHARED_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_RSAES_OAEP_PARAMETERS . Pour plus d'informations, consultez Notes. Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_SEQUENCE_OF_ANY . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CMSG_SIGNER_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CMSG_CMS_SIGNER_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_SMIME_CAPABILITIES . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CMC_STATUS_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ALT_NAME_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_ALT_NAME_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_DATA_BLOB . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_TIME_STAMP_REQUEST_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_NAME_VALUE . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_NAME_INFO . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CERT_NAME_VALUE . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une variable FILETIME . Pour plus d'informations, consultez Notes. |
|
Le paramètre pvStructInfo est un pointeur vers une variable OCSP_SIGNED_REQUEST_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une variable OCSP_REQUEST_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une variable OCSP_RESPONSE_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une variable OCSP_BASIC_SIGNED_RESPONSE_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers une variable OCSP_BASIC_RESPONSE_INFO . Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le paramètre pvStructInfo est un pointeur vers un objet BLOB de clé privée RSA. Pour plus d’informations, consultez OBJETS BLOB de clés privées Diffie-Hellman version 3 et OBJETS BLOB de clés privées DSS version 3. |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_PRIVATE_KEY_INFO . |
|
Le paramètre pvStructInfo est un pointeur vers une structure CRYPT_ENCRYPTED_PRIVATE_KEY_INFO . |
Notes
Le tableau suivant fournit des détails supplémentaires sur des valeurs lpszStructType spécifiques.
Valeur | Description |
---|---|
X509_ALTERNATE_NAMEszOID_ISSUER_ALT_NAME szOID_SUBJECT_ALT_NAME |
Avant l’encodage, les choix de nom LPWSTR sont convertis en chaînes IA5. Si la chaîne contient une chaîne IA5 qui n’est pas valide, GetLastError retourne CRYPT_E_INVALID_IA5_STRING et *pcbEncoded est mis à jour avec l’emplacement d’erreur du caractère non valide. Les index d’emplacement d’erreur sont retournés dans *pcbEncoded comme suit : Bit 0 est le bit le moins significatif du DWORD. La VALUE_INDEX de l’erreur se trouve dans les bits 0 à 15. Il s’agit de l’index de caractères Unicode. La ENTRY_INDEX de l’erreur se trouve dans les bits 16 à 23. Les macros GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) et GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) sont définies pour faciliter la lecture des champs bitmap pour VALUE_INDEX et ENTRY_INDEX à partir du DWORD qui les contient : Le szOID_SUBJECT_ALT_NAME a été remplacé par szOID_SUBJECT_ALT_NAME2. De nouveaux serveurs de certificats implémentent ce dernier. |
X509_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_KEY_IDENTIFIER2 X509_AUTHORITY_KEY_ID2 |
Si une fonction d’encodage retourne CRYPT_E_INVALID_IA5_STRING en tant que GetLastError, l’emplacement d’erreur retourné dans *pcbEncoded se compose de : ENTRY_INDEX – 8 bits << 16 VALUE_INDEX : 16 bits (index de caractères Unicode) Les index d’emplacement d’erreur sont retournés dans *pcbEncoded comme suit : Bit 0 est le bit le moins significatif du DWORD. La VALUE_INDEX de l’erreur se trouve dans les bits 0 à 15. Il s’agit de l’index de caractères Unicode. La ENTRY_INDEX de l’erreur se trouve dans les bits 16 à 23. Les macros GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) et GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) sont définies pour faciliter la lecture des champs bitmap pour VALUE_INDEX et ENTRY_INDEX à partir du DWORD qui les contient. |
X509_AUTHORITY_KEY_IDszOID_AUTHORITY_KEY_IDENTIFIER |
Le X509_AUTHORITY_KEY_ID a été remplacé par X509_AUTHORITY_KEY_ID2. De nouveaux serveurs de certificats implémentent ce dernier. |
X509_BASIC_CONSTRAINTSszOID_BASIC_CONSTRAINTS |
Le X509_BASIC_CONSTRAINTS a été remplacé par X509_BASIC_CONSTRAINTS2. De nouveaux serveurs de certificats implémentent ce dernier. |
X509_CERT | La structure CERT_SIGNED_CONTENT_INFO contient le contenu encodé à signer, sa signature et l’algorithme de signature. Le membre ToBeSigned est une sortie CERT_INFO, CRL_INFO, CERT_REQUEST_INFO ou CERT_KEYGEN_REQUEST_INFO encodée d’un appel précédent à CryptEncodeObject pour l’une des valeurs lpszStructType suivantes :
|
szOID_CERT_EXTENSIONS | Peut être utilisé pour l’un des types d’attributs dans une demande de certificat. |
X509_CHOICE_OF_TIME | Par X509_ASN_ENCODING, si l’heure est postérieure à 1950 et avant 2050, il s’agit d’une heure UTC encodée avec une année à deux chiffres. Sinon, il s’agit d’une heure généralisée encodée avec une année à quatre chiffres, la date est précise en secondes. |
PKCS_CONTENT_INFO | Pour X509_ASN_ENCODING, encodé en tant que structure ContentInfo PKCS #7. Le CRYPT_DER_BLOB pointe vers le contenu ANY déjà encodé. |
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY | Pour X509_ASN_ENCODING, encodé en tant que structure ContentInfo PKCS #7 qui encapsule une séquence de ANY. La valeur du membre contentType est pszObjId, tandis que le champ de contenu est la structure suivante : SequenceOfAny ::= SEQUENCE OF ANY Le CRYPT_DER_BLOB pointe vers le contenu ANY déjà encodé. |
X509_CRL_DIST_POINTSszOID_CRL_DIST_POINTS |
Si la fonction d’encodage échoue avec GetLastError qui retourne CRYPT_E_INVALID_IA5_STRING, *pcbEncoded est mis à jour avec l’emplacement d’erreur du caractère non valide : CRL_ISSUER_BIT – 1 bit << 31 (0 pour FullName, 1 pour CRLIssuer) POINT_INDEX – 7 bits << 24 ENTRY_INDEX – 8 bits << 16 VALUE_INDEX : 16 bits (index de caractères Unicode) Les index d’emplacement d’erreur sont retournés dans *pcbEncoded comme suit : Le bit 0 est le bit le moins significatif du DWORD. Le VALUE_INDEX de l’erreur se trouve en bits 0 à 15. Il s’agit de l’index de caractères Unicode. Le ENTRY_INDEX de l’erreur se trouve en bits 16 à 23. Les macros GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) et GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) sont définies pour faciliter la lecture des champs bitmap pour les VALUE_INDEX et les ENTRY_INDEX à partir du DWORD qui les contient. |
szOID_CRL_NUMBER | Utilisé avec les listes de révocation de certificats de base uniquement. Il s’agit d’un numéro de séquence qui augmente de façon monotone pour chaque liste de révocation de certificats émise par une autorité de certification. |
X509_CRL_REASON_CODEszOID_CRL_REASON_CODE X509_ENUMERATED |
L’entier peut être défini sur l’une des valeurs énumérées suivantes.
|
szOID_CRL_VIRTUAL_BASE | Utilisé avec les listes de contrôle d’accès Delta uniquement. Il contient le numéro de liste de révocation de certificats de base de la liste de révocation de certificats de base correspondante. |
X509_CROSS_CERT_DIST_POINTSszOID_CROSS_CERT_DIST_POINTS |
Par CRYPT_E_INVALID_IA5_STRING, l’emplacement d’erreur est retourné dans *pcbEncoded by CryptEncodeObject(X509_CRL_DIST_POINTS) L’emplacement d’erreur se compose des éléments suivants :
|
RSA_CSP_PUBLICKEYBLOB | La fonction CryptExportKey génère la valeur pvStructInfo ci-dessus pour un dwBlobType de PUBLICKEYBLOB. La fonction CryptImportKey attend la valeur pvStructInfo ci-dessus lors de l’importation d’une clé publique. Si dwCertEncodingType est X509_ASN_ENCODING, le RSA_CSP_PUBLICKEYBLOB est encodé en tant que RSAPublicKey PKCS #1 composé d’une SÉQUENCE d’un entier de module et d’un entier publicExponent. Le module est encodé comme étant un entier non signé. Pour les fonctions de décodage, pvStructInfo pointe vers un objet BLOB de clé publique immédiatement suivi d’un RSAPUBKEY et des octets de module. (Pour plus d’informations sur les objets blob de clé publique, consultez CRYPT_INTEGER_BLOB.) CryptExportKey génère la valeur pvStructInfo pour un dwBlobType de PUBLICKEYBLOB. La fonction CryptImportKey attend la valeur pvStructInfo lors de l’importation d’une clé publique. Si dwCertEncodingType est X509_ASN_ENCODING, le RSA_CSP_PUBLICKEYBLOB est encodé en tant que RSAPublicKey PKCS #1 composé d’une SÉQUENCE d’un entier de module et d’un entier publicExponent. En cas de décodage, si le modulus a été encodé en tant qu’entier non signé avec un octet de début 0, l’octet 0 est supprimé avant de le convertir en octets de module CSP. Étant donné que la structure PKCS ) est toujours définie sur CALG_RSA_KEYX. |
szOID_DELTA_CRL_INDICATOR | Utilisé avec les listes de contrôle d’accès Delta uniquement. Il est marqué critique et contient le numéro de liste de révocation de certificats de base minimal qui peut être utilisé avec une liste de révocation de certificats delta. |
X509_DSS_SIGNATURE | Les octets sont triés en tant que sortie par le CryptSignHash du csp DSS, où les 20 octets inférieurs sont la valeur R et les 20 octets les plus élevés sont la valeur S. Les valeurs R et S sont traitées comme des entiers non signés et encodées en tant que séquences. |
X509_ECC_SIGNATURE | Utilise la même fonction d’encodage et de décodage que X509_DH_PARAMETERS. La structure CERT_ECC_SIGNATURE est identique à la structure CERT_DH_PARAMETERS , à l’exception des noms des champs. |
X509_ENUMERATED | Utilisé lors de l’encodage d’une énumération arbitraire telle que la X509_CRL_REASON_CODE. |
szOID_FRESHEST_CRL | Utilisé uniquement avec les listes de contrôle de base. Ce format est identique à une extension CDP contenant des URL pour extraire la liste de révocation de certificats delta. |
X509_ISSUING_DIST_POINTszOID_ISSUING_DIST_POINT |
Par CRYPT_E_INVALID_IA5_STRING, l’emplacement d’erreur est retourné dans *pcbEncoded by CryptEncodeObject(X509_ISSUING_DIST_POINT) L’emplacement d’erreur se compose des éléments suivants :
|
X509_KEY_USAGEszOID_KEY_USAGE |
Les définitions de bits utilisées pour le membre IntendedKeyUsage de la structure CERT_KEY_ATTRIBUTES_INFO sont utilisées. |
X509_KEYGEN_REQUEST_TO_BE_SIGNED | Pour les fonctions de décodage, le membre pbEncoded est la sortie de l’une des fonctions d’encodage à l’aide du X509_CERT lpszStructType. Cette sortie inclut les données « à signer » plus leur signature. Pour les fonctions d’encodage, le membre pbEncoded est uniquement les données « à signer ». |
X509_MULTI_BYTE_UINT | Avant l’encodage, un 0x00 de début est inséré. Après le décodage, le 0x00 de début est supprimé. |
X509_NAME | Permet de décoder/encoder les membres Issuer et Subject dans une structure CERT_INFO . |
X509_NAME_CONSTRAINTSszOID_NAME_CONSTRAINTS |
Par CRYPT_E_INVALID_IA5_STRING, l’emplacement d’erreur est retourné dans *pcbEncoded by CryptEncodeObject(X509_NAME_CONSTRAINTS) L’emplacement d’erreur se compose des éléments suivants :
|
X509_UNICODE_ANY_STRING X509_UNICODE_NAME_VALUE |
Pour les fonctions d’encodage, le membre pbData de la structure pointée vers la chaîne Unicode. Si le membre cbData est égal à zéro, la chaîne Unicode a un caractère null de fin ; sinon, cbData est le nombre d’octets de chaîne Unicode. Le nombre d’octets est deux fois supérieur au nombre de caractères. Si la chaîne Unicode contient un caractère qui n’est pas valide pour le dwValueType spécifié, *pcbEncoded est mis à jour avec l’index de caractères Unicode du premier caractère non valide.
GetLastError retourne : CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING La chaîne Unicode est convertie avant d’être encodée en fonction du dwValueType spécifié. Si dwValueType a la valeur 0, GetLastError retourne E_INVALIDARG. Si dwValueType n’indique pas de chaîne de caractères, CryptEncodeObject retourne FALSE avec GetLastError qui retourne CRYPT_E_NOT_CHAR_STRING. Pour les fonctions de décodage, le membre pbData pointe vers une chaîne Unicode terminée par null et le membre cbData contient le nombre d’octets de la chaîne Unicode à l’exclusion du caractère null de fin. dwValueType contient le type utilisé pour encoder l’objet. Il n’est pas obligé de CERT_RDN_UNICODE_STRING. La valeur encodée est convertie en chaîne Unicode en fonction du dwValueType. Si l’objet encodé n’est pas l’un des types de chaîne de caractères, la fonction de décodage retourne FALSE avec GetLastError retournant CRYPT_E_NOT_CHAR_STRING. Décodez des chaînes non-caractères à l’aide d’un lpszStructType de X509_ANY_STRING. |
szOID_NEXT_UPDATE_LOCATION | Utilisé avec les listes d’approbation de certificats (CTL) pour obtenir l’emplacement de la CTL valide la plus récente. Généralement, le choix utilisé dans le CERT_ALT_NAME_INFO est une URL qui indique l’emplacement. |
X509_OCTET_STRING | La structure contient une séquence d’octets. Il est utilisé avec certains algorithmes de chiffrement qui nécessitent un vecteur d’initialisation sous la forme d’une chaîne d’octets. |
CNG_RSA_PUBLIC_KEY_BLOB | Le pvStructInfo correspondant pointe vers un BCRYPT_RSAKEY_BLOB immédiatement suivi de l’exposant et des octets de module. L’exposant et le module sont tous deux au format big-endian. Les champs de clé privée constitués de cbPrime1 et cbPrime2 sont définis sur zéro. Si le paramètre dwCertEncodingType est égal à X509_ASN_ENCODING, le CNG_RSA_PUBLIC_KEY_BLOB est encodé en tant que clé publique RSA PKCS #1 qui se compose d’une séquence d’un module et d’un publicExponent. |
PKCS_RSA_SSA_PSS_PARAMETERSszOID_RSA_SSA_PSS |
Pour l’encodage, utilisez les valeurs par défaut suivantes si les champs de structure CRYPT_RSA_SSA_PSS_PARAMETERS ont la valeur NULL ou zéro.
|
PKCS_RSAES_OAEP_PARAMETERSszOID_RSAES_OAEP |
Pour l’encodage, utilisez les valeurs par défaut suivantes si les champs de structure CRYPT_RSAES_OAEP_PARAMETERS ont la valeur NULL ou zéro.
|
X509_SEQUENCE_OF_ANY | Les CRYPT_DER_BLOBpointent vers le contenu ANY déjà encodé. |
PKCS_SMIME_CAPABILITIESszOID_RSA_SMIMECapabilities |
Ces valeurs lpszStructType fonctionnent différemment pour les fonctions d’encodage. En raison des spécifications S/MIME (Secure/Multipurpose Internet Mail Extensions ), si Parameters.cbData est égal à zéro, les paramètres encodés sont omis et non encodés au format NULL (05 00). |
szOID_SUBJECT_KEY_IDENTIFIER | La structure CRYPT_INTEGER_BLOB contient une chaîne d’octets, une séquence arbitraire d’octets. |
X509_UNICODE_NAME | Pour les fonctions de décodage, les valeurs d’attribut rdn ( nom unique relatif ) sont des chaînes Unicode à l’exception des dwValueTypede CERT_RDN_ENCODED_BLOB ou CERT_RDN_OCTET_STRING. Ces dwValueTypesont les mêmes que pour un X509_NAME. Ces valeurs ne sont pas converties en Unicode. Le membre pbData de la valeur de l’attribut RDN pointe vers une chaîne Unicode terminée par null. Le membre cbData de la valeur de l’attribut RDN contient le nombre d’octets de la chaîne Unicode à l’exclusion du caractère null de fin. Le membre dwValueType de la valeur de l’attribut RDN contient le type utilisé dans l’objet encodé. Il n’est pas obligé de CERT_RDN_UNICODE_STRING. La valeur encodée est convertie en chaîne Unicode en fonction du dwValueType. Pour les fonctions d’encodage, les valeurs d’attribut RDN sont des chaînes Unicode à l’exception des dwValueTypede CERT_RDN_ENCODED_BLOB ou CERT_RDN_OCTET_STRING. Ces dwValueTypesont les mêmes que pour un X509_NAME. Ces valeurs ne sont pas censées être Unicode. Pour les autres chaînes dwValueType, le membre pbData de l’attribut rdN (nom unique relatif) pointe vers la chaîne Unicode. Si le membre cbData de la valeur de l’attribut RDN est égal à zéro, la chaîne Unicode a un caractère null de fin. Sinon, le membre cbData de la valeur de l’attribut RDN est le nombre d’octets de chaîne Unicode. Le nombre d’octets est le double du nombre de caractères et exclut le caractère null de fin. Si le membre dwValueType de la valeur de l’attribut RDN est CERT_RDN_ANY_TYPE, le pszObjId est utilisé pour trouver un dwValueType acceptable. Si la chaîne Unicode contient un caractère non valide pour le dwValueType trouvé ou spécifié, *pcbEncoded est mis à jour avec l’emplacement d’erreur du caractère qui n’est pas valide. Pour un caractère non valide, GetLastError retourne : CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING La chaîne Unicode est convertie avant d’être encodée selon le dwValueType spécifié ou le dwValueType de l’identificateur d’objet. Les index d’emplacement d’erreur des fonctions d’encodage sont retournés dans *pcbEncoded comme suit : La VALUE_INDEX de l’erreur se trouve dans les bits 0 à 15. La ATTR_INDEX de l’erreur se trouve dans les bits 16 à 21. La RDN_INDEX de l’erreur se trouve dans les bits 22 à 31. Bit 0 est le bit le moins significatif du DWORD. Les macros définies GET_CERT_UNICODE_RDN_ERR_INDEX(X), GET_CERT_UNICODE_ATTR_ERR_INDEX(X) et GET_CERT_UNICODE_VALUE_ERR_INDEX(X) permettent de lire facilement les champs bitmap pour les VALUE_INDEX, les ATTR_INDEX et les RDN_INDEX à partir du DWORD qui les contient. |
PKCS_UTC_TIMEszOID_RSA_signingTime |
Pour X509_ASN_ENCODING, heure UTC encodée précise en secondes et à l’aide d’une année à deux chiffres. |
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows XP [applications de bureau | Applications UWP] |
Serveur minimal pris en charge |
Windows Server 2003 [applications de bureau | Applications UWP] |
En-tête |
|
Voir aussi