Fonction CryptFormatObject (wincrypt.h)

La fonction CryptFormatObject met en forme les données encodées et retourne une chaîne Unicode dans la mémoire tampon allouée en fonction du type d’encodage du certificat.

Syntaxe

BOOL CryptFormatObject(
  [in]      DWORD      dwCertEncodingType,
  [in]      DWORD      dwFormatType,
  [in]      DWORD      dwFormatStrType,
  [in]      void       *pFormatStruct,
  [in]      LPCSTR     lpszStructType,
  [in]      const BYTE *pbEncoded,
  [in]      DWORD      cbEncoded,
  [out]     void       *pbFormat,
  [in, out] DWORD      *pcbFormat
);

Paramètres

[in] dwCertEncodingType

Type d’encodage utilisé sur le certificat. Le type d’encodage de certificat actuellement défini utilisé est X509_ASN_ENCODING.

[in] dwFormatType

Valeurs de type de format. Non utilisé. Définit la valeur zéro.

[in] dwFormatStrType

Valeurs de type de format de structure. Ce paramètre peut être égal à zéro, ou vous pouvez spécifier un ou plusieurs des indicateurs suivants à l’aide de l’opérateur OR au niveau du bit pour les combiner.

Valeur Signification
0
Afficher les données sur une seule ligne. Chaque sous-champ est concaténé avec une virgule (,). Pour plus d'informations, consultez la section Notes.
CRYPT_FORMAT_STR_MULTI_LINE
0x0001
Afficher les données sur plusieurs lignes plutôt qu’une seule ligne (valeur par défaut). Pour plus d'informations, consultez la section Notes.
CRYPT_FORMAT_STR_NO_HEX
0x0010
Désactive le vidage hexadécimal. Pour plus d'informations, consultez la section Notes.

[in] pFormatStruct

Pointeur vers le format de la structure. Non utilisé. Défini sur NULL.

[in] lpszStructType

Pointeur vers un OID qui définit les données encodées. Si le mot d’ordre supérieur du paramètre lpszStructType est égal à zéro, le mot d’ordre inférieur spécifie l’identificateur entier pour le type de la structure donnée. Sinon, ce paramètre est un pointeur long vers une chaîne terminée par null.

Le tableau suivant répertorie les OID pris en charge avec leur extension OID associée.

Valeur Signification
SPC_FINANCIAL_CRITERIA_OBJID
1.3.6.1.4.1.311.2.1.27
SPC_SP_AGENCY_INFO_OBJID
1.3.6.1.4.1.311.2.1.10
szOID_AUTHORITY_INFO_ACCESS
1.3.6.1.5.5.7.1.1
szOID_AUTHORITY_KEY_IDENTIFIER2
2.5.29.35
szOID_BASIC_CONSTRAINTS2
2.5.29.19
szOID_CERT_POLICIES
2.5.29.32
szOID_CRL_DIST_POINTS
2.5.29.31
szOID_CRL_REASON_CODE
2.5.29.21
szOID_ENHANCED_KEY_USAGE
2.5.29.37
szOID_ISSUER_ALT_NAME2
2.5.29.18
szOID_KEY_ATTRIBUTES
2.5.29.2
szOID_KEY_USAGE
2.5.29.15
szOID_KEY_USAGE_RESTRICTION
2.5.29.4
szOID_NEXT_UPDATE_LOCATION
1.3.6.1.4.1.311.10.2
szOID_RSA_SMIMECapabilities
1.2.840.113549.1.9.15
szOID_SUBJECT_ALT_NAME2
2.5.29.17
szOID_SUBJECT_KEY_IDENTIFIER
2.5.29.14

[in] pbEncoded

Pointeur vers les données encodées à mettre en forme. Si lpszStructType est l’un des OID répertoriés ci-dessus, pbEncoded est l’extension encodée.

[in] cbEncoded

Taille, en octets, de la structure pbEncoded .

[out] pbFormat

Pointeur vers une mémoire tampon qui reçoit la chaîne mise en forme. Lorsque la mémoire tampon spécifiée n’est pas assez grande pour recevoir la structure décodée, la fonction définit ERROR_MORE_DATA et stocke la taille de mémoire tampon requise, en octets, dans la variable pointée par pcbFormat. Ce paramètre peut être NULL pour définir la taille de ces informations à des fins d’allocation de mémoire. Pour plus d’informations, consultez Récupération de données de longueur inconnue.

[in, out] pcbFormat

Pointeur vers une variable qui spécifie la taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre pbFormat . Lorsque la fonction retourne, la variable pointée vers par le paramètre pcbFormat contient le nombre d’octets stockés dans la mémoire tampon. Ce paramètre peut être NULL, uniquement si pbFormat a la valeur NULL.

Note Lors du traitement des données retournées dans la mémoire tampon, les applications doivent utiliser la taille réelle des données retournées. La taille réelle peut être légèrement inférieure à la taille de la mémoire tampon spécifiée lors de l’entrée. (Lors de l’entrée, les tailles de mémoire tampon sont généralement spécifiées suffisamment grandes pour garantir que les données de sortie les plus volumineuses possibles tiennent dans la mémoire tampon.) En sortie, la variable pointée par ce paramètre est mise à jour pour refléter la taille réelle des données copiées dans la mémoire tampon.
 

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE. Si elle échoue, la valeur de retour est FALSE. Pour récupérer des informations d’erreur étendues, utilisez la fonction GetLastError .

Remarques

Le comportement par défaut de cette fonction consiste à retourner un affichage sur une seule ligne des données encodées, c’est-à-dire que chaque sous-champ est concaténé avec une virgule (,) sur une ligne. Si vous préférez afficher les données sur plusieurs lignes, définissez l’indicateur CRYPT_FORMAT_STR_MULTI_LINE. Chaque sous-champ est ensuite affiché sur une ligne distincte.

Si aucune routine de mise en forme n’est installée ou inscrite pour le paramètre lpszStructType , le vidage hexadécimal du CRYPT_INTEGER_BLOB codé est retourné. Un utilisateur peut définir l’indicateur CRYPT_FORMAT_STR_NO_HEX pour désactiver le vidage hexadécimal.

Configuration requise

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]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CRYPT_INTEGER_BLOB